@maci-protocol/website 0.0.0-ci.2653bc0

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 (415) hide show
  1. package/.eslintrc.js +157 -0
  2. package/CHANGELOG.md +566 -0
  3. package/LICENSE +22 -0
  4. package/README.md +58 -0
  5. package/babel.config.js +3 -0
  6. package/blog/2021-10-12-maci-v1.md +100 -0
  7. package/blog/2022-09-22-maci-v1-technical-introduction.md +180 -0
  8. package/blog/2023-01-18-maci-v1.1.1.md +121 -0
  9. package/blog/2024-01-18-roadmap.md +106 -0
  10. package/blog/2024-02-28-maci-v1.2.0.md +121 -0
  11. package/blog/2024-04-10-roadmap-q2.md +96 -0
  12. package/blog/2024-05-08-ethdam.md +169 -0
  13. package/blog/2024-05-22-the-origins-of-maci.md +38 -0
  14. package/blog/2024-05-28-upcoming-grants.md +85 -0
  15. package/blog/2024-06-17-understanding-maci.md +63 -0
  16. package/blog/2024-06-21-deciphering-maci.md +48 -0
  17. package/blog/2024-06-28-revolusioning-public-goods-funding.md +32 -0
  18. package/blog/2024-07-23-q2-review.md +72 -0
  19. package/blog/2024-07-30-roadmap-q3.md +61 -0
  20. package/blog/2024-08-10-maci-v2.md +102 -0
  21. package/blog/2024-08-29-anonymous-poll-joining.md +47 -0
  22. package/blog/2024-10-29-q3-review.md +63 -0
  23. package/blog/2024-11-20-maci-platform.md +93 -0
  24. package/blog/2024-12-01-maci-getting-started.md +294 -0
  25. package/blog/2025-03-21-roadmap-2025.md +112 -0
  26. package/blog/assets/MACI_Bob_SignUp_1.png +0 -0
  27. package/blog/assets/MACI_Bob_SignUp_2.png +0 -0
  28. package/blog/assets/MACI_Complex_Message.png +0 -0
  29. package/blog/assets/MACI_Contracts.png +0 -0
  30. package/blog/assets/MACI_Sign_Up.png +0 -0
  31. package/blog/assets/MACI_Simple_Message.png +0 -0
  32. package/blog/assets/MACI_Verifier_1.png +0 -0
  33. package/blog/authors.yml +5 -0
  34. package/docusaurus.config.ts +213 -0
  35. package/package.json +65 -0
  36. package/src/components/ActionCard/index.tsx +30 -0
  37. package/src/components/ActionCard/styles.module.css +96 -0
  38. package/src/components/HomepageFeatures/index.tsx +91 -0
  39. package/src/components/HomepageFeatures/styles.module.css +17 -0
  40. package/src/components/ProjectCard/index.tsx +74 -0
  41. package/src/components/ProjectCard/styles.module.css +77 -0
  42. package/src/components/ProjectList/index.tsx +218 -0
  43. package/src/components/ProjectList/styles.module.css +180 -0
  44. package/src/content/projects.json +294 -0
  45. package/src/css/card.module.css +130 -0
  46. package/src/css/custom.css +91 -0
  47. package/src/icons/IconDiscord.tsx +16 -0
  48. package/src/icons/IconGithub.tsx +16 -0
  49. package/src/icons/IconWebsite.tsx +16 -0
  50. package/src/pages/blogs.tsx +58 -0
  51. package/src/pages/index.module.css +152 -0
  52. package/src/pages/index.tsx +66 -0
  53. package/src/pages/projects.tsx +44 -0
  54. package/src/pages/roadmap.md +150 -0
  55. package/src/pages/typedoc.tsx +11 -0
  56. package/src/plugins/blog-plugin/index.ts +86 -0
  57. package/src/react-app-env.d.ts +1 -0
  58. package/src/scripts/setupSolidityDocs.ts +67 -0
  59. package/src/scripts/setupTypedoc.ts +112 -0
  60. package/src/scripts/utils.ts +115 -0
  61. package/src/utils/getProjectsByFilter.ts +40 -0
  62. package/static/.nojekyll +0 -0
  63. package/static/audit_reports/20210922_Hashcloak_audit_report.pdf +0 -0
  64. package/static/audit_reports/202220930_Hashcloak_audit_report.pdf +0 -0
  65. package/static/audit_reports/20240223_PSE_Audit_audit_report.pdf +0 -0
  66. package/static/audit_reports/20240731_PSE_Audit_audit_report.pdf +0 -0
  67. package/static/fonts/DM_Sans.woff2 +0 -0
  68. package/static/fonts/Share_Tech_Mono.woff2 +0 -0
  69. package/static/img/box.png +0 -0
  70. package/static/img/box_dark.png +0 -0
  71. package/static/img/chain.png +0 -0
  72. package/static/img/chain_dark.png +0 -0
  73. package/static/img/chart.png +0 -0
  74. package/static/img/chart_dark.png +0 -0
  75. package/static/img/circuits/MACI-Circuits.excalidraw +39652 -0
  76. package/static/img/circuits/calculateTotal.svg +21 -0
  77. package/static/img/circuits/ecdh.svg +21 -0
  78. package/static/img/circuits/messageToCommand.svg +21 -0
  79. package/static/img/circuits/messageValidator.svg +21 -0
  80. package/static/img/circuits/poseidonHasher13.svg +21 -0
  81. package/static/img/circuits/privToPubkey.svg +21 -0
  82. package/static/img/circuits/processMessages.svg +21 -0
  83. package/static/img/circuits/processMessagesInputHasher.svg +21 -0
  84. package/static/img/circuits/processMessages_2_0.svg +21 -0
  85. package/static/img/circuits/processOne.svg +21 -0
  86. package/static/img/circuits/processTopup.svg +21 -0
  87. package/static/img/circuits/processingAfterPollEnds.svg +21 -0
  88. package/static/img/circuits/quinBatchLeavesExists.svg +21 -0
  89. package/static/img/circuits/quinCheckRoot.svg +21 -0
  90. package/static/img/circuits/quinGeneratePathIndices.svg +21 -0
  91. package/static/img/circuits/quinSelector.svg +21 -0
  92. package/static/img/circuits/resultsCommitmentVerifier.svg +21 -0
  93. package/static/img/circuits/splicer.svg +21 -0
  94. package/static/img/circuits/tallyInputHasher.svg +21 -0
  95. package/static/img/circuits/tallyVotes.svg +21 -0
  96. package/static/img/circuits/unpackElement.svg +21 -0
  97. package/static/img/circuits/verifySignature.svg +21 -0
  98. package/static/img/completingAPoll.svg +4 -0
  99. package/static/img/contracts.svg +16 -0
  100. package/static/img/coordinatorComponents.svg +21 -0
  101. package/static/img/favicon.ico +0 -0
  102. package/static/img/generateProofs.svg +4 -0
  103. package/static/img/hero.svg +9 -0
  104. package/static/img/maci-card.png +0 -0
  105. package/static/img/maci-rpgf-design.jpg +0 -0
  106. package/static/img/messageProcessingLocal.svg +21 -0
  107. package/static/img/offlineProcessing.svg +21 -0
  108. package/static/img/pse-logo-round.png +0 -0
  109. package/static/img/relayer-diagram.png +0 -0
  110. package/static/img/tallyCommitments.svg +4 -0
  111. package/static/img/voteTallyingLocal.svg +21 -0
  112. package/tsconfig.json +34 -0
  113. package/versioned_docs/version-v0.x/circuits.md +22 -0
  114. package/versioned_docs/version-v0.x/contract.md +186 -0
  115. package/versioned_docs/version-v0.x/faq.md +67 -0
  116. package/versioned_docs/version-v0.x/introduction.md +119 -0
  117. package/versioned_docs/version-v0.x/quadratic-vote-tallying-circuit.md +138 -0
  118. package/versioned_docs/version-v0.x/state-root-transition-circuit.md +230 -0
  119. package/versioned_docs/version-v1.2/audit.md +160 -0
  120. package/versioned_docs/version-v1.2/ci-pipeline.md +38 -0
  121. package/versioned_docs/version-v1.2/circuits.md +508 -0
  122. package/versioned_docs/version-v1.2/cli.md +689 -0
  123. package/versioned_docs/version-v1.2/contracts.md +445 -0
  124. package/versioned_docs/version-v1.2/contributing/code-of-conduct.md +91 -0
  125. package/versioned_docs/version-v1.2/contributing/contributing.md +129 -0
  126. package/versioned_docs/version-v1.2/coordinator-processing.md +46 -0
  127. package/versioned_docs/version-v1.2/deployment.md +122 -0
  128. package/versioned_docs/version-v1.2/installation.md +175 -0
  129. package/versioned_docs/version-v1.2/integrating.md +200 -0
  130. package/versioned_docs/version-v1.2/introduction.md +94 -0
  131. package/versioned_docs/version-v1.2/key-change.md +182 -0
  132. package/versioned_docs/version-v1.2/overview.md +47 -0
  133. package/versioned_docs/version-v1.2/poll-types.md +68 -0
  134. package/versioned_docs/version-v1.2/primitives.md +216 -0
  135. package/versioned_docs/version-v1.2/project-ideas.md +14 -0
  136. package/versioned_docs/version-v1.2/purpose.md +62 -0
  137. package/versioned_docs/version-v1.2/solidity-docs/MACI.md +345 -0
  138. package/versioned_docs/version-v1.2/solidity-docs/MessageProcessor.md +266 -0
  139. package/versioned_docs/version-v1.2/solidity-docs/MessageProcessorFactory.md +26 -0
  140. package/versioned_docs/version-v1.2/solidity-docs/Poll.md +381 -0
  141. package/versioned_docs/version-v1.2/solidity-docs/PollFactory.md +50 -0
  142. package/versioned_docs/version-v1.2/solidity-docs/SignUpToken.md +27 -0
  143. package/versioned_docs/version-v1.2/solidity-docs/Subsidy.md +218 -0
  144. package/versioned_docs/version-v1.2/solidity-docs/SubsidyFactory.md +27 -0
  145. package/versioned_docs/version-v1.2/solidity-docs/Tally.md +311 -0
  146. package/versioned_docs/version-v1.2/solidity-docs/TallyFactory.md +27 -0
  147. package/versioned_docs/version-v1.2/solidity-docs/TallyNonQv.md +296 -0
  148. package/versioned_docs/version-v1.2/solidity-docs/TallyNonQvFactory.md +27 -0
  149. package/versioned_docs/version-v1.2/solidity-docs/TopupCredit.md +61 -0
  150. package/versioned_docs/version-v1.2/solidity-docs/VkRegistry.md +457 -0
  151. package/versioned_docs/version-v1.2/solidity-docs/benchmarks/HasherBenchmarks.md +44 -0
  152. package/versioned_docs/version-v1.2/solidity-docs/crypto/Hasher.md +125 -0
  153. package/versioned_docs/version-v1.2/solidity-docs/crypto/IVerifier.md +11 -0
  154. package/versioned_docs/version-v1.2/solidity-docs/crypto/MockVerifier.md +17 -0
  155. package/versioned_docs/version-v1.2/solidity-docs/crypto/Pairing.md +85 -0
  156. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT3.md +9 -0
  157. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT4.md +9 -0
  158. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT5.md +9 -0
  159. package/versioned_docs/version-v1.2/solidity-docs/crypto/PoseidonT6.md +9 -0
  160. package/versioned_docs/version-v1.2/solidity-docs/crypto/SnarkCommon.md +16 -0
  161. package/versioned_docs/version-v1.2/solidity-docs/crypto/SnarkConstants.md +40 -0
  162. package/versioned_docs/version-v1.2/solidity-docs/crypto/Verifier.md +61 -0
  163. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/EASGatekeeper.md +121 -0
  164. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/FreeForAllSignUpGatekeeper.md +40 -0
  165. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/SignUpGatekeeper.md +26 -0
  166. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/SignUpTokenGatekeeper.md +93 -0
  167. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperBase.md +79 -0
  168. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperMultiple.md +48 -0
  169. package/versioned_docs/version-v1.2/solidity-docs/gatekeepers/hatsGatekeepers/HatsGatekeeperSingle.md +42 -0
  170. package/versioned_docs/version-v1.2/solidity-docs/index.md +4 -0
  171. package/versioned_docs/version-v1.2/solidity-docs/initialVoiceCreditProxy/ConstantInitialVoiceCreditProxy.md +40 -0
  172. package/versioned_docs/version-v1.2/solidity-docs/initialVoiceCreditProxy/InitialVoiceCreditProxy.md +26 -0
  173. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IEAS.md +40 -0
  174. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IHats.md +103 -0
  175. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IMPFactory.md +26 -0
  176. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IMessageProcessor.md +31 -0
  177. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IPoll.md +217 -0
  178. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IPollFactory.md +29 -0
  179. package/versioned_docs/version-v1.2/solidity-docs/interfaces/ITallyFactory.md +28 -0
  180. package/versioned_docs/version-v1.2/solidity-docs/interfaces/ITallySubsidyFactory.md +27 -0
  181. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IVerifier.md +25 -0
  182. package/versioned_docs/version-v1.2/solidity-docs/interfaces/IVkRegistry.md +70 -0
  183. package/versioned_docs/version-v1.2/solidity-docs/mocks/MockHatsProtocol.md +133 -0
  184. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueue.md +464 -0
  185. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinary.md +60 -0
  186. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinary0.md +40 -0
  187. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueBinaryMaci.md +34 -0
  188. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinary.md +75 -0
  189. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinary0.md +40 -0
  190. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinaryBlankSl.md +40 -0
  191. package/versioned_docs/version-v1.2/solidity-docs/trees/AccQueueQuinaryMaci.md +40 -0
  192. package/versioned_docs/version-v1.2/solidity-docs/trees/EmptyBallotRoots.md +13 -0
  193. package/versioned_docs/version-v1.2/solidity-docs/utilities/CommonUtilities.md +25 -0
  194. package/versioned_docs/version-v1.2/solidity-docs/utilities/DomainObjs.md +40 -0
  195. package/versioned_docs/version-v1.2/solidity-docs/utilities/Params.md +36 -0
  196. package/versioned_docs/version-v1.2/solidity-docs/utilities/Utilities.md +79 -0
  197. package/versioned_docs/version-v1.2/spec.md +944 -0
  198. package/versioned_docs/version-v1.2/testing-in-detail.md +209 -0
  199. package/versioned_docs/version-v1.2/testing.md +472 -0
  200. package/versioned_docs/version-v1.2/topup.md +43 -0
  201. package/versioned_docs/version-v1.2/troubleshooting.md +51 -0
  202. package/versioned_docs/version-v1.2/trusted-setup.md +76 -0
  203. package/versioned_docs/version-v1.2/typedoc/cli/.nojekyll +1 -0
  204. package/versioned_docs/version-v1.2/typedoc/cli/index.md +15 -0
  205. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/AirdropArgs.md +89 -0
  206. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployArgs.md +154 -0
  207. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployPollArgs.md +154 -0
  208. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/DeployedContracts.md +130 -0
  209. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/GenLocalStateArgs.md +168 -0
  210. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/GenProofsArgs.md +388 -0
  211. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/IGenKeypairArgs.md +37 -0
  212. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/IRegisteredUserArgs.md +63 -0
  213. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/MergeMessagesArgs.md +76 -0
  214. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/MergeSignupsArgs.md +76 -0
  215. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/PollContracts.md +53 -0
  216. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/ProveOnChainArgs.md +128 -0
  217. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/PublishArgs.md +154 -0
  218. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/SignupArgs.md +89 -0
  219. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/SubsidyData.md +73 -0
  220. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/TallyData.md +166 -0
  221. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/TopupArgs.md +89 -0
  222. package/versioned_docs/version-v1.2/typedoc/cli/interfaces/VerifyArgs.md +128 -0
  223. package/versioned_docs/version-v1.2/typedoc/cli/modules.md +556 -0
  224. package/versioned_docs/version-v1.2/typedoc/core/.nojekyll +1 -0
  225. package/versioned_docs/version-v1.2/typedoc/core/classes/MaciState.md +295 -0
  226. package/versioned_docs/version-v1.2/typedoc/core/classes/Poll.md +1098 -0
  227. package/versioned_docs/version-v1.2/typedoc/core/index.md +110 -0
  228. package/versioned_docs/version-v1.2/typedoc/core/interfaces/BatchSizes.md +50 -0
  229. package/versioned_docs/version-v1.2/typedoc/core/interfaces/IJsonMaciState.md +77 -0
  230. package/versioned_docs/version-v1.2/typedoc/core/interfaces/IProcessMessagesCircuitInputs.md +242 -0
  231. package/versioned_docs/version-v1.2/typedoc/core/interfaces/ISubsidyCircuitInputs.md +198 -0
  232. package/versioned_docs/version-v1.2/typedoc/core/interfaces/ITallyCircuitInputs.md +231 -0
  233. package/versioned_docs/version-v1.2/typedoc/core/interfaces/MaxValues.md +37 -0
  234. package/versioned_docs/version-v1.2/typedoc/core/interfaces/TreeDepths.md +63 -0
  235. package/versioned_docs/version-v1.2/typedoc/core/modules.md +289 -0
  236. package/versioned_docs/version-v1.2/typedoc/crypto/.nojekyll +1 -0
  237. package/versioned_docs/version-v1.2/typedoc/crypto/classes/AccQueue.md +770 -0
  238. package/versioned_docs/version-v1.2/typedoc/crypto/classes/G1Point.md +115 -0
  239. package/versioned_docs/version-v1.2/typedoc/crypto/classes/G2Point.md +140 -0
  240. package/versioned_docs/version-v1.2/typedoc/crypto/classes/IncrementalQuinTree.md +470 -0
  241. package/versioned_docs/version-v1.2/typedoc/crypto/index.md +44 -0
  242. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Keypair.md +33 -0
  243. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/PoseidonFuncs.md +115 -0
  244. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Queue.md +33 -0
  245. package/versioned_docs/version-v1.2/typedoc/crypto/interfaces/Signature.md +37 -0
  246. package/versioned_docs/version-v1.2/typedoc/crypto/modules.md +913 -0
  247. package/versioned_docs/version-v1.2/typedoc/domainobjs/.nojekyll +1 -0
  248. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Ballot.md +274 -0
  249. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Keypair.md +181 -0
  250. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/Message.md +244 -0
  251. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PCommand.md +409 -0
  252. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PrivKey.md +206 -0
  253. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/PubKey.md +289 -0
  254. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/StateLeaf.md +340 -0
  255. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/TCommand.md +200 -0
  256. package/versioned_docs/version-v1.2/typedoc/domainobjs/classes/VerifyingKey.md +240 -0
  257. package/versioned_docs/version-v1.2/typedoc/domainobjs/index.md +81 -0
  258. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/ICommand.md +104 -0
  259. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IG1ContractParams.md +31 -0
  260. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IG2ContractParams.md +31 -0
  261. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonBallot.md +42 -0
  262. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonCommand.md +32 -0
  263. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonKeyPair.md +31 -0
  264. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonPCommand.md +111 -0
  265. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonStateLeaf.md +42 -0
  266. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IJsonTCommand.md +67 -0
  267. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IMessageContractParams.md +31 -0
  268. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IStateLeaf.md +39 -0
  269. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IStateLeafContractParams.md +42 -0
  270. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IVkContractParams.md +64 -0
  271. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/IVkObjectParams.md +108 -0
  272. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/Proof.md +46 -0
  273. package/versioned_docs/version-v1.2/typedoc/domainobjs/interfaces/VoteOptionTreeLeaf.md +24 -0
  274. package/versioned_docs/version-v1.2/typedoc/domainobjs/modules.md +110 -0
  275. package/versioned_docs/version-v1.2/typedoc/index.md +4 -0
  276. package/versioned_docs/version-v1.2/versioning.md +94 -0
  277. package/versioned_docs/version-v1.2/workflow.md +142 -0
  278. package/versioned_docs/version-v2.x/case-studies.md +35 -0
  279. package/versioned_docs/version-v2.x/contributing/_category_.json +4 -0
  280. package/versioned_docs/version-v2.x/contributing/code-of-conduct.md +92 -0
  281. package/versioned_docs/version-v2.x/contributing/contributing.md +149 -0
  282. package/versioned_docs/version-v2.x/contributing/project-ideas.md +78 -0
  283. package/versioned_docs/version-v2.x/core-concepts/_category_.json +4 -0
  284. package/versioned_docs/version-v2.x/core-concepts/ballot.md +19 -0
  285. package/versioned_docs/version-v2.x/core-concepts/coordinator-processing.md +46 -0
  286. package/versioned_docs/version-v2.x/core-concepts/hashing-and-encryption.md +45 -0
  287. package/versioned_docs/version-v2.x/core-concepts/key-change.md +179 -0
  288. package/versioned_docs/version-v2.x/core-concepts/maci-keys.md +84 -0
  289. package/versioned_docs/version-v2.x/core-concepts/maci-messages.md +44 -0
  290. package/versioned_docs/version-v2.x/core-concepts/merkle-trees.md +23 -0
  291. package/versioned_docs/version-v2.x/core-concepts/poll-types.md +106 -0
  292. package/versioned_docs/version-v2.x/core-concepts/spec.md +883 -0
  293. package/versioned_docs/version-v2.x/core-concepts/state-leaf.md +42 -0
  294. package/versioned_docs/version-v2.x/core-concepts/workflow.md +142 -0
  295. package/versioned_docs/version-v2.x/getting-started.md +313 -0
  296. package/versioned_docs/version-v2.x/guides/_category_.json +4 -0
  297. package/versioned_docs/version-v2.x/guides/compile-circuits.md +163 -0
  298. package/versioned_docs/version-v2.x/guides/frontend.md +99 -0
  299. package/versioned_docs/version-v2.x/guides/integrating.md +73 -0
  300. package/versioned_docs/version-v2.x/guides/maciWrapper.md +173 -0
  301. package/versioned_docs/version-v2.x/guides/subgraph.md +79 -0
  302. package/versioned_docs/version-v2.x/guides/testing/_category_.json +4 -0
  303. package/versioned_docs/version-v2.x/guides/testing/testing-in-detail.md +203 -0
  304. package/versioned_docs/version-v2.x/guides/testing/testing.md +163 -0
  305. package/versioned_docs/version-v2.x/guides/troubleshooting.md +161 -0
  306. package/versioned_docs/version-v2.x/introduction.md +146 -0
  307. package/versioned_docs/version-v2.x/processes/_category_.json +4 -0
  308. package/versioned_docs/version-v2.x/processes/ci-pipeline.md +38 -0
  309. package/versioned_docs/version-v2.x/processes/versioning.md +94 -0
  310. package/versioned_docs/version-v2.x/resources.md +33 -0
  311. package/versioned_docs/version-v2.x/security/_category_.json +4 -0
  312. package/versioned_docs/version-v2.x/security/audit.md +167 -0
  313. package/versioned_docs/version-v2.x/security/trusted-setup.md +166 -0
  314. package/versioned_docs/version-v2.x/supported-networks/_category_.json +4 -0
  315. package/versioned_docs/version-v2.x/supported-networks/deployed-contracts.md +1108 -0
  316. package/versioned_docs/version-v2.x/supported-networks/supported-networks.md +47 -0
  317. package/versioned_docs/version-v2.x/technical-references/_category_.json +4 -0
  318. package/versioned_docs/version-v2.x/technical-references/smart-contracts/AccQueue.md +21 -0
  319. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Gatekeepers.md +40 -0
  320. package/versioned_docs/version-v2.x/technical-references/smart-contracts/MACI.md +152 -0
  321. package/versioned_docs/version-v2.x/technical-references/smart-contracts/MessageProcessor.md +13 -0
  322. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Params.md +32 -0
  323. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Poll.md +104 -0
  324. package/versioned_docs/version-v2.x/technical-references/smart-contracts/PollFactory.md +43 -0
  325. package/versioned_docs/version-v2.x/technical-references/smart-contracts/Tally.md +45 -0
  326. package/versioned_docs/version-v2.x/technical-references/smart-contracts/VkRegistry.md +57 -0
  327. package/versioned_docs/version-v2.x/technical-references/smart-contracts/VoiceCreditProxy.md +18 -0
  328. package/versioned_docs/version-v2.x/technical-references/smart-contracts/_category_.json +8 -0
  329. package/versioned_docs/version-v2.x/technical-references/technical-references.md +47 -0
  330. package/versioned_docs/version-v2.x/technical-references/typescript-code/_category_.json +4 -0
  331. package/versioned_docs/version-v2.x/technical-references/typescript-code/cli.md +699 -0
  332. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/_category_.json +4 -0
  333. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/processMessages.md +107 -0
  334. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/setup.md +101 -0
  335. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/tallyVotes.md +79 -0
  336. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/utilities.md +131 -0
  337. package/versioned_docs/version-v2.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +37 -0
  338. package/versioned_docs/version-v2.x/use-cases/_category_.json +4 -0
  339. package/versioned_docs/version-v2.x/use-cases/governance.md +18 -0
  340. package/versioned_docs/version-v2.x/use-cases/polling.md +10 -0
  341. package/versioned_docs/version-v2.x/use-cases/public-goods.md +65 -0
  342. package/versioned_docs/version-v3.x/case-studies.md +35 -0
  343. package/versioned_docs/version-v3.x/contributing/_category_.json +4 -0
  344. package/versioned_docs/version-v3.x/contributing/code-of-conduct.md +92 -0
  345. package/versioned_docs/version-v3.x/contributing/contributing.md +149 -0
  346. package/versioned_docs/version-v3.x/contributing/project-ideas.md +78 -0
  347. package/versioned_docs/version-v3.x/core-concepts/_category_.json +4 -0
  348. package/versioned_docs/version-v3.x/core-concepts/ballot.md +19 -0
  349. package/versioned_docs/version-v3.x/core-concepts/coordinator-processing.md +46 -0
  350. package/versioned_docs/version-v3.x/core-concepts/coordinator-service.md +16 -0
  351. package/versioned_docs/version-v3.x/core-concepts/hashing-and-encryption.md +45 -0
  352. package/versioned_docs/version-v3.x/core-concepts/key-change.md +179 -0
  353. package/versioned_docs/version-v3.x/core-concepts/maci-keys.md +84 -0
  354. package/versioned_docs/version-v3.x/core-concepts/maci-messages.md +44 -0
  355. package/versioned_docs/version-v3.x/core-concepts/merkle-trees.md +16 -0
  356. package/versioned_docs/version-v3.x/core-concepts/offchain-voting.md +14 -0
  357. package/versioned_docs/version-v3.x/core-concepts/poll-types.md +58 -0
  358. package/versioned_docs/version-v3.x/core-concepts/polls.md +81 -0
  359. package/versioned_docs/version-v3.x/core-concepts/spec.md +883 -0
  360. package/versioned_docs/version-v3.x/core-concepts/state-leaf.md +42 -0
  361. package/versioned_docs/version-v3.x/core-concepts/workflow.md +149 -0
  362. package/versioned_docs/version-v3.x/guides/_category_.json +4 -0
  363. package/versioned_docs/version-v3.x/guides/compile-circuits.md +175 -0
  364. package/versioned_docs/version-v3.x/guides/integrating.md +137 -0
  365. package/versioned_docs/version-v3.x/guides/subgraph.md +79 -0
  366. package/versioned_docs/version-v3.x/guides/testing/_category_.json +4 -0
  367. package/versioned_docs/version-v3.x/guides/testing/testing-in-detail.md +191 -0
  368. package/versioned_docs/version-v3.x/guides/testing/testing-introduction.md +158 -0
  369. package/versioned_docs/version-v3.x/guides/troubleshooting.md +161 -0
  370. package/versioned_docs/version-v3.x/introduction.md +153 -0
  371. package/versioned_docs/version-v3.x/processes/_category_.json +4 -0
  372. package/versioned_docs/version-v3.x/processes/ci-pipeline.md +38 -0
  373. package/versioned_docs/version-v3.x/processes/versioning.md +94 -0
  374. package/versioned_docs/version-v3.x/quick-start.md +318 -0
  375. package/versioned_docs/version-v3.x/resources.md +33 -0
  376. package/versioned_docs/version-v3.x/security/_category_.json +4 -0
  377. package/versioned_docs/version-v3.x/security/audit.md +167 -0
  378. package/versioned_docs/version-v3.x/security/trusted-setup.md +172 -0
  379. package/versioned_docs/version-v3.x/supported-networks/_category_.json +4 -0
  380. package/versioned_docs/version-v3.x/supported-networks/deployed-contracts.md +112 -0
  381. package/versioned_docs/version-v3.x/supported-networks/supported-networks.md +53 -0
  382. package/versioned_docs/version-v3.x/technical-references/_category_.json +4 -0
  383. package/versioned_docs/version-v3.x/technical-references/coordinator-service/_category_.json +8 -0
  384. package/versioned_docs/version-v3.x/technical-references/coordinator-service/index.md +10 -0
  385. package/versioned_docs/version-v3.x/technical-references/coordinator-service/installation.md +43 -0
  386. package/versioned_docs/version-v3.x/technical-references/offchain-relayer/_category_.json +8 -0
  387. package/versioned_docs/version-v3.x/technical-references/offchain-relayer/index.md +51 -0
  388. package/versioned_docs/version-v3.x/technical-references/offchain-relayer/installation.md +109 -0
  389. package/versioned_docs/version-v3.x/technical-references/smart-contracts/MACI.md +160 -0
  390. package/versioned_docs/version-v3.x/technical-references/smart-contracts/MessageProcessor.md +13 -0
  391. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Params.md +33 -0
  392. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Policies.md +39 -0
  393. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Poll.md +170 -0
  394. package/versioned_docs/version-v3.x/technical-references/smart-contracts/PollFactory.md +33 -0
  395. package/versioned_docs/version-v3.x/technical-references/smart-contracts/Tally.md +43 -0
  396. package/versioned_docs/version-v3.x/technical-references/smart-contracts/VkRegistry.md +62 -0
  397. package/versioned_docs/version-v3.x/technical-references/smart-contracts/VoiceCreditProxy.md +18 -0
  398. package/versioned_docs/version-v3.x/technical-references/smart-contracts/_category_.json +8 -0
  399. package/versioned_docs/version-v3.x/technical-references/technical-references.md +48 -0
  400. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/_category_.json +4 -0
  401. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/joinPoll.md +53 -0
  402. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/processMessages.md +106 -0
  403. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/setup.md +96 -0
  404. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/tallyVotes.md +79 -0
  405. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/utilities.md +131 -0
  406. package/versioned_docs/version-v3.x/technical-references/zk-snark-circuits/zk-snark-circuits.md +42 -0
  407. package/versioned_docs/version-v3.x/use-cases/_category_.json +4 -0
  408. package/versioned_docs/version-v3.x/use-cases/governance.md +18 -0
  409. package/versioned_docs/version-v3.x/use-cases/polling.md +10 -0
  410. package/versioned_docs/version-v3.x/use-cases/public-goods.md +65 -0
  411. package/versioned_sidebars/version-v0.x-sidebars.json +8 -0
  412. package/versioned_sidebars/version-v1.2-sidebars.json +8 -0
  413. package/versioned_sidebars/version-v2.x-sidebars.json +8 -0
  414. package/versioned_sidebars/version-v3.x-sidebars.json +8 -0
  415. package/versions.json +1 -0
@@ -0,0 +1,21 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5713.381183810783 4808.460402630406" width="17140.14355143235" height="14425.381207891218">
2
+ <!-- svg-source:excalidraw -->
3
+
4
+ <defs>
5
+ <style class="style-fonts">
6
+ @font-face {
7
+ font-family: "Virgil";
8
+ src: url("https://excalidraw.com/Virgil.woff2");
9
+ }
10
+ @font-face {
11
+ font-family: "Cascadia";
12
+ src: url("https://excalidraw.com/Cascadia.woff2");
13
+ }
14
+ @font-face {
15
+ font-family: "Assistant";
16
+ src: url("https://excalidraw.com/Assistant-Regular.woff2");
17
+ }
18
+ </style>
19
+
20
+ </defs>
21
+ <rect x="0" y="0" width="5713.381183810783" height="4808.460402630406" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(2210.921998001073 498.8620644468574) rotate(0 343.86112431279855 105.04596582800605)"><path d="M32 0 C193.54 3.99, 355.13 2.88, 655.72 0 C679.16 1, 685.8 13.91, 687.72 32 C682.39 66.89, 684.72 104.77, 687.72 178.09 C688 200.73, 678.38 210.08, 655.72 210.09 C504.72 213.26, 355.41 213.59, 32 210.09 C8.31 211.18, -0.59 197.46, 0 178.09 C-4.71 144.1, -2.85 113.57, 0 32 C1.08 7.74, 11.71 0.84, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C184.98 0, 337.94 0.36, 655.72 0 M32 0 C237.87 -0.28, 444.01 -0.58, 655.72 0 M655.72 0 C677.74 -0.91, 689.28 10.06, 687.72 32 M655.72 0 C676.45 1.65, 685.46 10.83, 687.72 32 M687.72 32 C685.7 70.78, 685.78 106.28, 687.72 178.09 M687.72 32 C689.11 83.94, 689.06 137.83, 687.72 178.09 M687.72 178.09 C688.35 201.34, 678.35 210.14, 655.72 210.09 M687.72 178.09 C689.99 198.81, 675.18 208.63, 655.72 210.09 M655.72 210.09 C437.74 210.21, 219.46 211.49, 32 210.09 M655.72 210.09 C431.61 210.91, 207.81 211.1, 32 210.09 M32 210.09 C11.12 209.5, -1.95 199.5, 0 178.09 M32 210.09 C9.89 207.91, 1.83 197.38, 0 178.09 M0 178.09 C0.92 121.72, -0.68 67.39, 0 32 M0 178.09 C1.85 136.63, 0.95 94.74, 0 32 M0 32 C-1.18 12.53, 11.37 1.28, 32 0 M0 32 C-0.97 8.59, 9.03 2.27, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2323.266459716215 558.9080302748634) rotate(0 231.51666259765625 45)"><text x="231.51666259765625" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Local message processing </text><text x="231.51666259765625" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">(TS core package)</text></g><g stroke-linecap="round" transform="translate(2371.0382743670184 172.64060905648148) rotate(0 153.53461542385952 80.06324816817687)"><path d="M82.12 8.88 C95.74 3.92, 115.66 1.86, 133.18 0.76 C150.7 -0.35, 170.08 0.41, 187.24 2.28 C204.4 4.15, 221.4 7, 236.12 11.98 C250.85 16.96, 265.06 24.85, 275.59 32.16 C286.13 39.46, 294.14 47.23, 299.34 55.8 C304.54 64.37, 307.56 74.39, 306.78 83.6 C306.01 92.81, 301.4 102.72, 294.68 111.06 C287.97 119.4, 278.37 126.84, 266.49 133.65 C254.62 140.47, 238.96 147.77, 223.43 151.96 C207.91 156.14, 190.7 157.75, 173.34 158.76 C155.98 159.78, 136.5 159.86, 119.29 158.05 C102.09 156.23, 84.85 152.69, 70.11 147.86 C55.37 143.02, 41.31 136.38, 30.84 129.05 C20.38 121.71, 12.32 112.63, 7.31 103.86 C2.29 95.09, 0.17 85.55, 0.74 76.42 C1.31 67.3, 4.13 57.36, 10.73 49.11 C17.33 40.86, 26.85 33.81, 40.33 26.92 C53.81 20.03, 81.76 11.07, 91.61 7.78 C101.46 4.48, 98.47 6.03, 99.42 7.15 M124.43 1.55 C140.19 -1.26, 159.81 -1.33, 177.17 0.26 C194.52 1.86, 213.15 6.63, 228.55 11.11 C243.95 15.59, 258.08 20.21, 269.55 27.15 C281.02 34.08, 290.93 44.15, 297.36 52.73 C303.78 61.31, 307.93 69.87, 308.09 78.63 C308.26 87.39, 304.29 96.71, 298.34 105.28 C292.39 113.85, 283.57 122.68, 272.41 130.05 C261.24 137.42, 246.3 144.74, 231.34 149.5 C216.38 154.26, 199.73 157.03, 182.66 158.6 C165.58 160.17, 146 160.59, 128.9 158.91 C111.79 157.24, 95.04 152.86, 80 148.58 C64.97 144.29, 50.39 139.69, 38.7 133.19 C27 126.69, 16.13 118.04, 9.85 109.57 C3.56 101.1, 1.29 91.69, 1.01 82.35 C0.72 73.02, 2.54 62.27, 8.14 53.54 C13.73 44.8, 23.55 36.75, 34.59 29.95 C45.62 23.15, 59.19 17.41, 74.34 12.73 C89.5 8.04, 117.19 3.51, 125.53 1.83 C133.87 0.15, 123.97 1.63, 124.38 2.65" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M153.07 -0.94 C169.64 -2.07, 188.6 1.62, 204.9 4.96 C221.19 8.3, 237.39 13.39, 250.83 19.1 C264.28 24.81, 276.52 31.65, 285.59 39.22 C294.65 46.8, 302 55.61, 305.24 64.55 C308.48 73.5, 308.09 83.7, 305.01 92.91 C301.94 102.12, 295.57 111.69, 286.79 119.81 C278.02 127.93, 265.76 135.8, 252.37 141.62 C238.98 147.44, 222.61 151.56, 206.44 154.71 C190.27 157.85, 172.81 160.21, 155.36 160.49 C137.91 160.76, 118.49 159.35, 101.74 156.37 C85 153.39, 68.29 148.51, 54.9 142.61 C41.5 136.7, 29.94 128.85, 21.37 120.96 C12.81 113.06, 6.71 104.1, 3.5 95.24 C0.3 86.37, -0.55 77.02, 2.15 67.77 C4.85 58.53, 11.18 47.79, 19.7 39.76 C28.22 31.74, 39.84 25.36, 53.28 19.63 C66.71 13.9, 80.96 8.75, 100.3 5.39 C119.65 2.04, 155.21 -0.28, 169.35 -0.49 C183.5 -0.71, 185.32 2.69, 185.17 4.11 M178.73 1.74 C195.74 1.91, 214.89 5.64, 229.96 10.08 C245.04 14.51, 258 21.54, 269.18 28.34 C280.36 35.14, 290.52 42.55, 297.04 50.88 C303.55 59.21, 307.91 68.82, 308.26 78.32 C308.62 87.82, 305.23 98.83, 299.19 107.86 C293.14 116.88, 283.57 125.58, 271.98 132.48 C260.4 139.38, 245.02 144.91, 229.68 149.27 C214.33 153.62, 197.11 156.76, 179.89 158.6 C162.67 160.45, 143.28 161.81, 126.36 160.33 C109.43 158.85, 93.41 154.55, 78.34 149.74 C63.28 144.92, 47.59 138.21, 35.97 131.46 C24.36 124.71, 14.55 117.56, 8.64 109.22 C2.73 100.89, 0.58 91.02, 0.53 81.43 C0.49 71.84, 2.73 60.22, 8.36 51.71 C14 43.2, 23.16 37.01, 34.35 30.39 C45.54 23.77, 60.37 16.93, 75.49 11.97 C90.61 7.02, 107.58 2.66, 125.05 0.65 C142.52 -1.35, 171.37 -0.55, 180.3 -0.05 C189.23 0.44, 179.15 2.22, 178.64 3.6" stroke="#e03131" stroke-width="2" fill="none"></path></g><g transform="translate(2422.774192304849 230.090591521119) rotate(0 101.73332977294922 22.5)"><text x="101.73332977294922" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Coordinator</text></g><g stroke-linecap="round"><g transform="translate(2526.9643628661083 374.82228361750276) rotate(0 -0.5651125254952376 47.81413154899292)"><path d="M-0.96 0.9 C-1.33 16.79, -2.3 79.93, -2.26 95.62 M0.74 0.33 C0.72 16.4, 0.19 81.19, -0.15 97.16" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2526.9643628661083 374.82228361750276) rotate(0 -0.5651125254952376 47.81413154899292)"><path d="M-10.03 68.83 C-5.51 75.47, -4.07 86.5, -0.15 97.16 M-10.03 68.83 C-7.55 76.78, -5.76 83.34, -0.15 97.16" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2526.9643628661083 374.82228361750276) rotate(0 -0.5651125254952376 47.81413154899292)"><path d="M10.49 69.11 C8.89 75.5, 4.2 86.45, -0.15 97.16 M10.49 69.11 C7.74 76.92, 4.32 83.41, -0.15 97.16" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(2591.740348265217 883.2760313344934) rotate(0 155.8187788098163 73.29351800466611)"><path d="M32 0 C127.78 1.2, 223.34 3.11, 279.64 0 C299.43 0.28, 312.95 11.99, 311.64 32 C313.58 54.37, 309.87 81, 311.64 114.59 C311.58 133.56, 302.06 146, 279.64 146.59 C218.49 147.67, 155.39 149.2, 32 146.59 C7.67 147.67, -2.93 136.97, 0 114.59 C0.01 84.28, -0.6 60.86, 0 32 C3.58 13.39, 13.56 -3.09, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C86.53 2.48, 140.34 3.2, 279.64 0 M32 0 C98 -1.4, 165.26 -1.71, 279.64 0 M279.64 0 C301.49 -1.57, 312.9 9.18, 311.64 32 M279.64 0 C300.12 1.42, 312.47 9.69, 311.64 32 M311.64 32 C311.3 64.49, 312.82 97.01, 311.64 114.59 M311.64 32 C311.64 56.35, 312.95 82.39, 311.64 114.59 M311.64 114.59 C312.32 135.66, 299.12 145.35, 279.64 146.59 M311.64 114.59 C313.21 137.28, 300.03 147.37, 279.64 146.59 M279.64 146.59 C221.46 146.02, 161.49 144.04, 32 146.59 M279.64 146.59 C205.08 143.93, 129.82 145.1, 32 146.59 M32 146.59 C11.11 148.28, -1.74 136.02, 0 114.59 M32 146.59 C9.01 146.23, -1.98 137.99, 0 114.59 M0 114.59 C-0.57 83.7, 1.79 55.88, 0 32 M0 114.59 C-0.36 85.52, -0.05 55.17, 0 32 M0 32 C-1.4 9.82, 11.84 -1.6, 32 0 M0 32 C-0.41 12.01, 11.31 -1.23, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2666.1424629514986 911.5695493391595) rotate(0 81.41666412353516 45)"><text x="81.41666412353516" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">process </text><text x="81.41666412353516" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messages</text></g><g stroke-linecap="round"><g transform="translate(2534.4351612336 753.7174664853774) rotate(0 0.2043994081393521 39.939644350425624)"><path d="M0.93 -0.36 C0.88 13.19, 0.38 67.35, 0.1 80.74 M-0.04 -1.6 C-0.31 11.67, -1.27 65.25, -1.02 79.07" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2534.4351612336 753.7174664853774) rotate(0 0.2043994081393521 39.939644350425624)"><path d="M-11.21 50.86 C-8.54 59.68, -3.09 67.67, -1.02 79.07 M-11.21 50.86 C-7.94 58.77, -4.44 67.47, -1.02 79.07" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2534.4351612336 753.7174664853774) rotate(0 0.2043994081393521 39.939644350425624)"><path d="M9.31 50.9 C5.12 59.87, 3.71 67.85, -1.02 79.07 M9.31 50.9 C6.28 58.74, 3.48 67.42, -1.02 79.07" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(2645.935038373605 778.0818759355861) rotate(0 50.66666793823242 22.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Goals</text></g><g stroke-linecap="round" transform="translate(2217.2100347683822 882.1099544769932) rotate(0 147.39241320927238 71.10133435237182)"><path d="M32 0 C103.03 -3.11, 174.64 1.1, 262.78 0 C281.75 -0.88, 294.3 10.61, 294.78 32 C293.25 47.12, 298.27 68.26, 294.78 110.2 C292.31 128.3, 283.51 139.2, 262.78 142.2 C187.33 142.55, 112.26 142.95, 32 142.2 C7.07 141.27, -0.3 135.11, 0 110.2 C0.55 81.43, -0.4 50.1, 0 32 C-0.42 8.05, 9.96 0.3, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C95.32 1.19, 157.88 2.37, 262.78 0 M32 0 C82.85 1.98, 134.65 1.1, 262.78 0 M262.78 0 C285.83 -1.76, 296.4 11.05, 294.78 32 M262.78 0 C284.84 2.2, 296.27 10.73, 294.78 32 M294.78 32 C293.3 64.17, 295.42 95.05, 294.78 110.2 M294.78 32 C294.74 55.03, 293.65 77.22, 294.78 110.2 M294.78 110.2 C293.54 131.41, 283.19 143, 262.78 142.2 M294.78 110.2 C295.31 130.85, 281.87 142.29, 262.78 142.2 M262.78 142.2 C199.79 145.02, 140.72 144.14, 32 142.2 M262.78 142.2 C173.46 142.16, 84.62 143.06, 32 142.2 M32 142.2 C11.86 142.38, -0.6 131.03, 0 110.2 M32 142.2 C9.3 144.34, 0.81 133.01, 0 110.2 M0 110.2 C2.68 89.24, 2.09 68.47, 0 32 M0 110.2 C-0.64 90.63, -0.18 69.35, 0 32 M0 32 C1.8 9.75, 8.75 -0.55, 32 0 M0 32 C-1.8 9.22, 10.36 -0.98, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2266.3524479776547 930.711288829365) rotate(0 98.25 22.5)"><text x="98.25" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">tally votes</text></g><g stroke-linecap="round" transform="translate(2406.929359403205 1175.550747373251) rotate(0 155.22602052621244 72.5)"><path d="M32 0 C89.35 -3.59, 150.19 -2.91, 278.45 0 C297.43 1.09, 309.86 8.7, 310.45 32 C309.22 45.82, 311.08 63.11, 310.45 113 C311.53 131.41, 300.83 145.84, 278.45 145 C206.99 143.91, 141.2 147.62, 32 145 C13.39 147.89, -3.09 136.02, 0 113 C-0.71 84.74, -1 62.02, 0 32 C-2.09 8.83, 11.03 2.28, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C93.99 0.51, 157.34 -1.14, 278.45 0 M32 0 C121.81 0.14, 210.86 1.02, 278.45 0 M278.45 0 C300.41 1.91, 311.74 10.72, 310.45 32 M278.45 0 C302.06 -0.62, 308.57 9.2, 310.45 32 M310.45 32 C310.53 58.44, 309.56 89.96, 310.45 113 M310.45 32 C309.5 61.01, 309.65 90.54, 310.45 113 M310.45 113 C310.91 133.74, 297.83 145.07, 278.45 145 M310.45 113 C309.68 132.15, 301.62 142.95, 278.45 145 M278.45 145 C187.68 144.02, 94.21 144.26, 32 145 M278.45 145 C208.85 146.89, 138.01 146.62, 32 145 M32 145 C9.48 146.86, 0.71 135.61, 0 113 M32 145 C9.7 142.92, -1.64 136.6, 0 113 M0 113 C-1.41 93.12, -2.16 70.53, 0 32 M0 113 C0.68 83.52, -1.18 54.67, 0 32 M0 32 C-1.56 9.41, 10.4 -0.85, 32 0 M0 32 C0.18 11.5, 11.51 -0.01, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2415.922042527074 1180.550747373251) rotate(0 146.23333740234375 67.5)"><text x="146.23333740234375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">generate inputs </text><text x="146.23333740234375" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">for zk-SNARK </text><text x="146.23333740234375" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">circuits</text></g><g stroke-linecap="round"><g transform="translate(2979.167393463154 614.5010296016699) rotate(0 100.63604859740008 -0.4752286239240675)"><path d="M-0.45 0.74 C33.05 0.64, 167.91 -1, 201.71 -1.46 M1.52 0.08 C34.83 0.22, 167.56 0.03, 200.99 -0.19" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2979.167393463154 614.5010296016699) rotate(0 100.63604859740008 -0.4752286239240675)"><path d="M172.83 10.17 C184.37 7.23, 192.51 4.46, 200.99 -0.19 M172.83 10.17 C179.03 8.88, 185.32 5.75, 200.99 -0.19" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2979.167393463154 614.5010296016699) rotate(0 100.63604859740008 -0.4752286239240675)"><path d="M172.76 -10.35 C184.17 -5.83, 192.34 -1.15, 200.99 -0.19 M172.76 -10.35 C179.13 -7.3, 185.45 -6.07, 200.99 -0.19" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(3007.31319196394 526.3129049599538) rotate(0 68.01667022705078 22.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Process</text></g><g stroke-linecap="round" transform="translate(3235.5488232721973 613.9392429046279) rotate(0 272.14759196711384 197.76647841846895)"><path d="M341.25 49.5 C382.25 86.58, 429.55 113.73, 476.05 148.5 C541.06 197.39, 541.3 199.08, 476.05 247.5 C446.28 271.75, 417.27 287.57, 341.25 346.03 C272.07 395.23, 276.58 398.25, 204.75 346.03 C154.96 310.44, 101.1 271.83, 68.25 247.5 C-2.62 197.3, 0.3 195.91, 68.25 148.5 C101.64 120.9, 136.81 100.32, 204.75 49.5 C275.49 -0.71, 272.51 -2.61, 341.25 49.5" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M341.25 49.5 C384.38 83.24, 431.84 115.53, 476.05 148.5 M341.25 49.5 C396.2 88.36, 447.72 127.16, 476.05 148.5 M476.05 148.5 C545.28 198.84, 544.98 197.74, 476.05 247.5 M476.05 148.5 C542.16 196.58, 545.86 199.35, 476.05 247.5 M476.05 247.5 C441.35 271.24, 407.36 298.14, 341.25 346.03 M476.05 247.5 C438.32 273.23, 403.03 299.91, 341.25 346.03 M341.25 346.03 C274.48 396.59, 273.44 397.22, 204.75 346.03 M341.25 346.03 C271 395.64, 271.35 395.17, 204.75 346.03 M204.75 346.03 C174.81 325.15, 144.91 303.47, 68.25 247.5 M204.75 346.03 C150.34 307.28, 96.41 270.45, 68.25 247.5 M68.25 247.5 C-0.8 199.39, -1.4 197.16, 68.25 148.5 M68.25 247.5 C1.35 196.16, -0.41 199.34, 68.25 148.5 M68.25 148.5 C112.61 112.9, 157.72 80.8, 204.75 49.5 M68.25 148.5 C100.85 125.96, 133.53 102.1, 204.75 49.5 M204.75 49.5 C271.81 0.36, 274.57 -1.31, 341.25 49.5 M204.75 49.5 C272.44 -0.31, 272.96 -1.51, 341.25 49.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3395.0059505545823 744.3224821138624) rotate(0 112.61666870117188 67.5)"><text x="112.61666870117188" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. generate </text><text x="112.61666870117188" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Maci state </text><text x="112.61666870117188" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">locally </text></g><g stroke-linecap="round" transform="translate(3286.2834364218834 48.197961640218864) rotate(0 217.3787705561797 235)"><path d="M272.5 59 C310.51 105.16, 352.25 152.3, 380.26 177 C431.83 237.05, 435.6 235.21, 380.26 295 C340.44 334.42, 306.25 379.1, 272.5 411 C220.89 466.91, 219.68 470.6, 163.5 411 C126.77 372.93, 94.8 334.41, 54.5 295 C-1.83 236.37, 2.28 235.57, 54.5 177 C85.02 144.01, 110.51 111.28, 163.5 59 C217.67 -1.43, 215.96 1.62, 272.5 59" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M272.5 59 C315.66 104.87, 354.82 150.48, 380.26 177 M272.5 59 C301.45 92.33, 330.73 124, 380.26 177 M380.26 177 C432.9 234.76, 436.12 237.18, 380.26 295 M380.26 177 C433.81 236.78, 433.32 235.85, 380.26 295 M380.26 295 C352.81 322.7, 326.16 353.39, 272.5 411 M380.26 295 C359.8 318.38, 337.16 342.51, 272.5 411 M272.5 411 C216.26 470.1, 216.56 469.69, 163.5 411 M272.5 411 C216.02 472.07, 219.37 470.2, 163.5 411 M163.5 411 C136.24 379.77, 106.25 346.92, 54.5 295 M163.5 411 C141.07 388.44, 117.91 363, 54.5 295 M54.5 295 C1.17 234.4, -0.36 237.17, 54.5 177 M54.5 295 C0.64 234.77, 2.07 234.95, 54.5 177 M54.5 177 C75.83 153.49, 98.48 129.83, 163.5 59 M54.5 177 C90.13 137.5, 128.17 96.97, 163.5 59 M163.5 59 C217.51 -0.27, 217.97 -1.31, 272.5 59 M163.5 59 C218.69 -0.38, 216.75 -2.06, 272.5 59" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3404.9228186482155 170.69796164021886) rotate(0 98.55000305175781 112.5)"><text x="98.55000305175781" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. merge </text><text x="98.55000305175781" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the </text><text x="98.55000305175781" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message </text><text x="98.55000305175781" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">tree and </text><text x="98.55000305175781" y="180" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">state tree</text></g><g stroke-linecap="round" transform="translate(3759.380374271796 10) rotate(0 209.67802285453035 76.69165816498207)"><path d="M32 0 C130.69 -0.56, 233.66 -1.74, 387.36 0 C410.82 -0.32, 415.76 9.74, 419.36 32 C423.84 54.99, 422.64 84.74, 419.36 121.38 C420.08 141.36, 408.27 150.76, 387.36 153.38 C286.52 151.24, 189.49 150.73, 32 153.38 C9.27 154.13, 2.68 145.21, 0 121.38 C-0.11 94.9, -1.82 72.9, 0 32 C0.74 10.42, 10.34 -0.45, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C161.23 -3.3, 290.32 -1.62, 387.36 0 M32 0 C152.98 -0.1, 275.59 0.67, 387.36 0 M387.36 0 C407.87 0.68, 418.11 10.54, 419.36 32 M387.36 0 C407.62 0.92, 419.88 9.98, 419.36 32 M419.36 32 C417.49 51.69, 417.61 69.67, 419.36 121.38 M419.36 32 C418.68 63.59, 418.83 94.94, 419.36 121.38 M419.36 121.38 C417.64 144.51, 409.88 153.56, 387.36 153.38 M419.36 121.38 C418.66 142.14, 407.33 155.52, 387.36 153.38 M387.36 153.38 C267.01 151.51, 150.24 151.91, 32 153.38 M387.36 153.38 C256.46 151.91, 124.69 152.8, 32 153.38 M32 153.38 C11.22 152.32, 1.8 141.8, 0 121.38 M32 153.38 C8.46 152.75, -1.8 141.27, 0 121.38 M0 121.38 C1.11 96.5, 0.37 68.96, 0 32 M0 121.38 C-0.95 92.82, -0.72 63.86, 0 32 M0 32 C0.6 10.34, 9.58 -1.79, 32 0 M0 32 C1.96 10.39, 9.09 -2.07, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3764.408403229842 19.191658164982073) rotate(0 204.64999389648438 67.5)"><text x="204.64999389648438" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message tree holds all</text><text x="204.64999389648438" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messages posted via a</text><text x="204.64999389648438" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Poll contract</text></g><g stroke-linecap="round" transform="translate(3861.896897424078 261.9212703006233) rotate(0 179.2020711009559 79.82407909471749)"><path d="M32 0 C130.45 0.63, 223.07 0.18, 326.4 0 C347.44 3.58, 361.12 13.56, 358.4 32 C359.93 51.14, 358.79 70.37, 358.4 127.65 C357.7 149.29, 345.65 157.81, 326.4 159.65 C234.06 159.74, 145.77 161.03, 32 159.65 C9.96 159.16, -2.61 148.65, 0 127.65 C1.72 102.49, 0.65 77.39, 0 32 C3.2 7.34, 13.92 1.91, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C96.88 -0.57, 160.32 -2.46, 326.4 0 M32 0 C101.8 -1.04, 171.74 -1.34, 326.4 0 M326.4 0 C346.81 0.8, 358.86 10.07, 358.4 32 M326.4 0 C345.49 0.09, 357.63 8.49, 358.4 32 M358.4 32 C358.61 68.76, 359.24 102.91, 358.4 127.65 M358.4 32 C356.86 62.05, 358.31 90.39, 358.4 127.65 M358.4 127.65 C357.8 148.48, 346.55 161.51, 326.4 159.65 M358.4 127.65 C359.22 150.45, 346.77 157.57, 326.4 159.65 M326.4 159.65 C260.1 157.73, 191.11 159.64, 32 159.65 M326.4 159.65 C261.86 160.53, 197.58 160.58, 32 159.65 M32 159.65 C8.75 159.09, -1.56 147.73, 0 127.65 M32 159.65 C10.36 158.67, 0.18 149.82, 0 127.65 M0 127.65 C0.37 97.01, -1.31 62.75, 0 32 M0 127.65 C0.32 100.07, -0.53 71.92, 0 32 M0 32 C1.7 10.43, 9.29 -1.8, 32 0 M0 32 C-0.39 8.75, 11.36 -1.87, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3880.932296772104 274.2453493953408) rotate(0 160.1666717529297 67.5)"><text x="160.1666717529297" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">state tree holds </text><text x="160.1666717529297" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">all of the signed </text><text x="160.1666717529297" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">up users</text></g><g stroke-linecap="round"><g transform="translate(3607.9739306515467 110.94710261134605) rotate(0 68.13533372376574 -24.51324463124911)"><path d="M-1.11 -0.74 C21.67 -8.77, 114.27 -40.34, 137.09 -48.32 M0.5 1.48 C23.16 -6.88, 114.2 -41.37, 136.57 -50.07" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3607.9739306515467 110.94710261134605) rotate(0 68.13533372376574 -24.51324463124911)"><path d="M113.91 -30.41 C120.28 -35.41, 130.27 -44.17, 136.57 -50.07 M113.91 -30.41 C121.14 -36.56, 129.39 -43.82, 136.57 -50.07" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3607.9739306515467 110.94710261134605) rotate(0 68.13533372376574 -24.51324463124911)"><path d="M106.57 -49.57 C115.37 -48.1, 127.81 -50.45, 136.57 -50.07 M106.57 -49.57 C116.13 -49.32, 126.84 -50.18, 136.57 -50.07" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(3694.009930222871 342.8417292002491) rotate(0 80.9694722121762 13.207665607097795)"><path d="M0.82 0.71 C27.91 5.3, 134.72 22.55, 161.45 26.82 M-0.21 0.03 C26.78 4.32, 132.92 20.32, 160.24 24.91" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3694.009930222871 342.8417292002491) rotate(0 80.9694722121762 13.207665607097795)"><path d="M130.79 30.64 C138.11 28.43, 143.71 26.81, 160.24 24.91 M130.79 30.64 C139.69 28.54, 147.14 27.2, 160.24 24.91" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3694.009930222871 342.8417292002491) rotate(0 80.9694722121762 13.207665607097795)"><path d="M134 10.37 C140.53 12.38, 145.46 14.97, 160.24 24.91 M134 10.37 C141.87 14.24, 148.37 18.84, 160.24 24.91" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(3227.1594661049585 1130.9054680358354) rotate(0 272.14759196711384 197.76647841846895)"><path d="M341.25 49.5 C393.35 88.77, 450.87 127.36, 476.05 148.5 C542.94 197.58, 541.67 197.3, 476.05 247.5 C433.81 278.93, 391.44 305.65, 341.25 346.03 C273.75 398.21, 275.49 394.82, 204.75 346.03 C165.53 315.56, 129.49 290.13, 68.25 247.5 C-0.25 197.67, -0.45 201.2, 68.25 148.5 C94.54 129.18, 125.67 108.86, 204.75 49.5 C272.07 -0.52, 273.15 1.13, 341.25 49.5" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M341.25 49.5 C392.14 85.26, 440.97 122.03, 476.05 148.5 M341.25 49.5 C386.3 83.58, 432.75 116.24, 476.05 148.5 M476.05 148.5 C545.89 196.22, 545.77 199.06, 476.05 247.5 M476.05 148.5 C544.8 199.94, 542.3 198.11, 476.05 247.5 M476.05 247.5 C446.94 270.01, 414.57 290.69, 341.25 346.03 M476.05 247.5 C438.76 276.48, 400.93 302.02, 341.25 346.03 M341.25 346.03 C271.57 397.5, 272.2 396.92, 204.75 346.03 M341.25 346.03 C271.39 394.56, 274.35 393.69, 204.75 346.03 M204.75 346.03 C164.61 320.43, 126.27 288.92, 68.25 247.5 M204.75 346.03 C168.22 317.92, 131.27 291.89, 68.25 247.5 M68.25 247.5 C0.73 197.99, -1.19 198.36, 68.25 148.5 M68.25 247.5 C1.8 196.49, -0.56 197.69, 68.25 148.5 M68.25 148.5 C109.3 117.46, 148.56 90.72, 204.75 49.5 M68.25 148.5 C108.08 120.37, 147.88 91.87, 204.75 49.5 M204.75 49.5 C273.58 0.47, 272.56 1.18, 341.25 49.5 M204.75 49.5 C272.8 -2.3, 272.41 -0.19, 341.25 49.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3399.0665979649802 1283.7887072450699) rotate(0 100.16666412353516 45)"><text x="100.16666412353516" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. process </text><text x="100.16666412353516" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messages</text></g><g stroke-linecap="round" transform="translate(4038.6771802824655 1019.9623716134702) rotate(0 179.2020711009559 95)"><path d="M32 0 C133.07 -1.11, 234.21 -1.32, 326.4 0 C348.04 -2.09, 356.57 11.03, 358.4 32 C358.88 80.44, 360.63 122.82, 358.4 158 C357.91 176.72, 347.41 188.57, 326.4 190 C254.57 190.57, 182.78 193.19, 32 190 C7.34 193.26, 1.91 178.91, 0 158 C-2.43 110.82, -1.35 65.81, 0 32 C-1.29 14.08, 12.61 0.99, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C102.53 1.35, 171.44 -0.43, 326.4 0 M32 0 C122.01 1.41, 211.38 2.46, 326.4 0 M326.4 0 C348.18 1.69, 356.67 10.76, 358.4 32 M326.4 0 C346.08 -0.36, 356.43 12.73, 358.4 32 M358.4 32 C358.01 76.14, 360.37 123.35, 358.4 158 M358.4 32 C357.16 78.84, 357.47 124.4, 358.4 158 M358.4 158 C357 178.49, 348.91 188.4, 326.4 190 M358.4 158 C357.99 180.68, 348.38 188.77, 326.4 190 M326.4 190 C211.15 186.74, 95.79 187.71, 32 190 M326.4 190 C250.93 190.79, 174.47 190.93, 32 190 M32 190 C12.24 188.69, -0.49 179.07, 0 158 M32 190 C10.63 188.49, 0.69 178.96, 0 158 M0 158 C0.89 125.69, -0.67 95.79, 0 32 M0 158 C-0.09 130.93, -0.6 103.99, 0 32 M0 32 C-0.18 8.67, 10.15 -0.17, 32 0 M0 32 C2.29 12.4, 12.51 -1.97, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4059.8792513834214 1024.9623716134702) rotate(0 158 90)"><text x="158" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Calculate the </text><text x="158" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">index of the </text><text x="158" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message to </text><text x="158" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">process</text></g><g stroke-linecap="round"><g transform="translate(3766.9431523729518 1148.5323148364441) rotate(0 113.36172837924255 -17.6660437238329)"><path d="M-1.17 0.04 C36.5 -5.97, 188.18 -30.39, 226.32 -36.47 M0.42 -0.98 C37.87 -6.86, 187.33 -29.75, 225.16 -35.53" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3766.9431523729518 1148.5323148364441) rotate(0 113.36172837924255 -17.6660437238329)"><path d="M198.85 -21.12 C207.46 -26.19, 213.98 -28.57, 225.16 -35.53 M198.85 -21.12 C204.51 -23.46, 208.97 -27.29, 225.16 -35.53" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3766.9431523729518 1148.5323148364441) rotate(0 113.36172837924255 -17.6660437238329)"><path d="M195.74 -41.41 C205.29 -39.89, 212.82 -35.73, 225.16 -35.53 M195.74 -41.41 C202.21 -39.48, 207.33 -39.03, 225.16 -35.53" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(3801.2988591113112 1029.9428266448813) rotate(0 49.599998474121094 22.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Steps</text></g><g transform="translate(2319.405882590061 1611.0842325165754) rotate(0 51.349998474121094 22.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Notes</text></g><g stroke-linecap="round" transform="translate(2506.2689364390662 1671.1656160638458) rotate(0 179.2020711009559 117.5)"><path d="M32 0 C122.27 1.02, 216.61 2.32, 326.4 0 C347.03 -0.49, 355.79 10.34, 358.4 32 C357.4 76.28, 356.33 120.6, 358.4 203 C361.6 221, 350.99 236.91, 326.4 235 C243.6 236.91, 156.31 237.71, 32 235 C11.79 233.71, 3.41 226.27, 0 203 C2.84 143.87, -0.25 89.2, 0 32 C-0.12 13.28, 13.39 2.34, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C144.58 -1.29, 256.85 -2.91, 326.4 0 M32 0 C121.09 1.01, 211.9 0.41, 326.4 0 M326.4 0 C347.13 -0.5, 357.22 12.53, 358.4 32 M326.4 0 C348.55 1.47, 357.43 8.59, 358.4 32 M358.4 32 C361.48 69.71, 359.24 111.39, 358.4 203 M358.4 32 C358.38 69.07, 359 106.76, 358.4 203 M358.4 203 C356.49 223.78, 346.18 233.75, 326.4 235 M358.4 203 C358.1 223.35, 347.92 235.84, 326.4 235 M326.4 235 C227.55 234.87, 127.19 233.34, 32 235 M326.4 235 C242.23 233.45, 157.21 232.91, 32 235 M32 235 C12.37 234.76, -1.37 222.54, 0 203 M32 235 C10.28 233.08, 0.69 222.46, 0 203 M0 203 C0.78 146.55, -2.4 89.95, 0 32 M0 203 C-0.9 152.26, -1.23 103.41, 0 32 M0 32 C0.4 9.91, 10.43 -1.46, 32 0 M0 32 C-0.45 10.86, 9.33 -1.17, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2512.5376731894366 1676.1656160638458) rotate(0 172.93333435058594 112.5)"><text x="172.93333435058594" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messages are </text><text x="172.93333435058594" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">processed in </text><text x="172.93333435058594" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batches to reduce </text><text x="172.93333435058594" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the computing </text><text x="172.93333435058594" y="180" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">resources needed</text></g><g stroke-linecap="round"><g transform="translate(3199.7657271657126 1354.0113263120961) rotate(0 -315.2890330448126 152.94899628979033)"><path d="M-1.04 0.06 C-106.33 50.84, -526.35 254.56, -631.44 305.71 M0.61 -0.96 C-104.32 50.53, -524.2 256.12, -629.18 307.15" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3199.7657271657126 1354.0113263120961) rotate(0 -315.2890330448126 152.94899628979033)"><path d="M-608.35 285.56 C-614.78 290.89, -621.89 297.56, -629.18 307.15 M-608.35 285.56 C-616.64 293.75, -625.06 303.34, -629.18 307.15" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3199.7657271657126 1354.0113263120961) rotate(0 -315.2890330448126 152.94899628979033)"><path d="M-599.35 304 C-608.83 303.32, -618.84 304.05, -629.18 307.15 M-599.35 304 C-611.26 305.01, -623.19 307.41, -629.18 307.15" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(2059.748209388288 1669.412891139048) rotate(0 179.2020711009559 117.5)"><path d="M32 0 C138.78 0.29, 248.39 -0.98, 326.4 0 C349.36 0.74, 358.16 10.34, 358.4 32 C364.39 83.09, 360.71 132.89, 358.4 203 C360.78 227.09, 346.81 234.48, 326.4 235 C239.39 235.03, 148.04 231.96, 32 235 C9.84 235.96, -3.14 222.21, 0 203 C2.82 162.74, -3.49 118.86, 0 32 C-3.22 7.66, 8.39 1.62, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C94.5 0.3, 158.81 2.46, 326.4 0 M32 0 C122.48 1.24, 214.1 1.02, 326.4 0 M326.4 0 C346.89 -1.81, 356.98 12.64, 358.4 32 M326.4 0 C346.82 1.6, 356.79 9.7, 358.4 32 M358.4 32 C358.2 93.88, 355.97 156.45, 358.4 203 M358.4 32 C355.98 74.86, 356.63 118.55, 358.4 203 M358.4 203 C358.56 225.06, 348.47 234.99, 326.4 235 M358.4 203 C357.04 224.75, 349.54 233.49, 326.4 235 M326.4 235 C244.34 235.41, 163.97 234.15, 32 235 M326.4 235 C263.91 234.07, 202.31 234.12, 32 235 M32 235 C11.27 233.37, 0.58 224.8, 0 203 M32 235 C10.16 236.36, -0.2 222.03, 0 203 M0 203 C1.65 157.72, -1.57 110.16, 0 32 M0 203 C-0.46 148.14, -0.54 94.82, 0 32 M0 32 C-1.16 9.65, 10.87 1.26, 32 0 M0 32 C-0.27 9.77, 11.14 1.71, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2109.9502804892445 1719.412891139048) rotate(0 129 67.5)"><text x="129" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messages are </text><text x="129" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">processed in </text><text x="129" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">reverse order</text></g><g stroke-linecap="round"><g transform="translate(3242.9999415527373 1298.795223495415) rotate(0 -470.1498955972635 152.48453385443628)"><path d="M0.72 0.11 C-155.89 50.7, -783.71 253.67, -940.66 304.67 M-0.37 -0.88 C-157.07 50.41, -785.45 255.18, -941.8 306.05" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3242.9999415527373 1298.795223495415) rotate(0 -470.1498955972635 152.48453385443628)"><path d="M-918.17 287.56 C-922.89 291.06, -928.63 294.43, -941.8 306.05 M-918.17 287.56 C-927.81 294.07, -937.39 303.23, -941.8 306.05" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3242.9999415527373 1298.795223495415) rotate(0 -470.1498955972635 152.48453385443628)"><path d="M-911.82 307.07 C-918.07 306.43, -925.17 305.63, -941.8 306.05 M-911.82 307.07 C-924.03 305.96, -936.1 307.44, -941.8 306.05" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(4036.497341578061 831.9148164162871) rotate(0 179.2020711009559 79.82407909471749)"><path d="M32 0 C103.46 -1.06, 174.96 1.56, 326.4 0 C344.41 3.26, 360.31 10.24, 358.4 32 C358.61 66.9, 359.69 103.97, 358.4 127.65 C357.12 152.39, 349.68 160.63, 326.4 159.65 C253.72 159.12, 184.34 160.61, 32 159.65 C13.28 162.37, 2.34 145.39, 0 127.65 C-0.74 97.71, 4.28 65.7, 0 32 C-1.18 7.64, 13.01 2.86, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C137.52 -0.22, 245.18 1.19, 326.4 0 M32 0 C138.6 2.71, 245.97 2.49, 326.4 0 M326.4 0 C346.34 -0.84, 359.58 9.07, 358.4 32 M326.4 0 C347.32 1.34, 359.04 9.44, 358.4 32 M358.4 32 C357.41 67.75, 356.71 106.35, 358.4 127.65 M358.4 32 C358.85 56.6, 357.88 81.4, 358.4 127.65 M358.4 127.65 C359.97 147.67, 347.25 159.38, 326.4 159.65 M358.4 127.65 C358.37 147.48, 348.43 159.27, 326.4 159.65 M326.4 159.65 C253.95 160.49, 180.51 161.26, 32 159.65 M326.4 159.65 C262.83 158.05, 198.66 158.31, 32 159.65 M32 159.65 C10.49 157.65, -0.52 148.82, 0 127.65 M32 159.65 C12.95 161.39, 1.85 147.01, 0 127.65 M0 127.65 C-0.91 94.25, -1.61 60.93, 0 32 M0 127.65 C0.66 98.78, 0.44 68.26, 0 32 M0 32 C0.42 12.15, 12.05 -0.39, 32 0 M0 32 C-0.31 9, 10.46 -0.91, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4050.9327500813606 866.7388955110046) rotate(0 164.76666259765625 45)"><text x="164.76666259765625" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. Loop from 0 to </text><text x="164.76666259765625" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batchSize</text></g><g stroke-linecap="round"><g transform="translate(4460.082385431631 1110.6964144770755) rotate(0 96.94742553786818 0)"><path d="M0.42 0.77 C32.77 0.4, 161.29 -1.15, 193.39 -1.08 M-0.81 0.12 C31.4 0.38, 159.46 0, 192.18 -0.11" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4460.082385431631 1110.6964144770755) rotate(0 96.94742553786818 0)"><path d="M164.02 10.23 C171.98 6.8, 175.67 3.72, 192.18 -0.11 M164.02 10.23 C174.58 5.49, 187.09 0.99, 192.18 -0.11" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4460.082385431631 1110.6964144770755) rotate(0 96.94742553786818 0)"><path d="M163.95 -10.29 C172.12 -8.78, 175.83 -6.92, 192.18 -0.11 M163.95 -10.29 C174.46 -6.85, 186.99 -3.18, 192.18 -0.11" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(4712.347517565502 1008.9923763654515) rotate(0 179.2020711009559 95)"><path d="M32 0 C147.89 -3.87, 262.81 -1.79, 326.4 0 C350.5 -0.93, 357.88 10.82, 358.4 32 C359.53 74.73, 355.4 114.67, 358.4 158 C359.37 176.19, 345.61 188.17, 326.4 190 C240.79 190.31, 152.49 190.58, 32 190 C7.66 187.72, 1.62 182.07, 0 158 C3.09 118.98, -2.28 73.45, 0 32 C1.18 12.88, 9.57 -3.48, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C129.4 -0.14, 230.95 0.33, 326.4 0 M32 0 C141.19 0.33, 249.38 1.36, 326.4 0 M326.4 0 C348.29 -1.07, 360.21 9.75, 358.4 32 M326.4 0 C345.53 -0.64, 356.61 9.22, 358.4 32 M358.4 32 C358.59 68.84, 357.86 103.03, 358.4 158 M358.4 32 C359.15 71.95, 359.38 111.51, 358.4 158 M358.4 158 C359.01 179.01, 346.65 188.21, 326.4 190 M358.4 158 C360.36 179.06, 346.16 187.93, 326.4 190 M326.4 190 C241.88 191.09, 160.13 190.33, 32 190 M326.4 190 C220.49 187.75, 115.69 188.38, 32 190 M32 190 C12.27 188.29, 0.93 179.66, 0 158 M32 190 C11.13 189.13, -0.27 177.66, 0 158 M0 158 C-1.13 122.87, 1.16 87.09, 0 32 M0 158 C0.43 124.89, -0.4 91.45, 0 32 M0 32 C-0.18 9.87, 9.53 0.9, 32 0 M0 32 C0.47 10.51, 10.46 -0.29, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4717.449582562942 1013.9923763654515) rotate(0 174.10000610351562 90)"><text x="174.10000610351562" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge"> index = </text><text x="174.10000610351562" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batchStartIndex - </text><text x="174.10000610351562" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batchSize - i (loop </text><text x="174.10000610351562" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">counter) - 1</text></g><g stroke-linecap="round"><g transform="translate(4865.319639870426 956.0452332375789) rotate(0 0 -38.95056801100873)"><path d="M-0.48 0.83 C-0.48 -12.43, -1.04 -65.13, -0.84 -78.41 M1.47 0.22 C1.92 -12.37, 1.62 -64.09, 1.43 -77.14" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4865.319639870426 956.0452332375789) rotate(0 0 -38.95056801100873)"><path d="M11.94 -49.04 C10.65 -56.91, 6.01 -60.76, 1.43 -77.14 M11.94 -49.04 C9.96 -55.69, 8.27 -61.79, 1.43 -77.14" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4865.319639870426 956.0452332375789) rotate(0 0 -38.95056801100873)"><path d="M-8.58 -48.86 C-5.18 -56.68, -5.12 -60.58, 1.43 -77.14 M-8.58 -48.86 C-6.05 -55.67, -3.22 -61.81, 1.43 -77.14" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(4686.927595631925 637.4884774485727) rotate(0 179.2020711009559 95)"><path d="M32 0 C139.37 1.13, 248.35 0.06, 326.4 0 C351.15 1.94, 359.39 8.47, 358.4 32 C356.89 65.08, 358.89 104.44, 358.4 158 C361.12 181.68, 344.15 191.08, 326.4 190 C265.64 189.54, 203.32 186.63, 32 190 C7.64 192.34, 2.86 176.31, 0 158 C-1.84 119.54, -0.86 85.19, 0 32 C-0.84 7.18, 12.02 -2.31, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C107.91 2.4, 183.88 1.26, 326.4 0 M32 0 C138.17 0.83, 242.28 0.96, 326.4 0 M326.4 0 C346.18 -1.25, 358.14 9.81, 358.4 32 M326.4 0 C347.92 0.84, 359.25 10.66, 358.4 32 M358.4 32 C357.32 61.82, 358.37 92.59, 358.4 158 M358.4 32 C358.24 60.66, 359.64 90.99, 358.4 158 M358.4 158 C357.03 177.54, 347.4 188.33, 326.4 190 M358.4 158 C359.09 177.46, 348.41 190.54, 326.4 190 M326.4 190 C243.09 189.42, 162.62 191.28, 32 190 M326.4 190 C216.19 188.25, 105.42 187.85, 32 190 M32 190 C10.43 188.54, -0.39 179.5, 0 158 M32 190 C9.33 188.83, 0.23 180.79, 0 158 M0 158 C1.98 123.08, 0.09 85.12, 0 32 M0 158 C-0.45 129.8, 0.32 100.63, 0 32 M0 32 C-0.18 10.42, 12.44 -1.85, 32 0 M0 32 C2.08 11.89, 10.4 1.62, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4716.829663681123 642.4884774485727) rotate(0 149.3000030517578 90)"><text x="149.3000030517578" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">start from the </text><text x="149.3000030517578" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">last item in the </text><text x="149.3000030517578" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batch and work </text><text x="149.3000030517578" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">your way down</text></g><g stroke-linecap="round" transform="translate(4038.7142572016187 1248.611112177061) rotate(0 179.2020711009559 117.5)"><path d="M32 0 C124.08 2.85, 211.83 -0.23, 326.4 0 C346.91 0.96, 355.26 8.54, 358.4 32 C361.02 76.95, 354.72 118.29, 358.4 203 C355.18 221.32, 345.46 236.62, 326.4 235 C213.44 235.45, 107.09 231.46, 32 235 C9.86 236.18, 2.22 223.23, 0 203 C-0.74 164.76, 1.45 131.17, 0 32 C1.78 7.97, 14.19 -2.76, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C138.44 0.81, 242.36 1.73, 326.4 0 M32 0 C106.29 0.14, 181.64 0.29, 326.4 0 M326.4 0 C347.89 0.73, 359.14 10.66, 358.4 32 M326.4 0 C346.37 0.42, 360.21 9.16, 358.4 32 M358.4 32 C356.87 79.71, 357.85 125.12, 358.4 203 M358.4 32 C359.17 67.11, 359.69 103.17, 358.4 203 M358.4 203 C359 222.71, 348.32 235.47, 326.4 235 M358.4 203 C357.9 225.69, 347.53 232.7, 326.4 235 M326.4 235 C246.8 238.37, 163.68 237.87, 32 235 M326.4 235 C233.12 233.63, 139.86 234.24, 32 235 M32 235 C9.51 233.98, 0.2 225.6, 0 203 M32 235 C10.39 234.11, 0.48 226.04, 0 203 M0 203 C-1.12 139.67, -0.46 75.57, 0 32 M0 203 C-0.44 143.88, 0.54 84.08, 0 32 M0 32 C1.81 11.73, 10.43 1.41, 32 0 M0 32 C1.52 12.43, 10.07 -0.33, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4051.26633440609 1253.611112177061) rotate(0 166.64999389648438 112.5)"><text x="166.64999389648438" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Check the </text><text x="166.64999389648438" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message type as </text><text x="166.64999389648438" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the processing will </text><text x="166.64999389648438" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">be slightly </text><text x="166.64999389648438" y="180" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">different</text></g><g stroke-linecap="round" transform="translate(4773.330013776364 1567.1667375497714) rotate(0 179.2020711009559 117.5)"><path d="M32 0 C135.58 3.12, 238.05 0.82, 326.4 0 C345.91 -0.12, 361.02 13.39, 358.4 32 C352.12 91.42, 353.06 158.48, 358.4 203 C361.14 225.5, 346.56 231.97, 326.4 235 C218.33 232.57, 113.1 230.88, 32 235 C7.18 234.89, -2.86 223.5, 0 203 C0.62 165.57, 2.37 130.78, 0 32 C-1.4 12.62, 10.06 1.35, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C127.84 -3.39, 224.62 -3.13, 326.4 0 M32 0 C101.91 1.2, 171.98 0.93, 326.4 0 M326.4 0 C346.55 0.36, 359.97 9.35, 358.4 32 M326.4 0 C347.17 -0.31, 358.37 9.16, 358.4 32 M358.4 32 C356.34 90.17, 357.89 143.56, 358.4 203 M358.4 32 C358.41 67.12, 358.4 104.11, 358.4 203 M358.4 203 C357.96 225.52, 347.56 233, 326.4 235 M358.4 203 C357.81 224.14, 350.02 236.74, 326.4 235 M326.4 235 C214.7 236.32, 101.95 235.85, 32 235 M326.4 235 C259.09 234.81, 192.7 235.65, 32 235 M32 235 C10.43 234.22, 0.42 225.82, 0 203 M32 235 C12.26 234.55, -0.31 222.66, 0 203 M0 203 C1.58 153.67, 0.54 103.34, 0 32 M0 203 C-0.61 154.35, -1.64 105.34, 0 32 M0 32 C1.32 12.2, 10.15 -0.29, 32 0 M0 32 C0.1 11.39, 9.84 2.18, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4818.432078773804 1639.6667375497714) rotate(0 134.10000610351562 45)"><text x="134.10000610351562" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Process topup </text><text x="134.10000610351562" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messsage</text></g><g stroke-linecap="round"><g transform="translate(4400.257638340156 1525.8991309736957) rotate(0 47.642369410099946 34.74588909998374)"><path d="M-0.94 -0.75 C15.11 10.8, 79.07 57.2, 95.12 68.98 M0.77 1.47 C16.75 13.21, 78.44 59.19, 94.09 70.25" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4400.257638340156 1525.8991309736957) rotate(0 47.642369410099946 34.74588909998374)"><path d="M65.26 61.94 C69.87 63.59, 76.16 65.71, 94.09 70.25 M65.26 61.94 C74.4 64.92, 85.47 66.87, 94.09 70.25" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4400.257638340156 1525.8991309736957) rotate(0 47.642369410099946 34.74588909998374)"><path d="M77.35 45.35 C79.44 50.3, 83.26 55.81, 94.09 70.25 M77.35 45.35 C82.48 53.91, 89.49 61.44, 94.09 70.25" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(4306.438793490723 1666.7337506072545) rotate(0 179.2020711009559 117.5)"><path d="M32 0 C104.88 2.15, 175.62 -2.53, 326.4 0 C348.81 -3.22, 355.4 8.39, 358.4 32 C359.57 87.97, 363.09 152.86, 358.4 203 C355.38 223.53, 348.92 237.22, 326.4 235 C244.95 234.25, 165.15 235.88, 32 235 C8.35 236.78, -2.7 227.86, 0 203 C0.58 166.16, -0.64 123.52, 0 32 C-1.41 9.59, 7.48 2.3, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C96.7 0.41, 163.21 0.84, 326.4 0 M32 0 C120.77 -0.88, 208.19 -0.49, 326.4 0 M326.4 0 C347.7 -1.31, 359.01 10.34, 358.4 32 M326.4 0 C346.48 -2.06, 360.36 10.39, 358.4 32 M358.4 32 C355.2 72.17, 355.24 111.72, 358.4 203 M358.4 32 C357.94 86.31, 357.77 142.54, 358.4 203 M358.4 203 C360.39 225.84, 349.34 233.29, 326.4 235 M358.4 203 C359.48 224.71, 348.2 234.13, 326.4 235 M326.4 235 C241.64 233.71, 155.86 234.72, 32 235 M326.4 235 C219.63 234.7, 113.06 234.01, 32 235 M32 235 C10.39 233.55, -0.18 223.54, 0 203 M32 235 C9.36 236.04, 0.47 224.17, 0 203 M0 203 C-1.64 155.07, 1.27 103.28, 0 32 M0 203 C-1.39 139.53, -1.09 76.67, 0 32 M0 32 C-0.71 12.56, 11.74 0.55, 32 0 M0 32 C-1.4 10.14, 11.28 -2.01, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4360.224200468144 1739.2337506072545) rotate(0 125.41666412353516 45)"><text x="125.41666412353516" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Process vote </text><text x="125.41666412353516" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messsage</text></g><g stroke-linecap="round"><g transform="translate(4417.619924641957 1360.3857040712437) rotate(0 214.81036509061278 90.51708890126216)"><path d="M0.44 -0.01 C71.91 30.13, 357.22 151.21, 428.91 181.25 M-0.79 -1.05 C71.06 28.66, 359.4 148.88, 431.25 179.24" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4417.619924641957 1360.3857040712437) rotate(0 214.81036509061278 90.51708890126216)"><path d="M401.28 177.8 C410.5 176.95, 420.1 180.15, 431.25 179.24 M401.28 177.8 C408.28 177.53, 415.62 178.35, 431.25 179.24" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4417.619924641957 1360.3857040712437) rotate(0 214.81036509061278 90.51708890126216)"><path d="M409.22 158.88 C416.06 163.88, 423.21 172.9, 431.25 179.24 M409.22 158.88 C414.31 163.03, 419.79 168.29, 431.25 179.24" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(4948.054872737286 1831.8678033043402) rotate(0 -9.840518286880524 115.88596180423093)"><path d="M-0.71 0.22 C-3.91 38.72, -15.53 192.42, -18.74 230.98 M1.11 -0.71 C-2.2 37.92, -15.53 193.18, -19.19 232.11" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4948.054872737286 1831.8678033043402) rotate(0 -9.840518286880524 115.88596180423093)"><path d="M-26.9 203.12 C-23.95 214.49, -23.03 222.19, -19.19 232.11 M-26.9 203.12 C-24.4 211.31, -23.03 218.89, -19.19 232.11" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4948.054872737286 1831.8678033043402) rotate(0 -9.840518286880524 115.88596180423093)"><path d="M-6.46 204.94 C-10.39 215.58, -16.35 222.67, -19.19 232.11 M-6.46 204.94 C-9.82 212.48, -14.31 219.54, -19.19 232.11" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(4761.26887675842 2100.418580250829) rotate(0 179.2020711009559 117.5)"><path d="M32 0 C95.18 4.53, 156.81 1.62, 326.4 0 C344.71 2.34, 361.26 7.64, 358.4 32 C358.31 75.99, 359.3 124.09, 358.4 203 C357.57 220.84, 349.09 232.69, 326.4 235 C221.51 237.82, 122.17 238.4, 32 235 C12.02 233.16, -3.1 222.92, 0 203 C1.32 155.02, 3.1 110.75, 0 32 C-0.82 8.64, 13.19 -1.26, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C101.85 -2.08, 173.46 -1.74, 326.4 0 M32 0 C100.65 -0.31, 170.74 0.27, 326.4 0 M326.4 0 C346.37 -1.8, 358.06 9, 358.4 32 M326.4 0 C348.43 -1.87, 359.07 11.21, 358.4 32 M358.4 32 C357.42 79.01, 359.25 129.05, 358.4 203 M358.4 32 C360.24 96.39, 359.98 160.06, 358.4 203 M358.4 203 C358.17 222.88, 347.35 235.17, 326.4 235 M358.4 203 C357.07 223.16, 347.97 236.45, 326.4 235 M326.4 235 C242.69 236.48, 156.46 235.25, 32 235 M326.4 235 C259.04 234.47, 192.67 234.08, 32 235 M32 235 C10.48 234.75, 1.78 222.48, 0 203 M32 235 C12.75 236.22, -0.27 225.95, 0 203 M0 203 C-1.6 140.49, -0.68 77.11, 0 32 M0 203 C-1.53 135.27, -0.65 67.13, 0 32 M0 32 C-1.18 9.65, 10.6 1.45, 32 0 M0 32 C1.74 12.16, 8.38 0.69, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4768.020950911135 2172.918580250829) rotate(0 172.4499969482422 45)"><text x="172.4499969482422" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">ensure that the </text><text x="172.4499969482422" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateIndex is valid</text></g><g stroke-linecap="round" transform="translate(4776.525475644676 2456.4410537914155) rotate(0 179.2020711009559 162.5)"><path d="M32 0 C140.47 3.03, 255.56 -0.96, 326.4 0 C346.93 1.18, 360.62 9.57, 358.4 32 C357.62 82.26, 359.37 136.25, 358.4 293 C360.18 311.63, 351.26 322.24, 326.4 325 C250.5 322.97, 170.29 323.28, 32 325 C9.59 321.82, 2.3 312.94, 0 293 C-1.05 226.17, 1.61 161.58, 0 32 C2.31 12.66, 9.82 -2.73, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C112.12 0.48, 193.95 -0.77, 326.4 0 M32 0 C93.48 -0.41, 155.85 -0.36, 326.4 0 M326.4 0 C348.34 -1.63, 358.99 11.14, 358.4 32 M326.4 0 C347.23 1.36, 358.2 8.37, 358.4 32 M358.4 32 C359.44 104.85, 356.86 175.87, 358.4 293 M358.4 32 C358.73 114.04, 358.67 197.32, 358.4 293 M358.4 293 C357.25 313.31, 347.94 326.26, 326.4 325 M358.4 293 C358.13 313.44, 348.22 326.71, 326.4 325 M326.4 325 C216.6 324.57, 108.37 323.86, 32 325 M326.4 325 C224.77 324.76, 123.92 324.16, 32 325 M32 325 C12.48 326.06, -0.24 315.74, 0 293 M32 325 C12.19 326.76, -0.6 314, 0 293 M0 293 C0.86 214.47, -0.22 133.25, 0 32 M0 293 C-1.03 220.28, -0.58 148.94, 0 32 M0 32 C1.51 11.97, 8.67 0.6, 32 0 M0 32 C-2.06 8.74, 9.21 1.04, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4782.010887199733 2461.4410537914155) rotate(0 173.71665954589844 157.5)"><text x="173.71665954589844" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">extract the </text><text x="173.71665954589844" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateLeaf at </text><text x="173.71665954589844" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">position </text><text x="173.71665954589844" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateIndex, then </text><text x="173.71665954589844" y="180" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">add to the balance</text><text x="173.71665954589844" y="225" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the amount part </text><text x="173.71665954589844" y="270" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">of the message</text></g><g stroke-linecap="round"><g transform="translate(4945.208659460515 2374.5742085167076) rotate(0 0 31.298831145384156)"><path d="M-0.65 -1.07 C-0.54 9.37, 1.05 52.02, 1.02 62.45 M1.2 0.98 C1.21 11.63, 0.54 53.7, 0.61 63.92" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4945.208659460515 2374.5742085167076) rotate(0 0 31.298831145384156)"><path d="M-9.48 35.66 C-7.98 46.75, -3.1 53.01, 0.61 63.92 M-9.48 35.66 C-7.11 40.87, -5 47.86, 0.61 63.92" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4945.208659460515 2374.5742085167076) rotate(0 0 31.298831145384156)"><path d="M11.04 35.79 C5.76 46.72, 3.87 52.94, 0.61 63.92 M11.04 35.79 C9.1 40.8, 6.9 47.76, 0.61 63.92" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(5344.97704160887 2448.3044023956227) rotate(0 179.2020711009559 162.5)"><path d="M32 0 C97.23 -2.1, 156.58 -1.37, 326.4 0 C344.88 -0.84, 354.92 12.02, 358.4 32 C363.07 91.32, 359.14 156.61, 358.4 293 C357.8 315.68, 345.9 321.9, 326.4 325 C251.36 320.48, 171.54 321.8, 32 325 C10.76 324.18, -2.03 316.85, 0 293 C-3.09 221.63, -4.14 152.52, 0 32 C2.83 10.32, 10.1 -2.26, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C104.1 -2.88, 175.22 -2.11, 326.4 0 M32 0 C96.01 1.95, 159.42 2.22, 326.4 0 M326.4 0 C347.56 -2, 357.89 10.5, 358.4 32 M326.4 0 C350.02 1.74, 360.25 8.7, 358.4 32 M358.4 32 C358.15 122.31, 357.59 212.68, 358.4 293 M358.4 32 C357.28 113.01, 357.1 192.69, 358.4 293 M358.4 293 C358.82 315.82, 349.12 324.61, 326.4 325 M358.4 293 C358.09 312.66, 347.53 324.09, 326.4 325 M326.4 325 C254.65 325.32, 182.93 326.77, 32 325 M326.4 325 C265.21 326.68, 204.69 326.73, 32 325 M32 325 C10.15 324.71, 0.08 314.96, 0 293 M32 325 C9.84 327.18, 1.24 314.96, 0 293 M0 293 C-0.92 229.69, -0.33 168.21, 0 32 M0 293 C-2.37 196, -2.29 97.85, 0 32 M0 32 C-1.27 11.57, 12.19 0.65, 32 0 M0 32 C-0.75 8.73, 12.16 1.82, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(5351.279118813342 2498.3044023956227) rotate(0 172.89999389648438 112.5)"><text x="172.89999389648438" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">we want to store </text><text x="172.89999389648438" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">both the state </text><text x="172.89999389648438" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">before and after </text><text x="172.89999389648438" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the action, to feed</text><text x="172.89999389648438" y="180" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">to the circuit</text></g><g stroke-linecap="round"><g transform="translate(5201.977646518661 2561.0588183848904) rotate(0 55.05405112639983 5.737778320142297)"><path d="M-0.2 -1 C18.34 0.93, 92.03 8.37, 110.47 10.5 M-1.77 1.09 C16.72 3.23, 91.1 9.5, 109.71 11.53" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(5201.977646518661 2561.0588183848904) rotate(0 55.05405112639983 5.737778320142297)"><path d="M80.67 19.07 C85.79 17.97, 92.55 16.21, 109.71 11.53 M80.67 19.07 C89.99 15.46, 99.22 13.93, 109.71 11.53" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(5201.977646518661 2561.0588183848904) rotate(0 55.05405112639983 5.737778320142297)"><path d="M82.62 -1.36 C87.1 2.27, 93.41 5.23, 109.71 11.53 M82.62 -1.36 C91.26 1.65, 99.86 6.73, 109.71 11.53" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(4448.711194852756 1958.009667265258) rotate(0 -25.38543611221189 60.336938325359824)"><path d="M0.36 -0.98 C-8.01 19.35, -41.86 100.56, -50.42 120.96 M-0.91 1.13 C-9.39 21.16, -42.68 99.27, -51.19 118.98" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4448.711194852756 1958.009667265258) rotate(0 -25.38543611221189 60.336938325359824)"><path d="M-49.52 89.03 C-51.87 98.09, -50.24 105.54, -51.19 118.98 M-49.52 89.03 C-50.4 99.68, -49.75 111.28, -51.19 118.98" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4448.711194852756 1958.009667265258) rotate(0 -25.38543611221189 60.336938325359824)"><path d="M-30.65 97.11 C-38.27 103.94, -41.99 109.11, -51.19 118.98 M-30.65 97.11 C-38.31 104.67, -44.43 113.37, -51.19 118.98" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(4190.4197181048385 2120.776792999144) rotate(0 179.2020711009559 162.5)"><path d="M32 0 C111.76 -0.16, 192.95 1.14, 326.4 0 C344.98 -1.4, 360.36 10.06, 358.4 32 C355.36 119.24, 353.95 210.04, 358.4 293 C357.01 312.53, 348.12 325.1, 326.4 325 C243.85 329.47, 164.64 327.12, 32 325 C7.94 322.83, -2.63 317.17, 0 293 C0.26 217.55, 1.75 141.53, 0 32 C-0.73 9.68, 11.15 -0.8, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C129.51 -0.96, 227.2 -0.77, 326.4 0 M32 0 C91.63 0.74, 150.39 -0.45, 326.4 0 M326.4 0 C348.67 0.33, 358.81 9.91, 358.4 32 M326.4 0 C347.47 -1.67, 357.95 10.86, 358.4 32 M358.4 32 C358.35 94.99, 356.72 158.69, 358.4 293 M358.4 32 C359.74 129.14, 359.78 227.12, 358.4 293 M358.4 293 C357.27 315.23, 348.15 324.86, 326.4 325 M358.4 293 C358.19 314.05, 349.78 322.87, 326.4 325 M326.4 325 C212.5 325.72, 97.65 324.36, 32 325 M326.4 325 C242.08 326.39, 158.7 325.89, 32 325 M32 325 C9.45 324.54, 0.53 312.59, 0 293 M32 325 C9.31 323.83, -0.08 316, 0 293 M0 293 C-0.88 193.55, -2.69 95.95, 0 32 M0 293 C-1.85 202.27, -1.07 113.52, 0 32 M0 32 C-1.68 10.22, 11.32 1.23, 32 0 M0 32 C-0.7 8.44, 10.59 -1.82, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4209.371789205794 2125.776792999144) rotate(0 160.25 157.5)"><text x="160.25" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. generate the </text><text x="160.25" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">ECDH shared key </text><text x="160.25" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">using the </text><text x="160.25" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">coordinator's </text><text x="160.25" y="180" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">private key, and </text><text x="160.25" y="225" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the encryption </text><text x="160.25" y="270" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">public key</text></g><g stroke-linecap="round" transform="translate(4205.814756779342 2580.850194309738) rotate(0 179.2020711009559 162.5)"><path d="M32 0 C132.79 -4.89, 239.14 -4.31, 326.4 0 C349.09 -1.84, 355.3 9.25, 358.4 32 C353.97 101.03, 355.39 173.03, 358.4 293 C357.59 312.3, 350.26 323.74, 326.4 325 C217.16 322.46, 110.03 326.17, 32 325 C10.32 324.43, -2.26 313.92, 0 293 C-2.09 210.96, -1.13 129.86, 0 32 C-0.39 10.55, 13.23 1.94, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C112.35 -0.19, 195.54 1.67, 326.4 0 M32 0 C142.91 2, 253.28 1.59, 326.4 0 M326.4 0 C347.5 -1.46, 358.01 10.84, 358.4 32 M326.4 0 C346.4 -1.17, 358.64 12.12, 358.4 32 M358.4 32 C358.78 108.31, 357.28 182.18, 358.4 293 M358.4 32 C357.76 91.71, 358.38 150.64, 358.4 293 M358.4 293 C358.22 314.09, 349.51 323.15, 326.4 325 M358.4 293 C360.48 315.55, 347.47 326.62, 326.4 325 M326.4 325 C218.43 324.5, 111.36 323.9, 32 325 M326.4 325 C209.74 325.43, 94.18 324.95, 32 325 M32 325 C9.49 323.98, -0.07 315.78, 0 293 M32 325 C12.4 326.5, -2.29 315.02, 0 293 M0 293 C2.46 239.27, 2.26 182.6, 0 32 M0 293 C-2.03 236.49, -1.09 180.83, 0 32 M0 32 C-0.61 8.73, 10.6 -1.59, 32 0 M0 32 C-0.53 8.44, 11.53 -1.48, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4227.033490477954 2653.350194309738) rotate(0 157.98333740234375 90)"><text x="157.98333740234375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Decrypt the </text><text x="157.98333740234375" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">command into its </text><text x="157.98333740234375" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">unencrypted part </text><text x="157.98333740234375" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">and its signature</text></g><g stroke-linecap="round"><g transform="translate(4374.866204538444 2476.319228519402) rotate(0 2.1804481981021127 37.40815732078181)"><path d="M1.19 0.91 C2.13 13.22, 4.7 61.44, 5.32 73.79 M0.36 0.34 C1.25 12.77, 4.2 62.1, 4.88 74.79" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4374.866204538444 2476.319228519402) rotate(0 2.1804481981021127 37.40815732078181)"><path d="M-6.98 47.23 C-2.24 56.27, -2.21 63.16, 4.88 74.79 M-6.98 47.23 C-3.28 55.27, 0.39 64.8, 4.88 74.79" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4374.866204538444 2476.319228519402) rotate(0 2.1804481981021127 37.40815732078181)"><path d="M13.51 46.05 C12.63 55.62, 7.04 62.83, 4.88 74.79 M13.51 46.05 C10.72 54.39, 7.91 64.3, 4.88 74.79" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(4053.934163465485 2708.8528010710306) rotate(0 -76.46152912273533 0)"><path d="M0.96 -1.03 C-24.63 -1.15, -126.76 0.1, -152.36 0.2 M0.01 1.05 C-25.8 0.46, -127.46 -1.75, -153.02 -1.82" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4053.934163465485 2708.8528010710306) rotate(0 -76.46152912273533 0)"><path d="M-124.69 -11.69 C-137.64 -6.59, -146.91 -3.18, -153.02 -1.82 M-124.69 -11.69 C-132.32 -9.23, -140.14 -7.23, -153.02 -1.82" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4053.934163465485 2708.8528010710306) rotate(0 -76.46152912273533 0)"><path d="M-124.97 8.83 C-137.97 5.73, -147.12 0.95, -153.02 -1.82 M-124.97 8.83 C-132.51 5.91, -140.25 2.53, -153.02 -1.82" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(3255.9022514086228 2549.748588727154) rotate(0 292.6158294186543 162.5)"><path d="M32 0 C161.34 0.2, 292.47 0.91, 553.23 0 C572.76 0.38, 585.33 9.85, 585.23 32 C589.7 97.18, 587.18 156.99, 585.23 293 C583.06 311.7, 577.4 324.65, 553.23 325 C405.26 325.15, 257.01 324.28, 32 325 C9.68 325.48, -0.8 313.94, 0 293 C-2.23 213.94, -1.41 136.93, 0 32 C-2.86 11.15, 11.56 -1.33, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C230.33 -0.81, 428.1 -1.07, 553.23 0 M32 0 C150.19 -0.38, 268.89 0.08, 553.23 0 M553.23 0 C574.33 -0.78, 585.65 12.15, 585.23 32 M553.23 0 C576.16 -0.45, 584.92 9, 585.23 32 M585.23 32 C585.12 108.25, 584.3 183.69, 585.23 293 M585.23 32 C587.8 107.49, 586.99 182.69, 585.23 293 M585.23 293 C586.55 315.87, 574.05 324.71, 553.23 325 M585.23 293 C585.33 315.05, 573.74 327.18, 553.23 325 M553.23 325 C368.58 323.94, 183.6 323.26, 32 325 M553.23 325 C423.66 326.77, 293.09 326.63, 32 325 M32 325 C8.88 323.33, -1.27 315.23, 0 293 M32 325 C12.42 325.74, -0.75 312.4, 0 293 M0 293 C-2.01 198.24, -0.67 101.95, 0 32 M0 293 C-0.12 239.18, 0.37 186.39, 0 32 M0 32 C0.99 9.17, 12.63 -1.53, 32 0 M0 32 C-0.89 11.92, 10.28 0.86, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3264.701399919074 2554.748588727154) rotate(0 283.8166809082031 157.5)"><text x="283.8166809082031" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">This step might fail if the </text><text x="283.8166809082031" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">provided encryption public key </text><text x="283.8166809082031" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">was wrong or the message was </text><text x="283.8166809082031" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">encrypted incorrectly - if that </text><text x="283.8166809082031" y="180" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">happens we return a no-op </text><text x="283.8166809082031" y="225" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message to the outer </text><text x="283.8166809082031" y="270" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">processing loop</text></g><g stroke-linecap="round" transform="translate(4133.139931208976 3091.9720818801525) rotate(0 303.00402114003464 56.437682367819434)"><path d="M28.22 0 C143.78 1.69, 260.82 1.21, 577.79 0 C594.57 2.52, 604.75 11.72, 606.01 28.22 C603.6 45.65, 608.6 67.99, 606.01 84.66 C605.44 101.21, 596.19 113.28, 577.79 112.88 C390.35 112.27, 203.38 111.92, 28.22 112.88 C9.29 115.44, 1.94 104.03, 0 84.66 C-3.31 71.34, 0.44 55.73, 0 28.22 C1.01 7.21, 8.27 2.41, 28.22 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M28.22 0 C203.59 0.1, 380.2 -0.21, 577.79 0 M28.22 0 C165.04 -1.54, 302.03 -1.09, 577.79 0 M577.79 0 C597.99 -0.39, 605.73 7.95, 606.01 28.22 M577.79 0 C596.39 -0.91, 604.71 10.44, 606.01 28.22 M606.01 28.22 C605.72 48.09, 604.12 66.22, 606.01 84.66 M606.01 28.22 C606.6 48.91, 605.68 67.92, 606.01 84.66 M606.01 84.66 C606.09 104.1, 595.89 114.77, 577.79 112.88 M606.01 84.66 C607.25 104.1, 595.2 112.35, 577.79 112.88 M577.79 112.88 C397.81 111.55, 219.23 112.18, 28.22 112.88 M577.79 112.88 C376.8 113.2, 176.27 113.71, 28.22 112.88 M28.22 112.88 C10.93 113.52, -0.66 101.79, 0 84.66 M28.22 112.88 C10.9 114.7, -1.93 102.95, 0 84.66 M0 84.66 C-2.28 65.82, -1.93 46.64, 0 28.22 M0 84.66 C0.28 72.44, 0.77 60.97, 0 28.22 M0 28.22 C-0.78 10.49, 9.07 0.75, 28.22 0 M0 28.22 C-1.17 7.42, 8.5 -0.69, 28.22 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4151.960633257214 3103.409764247972) rotate(0 284.1833190917969 45)"><text x="284.1833190917969" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Verify that the signature is </text><text x="284.1833190917969" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">valid s</text></g><g stroke-linecap="round"><g transform="translate(4384.050007676986 2938.492998494392) rotate(0 0.7603224029835474 62.63012110092541)"><path d="M-0.7 -0.61 C-0.38 20.37, 1.3 105.12, 1.64 126.02 M1.14 1.68 C1.33 22.32, 0.86 103.6, 0.76 124.29" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4384.050007676986 2938.492998494392) rotate(0 0.7603224029835474 62.63012110092541)"><path d="M-9.36 96.05 C-7.52 104.23, -2.4 111.71, 0.76 124.29 M-9.36 96.05 C-5.96 103.16, -4.15 110, 0.76 124.29" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4384.050007676986 2938.492998494392) rotate(0 0.7603224029835474 62.63012110092541)"><path d="M11.16 96.16 C7.25 104.19, 6.61 111.64, 0.76 124.29 M11.16 96.16 C9.2 103.39, 5.65 110.21, 0.76 124.29" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(4156.295115598266 3362.7981630062095) rotate(0 260.7925230102903 63.13697912155658)"><path d="M31.57 0 C158.08 -1.63, 286.71 -3.11, 490.02 0 C508.33 -2.17, 518.95 13.36, 521.59 31.57 C520.99 50.31, 522.86 68.33, 521.59 94.71 C520.86 114.76, 511.55 125.47, 490.02 126.27 C358.35 129.3, 223.93 129.78, 31.57 126.27 C9.09 123.41, 0.49 116.64, 0 94.71 C-1.46 80.5, -3.02 61.26, 0 31.57 C3.35 11.01, 12.67 -0.39, 31.57 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M31.57 0 C143.14 -0.33, 253.15 -0.02, 490.02 0 M31.57 0 C203.15 0.08, 374.82 0.24, 490.02 0 M490.02 0 C509.93 0.9, 522 10.38, 521.59 31.57 M490.02 0 C510.85 -0.29, 523.63 8.4, 521.59 31.57 M521.59 31.57 C523.33 57.54, 523.45 80.35, 521.59 94.71 M521.59 31.57 C521.25 50.54, 522.15 67.89, 521.59 94.71 M521.59 94.71 C520.36 115.29, 511.6 124.53, 490.02 126.27 M521.59 94.71 C520.23 114.58, 510.99 127.94, 490.02 126.27 M490.02 126.27 C318.13 123.29, 144.89 123.54, 31.57 126.27 M490.02 126.27 C331.68 126.57, 173.95 127.34, 31.57 126.27 M31.57 126.27 C8.84 125.83, 0.65 116.98, 0 94.71 M31.57 126.27 C9.82 124.05, -0.07 113.93, 0 94.71 M0 94.71 C-0.67 78.22, -0.89 61.72, 0 31.57 M0 94.71 C0.08 80.98, -0.27 65.64, 0 31.57 M0 31.57 C-0.79 9.92, 8.75 1.28, 31.57 0 M0 31.57 C-0.89 9.37, 10.77 0.06, 31.57 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4251.037635556799 3403.435142127766) rotate(0 166.0500030517578 22.5)"><text x="166.0500030517578" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">4. Verify the nonce</text></g><g stroke-linecap="round"><g transform="translate(4410.892185080746 3260.2215621431005) rotate(0 -0.29064936048825984 38.99187643958885)"><path d="M0.25 0.89 C0.31 13.93, 0.42 65.04, 0.25 77.75 M-1.08 0.32 C-1.09 13.58, -0.17 66.22, -0.26 79.16" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4410.892185080746 3260.2215621431005) rotate(0 -0.29064936048825984 38.99187643958885)"><path d="M-10.72 51.04 C-6.33 60.51, -5.2 66.95, -0.26 79.16 M-10.72 51.04 C-8.93 57.93, -5.78 63.8, -0.26 79.16" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4410.892185080746 3260.2215621431005) rotate(0 -0.29064936048825984 38.99187643958885)"><path d="M9.8 50.9 C8.28 60.45, 3.5 66.93, -0.26 79.16 M9.8 50.9 C6.92 57.74, 5.41 63.64, -0.26 79.16" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(4156.171711732231 3620.92604233352) rotate(0 260.7925230102903 72.5)"><path d="M32 0 C157.23 3.67, 284.77 2.07, 489.59 0 C508.66 -0.41, 521.99 12.12, 521.59 32 C521.78 55.72, 520.9 80.93, 521.59 113 C524.15 136.27, 511.48 143, 489.59 145 C332.33 142.34, 173.99 142.4, 32 145 C8.47 143.87, 2.41 131.63, 0 113 C0.8 88.78, 1.47 68.27, 0 32 C-2.01 13.25, 13.12 3.15, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C178.59 -1.62, 324.87 -1.58, 489.59 0 M32 0 C151.24 -1, 270.25 -1.03, 489.59 0 M489.59 0 C512.69 -1.85, 523.39 11.73, 521.59 32 M489.59 0 C510.65 1.62, 523.1 12.43, 521.59 32 M521.59 32 C522.09 53.49, 523.36 77.48, 521.59 113 M521.59 32 C521.36 57.65, 520.5 84.53, 521.59 113 M521.59 113 C521.52 135.78, 512.43 146.3, 489.59 145 M521.59 113 C519.29 135.02, 508.86 143.08, 489.59 145 M489.59 145 C381.58 146.33, 272.18 147.25, 32 145 M489.59 145 C316.16 144.81, 142.29 144.06, 32 145 M32 145 C10.6 143.41, -0.46 132.4, 0 113 M32 145 C11.53 143.52, 1.13 132.61, 0 113 M0 113 C1.71 80.43, 1.37 47.51, 0 32 M0 113 C-0.57 96.32, -0.07 77.86, 0 32 M0 32 C0.21 10.72, 10.21 -1.13, 32 0 M0 32 C1.61 9.86, 12.14 1.28, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4162.447572144866 3625.92604233352) rotate(0 254.51666259765625 67.5)"><text x="254.51666259765625" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">5. Extract the voice credit </text><text x="254.51666259765625" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">spent and check if there's </text><text x="254.51666259765625" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">enough</text></g><g stroke-linecap="round" transform="translate(4886.568773040495 3523.809717156632) rotate(0 260.7925230102903 95)"><path d="M32 0 C176.76 2.03, 323.69 4.46, 489.59 0 C511.88 -3.37, 522.48 11.49, 521.59 32 C521.09 75.78, 526.07 122.73, 521.59 158 C522.69 178.07, 512 188.39, 489.59 190 C370.55 191.51, 248.78 192.63, 32 190 C8.12 192.04, 2 181.73, 0 158 C5.38 131.1, 1 98.89, 0 32 C1.01 13.41, 11.86 2.85, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C156.66 -0.07, 282.63 -0.99, 489.59 0 M32 0 C131.75 1.45, 230.4 1.79, 489.59 0 M489.59 0 C512.86 -0.63, 521.47 8.7, 521.59 32 M489.59 0 C508.63 -1.97, 523.69 9.17, 521.59 32 M521.59 32 C521.2 67.28, 520.4 100.31, 521.59 158 M521.59 32 C523.05 61.26, 521.37 89.91, 521.59 158 M521.59 158 C523.5 178.62, 512.86 190.59, 489.59 190 M521.59 158 C522.21 178.69, 510.22 188.32, 489.59 190 M489.59 190 C396.48 191.45, 303.34 189.73, 32 190 M489.59 190 C314.33 191.57, 139.04 192.21, 32 190 M32 190 C9.78 191.37, 0.88 180.78, 0 158 M32 190 C12.59 189.7, 2.07 179.97, 0 158 M0 158 C1.39 128.12, 0.35 95.13, 0 32 M0 158 C0.72 126.2, 1.85 94.34, 0 32 M0 32 C-1.17 11.93, 8.67 -1.52, 32 0 M0 32 C-2.07 10.43, 11.67 0.69, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4918.8112929990275 3528.809717156632) rotate(0 228.5500030517578 90)"><text x="228.5500030517578" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">voiceCreditsLeft = </text><text x="228.5500030517578" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">voiceCreditsBalance + </text><text x="228.5500030517578" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">voiceCreditsSpent ** 2 - </text><text x="228.5500030517578" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newVoteWeight ** 2</text></g><g stroke-linecap="round" transform="translate(4897.833527779062 3805.4580950979544) rotate(0 260.7925230102903 95)"><path d="M32 0 C214.83 0.11, 395.39 -2.86, 489.59 0 C509.56 -3.1, 522.04 9.17, 521.59 32 C519.3 62.71, 519.73 87.75, 521.59 158 C520.26 179.78, 510.31 192.32, 489.59 190 C359.93 192.86, 229.72 192.53, 32 190 C12.5 191.37, -1.02 176.06, 0 158 C-0.84 131.24, 4 100.69, 0 32 C3.55 7.54, 10.92 0.72, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C165.12 -0.31, 298.95 -0.76, 489.59 0 M32 0 C191.43 -0.43, 350.6 -1.1, 489.59 0 M489.59 0 C512 -0.13, 521.45 9, 521.59 32 M489.59 0 C512.99 -1.26, 523.2 9.72, 521.59 32 M521.59 32 C519.28 66.11, 522.93 102.88, 521.59 158 M521.59 32 C519.98 82.46, 520.09 131.72, 521.59 158 M521.59 158 C520.21 181.09, 510.07 191.7, 489.59 190 M521.59 158 C521.85 180.17, 511.51 190.6, 489.59 190 M489.59 190 C339.08 191.13, 188.2 190.97, 32 190 M489.59 190 C357.73 190.23, 226.34 190.03, 32 190 M32 190 C9.28 190.09, 1.54 179.99, 0 158 M32 190 C11.2 192.26, 0.79 178.55, 0 158 M0 158 C1.94 112.84, 0.04 69.56, 0 32 M0 158 C1.19 125.63, 1.25 91.73, 0 32 M0 32 C1.34 10.19, 10 -1.93, 32 0 M0 32 C-1.94 10.94, 11.51 0.5, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4963.326047737594 3877.9580950979544) rotate(0 195.3000030517578 22.5)"><text x="195.3000030517578" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">voiceCreditsLeft &gt;= 0</text></g><g stroke-linecap="round"><g transform="translate(5160.879001737067 3745.0044797057226) rotate(0 -1.1604237234726043 25.908935898705295)"><path d="M0.65 0.86 C0.18 9.63, -2.64 44.3, -3.19 52.76 M-0.47 0.27 C-0.53 8.7, -0.41 42.38, -0.94 51.13" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(5160.879001737067 3745.0044797057226) rotate(0 -1.1604237234726043 25.908935898705295)"><path d="M-9.21 26.55 C-5.49 31.72, -3.12 39.23, -0.94 51.13 M-9.21 26.55 C-7.35 33.62, -3.39 40.1, -0.94 51.13" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(5160.879001737067 3745.0044797057226) rotate(0 -1.1604237234726043 25.908935898705295)"><path d="M8.52 26.98 C7.43 32.13, 4.99 39.53, -0.94 51.13 M8.52 26.98 C5.41 33.88, 4.4 40.23, -0.94 51.13" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(4717.047665037508 3688.6807060128854) rotate(0 72.09443032683203 -18.02360758170812)"><path d="M0.79 -1.06 C24.55 -6.96, 119.78 -29.82, 143.49 -35.8 M-0.25 1 C23.81 -5.26, 121.57 -31.6, 145.84 -37.79" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4717.047665037508 3688.6807060128854) rotate(0 72.09443032683203 -18.02360758170812)"><path d="M121.19 -20.69 C128.83 -28.51, 140.36 -35.73, 145.84 -37.79 M121.19 -20.69 C125.99 -24.97, 133.01 -29.4, 145.84 -37.79" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4717.047665037508 3688.6807060128854) rotate(0 72.09443032683203 -18.02360758170812)"><path d="M115.96 -40.54 C125.52 -40.86, 139.04 -40.55, 145.84 -37.79 M115.96 -40.54 C122.07 -40.44, 130.26 -40.44, 145.84 -37.79" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(4390.36977761905 3530.974139672941) rotate(0 -1.0967246800558428 32.25549635701668)"><path d="M-0.12 -0.57 C-0.31 10.34, -0.84 54.61, -1.23 65.62 M-1.65 1.74 C-1.9 12.34, -1.38 53.76, -1.68 64.08" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4390.36977761905 3530.974139672941) rotate(0 -1.0967246800558428 32.25549635701668)"><path d="M-11.78 35.83 C-9.78 45.63, -4.05 51.69, -1.68 64.08 M-11.78 35.83 C-8.82 45.85, -3.28 57.34, -1.68 64.08" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4390.36977761905 3530.974139672941) rotate(0 -1.0967246800558428 32.25549635701668)"><path d="M8.74 35.95 C4.79 45.69, 4.58 51.71, -1.68 64.08 M8.74 35.95 C3.89 46.1, 1.62 57.55, -1.68 64.08" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(4168.539830803671 3944.6699376565343) rotate(0 260.7925230102903 72.5)"><path d="M32 0 C130.04 -4.44, 230.08 -3.47, 489.59 0 C513.14 -0.37, 518.75 10.47, 521.59 32 C519.12 56.26, 518.66 73.26, 521.59 113 C518.55 136.9, 508.46 142.4, 489.59 145 C362.25 144.98, 236.01 147.13, 32 145 C11.34 145.35, -0.93 137.25, 0 113 C2.63 90.05, 2.74 73.2, 0 32 C-2.11 11.27, 10.67 -2.94, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C128.46 0.81, 223.95 0.87, 489.59 0 M32 0 C157.06 0.3, 282.59 -0.2, 489.59 0 M489.59 0 C512.18 -0.68, 521.97 11.34, 521.59 32 M489.59 0 C510.11 1.84, 523.77 12.67, 521.59 32 M521.59 32 C520.72 58.7, 521.97 82.05, 521.59 113 M521.59 32 C521.95 63.46, 522.98 95.07, 521.59 113 M521.59 113 C521.86 135.3, 511.44 145.34, 489.59 145 M521.59 113 C522.69 134.81, 510.47 143.2, 489.59 145 M489.59 145 C368.73 145.4, 247.96 146.6, 32 145 M489.59 145 C335.78 144.51, 182.31 144.9, 32 145 M32 145 C9.53 144.42, -0.82 135.06, 0 113 M32 145 C9.29 143.12, -0.76 136.35, 0 113 M0 113 C0.24 89.28, 1.04 67.45, 0 32 M0 113 C-0.23 85.18, 0.13 57.68, 0 32 M0 32 C1.62 8.73, 11.86 -1.31, 32 0 M0 32 C-1.87 12.22, 10.55 -2.19, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4192.582353813961 3949.6699376565343) rotate(0 236.75 67.5)"><text x="236.75" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">6. Validate if the vote </text><text x="236.75" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">option is correct &gt;= 0 &lt;= </text><text x="236.75" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">maxVoteOption</text></g><g stroke-linecap="round"><g transform="translate(4417.022210944475 3820.207651744751) rotate(0 -1.5387678586857874 44.624267901888516)"><path d="M-0.66 0.57 C-1.22 15.78, -1.99 75.35, -2.44 90.22 M1.19 -0.18 C0.46 14.8, -2.14 73.96, -3.05 88.61" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4417.022210944475 3820.207651744751) rotate(0 -1.5387678586857874 44.624267901888516)"><path d="M-11.84 59.92 C-7.86 71.75, -3.9 80.89, -3.05 88.61 M-11.84 59.92 C-7.89 69.11, -6.34 79.68, -3.05 88.61" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4417.022210944475 3820.207651744751) rotate(0 -1.5387678586857874 44.624267901888516)"><path d="M8.65 60.99 C4.99 72.3, 1.29 81.04, -3.05 88.61 M8.65 60.99 C5.54 69.98, 0.02 80.19, -3.05 88.61" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(4165.4622950862995 4283.1988665674135) rotate(0 260.7925230102903 95)"><path d="M32 0 C158.08 -1.33, 286.64 0.52, 489.59 0 C507.48 -1.97, 522.3 9.66, 521.59 32 C526.51 66.68, 522.04 94.92, 521.59 158 C518.72 177.48, 509.52 188.37, 489.59 190 C362 190.89, 235.87 188.21, 32 190 C12.68 190.82, -3.26 178.03, 0 158 C-2.11 124.78, -2.42 86.39, 0 32 C0.53 7.33, 13.62 -0.08, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C186.84 0.22, 340.53 1.11, 489.59 0 M32 0 C165.62 1.1, 299.06 0.71, 489.59 0 M489.59 0 C509.68 -1.55, 521.11 10.29, 521.59 32 M489.59 0 C509.24 -1.98, 520.14 10.08, 521.59 32 M521.59 32 C521.91 58.27, 521.14 89.16, 521.59 158 M521.59 32 C522.76 80.61, 522.28 130.73, 521.59 158 M521.59 158 C523.2 177.89, 511.28 190.35, 489.59 190 M521.59 158 C521.71 179.2, 509.66 188.72, 489.59 190 M489.59 190 C385.1 188.44, 279.07 187.68, 32 190 M489.59 190 C338.3 188.47, 186.71 188.09, 32 190 M32 190 C10.12 190.55, -0.08 177.91, 0 158 M32 190 C12.78 187.86, -0.17 179.48, 0 158 M0 158 C-0.23 113.12, 0.01 71.29, 0 32 M0 158 C0.91 115.99, -0.4 74.36, 0 32 M0 32 C-1.54 10.37, 12.27 -1.92, 32 0 M0 32 C0.99 11.64, 11.79 -1.68, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4176.9381524471755 4288.1988665674135) rotate(0 249.31666564941406 90)"><text x="249.31666564941406" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">7. Create a new state leaf</text><text x="249.31666564941406" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">with the new public key (if </text><text x="249.31666564941406" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">any) and the new voice </text><text x="249.31666564941406" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">credit balance </text></g><g stroke-linecap="round"><g transform="translate(4398.556996640245 4164.891652090372) rotate(0 0 30.775357173716202)"><path d="M0.83 -1.08 C1.09 9.06, 1.34 50.91, 1.11 61.52 M-0.19 0.96 C0.04 11.24, 0.98 53.07, 0.74 63.04" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4398.556996640245 4164.891652090372) rotate(0 0 30.775357173716202)"><path d="M-9.61 34.88 C-8.51 44.13, -4.01 48.83, 0.74 63.04 M-9.61 34.88 C-6.6 45.15, -2.68 56.47, 0.74 63.04" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4398.556996640245 4164.891652090372) rotate(0 0 30.775357173716202)"><path d="M10.91 34.82 C6.56 44.22, 5.62 48.94, 0.74 63.04 M10.91 34.82 C5.97 44.94, 1.94 56.29, 0.74 63.04" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(4171.617366521043 4608.460402630406) rotate(0 260.7925230102903 95)"><path d="M32 0 C204.07 -0.18, 372.94 0.87, 489.59 0 C514.02 1.89, 523.94 7.66, 521.59 32 C518.51 66.85, 519.11 101.95, 521.59 158 C523.7 176.68, 510.68 187.6, 489.59 190 C340.87 193, 190.67 193.08, 32 190 C13.91 189.72, -0.51 179.78, 0 158 C3.53 132.67, -1.13 110.41, 0 32 C2.89 13.36, 11.08 -1.77, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C177.62 -2.92, 323.01 -2.69, 489.59 0 M32 0 C136.9 1.7, 242.81 1.57, 489.59 0 M489.59 0 C511.98 0.22, 523.51 9.92, 521.59 32 M489.59 0 C511.33 -0.32, 523 10.43, 521.59 32 M521.59 32 C520.79 61.86, 520.33 92.01, 521.59 158 M521.59 32 C521.68 64.6, 523.04 95.33, 521.59 158 M521.59 158 C520.62 177.57, 509.82 191.96, 489.59 190 M521.59 158 C519.75 180.57, 510.36 190.43, 489.59 190 M489.59 190 C397.42 191.48, 304.79 190.7, 32 190 M489.59 190 C313.15 188.96, 135.87 189.3, 32 190 M32 190 C10.08 191.75, 0.46 177.67, 0 158 M32 190 C9.41 192.07, -0.78 177.15, 0 158 M0 158 C1.25 114.41, 1.38 75.83, 0 32 M0 158 C0.16 126.33, 1.74 94.56, 0 32 M0 32 C1.21 8.87, 11.5 -1.66, 32 0 M0 32 C-0.21 12.86, 9.35 -1.76, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4182.326561284262 4635.960402630406) rotate(0 250.0833282470703 67.5)"><text x="250.0833282470703" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">8. Update the ballot with </text><text x="250.0833282470703" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the new votes and the new </text><text x="250.0833282470703" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">nonce</text></g><g stroke-linecap="round"><g transform="translate(4395.479460922874 4509.575652435994) rotate(0 0 33.85289289108778)"><path d="M0.97 0.23 C0.93 11.52, 0.63 56.2, 0.63 67.44 M0.02 -0.69 C-0.2 10.8, -0.1 57.22, 0.01 68.84" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4395.479460922874 4509.575652435994) rotate(0 0 33.85289289108778)"><path d="M-10.39 40.7 C-6.2 52.12, -3.16 63.14, 0.01 68.84 M-10.39 40.7 C-7.42 49.91, -3.94 56.52, 0.01 68.84" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(4395.479460922874 4509.575652435994) rotate(0 0 33.85289289108778)"><path d="M10.13 40.59 C6.69 52.23, 2.09 63.28, 0.01 68.84 M10.13 40.59 C6.98 50.05, 4.33 56.69, 0.01 68.84" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(2702.2221744332737 1065.0138860289176) rotate(0 -56.898996914826625 43.66667205091346)"><path d="M-0.96 0.37 C-20.06 14.96, -94.68 73.89, -113.47 88.37 M0.73 -0.48 C-18.59 13.72, -95.06 71.95, -114.25 86.79" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2702.2221744332737 1065.0138860289176) rotate(0 -56.898996914826625 43.66667205091346)"><path d="M-98.11 61.5 C-103.65 71.84, -108.86 81.38, -114.25 86.79 M-98.11 61.5 C-103.37 69.12, -108.14 76.62, -114.25 86.79" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2702.2221744332737 1065.0138860289176) rotate(0 -56.898996914826625 43.66667205091346)"><path d="M-85.63 77.79 C-96.18 81.64, -106.29 84.79, -114.25 86.79 M-85.63 77.79 C-94.46 80.61, -102.92 83.3, -114.25 86.79" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(2434.929212182228 1054.4280261377871) rotate(0 48.95960199647868 48.95960199647874)"><path d="M-0.08 -0.34 C16.1 15.91, 80.42 81.01, 96.74 97.55 M-1.59 -1.57 C14.97 14.85, 82.4 82.46, 98.83 98.9" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2434.929212182228 1054.4280261377871) rotate(0 48.95960199647868 48.95960199647874)"><path d="M71.65 86.2 C78.46 87.69, 85.79 92.93, 98.83 98.9 M71.65 86.2 C82.48 91.48, 92.25 96.59, 98.83 98.9" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2434.929212182228 1054.4280261377871) rotate(0 48.95960199647868 48.95960199647874)"><path d="M86.17 71.7 C89.05 77.11, 92.44 86.28, 98.83 98.9 M86.17 71.7 C91.43 82.42, 95.66 93.06, 98.83 98.9" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(2122.7240309882905 621.1049847803395) rotate(0 -144.0026116545082 2.0571801664930263)"><path d="M-0.07 0.62 C-48.17 1.38, -240.68 3.35, -288.85 3.83 M-1.56 -0.1 C-49.26 0.91, -239.05 4.45, -286.58 5.22" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2122.7240309882905 621.1049847803395) rotate(0 -144.0026116545082 2.0571801664930263)"><path d="M-258.58 -5.53 C-265.48 -3.93, -274.84 -1.28, -286.58 5.22 M-258.58 -5.53 C-265.71 -3.75, -272.09 -1.2, -286.58 5.22" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2122.7240309882905 621.1049847803395) rotate(0 -144.0026116545082 2.0571801664930263)"><path d="M-258.21 14.98 C-265.09 10.82, -274.55 7.72, -286.58 5.22 M-258.21 14.98 C-265.24 11.63, -271.72 9.04, -286.58 5.22" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(1941.692176336909 516.4746971216626) rotate(0 44.18333435058594 22.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Tally</text></g><g stroke-linecap="round" transform="translate(3225.1421506857587 1676.5771873380963) rotate(0 272.14759196711384 197.76647841846898)"><path d="M341.25 49.5 C388.89 87.22, 446.72 128.21, 476.05 148.5 C547.19 197.73, 542.64 197.23, 476.05 247.5 C446.86 267.74, 415.63 292.63, 341.25 346.03 C276.55 399.05, 276.14 394.85, 204.75 346.03 C153.8 309.42, 106.76 275.56, 68.25 247.5 C-0.27 197.57, 1.86 198.63, 68.25 148.5 C121.57 113.76, 171.77 76.8, 204.75 49.5 C270.71 -0.66, 275.56 -2.59, 341.25 49.5" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M341.25 49.5 C382.85 79.95, 426.03 109.88, 476.05 148.5 M341.25 49.5 C390.47 88.21, 440.09 125.05, 476.05 148.5 M476.05 148.5 C545.19 198.39, 542.96 198.37, 476.05 247.5 M476.05 148.5 C546 196.78, 543.1 199.73, 476.05 247.5 M476.05 247.5 C448.83 268.27, 420.27 289.57, 341.25 346.03 M476.05 247.5 C436.85 274.79, 399.4 302.08, 341.25 346.03 M341.25 346.03 C272.8 395.78, 273.07 395.84, 204.75 346.03 M341.25 346.03 C272.65 396.28, 274.62 397.06, 204.75 346.03 M204.75 346.03 C153.39 306.94, 97.13 269.06, 68.25 247.5 M204.75 346.03 C172.21 323.04, 139.84 299.42, 68.25 247.5 M68.25 247.5 C1.29 199.07, 0.97 196.62, 68.25 148.5 M68.25 247.5 C-2.26 197.66, 2.07 199.74, 68.25 148.5 M68.25 148.5 C108.81 117.78, 150.12 89.4, 204.75 49.5 M68.25 148.5 C112.6 117.06, 157.58 84.97, 204.75 49.5 M204.75 49.5 C271.59 0.05, 274.85 -0.97, 341.25 49.5 M204.75 49.5 C273.8 2.11, 273.65 1.5, 341.25 49.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3380.7159466693156 1829.4604265473308) rotate(0 116.5 45)"><text x="116.5" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">4. Generate </text><text x="116.5" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">circuit inputs</text></g><g stroke-linecap="round" transform="translate(1160.6460401616528 98.04836605836067) rotate(0 217.3787705561797 235)"><path d="M272.5 59 C299.62 85.02, 317.17 109.77, 380.26 177 C437.4 238.13, 436.83 238.32, 380.26 295 C354.6 324.87, 331.54 353.5, 272.5 411 C220.47 467.2, 215.95 472.01, 163.5 411 C139.59 381.37, 107.76 351.63, 54.5 295 C2.62 239.08, 0.79 235.05, 54.5 177 C83.57 144.05, 117.7 111.1, 163.5 59 C214.74 -3.36, 220.05 2.09, 272.5 59" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M272.5 59 C300.8 91.01, 329.03 120.37, 380.26 177 M272.5 59 C301.04 89.64, 329.89 120.04, 380.26 177 M380.26 177 C433.34 235.22, 434.68 234.1, 380.26 295 M380.26 177 C436.41 237.53, 435.88 233.77, 380.26 295 M380.26 295 C338.98 340.18, 297.21 384.45, 272.5 411 M380.26 295 C353.87 323.65, 326.28 352.65, 272.5 411 M272.5 411 C219.5 468.4, 219.39 468.94, 163.5 411 M272.5 411 C216.27 468.59, 217.78 471.96, 163.5 411 M163.5 411 C142.15 387.06, 117.44 362.09, 54.5 295 M163.5 411 C138.33 383.37, 111.37 357.23, 54.5 295 M54.5 295 C-1.32 236.72, 0.27 234.09, 54.5 177 M54.5 295 C-0.17 235.14, -1.14 237.32, 54.5 177 M54.5 177 C97.17 133.85, 138.26 87.11, 163.5 59 M54.5 177 C85.75 144.32, 116.81 112.15, 163.5 59 M163.5 59 C218.11 -1.35, 219.81 -1.46, 272.5 59 M163.5 59 C216.24 -0.28, 217.73 -1.27, 272.5 59" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1282.0020895632779 288.04836605836067) rotate(0 95.83333587646484 45)"><text x="95.83333587646484" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. Process </text><text x="95.83333587646484" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messages</text></g><g stroke-linecap="round" transform="translate(1098.7565794265697 767.570123369537) rotate(0 272.14759196711384 197.76647841846895)"><path d="M341.25 49.5 C377.36 77.26, 415.82 110.66, 476.05 148.5 C547.7 195.28, 546.02 194.7, 476.05 247.5 C442.54 274.33, 406.95 298.21, 341.25 346.03 C270.74 396.7, 272.16 397.74, 204.75 346.03 C165.94 317.26, 120.77 287.37, 68.25 247.5 C-1.63 194.77, 0.56 197.76, 68.25 148.5 C109.25 118.83, 146.16 92.77, 204.75 49.5 C269.68 0.11, 272.31 -0.73, 341.25 49.5" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M341.25 49.5 C371.42 71.39, 403.31 92.43, 476.05 148.5 M341.25 49.5 C383.56 81.51, 423.96 111.27, 476.05 148.5 M476.05 148.5 C542.31 199.87, 542.51 196.97, 476.05 247.5 M476.05 148.5 C546.53 196.26, 543.39 197.37, 476.05 247.5 M476.05 247.5 C428.1 283.48, 378 319.88, 341.25 346.03 M476.05 247.5 C446.43 266.78, 418.07 287.83, 341.25 346.03 M341.25 346.03 C271.38 396.07, 274.08 396.69, 204.75 346.03 M341.25 346.03 C275.01 395.26, 272.41 393.27, 204.75 346.03 M204.75 346.03 C171.42 319.67, 133.78 294.01, 68.25 247.5 M204.75 346.03 C167.68 318.21, 129.58 291.83, 68.25 247.5 M68.25 247.5 C0.16 199.15, -0.35 197.33, 68.25 148.5 M68.25 247.5 C-0.87 198.71, 0.75 197.8, 68.25 148.5 M68.25 148.5 C106.71 119.37, 150.73 88.89, 204.75 49.5 M68.25 148.5 C115.62 114.28, 162.47 79.74, 204.75 49.5 M204.75 49.5 C272.72 -0.23, 274.52 0.07, 341.25 49.5 M204.75 49.5 C275.03 1.9, 271.03 -1.2, 341.25 49.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1242.0637128124704 875.4533625787715) rotate(0 128.76666259765625 90)"><text x="128.76666259765625" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Generate </text><text x="128.76666259765625" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">commitments </text><text x="128.76666259765625" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">of the current</text><text x="128.76666259765625" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">state</text></g><g stroke-linecap="round"><g transform="translate(1036.532903079994 929.6820097542904) rotate(0 -88.45874715919786 10.28590083246479)"><path d="M0.02 1.02 C-29.37 4.11, -147.65 16.08, -176.97 19.52 M-1.43 0.52 C-30.93 3.63, -148.82 17.28, -177.95 20.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1036.532903079994 929.6820097542904) rotate(0 -88.45874715919786 10.28590083246479)"><path d="M-151.1 7.13 C-155.97 10.37, -166.12 15.41, -177.95 20.5 M-151.1 7.13 C-160.62 13.05, -171 16.88, -177.95 20.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1036.532903079994 929.6820097542904) rotate(0 -88.45874715919786 10.28590083246479)"><path d="M-148.78 27.52 C-154.4 25.68, -165.12 25.65, -177.95 20.5 M-148.78 27.52 C-159.26 25.52, -170.54 21.42, -177.95 20.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(28.514621498436554 699.2778311070772) rotate(0 183.08903481787456 113.14490915711372)"><path d="M32 0 C109.79 0.58, 184.41 0.7, 334.18 0 M32 0 C144.77 1.09, 256.5 2.24, 334.18 0 M334.18 0 C357.06 -1.72, 364.54 9.5, 366.18 32 M334.18 0 C354.21 1.8, 365.04 9.94, 366.18 32 M366.18 32 C367.48 79.44, 365.77 123.4, 366.18 194.29 M366.18 32 C366.83 90.03, 367.01 147.18, 366.18 194.29 M366.18 194.29 C365.35 213.89, 353.97 225.72, 334.18 226.29 M366.18 194.29 C366.18 214.29, 354.77 224, 334.18 226.29 M334.18 226.29 C236.01 225.69, 136.02 225.97, 32 226.29 M334.18 226.29 C217.35 224.43, 102.12 224.66, 32 226.29 M32 226.29 C10.34 224.85, -0.85 216.79, 0 194.29 M32 226.29 C10.63 226.63, -0.19 215.12, 0 194.29 M0 194.29 C-0.83 143.21, 0.45 92.57, 0 32 M0 194.29 C0.57 151.26, -0.51 109, 0 32 M0 32 C0.35 11.7, 11.91 0.66, 32 0 M0 32 C-1.61 12.71, 9.26 -0.42, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(35.75365021279549 744.9227402641909) rotate(0 175.85000610351562 67.5)"><text x="175.85000610351562" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">currentPerVOSpentV</text><text x="175.85000610351562" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">oiceCreditsCommitme</text><text x="175.85000610351562" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">nt</text></g><g stroke-linecap="round" transform="translate(10 976.9971535836289) rotate(0 183.08903481787456 113.14490915711372)"><path d="M32 0 C96.91 0.82, 163.57 2.61, 334.18 0 M32 0 C121.46 -1.93, 210.66 -1.35, 334.18 0 M334.18 0 C356.78 1.06, 367.22 9.74, 366.18 32 M334.18 0 C353.33 1.16, 366.55 11.36, 366.18 32 M366.18 32 C366.81 71.29, 366.61 111.11, 366.18 194.29 M366.18 32 C365.91 83.16, 366.35 135.15, 366.18 194.29 M366.18 194.29 C365.51 216.84, 354.86 226.48, 334.18 226.29 M366.18 194.29 C366 214.2, 355.3 226.06, 334.18 226.29 M334.18 226.29 C224.9 226.62, 115.63 226.51, 32 226.29 M334.18 226.29 C229.33 228.06, 124.78 228.27, 32 226.29 M32 226.29 C11.06 224.89, 1.91 214.19, 0 194.29 M32 226.29 C8.51 228.06, 1.95 216.72, 0 194.29 M0 194.29 C-0.38 146.46, -0.08 101.7, 0 32 M0 194.29 C-0.67 134.65, -0.94 75.52, 0 32 M0 32 C-1.74 11.49, 12.2 1.08, 32 0 M0 32 C0.33 10.56, 9.87 -1.28, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(20.28903176611675 1045.1420627407426) rotate(0 172.8000030517578 45)"><text x="172.8000030517578" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">currentSpentVoiceCr</text><text x="172.8000030517578" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">editsCommitment</text></g><g stroke-linecap="round" transform="translate(430.0341144118411 982.2195952584372) rotate(0 183.08903481787456 113.14490915711372)"><path d="M32 0 C109.03 1.61, 187.69 0.17, 334.18 0 M32 0 C143.62 -1.27, 256.37 -1.22, 334.18 0 M334.18 0 C353.82 -1.4, 364.37 10.57, 366.18 32 M334.18 0 C355 -0.56, 364.11 10.27, 366.18 32 M366.18 32 C365.5 89.72, 364.3 151.52, 366.18 194.29 M366.18 32 C365.94 79.62, 367.28 125.85, 366.18 194.29 M366.18 194.29 C367.34 215.49, 354.12 227.19, 334.18 226.29 M366.18 194.29 C368.37 216.64, 357.77 224.76, 334.18 226.29 M334.18 226.29 C219.4 225.79, 107.81 228.2, 32 226.29 M334.18 226.29 C221.62 225.35, 107.85 224.27, 32 226.29 M32 226.29 C10.36 228.19, 0.31 214.02, 0 194.29 M32 226.29 C11.64 224.02, 0.96 214.23, 0 194.29 M0 194.29 C-0.46 143.22, -2.56 95.58, 0 32 M0 194.29 C1.4 144.66, 1.04 96.38, 0 32 M0 32 C0.72 11.99, 10 1.53, 32 0 M0 32 C-2.12 10.79, 9.31 0.79, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(435.72315533323126 1050.364504415551) rotate(0 177.39999389648438 45)"><text x="177.39999389648438" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">currentTallyCommitm</text><text x="177.39999389648438" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">ent</text></g><g stroke-linecap="round" transform="translate(429.66475396456735 701.3350112735711) rotate(0 183.08903481787456 113.14490915711372)"><path d="M32 0 C113.97 0.87, 195.95 2, 334.18 0 M32 0 C149.56 0.31, 268.14 -0.49, 334.18 0 M334.18 0 C355.72 1.26, 365.76 11.83, 366.18 32 M334.18 0 C354.5 0.44, 365.46 8.54, 366.18 32 M366.18 32 C368.97 86.7, 368.53 140.72, 366.18 194.29 M366.18 32 C365.31 79.26, 364.74 124, 366.18 194.29 M366.18 194.29 C366 216.36, 356.81 227.01, 334.18 226.29 M366.18 194.29 C364.91 216, 357.55 228.52, 334.18 226.29 M334.18 226.29 C254.04 224.83, 172.31 225.18, 32 226.29 M334.18 226.29 C263.44 226.67, 192.76 226.16, 32 226.29 M32 226.29 C12.06 225.6, 0.44 216.63, 0 194.29 M32 226.29 C12.7 228.23, 0.72 217.18, 0 194.29 M0 194.29 C1.61 137.04, 3.1 80.02, 0 32 M0 194.29 C-0.67 148.45, -1.01 102.69, 0 32 M0 32 C-0.3 9.59, 9.18 -1.02, 32 0 M0 32 C0.53 10.56, 11.14 2.15, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(438.5537918341997 769.4799204306848) rotate(0 174.1999969482422 45)"><text x="174.1999969482422" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">currentResultsComm</text><text x="174.1999969482422" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">itment</text></g><g stroke-linecap="round" transform="translate(1105.877218750717 1281.0750486852637) rotate(0 272.14759196711384 197.76647841846895)"><path d="M341.25 49.5 C367.6 76.95, 396.94 94.82, 476.05 148.5 C544.07 200.51, 542.09 195.45, 476.05 247.5 C432.03 282.43, 387.34 309.76, 341.25 346.03 C273.5 395.35, 273.4 393.85, 204.75 346.03 C170.76 318.31, 140.14 301.04, 68.25 247.5 C-2.93 199.43, -2.03 197.38, 68.25 148.5 C96.94 128.14, 125.09 107.1, 204.75 49.5 C276.13 0.28, 272.1 -2.93, 341.25 49.5" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M341.25 49.5 C373.82 75, 410.05 99.19, 476.05 148.5 M341.25 49.5 C368.33 69.69, 395.2 90.62, 476.05 148.5 M476.05 148.5 C542.8 197.41, 544.7 199.88, 476.05 247.5 M476.05 148.5 C545.65 199.9, 543.13 196.1, 476.05 247.5 M476.05 247.5 C436.75 274.27, 397.26 305.65, 341.25 346.03 M476.05 247.5 C443.79 270.85, 411.94 295.52, 341.25 346.03 M341.25 346.03 C271.56 393.92, 274.63 394.98, 204.75 346.03 M341.25 346.03 C274.61 393.5, 273.75 397.27, 204.75 346.03 M204.75 346.03 C176.42 324.73, 144.91 300.63, 68.25 247.5 M204.75 346.03 C153.67 309.05, 104.6 273.12, 68.25 247.5 M68.25 247.5 C1.43 196.8, 1.77 199.44, 68.25 148.5 M68.25 247.5 C-1.34 199.49, 1.73 196.56, 68.25 148.5 M68.25 148.5 C104.12 122.13, 142.99 91.91, 204.75 49.5 M68.25 148.5 C122.6 108.61, 174.42 71.07, 204.75 49.5 M204.75 49.5 C273.77 1.72, 274.18 -0.05, 341.25 49.5 M204.75 49.5 C274.22 1.64, 274.02 -1.52, 341.25 49.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1274.7510177860318 1411.4582878944982) rotate(0 103.19999694824219 67.5)"><text x="103.19999694824219" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Process </text><text x="103.19999694824219" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the next </text><text x="103.19999694824219" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batch</text></g><g stroke-linecap="round"><g transform="translate(1112.7047609314545 1521.6777464310567) rotate(0 -126.54467608492541 59.89430046490236)"><path d="M-0.32 0.31 C-42.27 20.3, -210.18 99.86, -252.31 119.75 M1.71 -0.57 C-40.28 19.64, -210.25 101.02, -252.85 121.27" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1112.7047609314545 1521.6777464310567) rotate(0 -126.54467608492541 59.89430046490236)"><path d="M-231.83 99.86 C-236.63 106.49, -242.5 110.59, -252.85 121.27 M-231.83 99.86 C-238.02 104.98, -243.18 111.33, -252.85 121.27" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1112.7047609314545 1521.6777464310567) rotate(0 -126.54467608492541 59.89430046490236)"><path d="M-222.99 118.38 C-229.98 120.33, -238.08 119.76, -252.85 121.27 M-222.99 118.38 C-231.65 118.07, -239.38 119.05, -252.85 121.27" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(198.40732001475544 2397.313254733226) rotate(0 183.08903481787456 113.14490915711372)"><path d="M32 0 C127.08 -2.72, 224.3 -1.61, 334.18 0 M32 0 C102.4 0.88, 172.86 2.09, 334.18 0 M334.18 0 C356.49 1.85, 367.11 10.01, 366.18 32 M334.18 0 C357.14 2.15, 365.99 12.72, 366.18 32 M366.18 32 C364.1 91.54, 365.08 151.17, 366.18 194.29 M366.18 32 C365.55 71.81, 364.58 110.28, 366.18 194.29 M366.18 194.29 C364.76 214.42, 356.11 227.41, 334.18 226.29 M366.18 194.29 C366.99 216.95, 356.6 224.45, 334.18 226.29 M334.18 226.29 C248.61 227.76, 163.03 226.29, 32 226.29 M334.18 226.29 C238.4 227.98, 141.83 228.07, 32 226.29 M32 226.29 C9.64 225.9, 0.38 216.13, 0 194.29 M32 226.29 C10.28 224.95, 1.1 215.35, 0 194.29 M0 194.29 C1.49 135.34, 1.74 78.46, 0 32 M0 194.29 C-0.3 133.92, 0.48 74.41, 0 32 M0 32 C1.53 10.24, 9.07 -0.19, 32 0 M0 32 C-0.42 10.39, 11.78 0.82, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(205.6630265855597 2442.95816389034) rotate(0 175.8333282470703 67.5)"><text x="175.8333282470703" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">add to total votes</text><text x="175.8333282470703" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">for x project the </text><text x="175.8333282470703" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">current vote</text></g><g stroke-linecap="round" transform="translate(465.12200440206425 2115.1925816681915) rotate(0 183.08903481787456 113.14490915711372)"><path d="M32 0 C101.14 -0.13, 171.29 -0.81, 334.18 0 M32 0 C101.91 -1.46, 171.45 -2.38, 334.18 0 M334.18 0 C356.93 1.87, 366.01 12.45, 366.18 32 M334.18 0 C357.16 -1.3, 367.06 9.33, 366.18 32 M366.18 32 C364.88 72.94, 364.44 118.59, 366.18 194.29 M366.18 32 C365.04 87.34, 366.05 144.43, 366.18 194.29 M366.18 194.29 C366.89 216.78, 356.45 224.69, 334.18 226.29 M366.18 194.29 C365.77 214.8, 356.66 225.9, 334.18 226.29 M334.18 226.29 C236.19 225.82, 139.13 224.92, 32 226.29 M334.18 226.29 C263.1 224.97, 192.92 225.3, 32 226.29 M32 226.29 C10.33 225.13, 0.96 215.38, 0 194.29 M32 226.29 C12.07 224.95, -0.31 216.24, 0 194.29 M0 194.29 C0.78 148.83, 0.04 102.74, 0 32 M0 194.29 C-0.13 147.48, -1.69 101.01, 0 32 M0 32 C-0.37 10.43, 11.63 0.72, 32 0 M0 32 C-0.62 12.83, 9.54 -1.29, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(471.2610422716966 2160.8374908253054) rotate(0 176.9499969482422 67.5)"><text x="176.9499969482422" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">add to the spent </text><text x="176.9499969482422" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">per this vote option</text><text x="176.9499969482422" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the squared vote</text></g><g stroke-linecap="round" transform="translate(20.36935211050786 2098.006663178551) rotate(0 183.08903481787456 113.14490915711372)"><path d="M32 0 C100.81 -0.4, 166.45 -0.05, 334.18 0 M32 0 C151.39 -2.38, 270.02 -2.39, 334.18 0 M334.18 0 C354.76 -0.18, 364.77 9.52, 366.18 32 M334.18 0 C353.62 -1.83, 367.8 11.69, 366.18 32 M366.18 32 C364.26 77.03, 366.58 121.57, 366.18 194.29 M366.18 32 C366.77 89.7, 367.44 147.95, 366.18 194.29 M366.18 194.29 C366.68 214.91, 354 226.64, 334.18 226.29 M366.18 194.29 C368.05 217.89, 355.98 224.77, 334.18 226.29 M334.18 226.29 C263.83 225.43, 194.42 224.91, 32 226.29 M334.18 226.29 C261.51 225.6, 187.86 226.22, 32 226.29 M32 226.29 C10.28 227.08, 1.31 217.05, 0 194.29 M32 226.29 C10.76 227.07, -0.53 215.33, 0 194.29 M0 194.29 C-1.4 135.09, -1.16 78.72, 0 32 M0 194.29 C-1.05 148.47, -1.27 100.21, 0 32 M0 32 C-0.13 8.93, 10.72 0, 32 0 M0 32 C1.1 10.65, 11.58 0.61, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(26.441724330726174 2143.6515723356647) rotate(0 177.01666259765625 67.5)"><text x="177.01666259765625" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">add to the total </text><text x="177.01666259765625" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">spent voice credits </text><text x="177.01666259765625" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the squared vote</text></g><g stroke-linecap="round" transform="translate(373.17925293129383 1603.5445673873817) rotate(0 183.08903481787456 140)"><path d="M32 0 C98.17 -0.4, 163.62 -2.81, 334.18 0 M32 0 C138.11 -0.04, 245.62 -0.58, 334.18 0 M334.18 0 C356.82 -0.21, 365.66 12.45, 366.18 32 M334.18 0 C353.97 1.53, 368.01 11.5, 366.18 32 M366.18 32 C366.6 101.71, 366.92 168.95, 366.18 248 M366.18 32 C367.48 77.02, 366.82 123.69, 366.18 248 M366.18 248 C366.48 270.95, 353.97 280.51, 334.18 280 M366.18 248 C366.54 269.66, 357.49 282.14, 334.18 280 M334.18 280 C238.02 279.98, 141.51 280.82, 32 280 M334.18 280 C257.64 280.65, 181.47 281.59, 32 280 M32 280 C9.54 278.85, -1.94 271.26, 0 248 M32 280 C9.9 278.58, 1.33 268.67, 0 248 M0 248 C0.68 178.46, 2.63 111.76, 0 32 M0 248 C0.32 200.36, -0.1 154.12, 0 32 M0 32 C-0.37 11.97, 10.8 -1.61, 32 0 M0 32 C1.5 9.69, 12.64 1.48, 32 0" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(386.2682877491684 1608.5445673873817) rotate(0 170 135)"><text x="170" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">for each ballot in </text><text x="170" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">this batch, loop </text><text x="170" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">through all of the </text><text x="170" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">vote options and </text><text x="170" y="180" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">do the processing </text><text x="170" y="225" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">below</text></g><g stroke-linecap="round"><g transform="translate(513.6355198039269 1949.3108002193421) rotate(0 1.8724999428559386 61.792498114242676)"><path d="M0.72 0.99 C1.26 21.66, 3.76 103.92, 4.31 124.51 M-0.36 0.47 C-0.02 20.77, 3.03 102.51, 3.65 122.87" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(513.6355198039269 1949.3108002193421) rotate(0 1.8724999428559386 61.792498114242676)"><path d="M-7.56 95.05 C-1.45 106.72, 2.8 117.02, 3.65 122.87 M-7.56 95.05 C-2.28 106.16, 1.11 116.86, 3.65 122.87" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(513.6355198039269 1949.3108002193421) rotate(0 1.8724999428559386 61.792498114242676)"><path d="M12.94 94.35 C11.1 106.41, 7.39 116.99, 3.65 122.87 M12.94 94.35 C10.51 105.69, 6.17 116.64, 3.65 122.87" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(3508.765966892381 517.9951593168344) rotate(0 1.8724999428557112 24.342499257125894)"><path d="M-0.49 0.3 C-0.01 8.35, 2.64 40.44, 3.39 48.53 M0.26 -0.02 C0.87 8.08, 3.85 40.89, 4.44 49.14" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3508.765966892381 517.9951593168344) rotate(0 1.8724999428557112 24.342499257125894)"><path d="M-5.76 26.96 C-1.17 35.02, 1.97 44.8, 4.44 49.14 M-5.76 26.96 C-2.04 33.68, 0.67 41.35, 4.44 49.14" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3508.765966892381 517.9951593168344) rotate(0 1.8724999428557112 24.342499257125894)"><path d="M10.88 25.59 C8.98 34.11, 5.63 44.43, 4.44 49.14 M10.88 25.59 C9.18 32.82, 6.45 40.93, 4.44 49.14" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(3493.7859673495345 1061.020142745027) rotate(0 0 31.83249902854925)"><path d="M0.03 0.78 C0.03 11.3, -0.94 52.26, -0.99 62.55 M-1.41 0.14 C-0.96 10.82, 1.16 52.99, 1.2 63.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3493.7859673495345 1061.020142745027) rotate(0 0 31.83249902854925)"><path d="M-9.92 35.63 C-6.32 40.1, -7.03 47.45, 1.2 63.5 M-9.92 35.63 C-8.19 42.22, -5.1 46.99, 1.2 63.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3493.7859673495345 1061.020142745027) rotate(0 0 31.83249902854925)"><path d="M10.59 35.01 C9.68 39.62, 4.46 47.1, 1.2 63.5 M10.59 35.01 C8.14 41.87, 7.05 46.77, 1.2 63.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(3508.765966892381 1566.595127316103) rotate(0 0 39.322498799972664)"><path d="M-0.56 -0.71 C-0.76 12.61, -0.37 65.95, -0.16 79.14 M1.35 1.54 C0.88 14.56, -1.01 64.26, -1.19 77.28" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3508.765966892381 1566.595127316103) rotate(0 0 39.322498799972664)"><path d="M-10.67 48.82 C-8.36 59.61, -2.69 72.04, -1.19 77.28 M-10.67 48.82 C-8.17 56.56, -5.56 64.09, -1.19 77.28" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(3508.765966892381 1566.595127316103) rotate(0 0 39.322498799972664)"><path d="M9.84 49.38 C4.22 59.86, 1.96 72.07, -1.19 77.28 M9.84 49.38 C6.51 57.08, 3.29 64.46, -1.19 77.28" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1355.3910326081686 596.6401569167795) rotate(0 -1.8724999428557112 65.53749799995433)"><path d="M-0.45 0.65 C-1.11 22.68, -4.27 110.44, -4.91 132.17 M1.52 -0.06 C1.29 21.67, -1.67 108.56, -2.81 130.62" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1355.3910326081686 596.6401569167795) rotate(0 -1.8724999428557112 65.53749799995433)"><path d="M-11.9 102.03 C-8.83 106.44, -6.07 113.83, -2.81 130.62 M-11.9 102.03 C-9.79 110.8, -5.89 119.18, -2.81 130.62" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1355.3910326081686 596.6401569167795) rotate(0 -1.8724999428557112 65.53749799995433)"><path d="M8.6 102.87 C7.15 107.02, 5.37 114.23, -2.81 130.62 M8.6 102.87 C4.71 111.48, 2.59 119.62, -2.81 130.62" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1370.3710321510139 1169.6251394306655) rotate(0 7.489999771423527 48.68499851425179)"><path d="M0.42 0.74 C2.57 17.08, 11.44 80.88, 14.01 96.86 M-0.81 0.08 C1.6 16.68, 13.49 81.88, 16.21 98.13" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1370.3710321510139 1169.6251394306655) rotate(0 7.489999771423527 48.68499851425179)"><path d="M1.23 72.14 C8.1 80.69, 11.92 93.95, 16.21 98.13 M1.23 72.14 C5.28 78.74, 9.38 85.27, 16.21 98.13" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1370.3710321510139 1169.6251394306655) rotate(0 7.489999771423527 48.68499851425179)"><path d="M21.45 68.59 C20.32 78.62, 16.18 93.27, 16.21 98.13 M21.45 68.59 C20.65 75.85, 19.89 83.24, 16.21 98.13" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1125.4662688370117 1862.864300666484) rotate(0 272.14759196711384 325)"><path d="M341.25 81.5 C378.24 123.36, 408.68 166.48, 476.05 244.5 C543.3 326.6, 546.78 326.6, 476.05 407.5 C439.65 451.31, 406.09 486.92, 341.25 568.5 C269.71 648.91, 276.24 651.2, 204.75 568.5 C173.24 529.53, 137.83 493.39, 68.25 407.5 C1.03 322.46, 3.39 324.62, 68.25 244.5 C118.21 182.23, 163.69 127.5, 204.75 81.5 C270.78 2.01, 275.69 -3.13, 341.25 81.5" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M341.25 81.5 C390.73 138.36, 440.05 198.21, 476.05 244.5 M341.25 81.5 C381.05 128.56, 420.2 176.54, 476.05 244.5 M476.05 244.5 C542.63 324.28, 542.6 327.43, 476.05 407.5 M476.05 244.5 C545.12 326.83, 545.07 324.45, 476.05 407.5 M476.05 407.5 C430.46 461.9, 382.94 515.41, 341.25 568.5 M476.05 407.5 C432.88 460.7, 389.03 512.71, 341.25 568.5 M341.25 568.5 C275 649.11, 274.6 648.96, 204.75 568.5 M341.25 568.5 C271.35 648.72, 272.05 648.27, 204.75 568.5 M204.75 568.5 C162.02 516.49, 115.41 464.95, 68.25 407.5 M204.75 568.5 C155.6 510.67, 106.97 452.85, 68.25 407.5 M68.25 407.5 C0.12 326.08, 1.84 325.42, 68.25 244.5 M68.25 407.5 C-1.24 324.26, -0.86 325.39, 68.25 244.5 M68.25 244.5 C118.87 188.09, 166.61 128.24, 204.75 81.5 M68.25 244.5 C108.47 195.77, 147.79 148.43, 204.75 81.5 M204.75 81.5 C273.25 -0.93, 274.62 -0.07, 341.25 81.5 M204.75 81.5 C271.7 0.4, 273.04 -1.56, 341.25 81.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1270.8067350476194 2030.364300666484) rotate(0 126.73332977294922 157.5)"><text x="126.73332977294922" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">4. If this is </text><text x="126.73332977294922" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the last </text><text x="126.73332977294922" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batch then fill</text><text x="126.73332977294922" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the rest of </text><text x="126.73332977294922" y="180" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the ballots </text><text x="126.73332977294922" y="225" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">array with </text><text x="126.73332977294922" y="270" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">empty ballots</text></g><g stroke-linecap="round"><g transform="translate(1385.9475303862678 1691.1969825194383) rotate(0 -1.9443884029765286 77.7755361190558)"><path d="M0.08 -0.04 C-0.79 25.68, -3.93 128.68, -4.54 154.52 M-1.33 -1.11 C-1.88 24.72, -1.69 129.32, -2.17 155.52" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1385.9475303862678 1691.1969825194383) rotate(0 -1.9443884029765286 77.7755361190558)"><path d="M-12.23 127.25 C-8.64 136.35, -6.66 148.15, -2.17 155.52 M-12.23 127.25 C-10.04 134.97, -6.62 141.06, -2.17 155.52" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1385.9475303862678 1691.1969825194383) rotate(0 -1.9443884029765286 77.7755361190558)"><path d="M8.29 127.4 C4.48 136.46, -0.94 148.21, -2.17 155.52 M8.29 127.4 C5.24 135.04, 3.42 141.1, -2.17 155.52" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1041.4307729558413 2721.668737932277) rotate(0 347.1560329347062 235)"><path d="M435 59 C496.74 105.72, 558.95 150.89, 607.31 177 C690.92 239.41, 696.38 239.18, 607.31 295 C575.21 319.86, 540.43 341.86, 435 411 C347.95 467.88, 350.28 468.85, 261 411 C212.33 376.9, 157.03 344.92, 87 295 C-0.2 233.56, -3.35 236.69, 87 177 C147.3 136.41, 205.36 96.3, 261 59 C345.04 -0.23, 349.12 0.5, 435 59" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M435 59 C489.26 97.72, 545.6 135.11, 607.31 177 M435 59 C480.9 91.88, 525.66 122.29, 607.31 177 M607.31 177 C693.18 236.28, 695.35 237.24, 607.31 295 M607.31 177 C692.77 237.65, 695.78 237.94, 607.31 295 M607.31 295 C554.57 330.07, 497.31 368.53, 435 411 M607.31 295 C539.64 339.69, 471.23 386.95, 435 411 M435 411 C347.29 471.83, 349.99 470.96, 261 411 M435 411 C347.1 469.27, 347.03 469.39, 261 411 M261 411 C215.11 381.97, 168.66 349.3, 87 295 M261 411 C195.43 367.43, 131.59 324.46, 87 295 M87 295 C1.32 236.15, 1.09 236.95, 87 177 M87 295 C0.02 234, -0.67 237.88, 87 177 M87 177 C153.38 131.23, 219.28 88.96, 261 59 M87 177 C138.8 142.13, 190.21 108.73, 261 59 M261 59 C348.53 -0.64, 348.44 1.04, 435 59 M261 59 C349.35 -2.07, 347.64 1.11, 435 59" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1222.3587955267099 2844.168737932277) rotate(0 166.14999389648438 112.5)"><text x="166.14999389648438" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">5. Generate </text><text x="166.14999389648438" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">random salts to </text><text x="166.14999389648438" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">be used while </text><text x="166.14999389648438" y="135" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">computing the new </text><text x="166.14999389648438" y="180" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">commitments</text></g><g stroke-linecap="round"><g transform="translate(1386.9654193929996 2537.419398276606) rotate(0 -1.6119932378437625 79.72832802402718)"><path d="M0.97 0.04 C0.49 26.5, -2.39 133.21, -3.13 159.89 M0.03 -0.99 C-0.58 25.62, -3.29 131.48, -4.02 157.99" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1386.9654193929996 2537.419398276606) rotate(0 -1.6119932378437625 79.72832802402718)"><path d="M-13.54 129.54 C-10.54 137.61, -7.21 145.02, -4.02 157.99 M-13.54 129.54 C-11.13 140.5, -6.29 150.32, -4.02 157.99" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1386.9654193929996 2537.419398276606) rotate(0 -1.6119932378437625 79.72832802402718)"><path d="M6.98 130.08 C4.22 138.17, 1.78 145.43, -4.02 157.99 M6.98 130.08 C2.15 140.81, -0.23 150.44, -4.02 157.99" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1388.0866492388755 3215.112634887131) rotate(0 0 106.9708724143319)"><path d="M0.67 0.44 C0.3 36.09, -0.89 179.3, -1.09 214.92 M-0.44 -0.37 C-0.54 35.47, 1.25 177.32, 1.06 213.31" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1388.0866492388755 3215.112634887131) rotate(0 0 106.9708724143319)"><path d="M-9.34 185.17 C-4.3 194.3, 0.66 206.22, 1.06 213.31 M-9.34 185.17 C-6.43 194.84, -2.35 203.76, 1.06 213.31" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1388.0866492388755 3215.112634887131) rotate(0 0 106.9708724143319)"><path d="M11.18 185.07 C8.21 194.35, 5.15 206.31, 1.06 213.31 M11.18 185.07 C7.53 194.87, 5.06 203.82, 1.06 213.31" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1037.0589383439928 3504.124446584281) rotate(0 347.1560329347062 235)"><path d="M435 59 C488.78 93.26, 541.34 134.31, 607.31 177 C697.35 234.31, 693.67 238.91, 607.31 295 C554.57 330.38, 499.34 362.67, 435 411 C349.92 471.51, 351.17 472.56, 261 411 C207.22 375.65, 154.56 341.78, 87 295 C-2.23 233.09, 3 236.75, 87 177 C128.92 141.99, 179.27 110.13, 261 59 C345.37 -1.61, 348.97 -3.59, 435 59" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M435 59 C502.59 105.09, 568.86 149.87, 607.31 177 M435 59 C482.13 90.43, 528.77 121.96, 607.31 177 M607.31 177 C693.84 236.35, 696.06 236.06, 607.31 295 M607.31 177 C695.36 237.59, 693.98 236.26, 607.31 295 M607.31 295 C571.01 320.86, 534.26 343.7, 435 411 M607.31 295 C544.14 338.82, 478.9 382.04, 435 411 M435 411 C349.96 470.64, 349.39 468.12, 261 411 M435 411 C350.19 468.8, 347.2 467.91, 261 411 M261 411 C224.52 385.08, 185.41 359.13, 87 295 M261 411 C197.66 370.29, 135.08 328.67, 87 295 M87 295 C-0.37 234.52, 1.84 234.5, 87 177 M87 295 C-1.97 237.48, 0.51 234.29, 87 177 M87 177 C139.95 141.22, 194.76 102.52, 261 59 M87 177 C137.13 142.87, 187.96 109.22, 261 59 M261 59 C347.77 -0.84, 347.34 -0.4, 435 59 M261 59 C346.69 0.58, 347.93 -0.45, 435 59" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1229.4202952654473 3671.624446584281) rotate(0 154.71665954589844 67.5)"><text x="154.71665954589844" y="0" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">6. Generate new </text><text x="154.71665954589844" y="45" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">commitments and </text><text x="154.71665954589844" y="90" font-family="Virgil, Segoe UI Emoji" font-size="36px" fill="#1e1e1e" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">circuit inputs</text></g></svg>
Binary file
Binary file
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Do not edit this file with editors other than draw.io -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="754px" height="656px" viewBox="-0.5 -0.5 754 656" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2023-11-29T16:52:13.536Z&quot; agent=&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36&quot; version=&quot;22.1.3&quot; etag=&quot;WqkolPbKu5_KH3l05O5R&quot; type=&quot;google&quot;&gt;&lt;diagram name=&quot;Page-1&quot; id=&quot;FdHh6ftkBMvehZoHq9kx&quot;&gt;3VnLdtMwEP2aLJtjya94SdMCCzj0UE6hSxGrsUG2jKy8+HokW4ofUksgbpx2ZWv0mhnd0cy1J+48275jqEg+0hiTCXTi7cS9mkAIZ85MPKRkpyRO5NeSJUvjWgYawW36Gyuho6SrNMZlZyCnlPC06AoXNM/xgndkiDG66Q57oKS7a4GW2BDcLhAxpV/TmCe1dAbDRv4ep8tE7wyCqO7JkB6sLCkTFNNNS+ReT9w5o5TXb9l2jon0nvZLPe/tI717xRjO+SEToFKD77RtOBamqiZlPKFLmiNy3UgvGV3lMZYLOKLVjPlAaSGEQAh/YM536tzQilMhSnhGVG+9p9yoo3VJV2yhRJ46VcSWWBkSmLaBvccE1jDNMGc7MYRhgni67q6O1Jkv9+Mat4gX5Rm7l9wxvIS3Kf8mp0991bpv9Vxt1cpVY6cbubCsNUk279t9zbSqpef934nMxjsRpc0akZVa9AsiRG41p1mW8kxoVBqn1pyJdOMmSTm+LVBl4UZcVTaUrjHjePtodD1ir77qQhXm6qIDXqQEm+baAPouSFpXRuAc7yN/FNQ+HwIDE4EAjgfBwIBgjjefcbkivGxAODoGL0A49bsoDFwLCnUKbqPQHwCF4StD4cyCQm88FM4MFJaFUOKOpgs8ZzhOzwqM+7rnKShC24U4BBSjVwZFXQ53sDhimaT1aYFxAgMitLgsC5R3XB/8Wska9/KB5vxiow76jRiSU5YhUjlAjxFvS/ksMLujHH8qeErz2z3MFybM602FvvW+9fTj0C8V1VABA4SC50PzXvbNYAgtweANEAwAGP544dEALdEwYomq9WlFQ0FLnMZURkKCykQ86EOF+hqv31kD1b4ETKVpCZaaSnZYTRUKSlKJ2U8iOzjDuEIPT5rBdUFS2wIdgtFaMGdjeThVi5WIPJUmnNPULG4vTYTwwDQBnCFCYxS+dwjEn6HQUFNvaCovTn0Cbi9RQ6fPSOowU9N6vt3rcZi7TTJ3dKBQjuQWVS0kl5Z5QjxVqjh3/Btl0onxPy5zBJ3EMA39AXKDjTuOmRtM8jhCbhD1VBUbXDZoVVXZYkVnjjU6/8zhhQbbPXHsvDa+CyyEV3tvlNAxGe+gJIPL74gvjEuAqJcvosCCeRuT0IzjqBOJLCdylvUTtBHmEdMANAnzsWmAmR8grTf2k1+J+jPcaZ0tbOz7Xz4ynSYHgKifA6BjY9a+5YsnAAPkADg2tfa8WbeGcuDfiqiqdYNZKqwVZcExv4XA6bKDaDb/Smvq0fxydq//AA==&lt;/diagram&gt;&lt;/mxfile&gt;" style="background-color: rgb(255, 255, 255);"><defs/><g><path d="M 300 30 L 110 30 L 110 133.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 110 138.88 L 106.5 131.88 L 110 133.63 L 113.5 131.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 360 60 L 360 133.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 360 138.88 L 356.5 131.88 L 360 133.63 L 363.5 131.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="300" y="0" width="120" height="60" rx="9" ry="9" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 30px; margin-left: 301px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Tally Commitments</div></div></div></foreignObject><text x="360" y="34" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Tally Commitments</text></switch></g><path d="M 110 190 L 110 223.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 110 228.88 L 106.5 221.88 L 110 223.63 L 113.5 221.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="12.5" y="140" width="195" height="50" rx="7.5" ry="7.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 193px; height: 1px; padding-top: 165px; margin-left: 14px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">newResultsCommitment</div></div></div></foreignObject><text x="110" y="169" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">newResultsCommitment</text></switch></g><path d="M 360 190 L 360 223.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 360 228.88 L 356.5 221.88 L 360 223.63 L 363.5 221.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="250" y="140" width="220" height="50" rx="7.5" ry="7.5" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 165px; margin-left: 251px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">spentVoiceCreditsCommitment</div></div></div></foreignObject><text x="360" y="169" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">spentVoiceCreditsCommitment</text></switch></g><path d="M 617.5 185 L 617.5 223.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 617.5 228.88 L 614 221.88 L 617.5 223.63 L 621 221.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="482.5" y="145" width="270" height="40" rx="6" ry="6" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 268px; height: 1px; padding-top: 165px; margin-left: 484px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><span style="font-weight: normal;">perVoteOptionSpentVoicecreditsCommitment</span></div></div></div></foreignObject><text x="618" y="169" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">perVoteOptionSpentVoicecreditsCommitment</text></switch></g><path d="M 110 330 L 110 400 L 355 400 L 355 463.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 355 468.88 L 351.5 461.88 L 355 463.63 L 358.5 461.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="0" y="230" width="220" height="100" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 280px; margin-left: 1px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">poseidon hash of:<br /><br />1. the root of a merkle tree with the results as leaves<br />2. a salt</div></div></div></foreignObject><text x="110" y="284" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">poseidon hash of:...</text></switch></g><path d="M 360 330 L 360 450 L 350.57 450 L 350.03 563.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 350.01 568.88 L 346.54 561.87 L 350.03 563.63 L 353.54 561.9 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="250" y="230" width="220" height="100" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 280px; margin-left: 251px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">poseidon hash of:<br /><br />1. total spent voice credits<br />2. a salt</div></div></div></foreignObject><text x="360" y="284" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">poseidon hash of:...</text></switch></g><path d="M 507.5 280 L 487.57 280 L 487.57 400 L 510 400 L 510 496.29 L 496.37 496.26" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 491.12 496.25 L 498.12 492.76 L 496.37 496.26 L 498.11 499.76 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="507.5" y="230" width="220" height="100" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 280px; margin-left: 509px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">poseidon hash of:<br /><br />1. the root of a merkle tree with the per vote option voice credits as levaes<br />2. a salt</div></div></div></foreignObject><text x="618" y="284" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">poseidon hash of:...</text></switch></g><path d="M 355 505 L 355 538.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 355 543.88 L 351.5 536.88 L 355 538.63 L 358.5 536.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="220" y="470" width="270" height="35" rx="5.25" ry="5.25" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 268px; height: 1px; padding-top: 488px; margin-left: 221px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><span style="font-weight: normal;">tallyCommitment</span></div></div></div></foreignObject><text x="355" y="491" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">tallyCommitment</text></switch></g><path d="M 355 545 L 355 511.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 355 506.12 L 358.5 513.12 L 355 511.37 L 351.5 513.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="227.5" y="545" width="255" height="110" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 253px; height: 1px; padding-top: 600px; margin-left: 229px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">poseidon hash of:<br /><br />1. resultsCommitment<br />2. spentVoiceCreditsCommitment<br />3. perVoteOptionSpentVoiceCreditsCommitment</div></div></div></foreignObject><text x="355" y="604" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">poseidon hash of:...</text></switch></g><path d="M 420 30 L 603.43 30 L 603.46 139.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 603.46 144.88 L 599.96 137.88 L 603.46 139.63 L 606.96 137.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>