@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 1473.9516795609748 849.7829336723412" width="4421.855038682925" height="2549.3488010170236">
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="1473.9516795609748" height="849.7829336723412" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(305.0938053366018 342.91267861253846) rotate(0 114.33810379333897 33.80052213620297)"><path d="M16.9 0 C57.53 -1.87, 99.09 -0.68, 211.78 0 M16.9 0 C82.55 1.51, 148.92 1.5, 211.78 0 M211.78 0 C223.1 -1.04, 229.77 6.62, 228.68 16.9 M211.78 0 C224.37 0.26, 228.95 5.67, 228.68 16.9 M228.68 16.9 C227.38 24.03, 229.65 29.38, 228.68 50.7 M228.68 16.9 C229.34 30.33, 229.53 43.83, 228.68 50.7 M228.68 50.7 C228.16 62.5, 222.59 66.36, 211.78 67.6 M228.68 50.7 C229.96 61.89, 222.26 69.56, 211.78 67.6 M211.78 67.6 C139.81 65.29, 69.82 66.76, 16.9 67.6 M211.78 67.6 C155.59 67.48, 100.16 67.86, 16.9 67.6 M16.9 67.6 C6.87 67.4, -0.02 63.87, 0 50.7 M16.9 67.6 C5.55 69.05, 0.8 60.23, 0 50.7 M0 50.7 C-0.1 44.1, 0.52 37.54, 0 16.9 M0 50.7 C-0.42 42.13, 0.05 31.42, 0 16.9 M0 16.9 C-1.19 7.08, 6.43 0.12, 16.9 0 M0 16.9 C0 7.76, 7.86 -1.36, 16.9 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(352.5119872549408 364.21320074874166) rotate(0 66.919921875 12.5)"><text x="66.919921875" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">ProcessTopup</text></g><g stroke-linecap="round"><g transform="translate(405.49383508348114 257.54246773847444) rotate(0 -2.7202546113021526 40.81570261330012)"><path d="M0 0.44 C-0.69 13.93, -3.96 67.51, -4.86 81.21 M-1.46 -0.37 C-2.19 13.26, -4.72 69, -5.5 82.53" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(405.49383508348114 257.54246773847444) rotate(0 -2.7202546113021526 40.81570261330012)"><path d="M-14.32 53.85 C-11.39 61.73, -10.7 67.69, -5.5 82.53 M-14.32 53.85 C-10.7 64.25, -6.8 76.25, -5.5 82.53" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(405.49383508348114 257.54246773847444) rotate(0 -2.7202546113021526 40.81570261330012)"><path d="M6.17 54.89 C4.16 62.52, -0.08 68.23, -5.5 82.53 M6.17 54.89 C1.93 65.06, -2.02 76.66, -5.5 82.53" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(452.0787100794711 295.7899274158285) rotate(0 26.379974365234375 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Input</text></g><g transform="translate(463.36494619147345 444.35683512232436) rotate(0 34.84996032714844 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Output</text></g><g stroke-linecap="round"><g transform="translate(402.66037233670943 429.6719670239877) rotate(0 0.2229014099474398 20.511057519056294)"><path d="M0.41 0.45 C0.49 7.16, 0.4 33.93, 0.46 40.74 M-0.04 0.2 C-0.04 7.22, -0.06 34.6, 0.04 41.29" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(402.66037233670943 429.6719670239877) rotate(0 0.2229014099474398 20.511057519056294)"><path d="M-7.09 22.05 C-4.04 27.85, -3.23 34.17, 0.04 41.29 M-7.09 22.05 C-4.48 28.77, -2.5 35.54, 0.04 41.29" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(402.66037233670943 429.6719670239877) rotate(0 0.2229014099474398 20.511057519056294)"><path d="M6.94 21.97 C5.76 27.85, 2.34 34.19, 0.04 41.29 M6.94 21.97 C4.65 28.73, 1.73 35.52, 0.04 41.29" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(305.8244266247631 495.2353693232585) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C85.53 1.05, 158.03 1.11, 204.03 0 M16.09 0 C73.68 0.08, 132.65 -0.7, 204.03 0 M204.03 0 C214.73 0.93, 218.3 7.29, 220.12 16.09 M204.03 0 C215.82 -0.58, 221.29 5.45, 220.12 16.09 M220.12 16.09 C220.69 27.55, 218.92 41.02, 220.12 48.27 M220.12 16.09 C220.65 25.67, 219.25 34.67, 220.12 48.27 M220.12 48.27 C219.27 58.96, 215.39 64.08, 204.03 64.35 M220.12 48.27 C222.11 58.75, 213.77 64.55, 204.03 64.35 M204.03 64.35 C149.29 65.5, 96.87 65.44, 16.09 64.35 M204.03 64.35 C134.83 62.14, 67.68 62.75, 16.09 64.35 M16.09 64.35 C5.58 64.6, 0.48 58.42, 0 48.27 M16.09 64.35 C6.42 63.22, -0.61 60.37, 0 48.27 M0 48.27 C1.75 38.73, 0.42 27.61, 0 16.09 M0 48.27 C-0.14 36.28, 0.47 22.61, 0 16.09 M0 16.09 C0.93 5.16, 4.53 1.35, 16.09 0 M0 16.09 C-1.49 3.81, 5.48 0.78, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(346.6220566852586 514.9127858741344) rotate(0 69.25994110107422 12.5)"><text x="69.25994110107422" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newStateRoot</text></g><g transform="translate(570.3737259406327 257.96351260310803) rotate(0 49.669944763183594 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Processing</text></g><g stroke-linecap="round"><g transform="translate(574.0950351317991 385.6055951384592) rotate(0 41.82364155770529 -19.566703345299402)"><path d="M0.14 0.02 C13.79 -6.5, 68.74 -32.34, 82.58 -39 M-1.24 -1.01 C12.71 -7.33, 70.84 -31.05, 84.74 -37.39" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(574.0950351317991 385.6055951384592) rotate(0 41.82364155770529 -19.566703345299402)"><path d="M62.87 -16.85 C70.71 -26, 78.72 -32.34, 84.74 -37.39 M62.87 -16.85 C67.06 -20.78, 73.54 -26.78, 84.74 -37.39" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(574.0950351317991 385.6055951384592) rotate(0 41.82364155770529 -19.566703345299402)"><path d="M54.78 -35.72 C65.53 -38.12, 76.44 -37.72, 84.74 -37.39 M54.78 -35.72 C60.86 -35.28, 69.22 -36.89, 84.74 -37.39" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(296.2022097980471 180.8810513443027) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C54.49 0.7, 96.49 -1.09, 204.03 0 M16.09 0 C91.09 0.51, 165.77 0.6, 204.03 0 M204.03 0 C214.24 0.53, 219.66 4.13, 220.12 16.09 M204.03 0 C216.04 -0.08, 219.33 7.32, 220.12 16.09 M220.12 16.09 C219.12 26.97, 220.1 40.16, 220.12 48.27 M220.12 16.09 C219.97 25.38, 220.3 34.96, 220.12 48.27 M220.12 48.27 C221.35 58.79, 214.73 66.25, 204.03 64.35 M220.12 48.27 C220.03 60.44, 215.55 62.62, 204.03 64.35 M204.03 64.35 C165.74 64.74, 128.44 65, 16.09 64.35 M204.03 64.35 C152.78 64.03, 102.27 62.48, 16.09 64.35 M16.09 64.35 C4.18 65.8, 0.8 59.11, 0 48.27 M16.09 64.35 C5.37 66.48, 2.23 57.63, 0 48.27 M0 48.27 C-1.03 39, -0.41 27.04, 0 16.09 M0 48.27 C0.26 36.78, -0.59 24.75, 0 16.09 M0 16.09 C-0.49 5.05, 5.93 0.28, 16.09 0 M0 16.09 C-1.92 5.47, 7.15 -0.58, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(343.31984718276135 200.55846789517864) rotate(0 62.93993377685547 12.5)"><text x="62.93993377685547" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messageType</text></g><g stroke-linecap="round" transform="translate(693.7410533145616 71.95385055299676) rotate(0 124.50711860321496 67.5)"><path d="M32 0 C89.24 2.61, 142.13 2.7, 217.01 0 M32 0 C87.91 0.02, 144.11 -0.87, 217.01 0 M217.01 0 C239.46 -0.07, 248.33 12.37, 249.01 32 M217.01 0 C239.82 0.09, 247.28 9.51, 249.01 32 M249.01 32 C248.73 52.05, 248.8 67.78, 249.01 103 M249.01 32 C249.56 53.79, 248.94 76.74, 249.01 103 M249.01 103 C248.94 125.59, 239.04 133.49, 217.01 135 M249.01 103 C246.75 122.49, 238.55 134.57, 217.01 135 M217.01 135 C158.94 136.37, 101.04 134.91, 32 135 M217.01 135 C149.82 133.97, 84.21 133.31, 32 135 M32 135 C10.67 136.85, 1.94 123.15, 0 103 M32 135 C11.06 136.47, 1.79 123.39, 0 103 M0 103 C1.42 77.1, -1.28 53.89, 0 32 M0 103 C0.32 79.13, 0.85 55.72, 0 32 M0 32 C-1.67 10.76, 12.22 -0.5, 32 0 M0 32 C-0.75 9.29, 12.46 -0.11, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g stroke-linecap="round" transform="translate(10 378.0046382852429) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C68.15 -1.73, 122.06 0.23, 204.03 0 M16.09 0 C72.79 0.93, 130.64 0.81, 204.03 0 M204.03 0 C216.49 -0.21, 219.26 5.53, 220.12 16.09 M204.03 0 C214.53 1.05, 221.54 5.13, 220.12 16.09 M220.12 16.09 C221.68 26.41, 218.91 33.37, 220.12 48.27 M220.12 16.09 C220.25 23.29, 220.38 29.96, 220.12 48.27 M220.12 48.27 C221.04 58.01, 214.22 65.55, 204.03 64.35 M220.12 48.27 C220.6 56.82, 213.39 66.02, 204.03 64.35 M204.03 64.35 C142.02 66.3, 75.13 64.7, 16.09 64.35 M204.03 64.35 C136.11 63.48, 66.85 64.26, 16.09 64.35 M16.09 64.35 C4.07 63, 0.1 59.67, 0 48.27 M16.09 64.35 C3.52 64.66, -0.57 58.63, 0 48.27 M0 48.27 C0.05 39.26, -0.55 26.5, 0 16.09 M0 48.27 C-0.68 40.49, 0.03 33.16, 0 16.09 M0 16.09 C0.1 4.04, 3.7 -1.75, 16.09 0 M0 16.09 C-1.8 7.18, 3.68 -2.17, 16.09 0" stroke="#f08c00" stroke-width="1" fill="none"></path></g><g transform="translate(39.117652643503334 385.1820548361188) rotate(0 80.9399185180664 25)"><text x="80.9399185180664" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#f08c00" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">parameter: </text><text x="80.9399185180664" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#f08c00" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateTreeDepth</text></g><g stroke-linecap="round"><g transform="translate(251.16626846986253 399.0184776221963) rotate(0 22.27889688945629 -12.101152245474623)"><path d="M0.77 0.05 C8.11 -4.26, 36.44 -20.76, 43.65 -24.81 M-0.29 -0.97 C7.47 -4.61, 38.67 -19.93, 45.89 -23.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(251.16626846986253 399.0184776221963) rotate(0 22.27889688945629 -12.101152245474623)"><path d="M28.41 -5.22 C32.98 -11.73, 36.55 -15.94, 45.89 -23.59 M28.41 -5.22 C34.44 -10.78, 38.36 -16.08, 45.89 -23.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(251.16626846986253 399.0184776221963) rotate(0 22.27889688945629 -12.101152245474623)"><path d="M20.69 -20.75 C27.45 -23.18, 33.07 -23.26, 45.89 -23.59 M20.69 -20.75 C29.07 -21.66, 35.3 -22.32, 45.89 -23.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(60.19856941201192 185.788439500393) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C62.22 -1.13, 107.83 -1.02, 204.03 0 M16.09 0 C59.03 -0.2, 102.34 -1.15, 204.03 0 M204.03 0 C215.74 0.57, 220.52 4.29, 220.12 16.09 M204.03 0 C212.68 -0.24, 220.27 4.96, 220.12 16.09 M220.12 16.09 C220.93 26.13, 218.82 35.82, 220.12 48.27 M220.12 16.09 C219.02 25.03, 219.41 34.5, 220.12 48.27 M220.12 48.27 C221.81 60.3, 213 63.5, 204.03 64.35 M220.12 48.27 C220.78 58.91, 215.13 64.01, 204.03 64.35 M204.03 64.35 C135.41 62.57, 64.31 62.6, 16.09 64.35 M204.03 64.35 C143.56 64.83, 81.93 65.41, 16.09 64.35 M16.09 64.35 C5.35 63.47, -1.37 57.66, 0 48.27 M16.09 64.35 C7.58 64.29, 0.84 58.06, 0 48.27 M0 48.27 C1.83 40.03, 0.06 35.6, 0 16.09 M0 48.27 C0.87 36.89, -0.34 25.69, 0 16.09 M0 16.09 C-0.54 4.56, 4.18 -1.01, 16.09 0 M0 16.09 C0.29 5.95, 4.53 0.96, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(91.20621381576916 205.46585605126893) rotate(0 79.0499267578125 12.5)"><text x="79.0499267578125" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateTreeIndex</text></g><g stroke-linecap="round" transform="translate(61.02652621204345 103.62790443973608) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C84.72 -0.96, 156.62 2.27, 204.03 0 M16.09 0 C79.6 2.47, 144.96 1.77, 204.03 0 M204.03 0 C212.97 -1.42, 220.64 6.16, 220.12 16.09 M204.03 0 C215.65 -0.8, 221.47 4.18, 220.12 16.09 M220.12 16.09 C222.25 26.63, 221.03 42.69, 220.12 48.27 M220.12 16.09 C219.86 27.01, 220.12 37.07, 220.12 48.27 M220.12 48.27 C220.31 57.78, 216.15 65.92, 204.03 64.35 M220.12 48.27 C221.32 58.33, 213.33 63.58, 204.03 64.35 M204.03 64.35 C128.46 65.32, 54.07 61.95, 16.09 64.35 M204.03 64.35 C133.66 64.39, 64.65 64.32, 16.09 64.35 M16.09 64.35 C7.16 65.22, -0.02 58.97, 0 48.27 M16.09 64.35 C5.46 63.36, -0.22 59.93, 0 48.27 M0 48.27 C-0.53 40.11, 0.55 35.99, 0 16.09 M0 48.27 C-0.22 37.87, 0.48 25.23, 0 16.09 M0 16.09 C1.02 3.73, 6.8 1.45, 16.09 0 M0 16.09 C1.27 4.1, 5.83 -2.25, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(136.54412697566397 123.30532099061202) rotate(0 34.53997039794922 12.5)"><text x="34.53997039794922" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">amount</text></g><g stroke-linecap="round" transform="translate(296.65395800182364 102.15346082324095) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C55.14 -1.16, 94.08 -2.35, 204.03 0 M16.09 0 C76.54 -1.06, 134.64 -1.64, 204.03 0 M204.03 0 C215.37 -1.89, 218.74 5.5, 220.12 16.09 M204.03 0 C212.64 -0.53, 219.84 6.99, 220.12 16.09 M220.12 16.09 C219.38 23.49, 220.82 32.02, 220.12 48.27 M220.12 16.09 C220.92 24.62, 221.19 31.29, 220.12 48.27 M220.12 48.27 C221.17 58.89, 214.37 66.19, 204.03 64.35 M220.12 48.27 C220.53 60.65, 216.41 63.94, 204.03 64.35 M204.03 64.35 C142.08 62.24, 80.72 61.56, 16.09 64.35 M204.03 64.35 C134.57 65.07, 65.97 66.85, 16.09 64.35 M16.09 64.35 C5.92 65.74, 0.71 60.74, 0 48.27 M16.09 64.35 C5.84 65.73, 0.95 60.21, 0 48.27 M0 48.27 C0.67 38.88, 1 31.88, 0 16.09 M0 48.27 C0.43 42.06, 0.51 35.17, 0 16.09 M0 16.09 C0.42 3.58, 3.97 -1.93, 16.09 0 M0 16.09 C1.8 3.5, 3.97 1.8, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(356.0415844002098 121.83087737411688) rotate(0 50.669944763183594 12.5)"><text x="50.669944763183594" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">numSignups</text></g><g stroke-linecap="round" transform="translate(67.15680909446849 20.86625005850692) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C56.84 2.95, 99.44 0.05, 204.03 0 M16.09 0 C63.61 -0.03, 109.81 0.75, 204.03 0 M204.03 0 C212.77 -1.27, 218.12 5.09, 220.12 16.09 M204.03 0 C215.41 -2.28, 221.31 7.09, 220.12 16.09 M220.12 16.09 C220.57 28.06, 221.33 36.2, 220.12 48.27 M220.12 16.09 C219.78 28.08, 219.48 39.06, 220.12 48.27 M220.12 48.27 C221.97 59.03, 215.88 62.39, 204.03 64.35 M220.12 48.27 C221.92 60.78, 212.88 64.44, 204.03 64.35 M204.03 64.35 C136.73 64.3, 72.69 64.82, 16.09 64.35 M204.03 64.35 C158.21 62.65, 113.03 62.8, 16.09 64.35 M16.09 64.35 C5.6 63.02, 0.82 58.82, 0 48.27 M16.09 64.35 C3.77 63.32, -2.23 59.18, 0 48.27 M0 48.27 C1.68 35.83, 1.85 22.31, 0 16.09 M0 48.27 C-0.86 41.63, -0.38 33.18, 0 16.09 M0 16.09 C-1.55 6.51, 3.38 1.92, 16.09 0 M0 16.09 C-0.66 6.08, 7.37 -0.26, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(125.35442542205385 40.54366660938285) rotate(0 51.859954833984375 12.5)"><text x="51.859954833984375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateLeaf</text></g><g stroke-linecap="round" transform="translate(303.1244971034396 19.788772031065037) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C71.71 -1.13, 125.05 -1.11, 204.03 0 M16.09 0 C78.34 -0.43, 139.39 -1.58, 204.03 0 M204.03 0 C212.84 -1.02, 219.55 7.33, 220.12 16.09 M204.03 0 C213.15 -1, 219.5 7.47, 220.12 16.09 M220.12 16.09 C219.32 22.17, 219.16 28.57, 220.12 48.27 M220.12 16.09 C220.37 25.78, 219.87 34.74, 220.12 48.27 M220.12 48.27 C220.36 58.92, 214.76 63.83, 204.03 64.35 M220.12 48.27 C221.05 60.49, 215.71 64.38, 204.03 64.35 M204.03 64.35 C143.22 63.26, 80.22 64.7, 16.09 64.35 M204.03 64.35 C138.74 65.11, 73.3 65.2, 16.09 64.35 M16.09 64.35 C4.2 66.23, 1.17 57.34, 0 48.27 M16.09 64.35 C5.79 64.1, 1.78 60.64, 0 48.27 M0 48.27 C1.31 42.61, 1.8 36.71, 0 16.09 M0 48.27 C-1.03 37.74, 0.78 29.26, 0 16.09 M0 16.09 C0.04 7.08, 3.51 -0.5, 16.09 0 M0 16.09 C0.48 3.81, 4.83 0.47, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(310.81215707116166 26.96618858194097) rotate(0 102.36991119384766 25)"><text x="102.36991119384766" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">stateLeafPathEleme</text><text x="102.36991119384766" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">nts</text></g><g transform="translate(699.3682509583037 76.95385055299676) rotate(0 118.87992095947266 62.5)"><text x="118.87992095947266" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. Calculate amount and</text><text x="118.87992095947266" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">index by multiplying the </text><text x="118.87992095947266" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">input (stateTreeIndex </text><text x="118.87992095947266" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">and amount) * </text><text x="118.87992095947266" y="100" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">messageType - 1</text></g><g transform="translate(662.6824042255288 10) rotate(0 227.539794921875 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Note that a topup message type should be 2</text></g><g stroke-linecap="round" transform="translate(1024.6434808349804 52.43111348363209) rotate(0 110.05757116156974 80)"><path d="M32 0 C74.21 -0.15, 117.51 -0.22, 188.12 0 M32 0 C89.99 1.97, 146.41 2.13, 188.12 0 M188.12 0 C210.84 -0.48, 221.04 11.47, 220.12 32 M188.12 0 C210.62 0.44, 220.95 8.96, 220.12 32 M220.12 32 C221.29 50.49, 218.04 71.95, 220.12 128 M220.12 32 C221.41 62.16, 221.57 92.34, 220.12 128 M220.12 128 C220.51 148.28, 207.61 160.68, 188.12 160 M220.12 128 C220.31 147.67, 208.23 158.61, 188.12 160 M188.12 160 C154.62 158.86, 123.02 161.95, 32 160 M188.12 160 C146.5 159.89, 104.22 159.84, 32 160 M32 160 C12.35 160.32, 0.92 148.38, 0 128 M32 160 C9.95 160.28, 0.54 150.14, 0 128 M0 128 C-0.68 105.2, 1.02 82.03, 0 32 M0 128 C0.03 97.89, -0.87 68.18, 0 32 M0 32 C-1.2 9.81, 9.65 -0.95, 32 0 M0 32 C-0.18 9.66, 11.87 -0.76, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1030.9511282904955 57.43111348363209) rotate(0 103.74992370605469 75)"><text x="103.74992370605469" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">this is to ensure </text><text x="103.74992370605469" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">that if we do not </text><text x="103.74992370605469" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">pass a topup </text><text x="103.74992370605469" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">message, then </text><text x="103.74992370605469" y="100" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">amount and index will</text><text x="103.74992370605469" y="125" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">be zero</text></g><g stroke-linecap="round"><g transform="translate(964.8394764394076 131.13467708755525) rotate(0 18.623357063721755 0.4400617351489018)"><path d="M-0.47 0.09 C5.87 0.16, 31.43 0.51, 37.66 0.62 M0.29 -0.33 C6.63 -0.22, 31.14 0.92, 37.43 1.18" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(964.8394764394076 131.13467708755525) rotate(0 18.623357063721755 0.4400617351489018)"><path d="M19.67 6.78 C23.86 6.28, 27.29 3.72, 37.43 1.18 M19.67 6.78 C24.43 5.65, 29.32 3.87, 37.43 1.18" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(964.8394764394076 131.13467708755525) rotate(0 18.623357063721755 0.4400617351489018)"><path d="M20.22 -5.95 C24.31 -3.56, 27.62 -3.22, 37.43 1.18 M20.22 -5.95 C24.89 -3.67, 29.63 -2.04, 37.43 1.18" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(689.604523671558 240.80829830175344) rotate(0 140.63242792437597 49.070709675536364)"><path d="M24.54 0 C73.21 -0.32, 122.8 -0.38, 256.73 0 M24.54 0 C91.79 0.13, 160.4 0.24, 256.73 0 M256.73 0 C271.56 -0.29, 281.91 8.02, 281.26 24.54 M256.73 0 C272.38 -0.6, 283.27 8.81, 281.26 24.54 M281.26 24.54 C281.82 41.03, 279.95 60.31, 281.26 73.61 M281.26 24.54 C280.41 38.5, 280.33 52.64, 281.26 73.61 M281.26 73.61 C281.61 90.99, 272.53 97.05, 256.73 98.14 M281.26 73.61 C279.28 89.05, 274.52 98.04, 256.73 98.14 M256.73 98.14 C190.8 96.42, 128.04 96.59, 24.54 98.14 M256.73 98.14 C206.65 99.35, 157.79 99.67, 24.54 98.14 M24.54 98.14 C6.25 97.61, 0.98 90.13, 0 73.61 M24.54 98.14 C9.03 95.89, 0.6 89.72, 0 73.61 M0 73.61 C-1.82 63.8, -1.65 51.55, 0 24.54 M0 73.61 C0.54 57.13, 0.75 43.08, 0 24.54 M0 24.54 C1.91 10.06, 8.84 -0.77, 24.54 0 M0 24.54 C-1.76 7.32, 6.6 2.26, 24.54 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(694.9570443693714 264.8790079772898) rotate(0 135.2799072265625 25)"><text x="135.2799072265625" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Check that stateIndex </text><text x="135.2799072265625" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">&lt;= numSignups</text></g><g stroke-linecap="round" transform="translate(684.61126365493 347.69411862362404) rotate(0 171.64961777213057 30)"><path d="M15 0 C124.5 -1.05, 234.86 -0.26, 328.3 0 M15 0 C113.05 0.55, 211.63 -0.13, 328.3 0 M328.3 0 C336.39 0.68, 344.15 3.52, 343.3 15 M328.3 0 C339.21 1.8, 341.4 4.18, 343.3 15 M343.3 15 C344.45 23.21, 341.45 36.45, 343.3 45 M343.3 15 C343.49 22.8, 343.63 29.33, 343.3 45 M343.3 45 C344.29 54.52, 338.33 61.69, 328.3 60 M343.3 45 C343.56 55.95, 336.11 59.64, 328.3 60 M328.3 60 C217.01 59.23, 104.36 61.65, 15 60 M328.3 60 C262.77 58.67, 198.78 58.07, 15 60 M15 60 C6.93 60.13, 0.08 56.64, 0 45 M15 60 C4.46 61.69, -1.92 55.37, 0 45 M0 45 C1.51 33.68, 1.78 22.67, 0 15 M0 45 C-0.64 35.9, -0.64 27.3, 0 15 M0 15 C-1.88 4, 5.09 -1.11, 15 0 M0 15 C-1.32 3.76, 4.24 -1.85, 15 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(698.5710315735449 352.69411862362404) rotate(0 157.68984985351562 25)"><text x="157.68984985351562" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Check that the </text><text x="157.68984985351562" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newCreditBalance is &lt; field size</text></g><g stroke-linecap="round" transform="translate(691.8161890962996 426.50247851512904) rotate(0 171.64961777213057 30)"><path d="M15 0 C140.06 -0.11, 265.18 1.64, 328.3 0 M15 0 C116.71 -0.81, 219.57 -1.04, 328.3 0 M328.3 0 C337.36 0.8, 343.66 3.11, 343.3 15 M328.3 0 C336.86 -1.61, 343.07 4.32, 343.3 15 M343.3 15 C342.67 19.9, 341.68 27.45, 343.3 45 M343.3 15 C344.02 21.15, 343.1 27.04, 343.3 45 M343.3 45 C344.85 53.53, 338.94 60.44, 328.3 60 M343.3 45 C345.54 52.97, 338.7 61.5, 328.3 60 M328.3 60 C263.35 57.08, 201.77 58.89, 15 60 M328.3 60 C233.65 61.6, 138.91 61.98, 15 60 M15 60 C6.47 59.4, 0.48 54.81, 0 45 M15 60 C5.5 58.14, -2.12 52.86, 0 45 M0 45 C-1.12 38.46, 1.1 27.4, 0 15 M0 45 C-0.22 37.65, -0.81 27.94, 0 15 M0 15 C1.66 3.15, 3.76 -0.02, 15 0 M0 15 C0.01 3.8, 5.92 1.28, 15 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(725.9459094074926 431.50247851512904) rotate(0 137.5198974609375 25)"><text x="137.5198974609375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">4. Update the voice credit </text><text x="137.5198974609375" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">balance in the state leaf</text></g><g stroke-linecap="round" transform="translate(1120.6524440167136 413.7371993584802) rotate(0 171.64961777213057 30)"><path d="M15 0 C86.13 2.47, 158.04 0.97, 328.3 0 M15 0 C110.88 0.37, 208.36 0.71, 328.3 0 M328.3 0 C337.55 0.7, 341.53 5.8, 343.3 15 M328.3 0 C340.4 0.61, 341.64 3.6, 343.3 15 M343.3 15 C343.88 24.65, 341.08 34.01, 343.3 45 M343.3 15 C343.26 26.84, 342.39 37.58, 343.3 45 M343.3 45 C344.3 55.64, 337.18 59.81, 328.3 60 M343.3 45 C343.66 53.91, 339.46 61.89, 328.3 60 M328.3 60 C209.33 61.46, 89.29 60.21, 15 60 M328.3 60 C210.56 62.13, 93.52 61.67, 15 60 M15 60 C6.63 61.53, -0.35 56.74, 0 45 M15 60 C3.14 61.66, 1.58 56.88, 0 45 M0 45 C-0.62 36.8, -0.36 29.49, 0 15 M0 45 C-0.64 37.9, 0.13 30.71, 0 15 M0 15 C0.54 3.64, 3.83 -1.97, 15 0 M0 15 C0.15 3.16, 5.44 -0.15, 15 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1148.3321826384536 418.7371993584802) rotate(0 143.96987915039062 25)"><text x="143.96987915039062" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">hash(pubKeyX, pubKeyY, </text><text x="143.96987915039062" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newCreditBalance, timestamp)</text></g><g stroke-linecap="round"><g transform="translate(1052.4157563221893 449.5272260217139) rotate(0 23.866138307756728 0.9130208548290284)"><path d="M-0.46 0.3 C7.49 0.71, 39.38 1.9, 47.44 2.13 M0.3 -0.01 C8.46 0.26, 40.63 0.95, 48.52 1.32" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1052.4157563221893 449.5272260217139) rotate(0 23.866138307756728 0.9130208548290284)"><path d="M25.83 8.76 C32.05 6.47, 37.7 5.48, 48.52 1.32 M25.83 8.76 C32.09 6.59, 38.4 4.87, 48.52 1.32" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1052.4157563221893 449.5272260217139) rotate(0 23.866138307756728 0.9130208548290284)"><path d="M26.36 -7.57 C32.4 -5.79, 37.92 -2.73, 48.52 1.32 M26.36 -7.57 C32.52 -5.28, 38.68 -2.54, 48.52 1.32" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(691.7991762853402 506.1734722387064) rotate(0 171.64961777213057 55)"><path d="M27.5 0 C130.46 -0.14, 230.01 0.57, 315.8 0 M27.5 0 C113.29 1.59, 200.19 1.98, 315.8 0 M315.8 0 C334.62 0.3, 343.16 9.8, 343.3 27.5 M315.8 0 C332.36 0.81, 342.05 6.99, 343.3 27.5 M343.3 27.5 C344.92 45.6, 342.12 60.1, 343.3 82.5 M343.3 27.5 C343.49 39, 343.42 51.83, 343.3 82.5 M343.3 82.5 C342.95 100.15, 335.73 108.38, 315.8 110 M343.3 82.5 C343.08 103.1, 332.72 109.16, 315.8 110 M315.8 110 C240.14 107.7, 163.47 108.74, 27.5 110 M315.8 110 C232.73 110.45, 148.07 110.9, 27.5 110 M27.5 110 C10.87 109.65, 1.07 100.62, 0 82.5 M27.5 110 C10.53 109.56, 2.05 101.42, 0 82.5 M0 82.5 C0.36 68.48, 0.25 55.68, 0 27.5 M0 82.5 C-1.22 70.07, 0.12 57.67, 0 27.5 M0 27.5 C-1.12 9.05, 9.32 -0.25, 27.5 0 M0 27.5 C1.43 8.81, 7.45 2.17, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(710.1989161277833 511.1734722387064) rotate(0 153.2498779296875 50)"><text x="153.2498779296875" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">5. Get the path indices (to </text><text x="153.2498779296875" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">locate the leaf in the quinary </text><text x="153.2498779296875" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">tree) using </text><text x="153.2498779296875" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinGeneratePathIndices</text></g><g stroke-linecap="round" transform="translate(691.4589200661493 623.0218739641718) rotate(0 171.64961777213057 42.5)"><path d="M21.25 0 C109.76 0.4, 195.65 2, 322.05 0 M21.25 0 C135.39 1.56, 250.66 2.19, 322.05 0 M322.05 0 C337.56 0.2, 341.62 7.11, 343.3 21.25 M322.05 0 C335.99 1.25, 342.57 8.29, 343.3 21.25 M343.3 21.25 C344.23 35.63, 345.04 49.3, 343.3 63.75 M343.3 21.25 C344.18 31.29, 343.57 41.02, 343.3 63.75 M343.3 63.75 C344.72 76.29, 334.86 83.85, 322.05 85 M343.3 63.75 C342.99 77.96, 334.04 86.36, 322.05 85 M322.05 85 C208.7 84.47, 97.57 84.69, 21.25 85 M322.05 85 C249.75 84.32, 176.6 85.25, 21.25 85 M21.25 85 C7.11 85.76, -0.21 77.71, 0 63.75 M21.25 85 C7.33 84.29, -0.04 79.03, 0 63.75 M0 63.75 C-0.77 50.56, -1 38.42, 0 21.25 M0 63.75 C-0.33 54.22, -0.32 45.32, 0 21.25 M0 21.25 C1.21 6.21, 8.52 0.92, 21.25 0 M0 21.25 C-0.35 5.19, 8.57 -0.38, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(701.438661739647 628.0218739641718) rotate(0 161.6698760986328 37.5)"><text x="161.6698760986328" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">6. Generate a Merkle proof for </text><text x="161.6698760986328" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the leaf using </text><text x="161.6698760986328" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinTreeInclusionProof</text></g><g stroke-linecap="round" transform="translate(701.9331406802461 729.7829336723412) rotate(0 171.64961777213057 55)"><path d="M27.5 0 C97.44 1.54, 169.33 -0.04, 315.8 0 M27.5 0 C106.61 -1.3, 185.88 -0.79, 315.8 0 M315.8 0 C335.14 -0.95, 342.77 9.46, 343.3 27.5 M315.8 0 C336.06 0.93, 344.98 10.74, 343.3 27.5 M343.3 27.5 C341.86 37.97, 344.82 50.44, 343.3 82.5 M343.3 27.5 C343.25 47.17, 343.32 65.67, 343.3 82.5 M343.3 82.5 C343.84 101.26, 332.18 109.13, 315.8 110 M343.3 82.5 C343.73 100.79, 335.3 111.73, 315.8 110 M315.8 110 C244.41 108.65, 173.58 108.53, 27.5 110 M315.8 110 C205.82 109.19, 94.43 109.61, 27.5 110 M27.5 110 C9.72 111.43, 0.95 99.13, 0 82.5 M27.5 110 C11.45 109.15, -2.17 102.37, 0 82.5 M0 82.5 C0.04 62.23, -1.21 40.82, 0 27.5 M0 82.5 C-0.26 71.2, 0.44 59.03, 0 27.5 M0 27.5 C-0.73 8.95, 8.99 0.05, 27.5 0 M0 27.5 C-1.55 9.58, 9.84 0.92, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(712.5028939504235 734.7829336723412) rotate(0 161.07986450195312 50)"><text x="161.07986450195312" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">7. Extract the root from </text><text x="161.07986450195312" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinTreeInclusionProof and wire </text><text x="161.07986450195312" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">to the output signal </text><text x="161.07986450195312" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">newStateRoot</text></g></svg>
@@ -0,0 +1,21 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2838.7553757346163 1625.0829563676589" width="8516.26612720385" height="4875.248869102977">
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="2838.7553757346163" height="1625.0829563676589" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(10 221.45954758435073) rotate(0 210.56991931007474 83.99484987970982)"><path d="M32 0 C139.65 -4.79, 251.49 -5.28, 389.14 0 C407.68 0.41, 424.46 14.18, 421.14 32 C422.33 55.31, 418.44 74.44, 421.14 135.99 C422.22 157.55, 411.7 169.97, 389.14 167.99 C293.92 164.58, 193.94 165.96, 32 167.99 C12.87 167.23, -2.88 160.66, 0 135.99 C0.4 101.22, 0.89 70.29, 0 32 C0.22 7.43, 10.85 -1.08, 32 0" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M32 0 C112.07 -1.05, 193.7 -2.31, 389.14 0 M32 0 C111.38 1.27, 189.26 0.97, 389.14 0 M389.14 0 C410.71 -1.83, 419.22 11.94, 421.14 32 M389.14 0 C409.99 -0.04, 419.63 10.46, 421.14 32 M421.14 32 C420.31 53.31, 421.62 77.24, 421.14 135.99 M421.14 32 C422.07 61.35, 421.79 89.81, 421.14 135.99 M421.14 135.99 C421.46 159.05, 409.14 166.11, 389.14 167.99 M421.14 135.99 C420.86 157.07, 410.46 169.61, 389.14 167.99 M389.14 167.99 C310.44 167.6, 230.34 167.11, 32 167.99 M389.14 167.99 C300.97 167.15, 213.48 166.87, 32 167.99 M32 167.99 C12.02 169.93, 1.83 157.68, 0 135.99 M32 167.99 C8.49 169.04, 1.91 158.27, 0 135.99 M0 135.99 C-1.31 103.09, -1.22 68.36, 0 32 M0 135.99 C-0.99 106.56, -0.61 78.51, 0 32 M0 32 C1.18 8.68, 12.22 -1.94, 32 0 M0 32 C-0.39 10.07, 9.12 -0.78, 32 0" stroke="#e03131" stroke-width="2" fill="none"></path></g><g transform="translate(118.81594439552373 282.9543974640601) rotate(0 101.75397491455078 22.5)"><text x="101.75397491455078" 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(495.6860543559055 303.01089761149615) rotate(0 63.90057999176406 0.6910400870706326)"><path d="M0.85 -1.03 C22.45 -1.06, 107.57 0.2, 128.93 0.41 M-0.17 1.04 C21.43 1.08, 107.07 1.45, 128.57 1.44" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(495.6860543559055 303.01089761149615) rotate(0 63.90057999176406 0.6910400870706326)"><path d="M100.35 11.64 C105.46 10.83, 112.43 8.42, 128.57 1.44 M100.35 11.64 C105.62 10.28, 111.75 6.53, 128.57 1.44" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(495.6860543559055 303.01089761149615) rotate(0 63.90057999176406 0.6910400870706326)"><path d="M100.4 -8.88 C105.6 -4.69, 112.56 -2.1, 128.57 1.44 M100.4 -8.88 C105.79 -6.01, 111.91 -5.52, 128.57 1.44" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(652.4843987700187 10) rotate(0 165.6794393830528 145.44846728171387)"><path d="M207.5 36.5 C226.83 57.01, 247.21 76.05, 289.86 109.5 C328.58 146.68, 330.85 147.58, 289.86 182.5 C264.47 207.88, 232.83 232.9, 207.5 254.4 C167.74 290.07, 168.53 291.05, 124.5 254.4 C95.65 228.99, 68.95 208.09, 41.5 182.5 C-2.93 147.92, 3.45 147.07, 41.5 109.5 C62.68 91.07, 74.5 76.8, 124.5 36.5 C167.42 -3.5, 166.54 3.03, 207.5 36.5" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M207.5 36.5 C239.23 64.93, 271.53 94.78, 289.86 109.5 M207.5 36.5 C227.52 55.16, 247.17 72.31, 289.86 109.5 M289.86 109.5 C330.24 144.06, 332.72 147.4, 289.86 182.5 M289.86 109.5 C333.08 145.41, 331.08 143.87, 289.86 182.5 M289.86 182.5 C259.46 211.73, 228.84 235.99, 207.5 254.4 M289.86 182.5 C268.2 201.95, 246.06 222.49, 207.5 254.4 M207.5 254.4 C164.97 289.66, 166.64 290.36, 124.5 254.4 M207.5 254.4 C167.65 290.83, 167.52 293.16, 124.5 254.4 M124.5 254.4 C93.68 226.16, 64.36 199.45, 41.5 182.5 M124.5 254.4 C102.95 237.09, 82.76 218.84, 41.5 182.5 M41.5 182.5 C1.42 146.65, -0.57 146.29, 41.5 109.5 M41.5 182.5 C-0.72 145.13, -2.19 145.81, 41.5 109.5 M41.5 109.5 C71.09 80.92, 105.32 53.57, 124.5 36.5 M41.5 109.5 C70.7 84.58, 100.26 59.24, 124.5 36.5 M124.5 36.5 C165.07 0.88, 166.84 -1.26, 207.5 36.5 M124.5 36.5 C165.8 0.89, 164.96 -1.69, 207.5 36.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(759.0861423873266 87.72423364085716) rotate(0 59.23797607421875 67.5)"><text x="59.23797607421875" 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">merge </text><text x="59.23797607421875" 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">signup </text><text x="59.23797607421875" 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">tree</text></g><g stroke-linecap="round" transform="translate(657.8322239214554 357.96446891810774) rotate(0 165.6794393830528 145.44846728171387)"><path d="M207.5 36.5 C237.65 60.25, 264.1 83.16, 289.86 109.5 C333.09 142.45, 329.69 146.19, 289.86 182.5 C273.35 195.25, 259.38 208.69, 207.5 254.4 C165.52 290.81, 164.5 288.09, 124.5 254.4 C105.35 236.52, 92.14 225.64, 41.5 182.5 C1.38 147.37, -1.76 147.57, 41.5 109.5 C66.79 85.94, 97.5 61.69, 124.5 36.5 C164.9 3.5, 163.11 0.33, 207.5 36.5" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M207.5 36.5 C238.59 63.87, 273.73 96.67, 289.86 109.5 M207.5 36.5 C235.7 61.1, 263.39 85.88, 289.86 109.5 M289.86 109.5 C332.32 147.99, 330.7 146.53, 289.86 182.5 M289.86 109.5 C333.23 148.22, 330.52 147.27, 289.86 182.5 M289.86 182.5 C256.74 210.85, 228.12 238.57, 207.5 254.4 M289.86 182.5 C256.8 209.28, 225.79 238.87, 207.5 254.4 M207.5 254.4 C165.36 290.15, 167.64 292.86, 124.5 254.4 M207.5 254.4 C163.85 289.11, 167.61 290.81, 124.5 254.4 M124.5 254.4 C105.21 242.02, 91.81 225.11, 41.5 182.5 M124.5 254.4 C92.51 226.63, 58.3 197.77, 41.5 182.5 M41.5 182.5 C1.46 147.11, -0.76 144.72, 41.5 109.5 M41.5 182.5 C0.84 145.55, 1.16 145.93, 41.5 109.5 M41.5 109.5 C72.54 81.73, 100.46 57.23, 124.5 36.5 M41.5 109.5 C58.36 94.63, 77.37 78.36, 124.5 36.5 M124.5 36.5 C164.07 -0.05, 167.84 -1.78, 207.5 36.5 M124.5 36.5 C167.35 -1.44, 164.84 -0.82, 207.5 36.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(752.0139769992124 435.6887025589649) rotate(0 71.65796661376953 67.5)"><text x="71.65796661376953" 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">merge </text><text x="71.65796661376953" 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</text><text x="71.65796661376953" 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">tree</text></g><g stroke-linecap="round"><g transform="translate(964.8816772571481 306.9530097088473) rotate(0 63.90057999176406 0.6910400870706326)"><path d="M1.13 0.57 C22.26 0.58, 105.71 0.49, 126.73 0.52 M0.27 -0.18 C21.76 -0.07, 107.89 1.29, 128.88 1.6" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(964.8816772571481 306.9530097088473) rotate(0 63.90057999176406 0.6910400870706326)"><path d="M100.53 11.43 C109.87 6.45, 115.91 4.41, 128.88 1.6 M100.53 11.43 C107.44 10.14, 113.58 7.29, 128.88 1.6" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(964.8816772571481 306.9530097088473) rotate(0 63.90057999176406 0.6910400870706326)"><path d="M100.84 -9.09 C110.16 -7.96, 116.1 -3.91, 128.88 1.6 M100.84 -9.09 C107.8 -5.36, 113.86 -3.18, 128.88 1.6" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g transform="translate(85.73425822441459 94.45087372101625) rotate(0 166.93194580078125 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">Poll has now ended</text></g><g stroke-linecap="round" transform="translate(1156.9852116902343 137.23277846073142) rotate(0 192.5423335140431 190)"><path d="M241.25 47.75 C279.74 82.08, 312.81 115.84, 336.83 143.25 C385.46 191.69, 384.62 190.95, 336.83 238.75 C311.69 267.1, 278.56 297.07, 241.25 332.25 C196.03 378.12, 192.55 379.46, 144.75 332.25 C113.93 303.88, 88.47 276.83, 48.25 238.75 C-0.3 188.26, 1.2 190.12, 48.25 143.25 C68.56 118.4, 90.68 95.32, 144.75 47.75 C193.17 2.95, 195.35 0.15, 241.25 47.75" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M241.25 47.75 C263.4 67.44, 285.61 88.29, 336.83 143.25 M241.25 47.75 C264.14 69.69, 284.96 92.81, 336.83 143.25 M336.83 143.25 C383.39 189.3, 386.74 190.64, 336.83 238.75 M336.83 143.25 C382.9 191.93, 385.23 189.97, 336.83 238.75 M336.83 238.75 C305.25 267.52, 273.04 298.11, 241.25 332.25 M336.83 238.75 C305.94 267.57, 277.04 297.39, 241.25 332.25 M241.25 332.25 C193.82 380.23, 193.51 381.26, 144.75 332.25 M241.25 332.25 C193.64 380.42, 191.15 381.7, 144.75 332.25 M144.75 332.25 C106.67 296.98, 71.35 260.89, 48.25 238.75 M144.75 332.25 C117.94 306.94, 91.27 281.98, 48.25 238.75 M48.25 238.75 C0.47 191.4, 1.51 189.7, 48.25 143.25 M48.25 238.75 C-0.41 192.18, 2.15 190.21, 48.25 143.25 M48.25 143.25 C74.46 119.76, 97.52 93.02, 144.75 47.75 M48.25 143.25 C86.22 105.91, 125.26 67.4, 144.75 47.75 M144.75 47.75 C193.88 -1.06, 191.94 0.48, 241.25 47.75 M144.75 47.75 C192.07 -1.32, 191.65 -0.75, 241.25 47.75" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1263.8784106127832 237.23277846073142) rotate(0 85.87796783447266 90)"><text x="85.87796783447266" 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 </text><text x="85.87796783447266" 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 </text><text x="85.87796783447266" 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">state </text><text x="85.87796783447266" 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">locally</text></g><g stroke-linecap="round"><g transform="translate(1581.289171885765 321.1860759127612) rotate(0 63.90057999176406 0.6910400870706326)"><path d="M0.72 0.91 C21.96 1.07, 105.54 0.32, 126.61 0.28 M-0.36 0.34 C21.29 0.66, 107.62 1.03, 128.69 1.24" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1581.289171885765 321.1860759127612) rotate(0 63.90057999176406 0.6910400870706326)"><path d="M100.43 11.31 C108.64 6.79, 111.92 5.35, 128.69 1.24 M100.43 11.31 C106.66 8.35, 114.5 5.93, 128.69 1.24" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1581.289171885765 321.1860759127612) rotate(0 63.90057999176406 0.6910400870706326)"><path d="M100.58 -9.21 C108.64 -8.92, 111.88 -5.54, 128.69 1.24 M100.58 -9.21 C106.75 -7.19, 114.55 -4.63, 128.69 1.24" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1751.8418570404199 86.8981079505711) rotate(0 204.7822887517841 235)"><path d="M256.25 59 C284.07 94.36, 314.29 126.22, 358.31 177 C409.51 234.91, 411.38 235.72, 358.31 295 C320.17 338.88, 281.73 376.57, 256.25 411 C206.06 467.73, 201.48 470.5, 153.75 411 C133.25 382.26, 106.48 360.68, 51.25 295 C-0.19 234.16, -3.54 239.24, 51.25 177 C72.47 155.37, 90.36 124.57, 153.75 59 C203.07 -3.08, 205.21 -0.81, 256.25 59" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M256.25 59 C291.63 99.24, 327.89 143.26, 358.31 177 M256.25 59 C282.59 91.46, 311.49 123.76, 358.31 177 M358.31 177 C410.53 234.13, 408.37 236.3, 358.31 295 M358.31 177 C410.91 237.57, 411 237.59, 358.31 295 M358.31 295 C334.36 321.02, 311.42 345.02, 256.25 411 M358.31 295 C330.67 324.19, 306.25 352.96, 256.25 411 M256.25 411 C206.34 471.99, 203.95 471.86, 153.75 411 M256.25 411 C205.33 467.97, 203.2 470.86, 153.75 411 M153.75 411 C120.65 372.87, 85.86 332.48, 51.25 295 M153.75 411 C117.7 371.27, 81.61 328.79, 51.25 295 M51.25 295 C-0.07 234.57, -1.81 237.43, 51.25 177 M51.25 295 C1 234.59, -1.99 234.17, 51.25 177 M51.25 177 C77.48 147.4, 104.39 117.79, 153.75 59 M51.25 177 C71.82 151.46, 95.54 125.18, 153.75 59 M153.75 59 C206.63 0.78, 206.11 -1.8, 256.25 59 M153.75 59 C203 -0.78, 202.7 -1.45, 256.25 59" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1862.3950573855502 209.3981079505711) rotate(0 94.33794403076172 112.5)"><text x="94.33794403076172" 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="94.33794403076172" 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><text x="94.33794403076172" 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><text x="94.33794403076172" 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">(typescript</text><text x="94.33794403076172" 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">code)</text></g><g stroke-linecap="round"><g transform="translate(2222.3352424360282 320.70868051409707) rotate(0 63.90057999176406 0.6910400870706326)"><path d="M-0.86 -1.13 C20.5 -0.7, 106.04 1.89, 127.33 2.5 M0.9 0.9 C22.13 1.02, 104.74 0.98, 126.14 0.97" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2222.3352424360282 320.70868051409707) rotate(0 63.90057999176406 0.6910400870706326)"><path d="M97.95 11.24 C102.59 8.29, 112.85 5.16, 126.14 0.97 M97.95 11.24 C109.25 6.41, 120.21 3.41, 126.14 0.97" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2222.3352424360282 320.70868051409707) rotate(0 63.90057999176406 0.6910400870706326)"><path d="M97.94 -9.28 C102.57 -7.49, 112.83 -5.88, 126.14 0.97 M97.94 -9.28 C109.38 -5.96, 120.34 -0.8, 126.14 0.97" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(2383.624496436406 91.01063581496237) rotate(0 192.5423335140431 235)"><path d="M241.25 59 C278.91 102.47, 311.08 144.02, 336.83 177 C383.94 234.72, 384.76 235.61, 336.83 295 C308.47 328.31, 283.12 360.66, 241.25 411 C192.04 470.4, 192.76 472.47, 144.75 411 C115.62 382.35, 92.3 347.43, 48.25 295 C-3.58 235.64, 0.8 234.08, 48.25 177 C86.87 132.05, 119.81 93.86, 144.75 59 C192.59 -0.44, 195.27 1.41, 241.25 59" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M241.25 59 C263.17 88.28, 290.11 118.89, 336.83 177 M241.25 59 C275.86 99.69, 307.86 141.94, 336.83 177 M336.83 177 C385.49 234.66, 383.97 234.36, 336.83 295 M336.83 177 C387.15 234.76, 383.79 236.46, 336.83 295 M336.83 295 C306.57 330.67, 279.15 368.41, 241.25 411 M336.83 295 C311.92 324.95, 285.18 355.06, 241.25 411 M241.25 411 C192.08 471.43, 192.35 469.5, 144.75 411 M241.25 411 C194.21 468.77, 191.72 468.16, 144.75 411 M144.75 411 C109.14 364.02, 70.42 320.75, 48.25 295 M144.75 411 C109.42 368.95, 73.81 326.29, 48.25 295 M48.25 295 C-0.97 235.66, 1.34 234.43, 48.25 177 M48.25 295 C-0.47 234.58, -2.29 235.25, 48.25 177 M48.25 177 C82.16 136.58, 112.93 95.15, 144.75 59 M48.25 177 C81.29 134.91, 115.91 93.41, 144.75 59 M144.75 59 C192.65 1.74, 191.93 -0.07, 241.25 59 M144.75 59 C194.13 -1.45, 193.29 -2.06, 241.25 59" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2490.013705185615 213.51063581496237) rotate(0 86.3819580078125 112.5)"><text x="86.3819580078125" 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 </text><text x="86.3819580078125" 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">zk-SNARK</text><text x="86.3819580078125" 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">proof of </text><text x="86.3819580078125" 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">valid </text><text x="86.3819580078125" 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">processing</text></g><g stroke-linecap="round" transform="translate(2317.2151785212527 965.0829563676589) rotate(0 255.7700986066818 325)"><path d="M320 81.5 C355.41 128.36, 395.75 179.03, 447.54 244.5 C512.86 328.38, 514.83 324.87, 447.54 407.5 C410.51 459.89, 370.57 507.62, 320 568.5 C253.11 653.17, 254.97 651.21, 192 568.5 C145.97 510.58, 101.2 450.86, 64 407.5 C-0.81 326.5, 3.21 325.86, 64 244.5 C100.2 199.92, 133.25 160.24, 192 81.5 C258.36 -1.96, 256.19 3.28, 320 81.5" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M320 81.5 C355.68 124.26, 390.33 169.02, 447.54 244.5 M320 81.5 C362.48 137.26, 405.16 191.55, 447.54 244.5 M447.54 244.5 C511.45 325.32, 510.47 326.87, 447.54 407.5 M447.54 244.5 C513.45 326.91, 513.74 327.87, 447.54 407.5 M447.54 407.5 C411.65 451.26, 380.29 494.28, 320 568.5 M447.54 407.5 C405.69 461.54, 363.65 514.24, 320 568.5 M320 568.5 C254.26 650.94, 257.61 650.67, 192 568.5 M320 568.5 C257.27 651.77, 255.62 648.19, 192 568.5 M192 568.5 C164.89 533.82, 138.95 501.15, 64 407.5 M192 568.5 C147.4 516.06, 105.29 461.22, 64 407.5 M64 407.5 C1.95 324.32, 0.61 327.57, 64 244.5 M64 407.5 C-1.11 325.26, -1.53 325.4, 64 244.5 M64 244.5 C95.21 205.21, 127.69 162.78, 192 81.5 M64 244.5 C93.09 208.37, 121.49 173.03, 192 81.5 M192 81.5 C254.92 0.72, 254.76 -0.12, 320 81.5 M192 81.5 C256.38 0.51, 257.09 -0.26, 320 81.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2450.304260722543 1132.5829563676589) rotate(0 122.79596710205078 157.5)"><text x="122.79596710205078" 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">submit proof </text><text x="122.79596710205078" 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">on chain along</text><text x="122.79596710205078" 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 </text><text x="122.79596710205078" 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">commitment </text><text x="122.79596710205078" 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 state</text><text x="122.79596710205078" 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">and ballot </text><text x="122.79596710205078" 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">trees</text></g><g stroke-linecap="round"><g transform="translate(2567.3960819246677 652.678214861211) rotate(0 1.979901366224567 116.23635726933344)"><path d="M0.74 -0.74 C1.3 37.85, 2.65 192.84, 3.35 231.58 M-0.33 1.49 C0.63 40.19, 4.91 194.13, 5.74 232.64" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2567.3960819246677 652.678214861211) rotate(0 1.979901366224567 116.23635726933344)"><path d="M-5.22 204.72 C-3.15 211.98, -0.14 222.97, 5.74 232.64 M-5.22 204.72 C-1.54 211.45, 0.14 217.93, 5.74 232.64" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2567.3960819246677 652.678214861211) rotate(0 1.979901366224567 116.23635726933344)"><path d="M15.29 204.2 C11.23 211.75, 8.11 222.89, 5.74 232.64 M15.29 204.2 C14.17 211.05, 11.03 217.65, 5.74 232.64" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(2282.9595037989657 1266.5675146781387) rotate(0 -104.75058072555362 2.614816230667202)"><path d="M-0.49 0.86 C-35.33 1.5, -173.92 3.88, -208.9 4.47 M1.45 0.26 C-33.5 0.98, -174.64 4.78, -209.54 5.6" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2282.9595037989657 1266.5675146781387) rotate(0 -104.75058072555362 2.614816230667202)"><path d="M-181.62 -5.37 C-188.75 -1.1, -200.08 -0.18, -209.54 5.6 M-181.62 -5.37 C-188.62 -2.28, -194.98 0.31, -209.54 5.6" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(2282.9595037989657 1266.5675146781387) rotate(0 -104.75058072555362 2.614816230667202)"><path d="M-181.1 15.14 C-188.5 13.08, -199.99 7.65, -209.54 5.6 M-181.1 15.14 C-188.24 13.55, -194.72 11.44, -209.54 5.6" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1513.4828297714732 947.6723703017606) rotate(0 257.9217981308859 325)"><path d="M322.5 81.5 C372.16 140.35, 414.11 198.72, 451.34 244.5 C513.6 328.33, 515.57 322.51, 451.34 407.5 C425.83 441.81, 393.89 482.06, 322.5 568.5 C261.3 647.3, 255.21 648.92, 193.5 568.5 C148.69 509.24, 102.53 451.88, 64.5 407.5 C-1.67 328.81, 0.07 325.4, 64.5 244.5 C100.07 199.4, 140.56 148.53, 193.5 81.5 C255.45 -2.52, 259.98 3.17, 322.5 81.5" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M322.5 81.5 C364.14 132.4, 404.68 183.1, 451.34 244.5 M322.5 81.5 C347.83 114.11, 373.67 145.41, 451.34 244.5 M451.34 244.5 C515.29 324.79, 514.8 326.18, 451.34 407.5 M451.34 244.5 C516.28 327.65, 513.85 323.84, 451.34 407.5 M451.34 407.5 C402.06 470.98, 353.44 530.05, 322.5 568.5 M451.34 407.5 C407.69 460.96, 364.54 514.39, 322.5 568.5 M322.5 568.5 C256.22 649.68, 259.11 651.1, 193.5 568.5 M322.5 568.5 C260.21 650.97, 260.08 651.47, 193.5 568.5 M193.5 568.5 C150.02 516.17, 111.12 463.65, 64.5 407.5 M193.5 568.5 C146.21 509.69, 98.06 449.23, 64.5 407.5 M64.5 407.5 C0.12 325.19, -0.77 325.88, 64.5 244.5 M64.5 407.5 C-0.05 325.37, -0.6 325.67, 64.5 244.5 M64.5 244.5 C112.99 182.13, 160.42 120.66, 193.5 81.5 M64.5 244.5 C113.83 182.66, 161.94 120.9, 193.5 81.5 M193.5 81.5 C259.05 -0.14, 259.59 0.6, 322.5 81.5 M193.5 81.5 C256.05 2.01, 259.98 1.37, 322.5 81.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1668.1057848061546 1182.6723703017606) rotate(0 103.33794403076172 90)"><text x="103.33794403076172" 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">tallyVotes </text><text x="103.33794403076172" 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">locally </text><text x="103.33794403076172" 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">(typescript </text><text x="103.33794403076172" 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">code)</text></g><g stroke-linecap="round" transform="translate(818.4786729049006 955.6614556165059) rotate(0 257.9217981308859 325)"><path d="M322.5 81.5 C356.62 126.37, 391.92 170.68, 451.34 244.5 C518.87 328.5, 518.56 324.29, 451.34 407.5 C421.84 449.27, 388.63 490.7, 322.5 568.5 C256.31 650.59, 260.87 651.96, 193.5 568.5 C151.61 513.74, 104.99 455.59, 64.5 407.5 C-1.54 329.03, -0.83 326.58, 64.5 244.5 C113.75 183.77, 161.17 118.18, 193.5 81.5 C257.34 -1.64, 261.55 1.94, 322.5 81.5" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M322.5 81.5 C375.23 145.98, 424.36 208.98, 451.34 244.5 M322.5 81.5 C369.22 138.56, 416.28 197.59, 451.34 244.5 M451.34 244.5 C515.05 324.01, 516.56 327.81, 451.34 407.5 M451.34 244.5 C515.35 327.99, 516 327.4, 451.34 407.5 M451.34 407.5 C417.89 446.39, 385.35 488.99, 322.5 568.5 M451.34 407.5 C424.88 438.51, 398.17 472.1, 322.5 568.5 M322.5 568.5 C256.78 648.51, 258.55 648.26, 193.5 568.5 M322.5 568.5 C259.78 649.74, 256.95 651.25, 193.5 568.5 M193.5 568.5 C151.65 514.62, 108.59 461.97, 64.5 407.5 M193.5 568.5 C149.6 516.2, 108.79 462.54, 64.5 407.5 M64.5 407.5 C-1.04 327.83, -1.13 326.24, 64.5 244.5 M64.5 407.5 C1.58 328.01, 1.55 326.45, 64.5 244.5 M64.5 244.5 C112.67 183.36, 164.68 120.64, 193.5 81.5 M64.5 244.5 C94.85 206.33, 126.26 166.93, 193.5 81.5 M193.5 81.5 C259 0.49, 257.6 0.66, 322.5 81.5 M193.5 81.5 C258.59 0.11, 258.93 -2.05, 322.5 81.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(955.5516019996403 1190.661455616506) rotate(0 120.88796997070312 90)"><text x="120.88796997070312" 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 zk-</text><text x="120.88796997070312" 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">SNARK proof </text><text x="120.88796997070312" 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 valid </text><text x="120.88796997070312" 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">tallying</text></g><g stroke-linecap="round" transform="translate(151.64048659562513 938.3723517513681) rotate(0 257.9217981308859 325)"><path d="M322.5 81.5 C364.41 140.92, 413.76 198.85, 451.34 244.5 C514.74 326.66, 515.53 328.25, 451.34 407.5 C403.34 469.36, 355.92 524.55, 322.5 568.5 C257.18 647.49, 258.14 650.58, 193.5 568.5 C160.38 526.49, 129.02 487.74, 64.5 407.5 C-3.35 325.39, 1.24 328.67, 64.5 244.5 C97.84 197.61, 135.94 153.6, 193.5 81.5 C254.85 -0.74, 255.48 -2.5, 322.5 81.5" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M322.5 81.5 C367.33 136.75, 411.22 193.54, 451.34 244.5 M322.5 81.5 C362.54 134.22, 405.32 187.73, 451.34 244.5 M451.34 244.5 C517.25 324.53, 517.75 327.81, 451.34 407.5 M451.34 244.5 C517.15 324.55, 517.34 323.81, 451.34 407.5 M451.34 407.5 C401.3 469.51, 354.79 528.05, 322.5 568.5 M451.34 407.5 C399.9 469.52, 350.46 533.29, 322.5 568.5 M322.5 568.5 C259.81 648.89, 256.84 649.08, 193.5 568.5 M322.5 568.5 C257.15 650.94, 259.27 648.43, 193.5 568.5 M193.5 568.5 C147.91 510.51, 102.77 452.98, 64.5 407.5 M193.5 568.5 C155.47 521.24, 116.25 471.49, 64.5 407.5 M64.5 407.5 C1.28 327.43, 1.48 324.15, 64.5 244.5 M64.5 407.5 C-1.33 324.18, -0.17 325.86, 64.5 244.5 M64.5 244.5 C101.99 199.91, 139.03 152.52, 193.5 81.5 M64.5 244.5 C113.15 182.58, 162.11 121, 193.5 81.5 M193.5 81.5 C258.85 -0.53, 259.39 -1.12, 322.5 81.5 M193.5 81.5 C258.99 1.2, 256.62 0.09, 322.5 81.5" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(289.81143815130235 1105.8723517513681) rotate(0 119.78994750976562 157.5)"><text x="119.78994750976562" 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">submit proof </text><text x="119.78994750976562" 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">on chain for </text><text x="119.78994750976562" 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">verification </text><text x="119.78994750976562" 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">along with </text><text x="119.78994750976562" 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 </text><text x="119.78994750976562" 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">tallyCommitme</text><text x="119.78994750976562" 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">nt</text></g><g stroke-linecap="round"><g transform="translate(1499.4498385471727 1271.9843975690865) rotate(0 -70.95610732250918 0.49195441272649987)"><path d="M0.35 -0.14 C-23.39 0.04, -119.02 -0.16, -142.83 -0.16 M-0.93 -1.25 C-24.27 -0.87, -116.82 0.47, -140.6 0.78" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1499.4498385471727 1271.9843975690865) rotate(0 -70.95610732250918 0.49195441272649987)"><path d="M-112.56 -9.87 C-120.44 -8.46, -129.66 -5.11, -140.6 0.78 M-112.56 -9.87 C-119.27 -8.39, -123.73 -5.01, -140.6 0.78" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1499.4498385471727 1271.9843975690865) rotate(0 -70.95610732250918 0.49195441272649987)"><path d="M-112.27 10.65 C-120.02 6.54, -129.32 4.37, -140.6 0.78 M-112.27 10.65 C-118.91 7.84, -123.42 6.92, -140.6 0.78" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(788.4895513835186 1271.562042900683) rotate(0 -59.759620709967976 -0.01901409038282509)"><path d="M0.68 -0.97 C-19.27 -0.99, -100.2 -1.32, -120.09 -1.09 M-0.43 1.13 C-20.54 1.32, -101.58 0.37, -121.33 -0.11" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(788.4895513835186 1271.562042900683) rotate(0 -59.759620709967976 -0.01901409038282509)"><path d="M-92.98 -9.9 C-102.18 -8.1, -109.81 -3.11, -121.33 -0.11 M-92.98 -9.9 C-102.12 -6.49, -112.63 -3.27, -121.33 -0.11" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(788.4895513835186 1271.562042900683) rotate(0 -59.759620709967976 -0.01901409038282509)"><path d="M-93.32 10.62 C-102.26 7, -109.79 6.55, -121.33 -0.11 M-93.32 10.62 C-102.37 7.17, -112.77 3.52, -121.33 -0.11" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask></svg>
@@ -0,0 +1,21 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1629.0087534767117 546.4862977078576" width="4887.026260430135" height="1639.4588931235728">
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="1629.0087534767117" height="546.4862977078576" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(317.4465741934473 260.11561139102986) rotate(0 123.7048130233893 33.80052213620306)"><path d="M16.9 0 C88.66 -2.52, 156.58 -2.45, 230.51 0 M16.9 0 C66.77 -1.7, 117.36 -1.73, 230.51 0 M230.51 0 C242.24 1.63, 247.43 7.01, 247.41 16.9 M230.51 0 C242.62 -2.15, 246.2 7.38, 247.41 16.9 M247.41 16.9 C246.38 28.17, 248.55 35.49, 247.41 50.7 M247.41 16.9 C248.03 29.22, 246.89 43.41, 247.41 50.7 M247.41 50.7 C245.65 60.13, 241.11 68.68, 230.51 67.6 M247.41 50.7 C248.77 60.22, 241.21 65.36, 230.51 67.6 M230.51 67.6 C179.25 68.27, 128.1 66.52, 16.9 67.6 M230.51 67.6 C154.16 66.28, 77.13 65.93, 16.9 67.6 M16.9 67.6 C6.3 65.98, 0.99 61.68, 0 50.7 M16.9 67.6 C7.51 66.29, -1.08 59.91, 0 50.7 M0 50.7 C1.97 43, -1.17 35.48, 0 16.9 M0 50.7 C-0.43 40.05, -0.32 30.73, 0 16.9 M0 16.9 C-1.08 4.81, 4.96 0.96, 16.9 0 M0 16.9 C-1.51 6.35, 5.18 -0.17, 16.9 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(326.6914873144924 281.4161335272329) rotate(0 114.45989990234375 12.5)"><text x="114.45989990234375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinBatchLeavesExists</text></g><g stroke-linecap="round" transform="translate(448.9836842292516 114.84970794910697) rotate(0 110.05757116156974 32.177416550875904)"><path d="M16.09 0 C59.6 -0.59, 107.31 1.21, 204.03 0 M16.09 0 C67.06 1.44, 117.58 1.31, 204.03 0 M204.03 0 C215.48 -1.87, 219.06 6.88, 220.12 16.09 M204.03 0 C214.35 1, 221.03 4.01, 220.12 16.09 M220.12 16.09 C221.83 29.83, 221.13 41.76, 220.12 48.27 M220.12 16.09 C219 23.41, 219.54 33.1, 220.12 48.27 M220.12 48.27 C221.3 57.47, 214.26 62.41, 204.03 64.35 M220.12 48.27 C218.73 60.22, 215.48 64.35, 204.03 64.35 M204.03 64.35 C148.05 64.4, 88.7 63.66, 16.09 64.35 M204.03 64.35 C156.41 61.94, 108.62 62.61, 16.09 64.35 M16.09 64.35 C6.99 63.22, -0.94 57.2, 0 48.27 M16.09 64.35 C3.79 63.88, -1.24 61.18, 0 48.27 M0 48.27 C0.29 38.79, 1.99 27.82, 0 16.09 M0 48.27 C-0.46 39.34, -0.25 31.72, 0 16.09 M0 16.09 C-1.31 5.99, 4.97 -0.14, 16.09 0 M0 16.09 C1.93 7.3, 7.49 0.11, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(504.9512971999038 134.5271244999829) rotate(0 54.08995819091797 12.5)"><text x="54.08995819091797" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">pathIndex </text></g><g stroke-linecap="round"><g transform="translate(419.03484766876863 210.44600519547538) rotate(0 1.4394641477324512 19.78250013283899)"><path d="M0.04 -0.17 C0.68 6.33, 2.91 32.69, 3.41 39.38 M-0.61 -0.73 C0.05 5.81, 2.69 33.34, 3.25 39.99" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(419.03484766876863 210.44600519547538) rotate(0 1.4394641477324512 19.78250013283899)"><path d="M-5.2 22.04 C-3.6 26.88, -1.8 30.04, 3.25 39.99 M-5.2 22.04 C-1.79 28.39, 0.98 36.08, 3.25 39.99" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(419.03484766876863 210.44600519547538) rotate(0 1.4394641477324512 19.78250013283899)"><path d="M8.32 20.81 C6.99 25.92, 5.87 29.35, 3.25 39.99 M8.32 20.81 C6.57 27.68, 4.19 35.84, 3.25 39.99" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(10.98612416042397 238.20014610632353) rotate(0 110.05757116156974 32.177416550875904)"><path d="M16.09 0 C73.06 -1.34, 132.99 -1.78, 204.03 0 M16.09 0 C84.86 2.52, 154.52 2.19, 204.03 0 M204.03 0 C215.55 -1.17, 221.84 6.36, 220.12 16.09 M204.03 0 C214.18 1.78, 221.62 6.35, 220.12 16.09 M220.12 16.09 C221.95 25.27, 218.13 37.31, 220.12 48.27 M220.12 16.09 C220.06 26.5, 219.7 39.4, 220.12 48.27 M220.12 48.27 C220.75 58.99, 214.84 64.48, 204.03 64.35 M220.12 48.27 C217.92 60.36, 216.86 63.22, 204.03 64.35 M204.03 64.35 C135.62 65.64, 69.01 65.97, 16.09 64.35 M204.03 64.35 C149.85 62.39, 95.93 63.08, 16.09 64.35 M16.09 64.35 C4.28 66.25, 0.13 57.75, 0 48.27 M16.09 64.35 C5.86 64.46, 0.44 61.05, 0 48.27 M0 48.27 C1.38 38.71, -0.71 30.63, 0 16.09 M0 48.27 C0.02 36.99, 1.05 26.7, 0 16.09 M0 16.09 C1.85 5.45, 4.18 1.62, 16.09 0 M0 16.09 C1.6 4.23, 6.34 0.98, 16.09 0" stroke="#f08c00" stroke-width="1" fill="none"></path></g><g transform="translate(36.97377192111526 257.8775626571994) rotate(0 84.0699234008789 12.5)"><text x="84.0699234008789" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#f08c00" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">parameter: levels</text></g><g transform="translate(464.43656263196317 212.9928601943197) rotate(0 31.809967041015625 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Inputs</text></g><g stroke-linecap="round"><g transform="translate(247.68206289723003 301.7801794512458) rotate(0 23.123652268284786 -2.6326676944133425)"><path d="M0.48 0.27 C8.12 -0.48, 38.42 -3.96, 46.11 -4.84 M0.06 -0.06 C7.6 -0.93, 37.88 -4.6, 45.61 -5.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(247.68206289723003 301.7801794512458) rotate(0 23.123652268284786 -2.6326676944133425)"><path d="M24.88 5 C32.46 1.06, 39.78 -1.63, 45.61 -5.59 M24.88 5 C31.6 1.91, 38.64 -2.68, 45.61 -5.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(247.68206289723003 301.7801794512458) rotate(0 23.123652268284786 -2.6326676944133425)"><path d="M22.93 -10.8 C31.12 -9.37, 39.11 -6.7, 45.61 -5.59 M22.93 -10.8 C30.35 -8.47, 38.05 -7.63, 45.61 -5.59" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(755.152973840808 107.06593525709354) rotate(0 110.05757116156974 32.177416550875904)"><path d="M16.09 0 C90.26 1.77, 162.2 1.27, 204.03 0 M16.09 0 C63.32 -2.78, 111.97 -1.32, 204.03 0 M204.03 0 C215.93 -1.52, 219.63 3.42, 220.12 16.09 M204.03 0 C213.37 1.23, 220.84 5.36, 220.12 16.09 M220.12 16.09 C221.33 27.71, 219.15 36.76, 220.12 48.27 M220.12 16.09 C220.55 23.49, 220.72 32.37, 220.12 48.27 M220.12 48.27 C221.75 57.86, 213.81 62.56, 204.03 64.35 M220.12 48.27 C218.54 58.51, 213.51 66.54, 204.03 64.35 M204.03 64.35 C146.55 65.15, 90.67 64.03, 16.09 64.35 M204.03 64.35 C153.75 65.13, 104.22 66.02, 16.09 64.35 M16.09 64.35 C4.05 64.98, -0.39 58.85, 0 48.27 M16.09 64.35 C7.29 66.3, 2.13 59.1, 0 48.27 M0 48.27 C-1.25 41.36, 0.59 32.12, 0 16.09 M0 48.27 C-0.37 35.87, 1.06 25.72, 0 16.09 M0 16.09 C0.26 6.47, 6.19 0.5, 16.09 0 M0 16.09 C-1.7 5.27, 3.11 1.18, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(788.6606106151712 114.24335180796942) rotate(0 76.54993438720703 25)"><text x="76.54993438720703" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. Compute the </text><text x="76.54993438720703" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">subroot</text></g><g transform="translate(602.5330619846427 238.51548073850375) rotate(0 49.669944763183594 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Processing</text></g><g stroke-linecap="round"><g transform="translate(585.3564497245825 299.14980187549617) rotate(0 54.04946410837647 -0.8482636989667753)"><path d="M-0.89 1.19 C16.87 0.81, 88.94 -2.43, 107.04 -2.8 M0.85 0.77 C18.93 0.54, 91.55 -1.21, 109.2 -1.84" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(585.3564497245825 299.14980187549617) rotate(0 54.04946410837647 -0.8482636989667753)"><path d="M81.32 9.23 C92.83 3.91, 98.49 1.24, 109.2 -1.84 M81.32 9.23 C90.87 4.55, 100.38 2.14, 109.2 -1.84" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(585.3564497245825 299.14980187549617) rotate(0 54.04946410837647 -0.8482636989667753)"><path d="M80.72 -11.29 C92.35 -9.63, 98.21 -5.32, 109.2 -1.84 M80.72 -11.29 C90.61 -8.7, 100.33 -3.85, 109.2 -1.84" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(206.40200080163322 112.93838801946617) rotate(0 110.05757116156974 32.177416550875904)"><path d="M16.09 0 C56.74 0.99, 102.15 2.83, 204.03 0 M16.09 0 C57.56 2.37, 100.55 1.83, 204.03 0 M204.03 0 C214.84 0.13, 218.21 6.56, 220.12 16.09 M204.03 0 C216.86 -1.13, 221.38 4.33, 220.12 16.09 M220.12 16.09 C218.22 27.8, 219.56 39.15, 220.12 48.27 M220.12 16.09 C219.28 23.71, 219.42 32.69, 220.12 48.27 M220.12 48.27 C220.24 57.75, 215.18 64.45, 204.03 64.35 M220.12 48.27 C220.56 61.05, 213.91 63.54, 204.03 64.35 M204.03 64.35 C151.65 62.67, 101.88 62.03, 16.09 64.35 M204.03 64.35 C142.63 65.06, 80.47 64.27, 16.09 64.35 M16.09 64.35 C4.18 65.97, 1.39 58, 0 48.27 M16.09 64.35 C6.34 65.33, -0.73 60.31, 0 48.27 M0 48.27 C-1.95 42.9, 0.73 34.62, 0 16.09 M0 48.27 C-0.87 36.8, -1.12 25.92, 0 16.09 M0 16.09 C1.93 5.3, 4.37 0.84, 16.09 0 M0 16.09 C0.78 7.24, 6.91 -0.57, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(295.42959607209013 132.6158045703421) rotate(0 21.02997589111328 12.5)"><text x="21.02997589111328" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">root</text></g><g stroke-linecap="round" transform="translate(375.6422509985141 10) rotate(0 151.45918851273836 42.5)"><path d="M21.25 0 C89.49 -1.62, 158.61 -2.19, 281.67 0 M21.25 0 C113.36 0.05, 204.65 0.48, 281.67 0 M281.67 0 C297.67 -0.99, 304.02 6.19, 302.92 21.25 M281.67 0 C296.6 -1.96, 303.69 5.22, 302.92 21.25 M302.92 21.25 C301.72 35.17, 301.07 49.6, 302.92 63.75 M302.92 21.25 C302.75 32.5, 302.91 45.03, 302.92 63.75 M302.92 63.75 C303.3 79.7, 295.1 84.29, 281.67 85 M302.92 63.75 C302.33 79.37, 294.59 84.06, 281.67 85 M281.67 85 C212.83 83.32, 142.87 84.97, 21.25 85 M281.67 85 C181.1 85.74, 82.03 84.7, 21.25 85 M21.25 85 C7.93 85.85, -0.64 79.06, 0 63.75 M21.25 85 C5.15 86.15, -1.46 75.86, 0 63.75 M0 63.75 C0.92 48.46, 0.31 30.03, 0 21.25 M0 63.75 C1.38 51.14, -0.08 39.01, 0 21.25 M0 21.25 C0.68 8.71, 8.43 -0.5, 21.25 0 M0 21.25 C-1.4 7.81, 5.35 2.02, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(406.65153411574465 27.5) rotate(0 120.44990539550781 25)"><text x="120.44990539550781" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">leaves (array of length </text><text x="120.44990539550781" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batchLevels ** 5)</text></g><g stroke-linecap="round" transform="translate(10 304.409111720117) rotate(0 110.05757116156974 32.177416550875904)"><path d="M16.09 0 C57.86 2.97, 96.12 1.95, 204.03 0 M16.09 0 C76.97 1.3, 137.97 0.2, 204.03 0 M204.03 0 C212.99 0.97, 220.35 5.21, 220.12 16.09 M204.03 0 C215.03 0.2, 221.22 4.71, 220.12 16.09 M220.12 16.09 C218.71 23.21, 220.6 33.02, 220.12 48.27 M220.12 16.09 C218.89 21.81, 219.92 29.19, 220.12 48.27 M220.12 48.27 C221.64 59.25, 216.54 63.94, 204.03 64.35 M220.12 48.27 C220.56 58.62, 213.27 63.06, 204.03 64.35 M204.03 64.35 C131.09 62.78, 60.47 63.23, 16.09 64.35 M204.03 64.35 C139.89 64.49, 76.67 63.41, 16.09 64.35 M16.09 64.35 C4.04 63.8, -1.77 59.15, 0 48.27 M16.09 64.35 C6.72 65.95, 0.28 58.7, 0 48.27 M0 48.27 C1.17 34.98, -2.08 24.37, 0 16.09 M0 48.27 C-0.39 39.76, -0.69 30.77, 0 16.09 M0 16.09 C0.34 6.15, 3.99 0.45, 16.09 0 M0 16.09 C1.13 5.36, 5.42 -0.42, 16.09 0" stroke="#f08c00" stroke-width="1" fill="none"></path></g><g transform="translate(62.477622736277226 311.58652827099286) rotate(0 57.57994842529297 25)"><text x="57.57994842529297" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#f08c00" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">parameter: </text><text x="57.57994842529297" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#f08c00" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">batchLevels</text></g><g stroke-linecap="round" transform="translate(148.2714379094332 23.68743807921254) rotate(0 110.05757116156974 32.177416550875904)"><path d="M16.09 0 C71.32 -2.09, 126.38 -2.46, 204.03 0 M16.09 0 C64.73 0.75, 115.64 -0.07, 204.03 0 M204.03 0 C216.25 0.5, 219.52 4.71, 220.12 16.09 M204.03 0 C213.05 1.74, 221.21 4.14, 220.12 16.09 M220.12 16.09 C221.76 27.38, 218.94 35.94, 220.12 48.27 M220.12 16.09 C219.58 24.64, 219.15 34.44, 220.12 48.27 M220.12 48.27 C219.79 58.61, 213.57 63.15, 204.03 64.35 M220.12 48.27 C221.22 58.72, 214.39 62.69, 204.03 64.35 M204.03 64.35 C165.17 61.83, 125.49 64.85, 16.09 64.35 M204.03 64.35 C135.15 63.7, 68.02 63.18, 16.09 64.35 M16.09 64.35 C6.7 63.14, 0.23 59.61, 0 48.27 M16.09 64.35 C6.43 63.08, 1.2 58.03, 0 48.27 M0 48.27 C0.05 37.36, 0.5 22.8, 0 16.09 M0 48.27 C0.19 39.18, -0.44 31.06, 0 16.09 M0 16.09 C-0.7 7.09, 7 -1.58, 16.09 0 M0 16.09 C0.48 7.16, 7.61 -0.51, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(193.74906827510495 43.36485463008847) rotate(0 64.57994079589844 12.5)"><text x="64.57994079589844" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">pathElements</text></g><g stroke-linecap="round"><g transform="translate(1014.8388420332776 148.43386867078368) rotate(0 22.533480956416497 0)"><path d="M0.45 -0.03 C8.04 -0.03, 38.02 0.02, 45.39 0.06 M0.01 -0.53 C7.58 -0.43, 37.5 0.84, 45.12 0.8" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1014.8388420332776 148.43386867078368) rotate(0 22.533480956416497 0)"><path d="M23.79 8.05 C29.45 6.6, 35.35 3.32, 45.12 0.8 M23.79 8.05 C31.21 5.95, 38.27 3.74, 45.12 0.8" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1014.8388420332776 148.43386867078368) rotate(0 22.533480956416497 0)"><path d="M24.12 -7.36 C29.7 -4.68, 35.51 -3.82, 45.12 0.8 M24.12 -7.36 C31.48 -4.28, 38.42 -1.3, 45.12 0.8" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1079.634982658722 104.980815174317) rotate(0 122.9523651708082 42.5)"><path d="M21.25 0 C92.73 -2.31, 164.87 -1.27, 224.65 0 M21.25 0 C68.24 2.32, 114.51 1.04, 224.65 0 M224.65 0 C238.28 -1.25, 246 8.35, 245.9 21.25 M224.65 0 C239.62 -1.62, 245.31 5.77, 245.9 21.25 M245.9 21.25 C245.09 31.75, 245.62 40.43, 245.9 63.75 M245.9 21.25 C246.9 35.91, 246.01 50.04, 245.9 63.75 M245.9 63.75 C247.46 76.99, 240.65 84.35, 224.65 85 M245.9 63.75 C247.89 78.45, 237.76 85.61, 224.65 85 M224.65 85 C147.32 84.92, 66.58 87.58, 21.25 85 M224.65 85 C143.9 85, 63.36 84.42, 21.25 85 M21.25 85 C8.18 85.68, -1.02 77.31, 0 63.75 M21.25 85 C5.4 87.06, 2.01 79.5, 0 63.75 M0 63.75 C-1.99 52.33, -0.7 43.78, 0 21.25 M0 63.75 C-0.45 52.84, 0.13 43.74, 0 21.25 M0 21.25 C0.55 6.66, 5.4 -1.84, 21.25 0 M0 21.25 C1.17 6.22, 6.46 1.25, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1094.837408864687 122.480815174317) rotate(0 107.74993896484375 25)"><text x="107.74993896484375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">loop from 0 to </text><text x="107.74993896484375" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">LEAVES_PER_BATCH</text></g><g transform="translate(975.9231518536126 62.84476875375623) rotate(0 214.16986083984375 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">LEAVES_PER_BATCH == 5 ** batchLevels</text></g><g stroke-linecap="round" transform="translate(1373.1040231350953 101.56697410979962) rotate(0 122.9523651708082 42.5)"><path d="M21.25 0 C76.57 0.85, 135.64 -0.74, 224.65 0 M21.25 0 C69.7 0.14, 116.68 -0.27, 224.65 0 M224.65 0 C238.01 -1.01, 247.82 6.36, 245.9 21.25 M224.65 0 C238.05 -1.19, 247.87 6.14, 245.9 21.25 M245.9 21.25 C247.66 33.63, 244.67 44.33, 245.9 63.75 M245.9 21.25 C245.98 35.63, 246.07 51.38, 245.9 63.75 M245.9 63.75 C244.65 76.83, 239.54 84.8, 224.65 85 M245.9 63.75 C246.63 79.15, 238.65 82.87, 224.65 85 M224.65 85 C164.82 84.45, 106.54 84.19, 21.25 85 M224.65 85 C160.52 87.4, 96.1 87.14, 21.25 85 M21.25 85 C7.46 84.65, 1.51 78.48, 0 63.75 M21.25 85 C8.25 84.34, 0.9 76.31, 0 63.75 M0 63.75 C1.83 53.92, -1.76 43.21, 0 21.25 M0 63.75 C0.16 52.76, -0.36 43.09, 0 21.25 M0 21.25 C0.32 6.25, 8.5 0.54, 21.25 0 M0 21.25 C1.92 8.15, 8.03 -2.03, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1387.4764780275837 119.06697410979962) rotate(0 108.57991027832031 25)"><text x="108.57991027832031" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">pass leaves as input </text><text x="108.57991027832031" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">to QuinCheckRoot</text></g><g stroke-linecap="round" transform="translate(758.1471536225554 214.58529332893283) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C78.97 3.17, 134.16 2.85, 198.87 0 M21.25 0 C70.9 -1.18, 119.65 -1.56, 198.87 0 M198.87 0 C214.05 -1.2, 220.54 6.39, 220.12 21.25 M198.87 0 C214.4 1.55, 220.7 4.9, 220.12 21.25 M220.12 21.25 C218.6 37.04, 219.07 53.26, 220.12 63.75 M220.12 21.25 C219.89 33.49, 221.16 44.13, 220.12 63.75 M220.12 63.75 C219.13 78.21, 211.51 83.2, 198.87 85 M220.12 63.75 C221.09 79.41, 213.54 83.93, 198.87 85 M198.87 85 C131.52 85.85, 66.42 82.94, 21.25 85 M198.87 85 C145.13 85.67, 91.39 86.66, 21.25 85 M21.25 85 C8.19 86.12, -0.03 77.32, 0 63.75 M21.25 85 C5.34 86.3, 1.71 78.77, 0 63.75 M0 63.75 C0.14 50.7, 2.03 39.16, 0 21.25 M0 63.75 C0.14 47.5, -0.87 32.63, 0 21.25 M0 21.25 C-0.66 7.5, 6.92 1.08, 21.25 0 M0 21.25 C-1.04 8.16, 9.13 -0.03, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(763.684812064399 219.58529332893283) rotate(0 104.51991271972656 37.5)"><text x="104.51991271972656" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Check whether the</text><text x="104.51991271972656" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge"> Merkle path is valid</text><text x="104.51991271972656" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">using QuinLeafExists</text></g><g stroke-linecap="round" transform="translate(1092.6187413417883 212.83382074106493) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C68.22 -0.58, 112.13 -0.05, 198.87 0 M21.25 0 C56.45 1.05, 93.67 -0.41, 198.87 0 M198.87 0 C211.53 1.29, 221.07 6.81, 220.12 21.25 M198.87 0 C212.01 0.19, 219.29 8.61, 220.12 21.25 M220.12 21.25 C221.3 37.41, 219.52 53.7, 220.12 63.75 M220.12 21.25 C219.7 38.28, 220.14 54.31, 220.12 63.75 M220.12 63.75 C218.97 76.4, 211.32 84.24, 198.87 85 M220.12 63.75 C219.31 79.5, 214.9 87.01, 198.87 85 M198.87 85 C141.17 85.46, 81.5 84.93, 21.25 85 M198.87 85 C135.47 85.33, 72.01 86.42, 21.25 85 M21.25 85 C8.44 83.98, -1.01 78.58, 0 63.75 M21.25 85 C5.97 86.53, -0.79 79.46, 0 63.75 M0 63.75 C-0.91 53.76, 0.21 41.92, 0 21.25 M0 63.75 C-0.81 49.09, 0.09 36.13, 0 21.25 M0 21.25 C-1.61 7.01, 5.67 1.07, 21.25 0 M0 21.25 C-0.11 7.23, 5.76 -1.91, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1100.9363909335343 217.83382074106493) rotate(0 101.73992156982422 37.5)"><text x="101.73992156982422" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the subroot </text><text x="101.73992156982422" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">calculated above is </text><text x="101.73992156982422" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">passed as leaf</text></g><g stroke-linecap="round"><g transform="translate(1012.1953202967106 255.0389663935248) rotate(0 30.85294888313365 -0.3406076083654739)"><path d="M0.8 -0.41 C11.15 -0.51, 52.55 -1.24, 62.51 -1.15 M-0.24 -1.67 C9.99 -1.55, 51.46 0.16, 61.99 0.15" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1012.1953202967106 255.0389663935248) rotate(0 30.85294888313365 -0.3406076083654739)"><path d="M33.57 9.77 C42.4 7.72, 51.78 1.31, 61.99 0.15 M33.57 9.77 C43.98 6.26, 54.78 3.07, 61.99 0.15" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1012.1953202967106 255.0389663935248) rotate(0 30.85294888313365 -0.3406076083654739)"><path d="M34.03 -10.74 C42.61 -5.96, 51.83 -5.53, 61.99 0.15 M34.03 -10.74 C44.14 -6.72, 54.77 -2.37, 61.99 0.15" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1092.2323804725975 323.2466065035931) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C85.59 1.16, 150.83 -2.03, 198.87 0 M21.25 0 C86.82 -1.6, 154.31 -0.43, 198.87 0 M198.87 0 C212.48 1.47, 220.14 7.41, 220.12 21.25 M198.87 0 C211.78 1.41, 220.94 5.66, 220.12 21.25 M220.12 21.25 C221.3 30.8, 219.11 43.76, 220.12 63.75 M220.12 21.25 C221.12 30.1, 220.16 40.57, 220.12 63.75 M220.12 63.75 C221.24 79, 212.96 83.07, 198.87 85 M220.12 63.75 C221.92 78.76, 214.05 85.97, 198.87 85 M198.87 85 C163.6 84.14, 128.19 83.43, 21.25 85 M198.87 85 C140.99 85.48, 80.29 85.71, 21.25 85 M21.25 85 C6.65 83.92, -1.56 78.74, 0 63.75 M21.25 85 C7.36 85.31, -0.65 76.58, 0 63.75 M0 63.75 C1.68 49.62, -0.47 37.71, 0 21.25 M0 63.75 C0.3 53.61, -0.64 42.18, 0 21.25 M0 21.25 C-1.17 8.62, 5.71 0.08, 21.25 0 M0 21.25 C0.18 6.07, 5.79 -1.52, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1114.4600337264528 340.7466065035931) rotate(0 87.82991790771484 25)"><text x="87.82991790771484" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the root input is </text><text x="87.82991790771484" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">passed as root</text></g><g stroke-linecap="round" transform="translate(1094.9623250351697 426.48629770785766) rotate(0 110.05757116156974 55)"><path d="M27.5 0 C77.99 -2, 124.87 -2.95, 192.62 0 M27.5 0 C80.86 -1.84, 132.58 -1.88, 192.62 0 M192.62 0 C210 0.05, 221.22 9.44, 220.12 27.5 M192.62 0 C211.46 -0.16, 222.01 10.11, 220.12 27.5 M220.12 27.5 C219.51 41.42, 218.38 53.74, 220.12 82.5 M220.12 27.5 C220.42 45.55, 220.71 62.84, 220.12 82.5 M220.12 82.5 C220.62 102.03, 212.72 110.58, 192.62 110 M220.12 82.5 C219.73 100.74, 209.11 108.93, 192.62 110 M192.62 110 C147.67 107.52, 98.81 111.11, 27.5 110 M192.62 110 C130.28 109.94, 69.84 109.6, 27.5 110 M27.5 110 C9.32 110.88, 1.25 100.2, 0 82.5 M27.5 110 C10.34 111.76, 0.79 102.74, 0 82.5 M0 82.5 C-0.17 70.12, -1.36 53.38, 0 27.5 M0 82.5 C-1.19 66.16, 0.54 50.34, 0 27.5 M0 27.5 C0.49 9.71, 8.59 -1.36, 27.5 0 M0 27.5 C1.06 6.98, 9.82 0.32, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1104.1999651664664 431.48629770785766) rotate(0 100.81993103027344 50)"><text x="100.81993103027344" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">wire each index and </text><text x="100.81993103027344" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">each element in the </text><text x="100.81993103027344" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">path to </text><text x="100.81993103027344" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinLeafExists</text></g><g stroke-linecap="round"><g transform="translate(1340.3072047612332 153.88991524738225) rotate(0 14.801179876955757 -4.185633933381212)"><path d="M0.45 0.47 C5.39 -1.05, 24.95 -7.41, 29.85 -8.91 M0.02 0.23 C4.89 -1.25, 24.61 -7.11, 29.55 -8.48" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1340.3072047612332 153.88991524738225) rotate(0 14.801179876955757 -4.185633933381212)"><path d="M17.13 0.59 C22.03 -2.23, 24.89 -5.33, 29.55 -8.48 M17.13 0.59 C20.38 -2.13, 23.58 -4.53, 29.55 -8.48" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1340.3072047612332 153.88991524738225) rotate(0 14.801179876955757 -4.185633933381212)"><path d="M14.2 -9.52 C20.13 -8.88, 24 -8.51, 29.55 -8.48 M14.2 -9.52 C18.24 -9.48, 22.24 -9.14, 29.55 -8.48" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask></svg>
@@ -0,0 +1,21 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1436.2211634820942 999.8422318232763" width="2872.4423269641884" height="1999.6844636465526">
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="1436.2211634820942" height="999.8422318232763" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(319.1642555971598 250.24969994289063) rotate(0 114.33810379333897 33.80052213620297)"><path d="M16.9 0 C80.41 0.5, 142.77 2.76, 211.78 0 M16.9 0 C57.25 0.79, 95.75 2.22, 211.78 0 M211.78 0 C223.26 0.53, 227.55 5.44, 228.68 16.9 M211.78 0 C221.94 0.98, 226.6 4.85, 228.68 16.9 M228.68 16.9 C228.98 27.68, 230.66 42.94, 228.68 50.7 M228.68 16.9 C228.45 26.7, 228.22 37.39, 228.68 50.7 M228.68 50.7 C226.95 61.3, 222.77 67.32, 211.78 67.6 M228.68 50.7 C230.05 62.12, 224.44 69.02, 211.78 67.6 M211.78 67.6 C162.86 68.81, 111.5 69.99, 16.9 67.6 M211.78 67.6 C152.38 67.27, 91.5 67.89, 16.9 67.6 M16.9 67.6 C5.89 69.44, 0.12 62.08, 0 50.7 M16.9 67.6 C6.32 68.27, 2.03 61.37, 0 50.7 M0 50.7 C1.09 42.55, -0.53 31.01, 0 16.9 M0 50.7 C0.17 42.19, -0.36 31.32, 0 16.9 M0 16.9 C-1.82 4.51, 6.99 1.84, 16.9 0 M0 16.9 C-1.53 4.83, 3.51 -0.47, 16.9 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(363.6624240877645 271.5502220790934) rotate(0 69.83993530273438 12.5)"><text x="69.83993530273438" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinCheckRoot</text></g><g stroke-linecap="round" transform="translate(317.45534478756235 109.16043579708457) rotate(0 110.05757116156975 32.17741655087593)"><path d="M16.09 0 C61.49 -0.8, 109.04 0.21, 204.03 0 M16.09 0 C56.1 -0.77, 95.33 -1.13, 204.03 0 M204.03 0 C213.8 0.85, 218.31 4.68, 220.12 16.09 M204.03 0 C216.25 1.86, 221.02 5.4, 220.12 16.09 M220.12 16.09 C220.2 23.09, 218.87 29.93, 220.12 48.27 M220.12 16.09 C219.11 25.36, 219.84 35.17, 220.12 48.27 M220.12 48.27 C221.31 59.13, 215.97 65.59, 204.03 64.35 M220.12 48.27 C219.16 56.84, 216.11 66.06, 204.03 64.35 M204.03 64.35 C147.26 64.25, 90.18 66.55, 16.09 64.35 M204.03 64.35 C153.48 65.87, 102.75 65.01, 16.09 64.35 M16.09 64.35 C5.96 64.93, 1.76 58.47, 0 48.27 M16.09 64.35 C5.16 65.71, -1.11 60.47, 0 48.27 M0 48.27 C-0.39 33.9, 0.61 23.19, 0 16.09 M0 48.27 C-0.69 35.21, 0.9 24.2, 0 16.09 M0 16.09 C-1.33 4.66, 3.52 -0.41, 16.09 0 M0 16.09 C1.49 4.14, 6.44 -1.81, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(322.6629937689563 116.3378523479605) rotate(0 104.84992218017578 25)"><text x="104.84992218017578" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">leaves (array of len </text><text x="104.84992218017578" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">5 ** levels)</text></g><g stroke-linecap="round"><g transform="translate(420.7474453768373 200.58009374733615) rotate(0 -0.44580281989499326 19.782500132839004)"><path d="M0.39 -0.48 C0.18 6.24, -0.92 33.17, -1.12 39.87 M-0.07 0.46 C-0.38 7.06, -1.49 32.4, -1.67 39.06" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(420.7474453768373 200.58009374733615) rotate(0 -0.44580281989499326 19.782500132839004)"><path d="M-7.76 20.23 C-6.75 25.83, -3.39 32.39, -1.67 39.06 M-7.76 20.23 C-6.06 26.59, -4.28 32.35, -1.67 39.06" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(420.7474453768373 200.58009374733615) rotate(0 -0.44580281989499326 19.782500132839004)"><path d="M5.77 20.72 C2.44 26.21, 1.46 32.61, -1.67 39.06 M5.77 20.72 C3.05 26.91, 0.41 32.52, -1.67 39.06" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(10 253.33636999422674) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C86.91 1.01, 156.06 -0.33, 204.03 0 M16.09 0 C69.71 -1.14, 125.8 0.01, 204.03 0 M204.03 0 C215.54 0.03, 218.55 7.08, 220.12 16.09 M204.03 0 C216.29 -0.22, 219.97 3.61, 220.12 16.09 M220.12 16.09 C221.83 23.34, 219.44 33.78, 220.12 48.27 M220.12 16.09 C220.92 25.91, 219.89 33.56, 220.12 48.27 M220.12 48.27 C221.3 60.47, 214.81 64.88, 204.03 64.35 M220.12 48.27 C221.54 59.16, 213.29 64.33, 204.03 64.35 M204.03 64.35 C138.56 63.76, 73.66 63.63, 16.09 64.35 M204.03 64.35 C147.51 64.64, 89.13 65.49, 16.09 64.35 M16.09 64.35 C4.4 65.64, 1.69 58.67, 0 48.27 M16.09 64.35 C5.34 63.84, -2.3 59.63, 0 48.27 M0 48.27 C-1.48 37.34, -1.41 31.41, 0 16.09 M0 48.27 C-0.71 35.44, 0.86 22.49, 0 16.09 M0 16.09 C0.93 3.79, 6.61 -0.86, 16.09 0 M0 16.09 C-0.4 4.42, 3.94 0.85, 16.09 0" stroke="#f08c00" stroke-width="1" fill="none"></path></g><g transform="translate(35.987647760690834 273.0137865451027) rotate(0 84.0699234008789 12.5)"><text x="84.0699234008789" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#f08c00" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">parameter: levels</text></g><g transform="translate(466.1491603400291 203.1269487461807) rotate(0 26.379974365234375 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Input</text></g><g transform="translate(477.43539645203145 351.6938564526765) rotate(0 34.84996032714844 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Output</text></g><g stroke-linecap="round"><g transform="translate(416.454529333404 350.42350268258747) rotate(0 0.2229014099474398 20.51105751905652)"><path d="M-0.5 -0.19 C-0.32 6.68, 0.61 34.6, 0.81 41.47 M0.25 -0.76 C0.41 5.95, 0.53 33.67, 0.56 40.73" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(416.454529333404 350.42350268258747) rotate(0 0.2229014099474398 20.51105751905652)"><path d="M-6.54 21.49 C-5.05 27.03, -2.11 31.62, 0.56 40.73 M-6.54 21.49 C-4.14 27.21, -2.37 32.68, 0.56 40.73" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(416.454529333404 350.42350268258747) rotate(0 0.2229014099474398 20.51105751905652)"><path d="M7.49 21.42 C5.44 26.92, 4.84 31.53, 0.56 40.73 M7.49 21.42 C5.66 27.23, 3.2 32.72, 0.56 40.73" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(319.8948768853206 417.3216350494797) rotate(0 110.05757116156975 32.17741655087593)"><path d="M16.09 0 C57.15 -0.44, 95 -2.8, 204.03 0 M16.09 0 C88.51 -0.58, 160.86 0.17, 204.03 0 M204.03 0 C213.89 1.72, 218.39 4.69, 220.12 16.09 M204.03 0 C214.44 -0.32, 221.49 5.52, 220.12 16.09 M220.12 16.09 C218.45 28.88, 221.8 39.37, 220.12 48.27 M220.12 16.09 C219.68 26.57, 220.83 36.77, 220.12 48.27 M220.12 48.27 C219.22 59.63, 215 66.19, 204.03 64.35 M220.12 48.27 C220.26 59.12, 215.44 65.02, 204.03 64.35 M204.03 64.35 C132.24 63.22, 59.39 65.87, 16.09 64.35 M204.03 64.35 C149.71 64.22, 97.23 64.82, 16.09 64.35 M16.09 64.35 C3.96 63.16, -1.82 57.86, 0 48.27 M16.09 64.35 C6.92 66.48, -1.53 58.18, 0 48.27 M0 48.27 C-1 42.52, -1.51 36.15, 0 16.09 M0 48.27 C-0.56 40.37, 0.21 31.32, 0 16.09 M0 16.09 C1.08 3.4, 4.27 -1.82, 16.09 0 M0 16.09 C0.59 6.28, 4.81 0.54, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(408.9224721557771 436.99905160035564) rotate(0 21.02997589111328 12.5)"><text x="21.02997589111328" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">root</text></g><g stroke-linecap="round"><g transform="translate(245.4148474337021 287.0251667424425) rotate(0 25.113558854083067 -0.18811706408132522)"><path d="M-0.94 1.03 C7.48 0.94, 42.52 -0.11, 51.03 -0.49 M0.76 0.52 C9.06 0.63, 42.41 1.15, 50.51 0.98" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(245.4148474337021 287.0251667424425) rotate(0 25.113558854083067 -0.18811706408132522)"><path d="M27.01 9.52 C36.7 8.15, 42.76 3.79, 50.51 0.98 M27.01 9.52 C31.85 8.47, 36.68 5.37, 50.51 0.98" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(245.4148474337021 287.0251667424425) rotate(0 25.113558854083067 -0.18811706408132522)"><path d="M27.02 -7.58 C36.7 -3.15, 42.77 -1.71, 50.51 0.98 M27.02 -7.58 C31.82 -4.8, 36.65 -4.08, 50.51 0.98" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(758.9446096196552 86.71485718718168) rotate(0 110.05757116156974 55)"><path d="M27.5 0 C63.88 -1.23, 99.12 -1.52, 192.62 0 M27.5 0 C75.95 -1.75, 126 -1.56, 192.62 0 M192.62 0 C212.14 0.14, 221.33 10.4, 220.12 27.5 M192.62 0 C210 -2.15, 221.47 10.87, 220.12 27.5 M220.12 27.5 C220.41 42.88, 220.23 61.85, 220.12 82.5 M220.12 27.5 C219.99 43.25, 219.93 57.21, 220.12 82.5 M220.12 82.5 C220.72 101.41, 212.71 109.48, 192.62 110 M220.12 82.5 C219.91 102.19, 209.84 111.48, 192.62 110 M192.62 110 C128.72 107.98, 66.26 109.64, 27.5 110 M192.62 110 C127.59 108.45, 65.06 109.93, 27.5 110 M27.5 110 C7.83 109.3, -1.85 100.43, 0 82.5 M27.5 110 C10.65 108.77, 1.07 99.02, 0 82.5 M0 82.5 C-0.59 61.33, 0.98 42.94, 0 27.5 M0 82.5 C-0.84 67.37, -0.04 54.46, 0 27.5 M0 27.5 C-0.48 9.63, 9.53 0.25, 27.5 0 M0 27.5 C0.26 10.02, 10.3 -1.03, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(764.1822497509515 91.71485718718168) rotate(0 104.81993103027344 50)"><text x="104.81993103027344" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. calculate how many</text><text x="104.81993103027344" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Poseidon hashers </text><text x="104.81993103027344" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">objects we need to </text><text x="104.81993103027344" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">hash the leaves</text></g><g stroke-linecap="round" transform="translate(1120.4700575350334 94.26873830206864) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C71.28 -0.47, 128.23 -1.34, 204.03 0 M16.09 0 C66.75 0.33, 116.83 0.88, 204.03 0 M204.03 0 C213.92 -1.87, 221.3 6.84, 220.12 16.09 M204.03 0 C214.82 0.6, 221.54 5.53, 220.12 16.09 M220.12 16.09 C219.5 22.8, 220.75 31.56, 220.12 48.27 M220.12 16.09 C220.43 28.99, 221.02 41.05, 220.12 48.27 M220.12 48.27 C219.94 60.17, 213.79 65.64, 204.03 64.35 M220.12 48.27 C222.05 58.62, 214.73 63.84, 204.03 64.35 M204.03 64.35 C168.19 62.63, 127.63 62.21, 16.09 64.35 M204.03 64.35 C157.57 65.74, 111.52 65.88, 16.09 64.35 M16.09 64.35 C6.65 63.29, 0.93 57.41, 0 48.27 M16.09 64.35 C6.8 63.36, -0.4 58.05, 0 48.27 M0 48.27 C-0.95 41.69, -2.08 31.86, 0 16.09 M0 48.27 C-0.32 41.77, 0.1 34.93, 0 16.09 M0 16.09 C0.22 6.1, 6.35 -0.89, 16.09 0 M0 16.09 C-0.99 3.28, 7.39 1.76, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1152.8176906472868 113.94615485294457) rotate(0 77.7099380493164 12.5)"><text x="77.7099380493164" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">5 ** (levels - 1)</text></g><g stroke-linecap="round" transform="translate(762.036334731705 207.68015012257115) rotate(0 110.05757116156974 55)"><path d="M27.5 0 C69.22 1.16, 112.01 2.62, 192.62 0 M27.5 0 C77.74 -1.95, 129.41 -0.28, 192.62 0 M192.62 0 C211 0.52, 221.35 9.32, 220.12 27.5 M192.62 0 C209.49 -0.03, 221.31 8.47, 220.12 27.5 M220.12 27.5 C222.13 41.65, 220.4 56.16, 220.12 82.5 M220.12 27.5 C220.51 46.19, 220.12 64.33, 220.12 82.5 M220.12 82.5 C221.8 100.51, 210.93 109.56, 192.62 110 M220.12 82.5 C217.82 101.47, 210.55 112.03, 192.62 110 M192.62 110 C153.5 109.85, 118.49 107.16, 27.5 110 M192.62 110 C149.52 109.13, 105.61 108.88, 27.5 110 M27.5 110 C10.41 109.14, -0.35 100.01, 0 82.5 M27.5 110 C7.74 110.85, 0.35 99.88, 0 82.5 M0 82.5 C-1.28 63.53, 1.34 43.05, 0 27.5 M0 82.5 C0.01 65.09, 0.39 46.49, 0 27.5 M0 27.5 C-0.86 7.36, 10.93 1.53, 27.5 0 M0 27.5 C0.48 7.41, 8.14 -0.95, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(772.8839907321419 212.68015012257115) rotate(0 99.20991516113281 50)"><text x="99.20991516113281" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Calculate how </text><text x="99.20991516113281" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">many Poseidon </text><text x="99.20991516113281" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">hashers objects we </text><text x="99.20991516113281" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">need in total</text></g><g stroke-linecap="round" transform="translate(765.9783874446657 341.6232584815682) rotate(0 98.33254421794342 50.71327566239893)"><path d="M25.36 0 C67.32 0.35, 110.24 -1.7, 171.31 0 M25.36 0 C55.54 -0.82, 86.29 -1.01, 171.31 0 M171.31 0 C186.94 -0.03, 197.7 7.84, 196.67 25.36 M171.31 0 C187.18 0.73, 196.96 10.57, 196.67 25.36 M196.67 25.36 C197.27 42.64, 196.17 56.22, 196.67 76.07 M196.67 25.36 C197.26 43.4, 196.41 61.55, 196.67 76.07 M196.67 76.07 C194.67 93.53, 187.87 103.19, 171.31 101.43 M196.67 76.07 C195.06 91.6, 186.12 100.13, 171.31 101.43 M171.31 101.43 C116.95 98.61, 63.59 101.75, 25.36 101.43 M171.31 101.43 C135.94 99.84, 99.14 99.86, 25.36 101.43 M25.36 101.43 C7.21 102.17, 0.3 92.14, 0 76.07 M25.36 101.43 C9.7 99.17, -1.26 90.88, 0 76.07 M0 76.07 C0.26 59.92, 0.05 43.27, 0 25.36 M0 76.07 C-0.68 58.08, 0.63 42.67, 0 25.36 M0 25.36 C0.41 6.93, 7.56 -0.82, 25.36 0 M0 25.36 C0.26 8.13, 8.99 1.31, 25.36 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(780.8709978857537 367.33653414396736) rotate(0 83.43993377685547 25)"><text x="83.43993377685547" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Initialize the </text><text x="83.43993377685547" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">hashers</text></g><g transform="translate(604.2456596927095 228.64956929036475) rotate(0 49.669944763183594 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Processing</text></g><g stroke-linecap="round"><g transform="translate(587.0690474326502 289.28389042735694) rotate(0 54.0494641083767 -0.8482636989667753)"><path d="M0.71 0.89 C18.81 0.85, 90.11 -0.97, 108.13 -1.38 M-0.38 0.31 C17.61 -0.01, 89.06 -3.25, 107.2 -3.34" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(587.0690474326502 289.28389042735694) rotate(0 54.0494641083767 -0.8482636989667753)"><path d="M83.96 5.85 C91.53 3.39, 96.59 2.2, 107.2 -3.34 M83.96 5.85 C91.68 2.73, 97.86 0.52, 107.2 -3.34" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(587.0690474326502 289.28389042735694) rotate(0 54.0494641083767 -0.8482636989667753)"><path d="M83.48 -11.24 C91.03 -9.28, 96.2 -6.06, 107.2 -3.34 M83.48 -11.24 C91.24 -9.11, 97.57 -6.06, 107.2 -3.34" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(768.7460799515125 461.1005223625291) rotate(0 102.19823255897688 42.5)"><path d="M21.25 0 C79.9 1.19, 137.66 -1.32, 183.15 0 M21.25 0 C69.17 0.81, 118.11 1.41, 183.15 0 M183.15 0 C197.44 0.11, 205 7.66, 204.4 21.25 M183.15 0 C199.34 -0.6, 204.19 8.44, 204.4 21.25 M204.4 21.25 C204.34 31.93, 204.23 40.66, 204.4 63.75 M204.4 21.25 C203.62 34.58, 203.41 48.55, 204.4 63.75 M204.4 63.75 C205.75 79.76, 195.98 84.3, 183.15 85 M204.4 63.75 C202.27 77.45, 198.8 83.77, 183.15 85 M183.15 85 C126.15 85.66, 70.07 84.77, 21.25 85 M183.15 85 C129.14 83.35, 73.5 83.42, 21.25 85 M21.25 85 C7.6 85.8, -0.48 78.38, 0 63.75 M21.25 85 C7.5 85.29, 0.26 78.77, 0 63.75 M0 63.75 C-1.62 50.67, 1.72 34.48, 0 21.25 M0 63.75 C0.3 54.1, 0.42 45.31, 0 21.25 M0 21.25 C0.78 5.6, 5.4 0.01, 21.25 0 M0 21.25 C0.38 7, 7.27 2.1, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(775.4243845319738 466.1005223625291) rotate(0 95.51992797851562 37.5)"><text x="95.51992797851562" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">4. Wire the leaves </text><text x="95.51992797851562" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">values into the </text><text x="95.51992797851562" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">leaf hashers</text></g><g stroke-linecap="round"><g transform="translate(1011.8221314011867 131.45457777799106) rotate(0 46.90836338228155 -1.0051202467076337)"><path d="M-0.35 0.82 C15.17 0.38, 77.42 -1.6, 93.12 -2.08 M1.66 0.21 C17.58 -0.08, 80.22 -0.42, 95.47 -0.58" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1011.8221314011867 131.45457777799106) rotate(0 46.90836338228155 -1.0051202467076337)"><path d="M72.04 8.15 C80.37 4.45, 85.88 3.1, 95.47 -0.58 M72.04 8.15 C79.28 4.92, 84.97 3.94, 95.47 -0.58" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1011.8221314011867 131.45457777799106) rotate(0 46.90836338228155 -1.0051202467076337)"><path d="M71.91 -8.95 C80.36 -7.54, 85.91 -3.78, 95.47 -0.58 M71.91 -8.95 C79.34 -7.09, 85.07 -2.98, 95.47 -0.58" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g transform="translate(329.0591834206367 10) rotate(0 99.9638442993164 20.43776687646323)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="32.70042700234123px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Quinary tree</text></g><g stroke-linecap="round" transform="translate(1126.49221888676 223.22247058183643) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C82.17 -2.68, 146.21 -0.9, 198.87 0 M21.25 0 C68.27 1.75, 116.02 2.36, 198.87 0 M198.87 0 C211.14 1.52, 219.49 8.04, 220.12 21.25 M198.87 0 C213.37 0.44, 218.73 8.69, 220.12 21.25 M220.12 21.25 C220.62 36.63, 220.26 54.44, 220.12 63.75 M220.12 21.25 C220.72 36.11, 220.38 50.22, 220.12 63.75 M220.12 63.75 C221.67 78.25, 213.3 86.57, 198.87 85 M220.12 63.75 C221.11 78.81, 211.78 86.18, 198.87 85 M198.87 85 C159.93 83.59, 120.98 84.2, 21.25 85 M198.87 85 C129.23 85.91, 58.43 86, 21.25 85 M21.25 85 C7.21 85.06, 1.89 76.94, 0 63.75 M21.25 85 C4.85 85.79, 0.33 75.74, 0 63.75 M0 63.75 C0.49 55.83, 1.54 47.57, 0 21.25 M0 63.75 C-1.33 54.53, 0.36 44.72, 0 21.25 M0 21.25 C0.08 6.08, 6.93 -1.4, 21.25 0 M0 21.25 C1.9 7.72, 9.01 -1.75, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1131.949883126943 228.22247058183643) rotate(0 104.59990692138672 37.5)"><text x="104.59990692138672" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">loop from 0 to levels</text><text x="104.59990692138672" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">and sum 5 ** the </text><text x="104.59990692138672" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">loop index</text></g><g stroke-linecap="round"><g transform="translate(1017.8442927529136 260.4083100577593) rotate(0 46.90836338228155 -1.00512024670752)"><path d="M0.2 -0.4 C15.8 -0.98, 77.21 -2.85, 92.73 -3.09 M-1.16 -1.65 C14.88 -2.15, 79.3 -2.33, 94.88 -2.12" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1017.8442927529136 260.4083100577593) rotate(0 46.90836338228155 -1.00512024670752)"><path d="M71.36 6.35 C76.02 2.57, 80.23 1.63, 94.88 -2.12 M71.36 6.35 C77.82 4.26, 85.86 1.32, 94.88 -2.12" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1017.8442927529136 260.4083100577593) rotate(0 46.90836338228155 -1.00512024670752)"><path d="M71.41 -10.75 C76.12 -10.63, 80.32 -7.68, 94.88 -2.12 M71.41 -10.75 C77.85 -7.45, 85.87 -5.02, 94.88 -2.12" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1098.9119209804364 522.3110310592585) rotate(0 135.31147534784162 35.430081767388856)"><path d="M17.72 0 C88.27 -0.81, 158.85 -1.29, 252.91 0 M17.72 0 C80.34 -0.34, 141.93 1.19, 252.91 0 M252.91 0 C264.93 -0.31, 270.58 6.12, 270.62 17.72 M252.91 0 C266.15 -1.45, 270.08 3.8, 270.62 17.72 M270.62 17.72 C272.6 27.07, 270.58 36.59, 270.62 53.15 M270.62 17.72 C271.29 25.14, 269.83 33.02, 270.62 53.15 M270.62 53.15 C270.31 65.83, 262.92 72.46, 252.91 70.86 M270.62 53.15 C269.27 66, 264.47 70.9, 252.91 70.86 M252.91 70.86 C191.94 68.49, 130.6 69.33, 17.72 70.86 M252.91 70.86 C189.34 69.99, 124.97 69.87, 17.72 70.86 M17.72 70.86 C5.08 71.44, 1.67 63.08, 0 53.15 M17.72 70.86 C7.66 69.95, -2.12 64.87, 0 53.15 M0 53.15 C-1.87 40.6, -1.39 32.44, 0 17.72 M0 53.15 C-0.17 41.08, 0.77 28.42, 0 17.72 M0 17.72 C1.31 4.06, 4.39 -1.99, 17.72 0 M0 17.72 C-0.29 4.64, 3.78 -1.89, 17.72 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1120.743484524079 545.2411128266478) rotate(0 113.47991180419922 12.5)"><text x="113.47991180419922" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Inner loop from 0 to 5</text></g><g stroke-linecap="round" transform="translate(1100.9654148086922 621.5480466938486) rotate(0 109.52714836197231 33.28155984372802)"><path d="M16.64 0 C64.46 1.6, 110.05 -0.93, 202.41 0 M16.64 0 C73.15 0.45, 129.93 -1.16, 202.41 0 M202.41 0 C214.38 -1.32, 217.77 7.49, 219.05 16.64 M202.41 0 C215.78 -1.76, 216.78 5.33, 219.05 16.64 M219.05 16.64 C217.24 29.43, 220.66 39.83, 219.05 49.92 M219.05 16.64 C219.08 26.15, 218.66 36.62, 219.05 49.92 M219.05 49.92 C219.77 61.3, 212.72 66.26, 202.41 66.56 M219.05 49.92 C218.03 62.91, 214.59 68.82, 202.41 66.56 M202.41 66.56 C144.85 64.51, 88.28 68.01, 16.64 66.56 M202.41 66.56 C137.42 65.53, 70.94 65.32, 16.64 66.56 M16.64 66.56 C5.33 65.86, 1.76 59.33, 0 49.92 M16.64 66.56 C3.76 66.93, -2.23 60.82, 0 49.92 M0 49.92 C-0.3 38.6, -0.5 24.35, 0 16.64 M0 49.92 C0.83 37.27, -0.97 24.46, 0 16.64 M0 16.64 C-0.61 3.98, 6.44 -0.51, 16.64 0 M0 16.64 C2.17 5.49, 4.21 1.72, 16.64 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1117.3326358025004 629.8296065375764) rotate(0 93.15992736816406 25)"><text x="93.15992736816406" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Wire the leaf into </text><text x="93.15992736816406" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the hasher</text></g><g stroke-linecap="round"><g transform="translate(1019.2439227916593 514.520067325361) rotate(0 27.421001227428405 0.910180757285616)"><path d="M0.75 -0.6 C9.81 -0.3, 45.68 1.67, 54.7 2.07 M-0.32 1.7 C8.55 1.59, 44.6 -0.16, 53.67 0.08" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1019.2439227916593 514.520067325361) rotate(0 27.421001227428405 0.910180757285616)"><path d="M30.32 9 C36.9 5.71, 45.91 3.09, 53.67 0.08 M30.32 9 C36.53 7.33, 44.59 4.69, 53.67 0.08" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1019.2439227916593 514.520067325361) rotate(0 27.421001227428405 0.910180757285616)"><path d="M30.05 -8.09 C36.76 -5.82, 45.86 -2.88, 53.67 0.08 M30.05 -8.09 C36.48 -4.66, 44.62 -2.2, 53.67 0.08" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(772.7376663111265 589.3223434154213) rotate(0 102.19823255897688 67.5)"><path d="M32 0 C69.57 -0.94, 104.23 -0.43, 172.4 0 M32 0 C78.24 -0.96, 124.89 -0.17, 172.4 0 M172.4 0 C192.01 -0.97, 205.98 9.36, 204.4 32 M172.4 0 C195.27 -1.23, 206.45 11.32, 204.4 32 M204.4 32 C202.28 58.57, 202.77 87.63, 204.4 103 M204.4 32 C204.37 57.52, 204.93 84.91, 204.4 103 M204.4 103 C202.87 125.38, 194.99 133.97, 172.4 135 M204.4 103 C206.02 122.75, 192.16 136.66, 172.4 135 M172.4 135 C124.25 134.13, 79.67 136.6, 32 135 M172.4 135 C127.51 134.38, 82.06 134.31, 32 135 M32 135 C10.04 135.34, -1.44 124.76, 0 103 M32 135 C10.98 134.05, 0.13 125.74, 0 103 M0 103 C0.6 77.24, -0.03 53.13, 0 32 M0 103 C-0.76 84.56, -0.27 64.77, 0 32 M0 32 C0.29 9.93, 12.13 -1.92, 32 0 M0 32 C1.56 8.92, 12.87 1, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(789.1259776054551 594.3223434154213) rotate(0 85.80992126464844 62.5)"><text x="85.80992126464844" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">5. Wire the </text><text x="85.80992126464844" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">outputs of the </text><text x="85.80992126464844" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">leaf hashers to </text><text x="85.80992126464844" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the intermediate </text><text x="85.80992126464844" y="100" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">hasher inputs</text></g><g stroke-linecap="round" transform="translate(1092.9793878789303 421.06431424229345) rotate(0 162.00804699294042 42.55980890920955)"><path d="M21.28 0 C123.54 0.45, 227.06 0.15, 302.74 0 M21.28 0 C79.98 -1.78, 137.18 -1.63, 302.74 0 M302.74 0 C317.18 -0.4, 323.97 7.74, 324.02 21.28 M302.74 0 C318.29 1.12, 326.03 6.1, 324.02 21.28 M324.02 21.28 C324.52 33.07, 325.7 49.77, 324.02 63.84 M324.02 21.28 C323.2 36.12, 324.49 50.31, 324.02 63.84 M324.02 63.84 C324.04 77.68, 317.22 84.67, 302.74 85.12 M324.02 63.84 C322.53 76.44, 315.35 85.04, 302.74 85.12 M302.74 85.12 C192.83 84.39, 82.91 83.78, 21.28 85.12 M302.74 85.12 C228.2 83.57, 153.85 84.42, 21.28 85.12 M21.28 85.12 C8.88 83.31, 0.95 78.27, 0 63.84 M21.28 85.12 C5.33 84.87, -0.31 76.82, 0 63.84 M0 63.84 C1.41 49.68, 0.22 39.31, 0 21.28 M0 63.84 C-1.4 54.51, 0.46 46.56, 0 21.28 M0 21.28 C1.79 6.63, 7.04 0.61, 21.28 0 M0 21.28 C-1.04 4.9, 8.34 2.03, 21.28 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1100.8975606042925 438.624123151503) rotate(0 154.08987426757812 25)"><text x="154.08987426757812" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge"> Loop from 0 to the number of</text><text x="154.08987426757812" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">leaves hashers components</text></g><g stroke-linecap="round" transform="translate(1137.6711605011903 829.4492975888436) rotate(0 135.31147534784162 35.430081767388856)"><path d="M17.72 0 C77.73 -2.37, 133.34 -2.27, 252.91 0 M17.72 0 C76.81 0.28, 137.52 1.12, 252.91 0 M252.91 0 C263.3 0.88, 270.62 6, 270.62 17.72 M252.91 0 C266.98 2.24, 271.36 4.06, 270.62 17.72 M270.62 17.72 C272.15 30.01, 269.22 43.85, 270.62 53.15 M270.62 17.72 C271.59 26.86, 270.8 35.78, 270.62 53.15 M270.62 53.15 C272.24 63.1, 265.81 70.04, 252.91 70.86 M270.62 53.15 C269.67 63.28, 263.69 69.95, 252.91 70.86 M252.91 70.86 C194.38 70.93, 138.09 71.88, 17.72 70.86 M252.91 70.86 C196.04 73.24, 140.12 72.34, 17.72 70.86 M17.72 70.86 C4.31 70.8, 0.74 66.33, 0 53.15 M17.72 70.86 C5.74 69.42, -1.72 65.64, 0 53.15 M0 53.15 C1.44 40.58, -1.19 25.2, 0 17.72 M0 53.15 C0.04 40.88, -0.13 27.56, 0 17.72 M0 17.72 C0.04 4.92, 7.23 -0.52, 17.72 0 M0 17.72 C0.54 7.75, 3.85 0.06, 17.72 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1159.5027240448328 852.3793793562324) rotate(0 113.47991180419922 12.5)"><text x="113.47991180419922" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Inner loop from 0 to 5</text></g><g stroke-linecap="round" transform="translate(1168.07811869301 923.2791121358202) rotate(0 109.52714836197231 33.28155984372802)"><path d="M16.64 0 C64 0.53, 112.11 -0.7, 202.41 0 M16.64 0 C53.75 0.38, 92.27 -0.02, 202.41 0 M202.41 0 C215.47 1.95, 219.69 3.94, 219.05 16.64 M202.41 0 C215.45 -2.11, 219.29 7.68, 219.05 16.64 M219.05 16.64 C217.71 24.35, 218.93 34.18, 219.05 49.92 M219.05 16.64 C219.93 27.64, 219.66 40.08, 219.05 49.92 M219.05 49.92 C218.23 59.56, 212.62 65.77, 202.41 66.56 M219.05 49.92 C217.85 61.7, 215.25 66.18, 202.41 66.56 M202.41 66.56 C161.23 67.64, 124.43 64.04, 16.64 66.56 M202.41 66.56 C135.23 65.61, 70 66.33, 16.64 66.56 M16.64 66.56 C5.4 65.31, -1.49 61.61, 0 49.92 M16.64 66.56 C7.38 68.43, 0.07 63, 0 49.92 M0 49.92 C1.42 37.51, -1.68 26.75, 0 16.64 M0 49.92 C0.12 37.43, 0.76 25.65, 0 16.64 M0 16.64 C0.47 7.15, 3.76 0.06, 16.64 0 M0 16.64 C-1.49 4.81, 4.96 -1.24, 16.64 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1182.0953412126971 931.560671979548) rotate(0 95.50992584228516 25)"><text x="95.50992584228516" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Wire the hash into </text><text x="95.50992584228516" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the hasher</text></g><g stroke-linecap="round" transform="translate(1102.2050694962134 729.5387713408725) rotate(0 162.00804699294042 42.55980890920955)"><path d="M21.28 0 C102.79 2.31, 187.3 0.36, 302.74 0 M21.28 0 C118.89 0.64, 215.24 -0.72, 302.74 0 M302.74 0 C318.61 -1.83, 324.22 8.94, 324.02 21.28 M302.74 0 C315.41 -1.24, 322.76 5.75, 324.02 21.28 M324.02 21.28 C325.2 34.25, 325.91 48.08, 324.02 63.84 M324.02 21.28 C323.84 29.38, 323.8 38.54, 324.02 63.84 M324.02 63.84 C322.97 78.62, 318.44 84.79, 302.74 85.12 M324.02 63.84 C322.06 80.32, 316.27 83.7, 302.74 85.12 M302.74 85.12 C196.64 81.65, 88.04 81.75, 21.28 85.12 M302.74 85.12 C219.04 86.12, 134.88 86.83, 21.28 85.12 M21.28 85.12 C8.68 86.74, 0.06 79.75, 0 63.84 M21.28 85.12 C8.11 84.08, -1.2 79.48, 0 63.84 M0 63.84 C1.6 52.51, 0.71 42.42, 0 21.28 M0 63.84 C-0.05 53.96, -1.18 42.51, 0 21.28 M0 21.28 C-1.3 6.45, 6.58 -1.08, 21.28 0 M0 21.28 C-0.66 7.26, 7.81 -0.66, 21.28 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1112.5732391698177 747.098580250082) rotate(0 151.63987731933594 25)"><text x="151.63987731933594" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Loop from numLeafHashers to </text><text x="151.63987731933594" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the total number of hashers</text></g><g stroke-linecap="round"><g transform="translate(1027.111517002028 723.994892170296) rotate(0 30.08577071968341 13.61195998737071)"><path d="M0.64 -0.74 C10.58 4.14, 50.26 23.54, 60.33 28.3 M-0.48 1.49 C9.25 6.14, 49.25 22.7, 59.47 26.74" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1027.111517002028 723.994892170296) rotate(0 30.08577071968341 13.61195998737071)"><path d="M34.48 25.8 C42.21 26.27, 54.18 27.87, 59.47 26.74 M34.48 25.8 C43.37 26.53, 50.79 26.1, 59.47 26.74" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(1027.111517002028 723.994892170296) rotate(0 30.08577071968341 13.61195998737071)"><path d="M40.93 9.96 C46.21 16.14, 55.88 23.42, 59.47 26.74 M40.93 9.96 C47.43 16.16, 52.61 21.22, 59.47 26.74" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(774.0291121717642 747.7827496182133) rotate(0 102.19823255897688 67.5)"><path d="M32 0 C82.48 1.55, 132.26 -1.43, 172.4 0 M32 0 C87.97 -0.83, 141.23 -1.37, 172.4 0 M172.4 0 C194.13 -0.8, 203.12 10.16, 204.4 32 M172.4 0 C193.39 -2.1, 205.17 8.72, 204.4 32 M204.4 32 C205.12 54.02, 206.1 71.95, 204.4 103 M204.4 32 C205.37 59.61, 204.11 87.79, 204.4 103 M204.4 103 C205.62 124.82, 194.9 136.33, 172.4 135 M204.4 103 C203.11 126.58, 195.18 137.22, 172.4 135 M172.4 135 C119.92 137.27, 67.78 134.48, 32 135 M172.4 135 C122.22 135.4, 73.88 134.73, 32 135 M32 135 C11.73 136.48, 0.44 123.02, 0 103 M32 135 C11.03 134.41, 1.81 122.64, 0 103 M0 103 C-2.14 86.9, -0.64 69.49, 0 32 M0 103 C-0.46 77.43, 0.14 50.51, 0 32 M0 32 C-1.34 10.69, 11.75 -1.05, 32 0 M0 32 C1.3 12.85, 10.85 -0.98, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(783.9274256023227 777.7827496182133) rotate(0 92.29991912841797 37.5)"><text x="92.29991912841797" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">6. The root is the</text><text x="92.29991912841797" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">last hasher </text><text x="92.29991912841797" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">component hash</text></g><g stroke-linecap="round" transform="translate(191.10963872436196 584.824635600475) rotate(0 229.17028524127693 110.43800192740105)"><path d="M32 0 C130.28 2.33, 229.69 2.1, 426.34 0 M32 0 C171.39 1.85, 311.36 1.77, 426.34 0 M426.34 0 C448.46 -0.05, 459.66 10.72, 458.34 32 M426.34 0 C446.95 -0.97, 460.31 8.72, 458.34 32 M458.34 32 C457.18 84.01, 459.27 136.29, 458.34 188.88 M458.34 32 C458.89 85.52, 459.83 138.86, 458.34 188.88 M458.34 188.88 C458.81 211.2, 447.89 222.71, 426.34 220.88 M458.34 188.88 C460.45 209.03, 449.81 221.79, 426.34 220.88 M426.34 220.88 C274.03 220.95, 122.53 220.85, 32 220.88 M426.34 220.88 C310.96 220.25, 196.69 219.35, 32 220.88 M32 220.88 C10.69 219.9, -1.2 210.34, 0 188.88 M32 220.88 C10.04 218.81, -1.43 211.94, 0 188.88 M0 188.88 C0.26 143.14, -0.97 101.14, 0 32 M0 188.88 C0.89 136.87, 0.5 84.7, 0 32 M0 32 C1.61 9.03, 10.37 1.13, 32 0 M0 32 C0.2 11.92, 11.18 1.06, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(203.00012355059982 645.2626375278762) rotate(0 217.27980041503906 50)"><text x="217.27980041503906" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">The intermediate hashers are the hashers </text><text x="217.27980041503906" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">at the higher levels of the Quinary Tree </text><text x="217.27980041503906" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">each of which will hash the outputs of the </text><text x="217.27980041503906" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">hashers at the level below it</text></g><g stroke-linecap="round"><g transform="translate(729.4637858267306 663.3817126416836) rotate(0 -27.787600165383637 -1.921574042713246)"><path d="M-1.05 0.55 C-10.09 -0.22, -45.41 -3.21, -54.45 -4.11 M0.61 -0.2 C-8.49 -0.84, -45.39 -2.07, -54.8 -2.71" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(729.4637858267306 663.3817126416836) rotate(0 -27.787600165383637 -1.921574042713246)"><path d="M-30.92 -10.1 C-36.81 -6.31, -45.03 -5.52, -54.8 -2.71 M-30.92 -10.1 C-36.88 -7.75, -41.79 -7.52, -54.8 -2.71" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(729.4637858267306 663.3817126416836) rotate(0 -27.787600165383637 -1.921574042713246)"><path d="M-31.75 6.98 C-37.48 5.88, -45.46 1.77, -54.8 -2.71 M-31.75 6.98 C-37.61 5.6, -42.34 2.11, -54.8 -2.71" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask></svg>
@@ -0,0 +1,21 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1851.1274286693515 1064.773807758092" width="3702.254857338703" height="2129.547615516184">
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="1851.1274286693515" height="1064.773807758092" fill="#ffffff"></rect><g stroke-linecap="round" transform="translate(318.45488347209357 148.53333269738232) rotate(0 131.7047520102601 33.80052213620297)"><path d="M16.9 0 C103.31 2.26, 185.9 2.82, 246.51 0 M16.9 0 C78.12 -1.6, 138.79 -0.44, 246.51 0 M246.51 0 C257.02 -1.54, 262.82 6.12, 263.41 16.9 M246.51 0 C258.76 2.09, 263.8 7.51, 263.41 16.9 M263.41 16.9 C263.51 25.38, 263.58 32.51, 263.41 50.7 M263.41 16.9 C264.46 28.15, 264.72 41.42, 263.41 50.7 M263.41 50.7 C264.15 62.79, 259.46 65.77, 246.51 67.6 M263.41 50.7 C263.19 61.17, 259.66 68.87, 246.51 67.6 M246.51 67.6 C161.51 64.63, 72.73 65.18, 16.9 67.6 M246.51 67.6 C158.5 67.18, 69.13 67.49, 16.9 67.6 M16.9 67.6 C4.66 67.87, 0.39 62.65, 0 50.7 M16.9 67.6 C6.69 66.58, -2 60.51, 0 50.7 M0 50.7 C-0.74 45.43, 0.81 36.92, 0 16.9 M0 50.7 C0.52 40.93, 0.02 31.29, 0 16.9 M0 16.9 C-0.56 6, 5 1.01, 16.9 0 M0 16.9 C1.92 3.9, 6.17 -1.23, 16.9 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(327.18974107317354 169.83385483358552) rotate(0 122.96989440917969 12.5)"><text x="122.96989440917969" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#e03131" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">QuinGeneratePathIndices</text></g><g stroke-linecap="round"><g transform="translate(420.60434368431834 98.62956225189691) rotate(0 2.896194545956405 19.89958225780424)"><path d="M0.04 -0.33 C1 6.33, 4.58 33.6, 5.51 40.22 M-0.61 0.69 C0.56 7.17, 5.64 32.96, 6.59 39.47" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(420.60434368431834 98.62956225189691) rotate(0 2.896194545956405 19.89958225780424)"><path d="M-3.44 22.04 C-1.49 25.86, 2.37 30.34, 6.59 39.47 M-3.44 22.04 C-1.02 26.37, 1.09 30.2, 6.59 39.47" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(420.60434368431834 98.62956225189691) rotate(0 2.896194545956405 19.89958225780424)"><path d="M10.11 19.67 C8.69 24.08, 9.18 29.15, 6.59 39.47 M10.11 19.67 C9.51 24.54, 8.6 28.91, 6.59 39.47" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(10 154.29769668039535) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C75.3 0.22, 129.92 0.39, 204.03 0 M16.09 0 C77.18 -0.89, 137.11 -0.88, 204.03 0 M204.03 0 C214.34 -0.18, 221.19 5.25, 220.12 16.09 M204.03 0 C215.67 1.23, 222.39 4.96, 220.12 16.09 M220.12 16.09 C221.13 28.77, 220.71 41.67, 220.12 48.27 M220.12 16.09 C220.91 23.34, 220.86 29.91, 220.12 48.27 M220.12 48.27 C218.25 60.92, 213.4 63.77, 204.03 64.35 M220.12 48.27 C219.29 60.95, 216.63 64.53, 204.03 64.35 M204.03 64.35 C137.63 62.28, 72.7 63.64, 16.09 64.35 M204.03 64.35 C140.34 62.89, 77.42 64.03, 16.09 64.35 M16.09 64.35 C3.57 63.79, 1.53 59.98, 0 48.27 M16.09 64.35 C5.17 64.23, -1.81 58.07, 0 48.27 M0 48.27 C0.95 37.24, 0.3 26.7, 0 16.09 M0 48.27 C-0.04 36.45, -1.27 26.02, 0 16.09 M0 16.09 C1.01 5.06, 6.46 -0.25, 16.09 0 M0 16.09 C-1.07 7.02, 6.97 0.15, 16.09 0" stroke="#f08c00" stroke-width="1" fill="none"></path></g><g transform="translate(35.98764776069129 173.97511323127128) rotate(0 84.0699234008789 12.5)"><text x="84.0699234008789" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#f08c00" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">parameter: levels</text></g><g transform="translate(466.0060586475129 101.17641725074145) rotate(0 31.809967041015625 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Inputs</text></g><g stroke-linecap="round"><g transform="translate(248.99317077492378 190.21808733086846) rotate(0 23.123652268284786 -2.632667694413385)"><path d="M0.23 0.5 C7.98 -0.32, 38.75 -3.93, 46.34 -4.82 M-0.31 0.28 C7.39 -0.7, 38.09 -4.56, 45.96 -5.55" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(248.99317077492378 190.21808733086846) rotate(0 23.123652268284786 -2.632667694413385)"><path d="M25.25 5.07 C31.75 2.33, 37.26 -1.53, 45.96 -5.55 M25.25 5.07 C33.46 0.99, 41.31 -2.78, 45.96 -5.55" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(248.99317077492378 190.21808733086846) rotate(0 23.123652268284786 -2.632667694413385)"><path d="M23.27 -10.72 C30.32 -9.2, 36.36 -8.78, 45.96 -5.55 M23.27 -10.72 C32.21 -8.76, 40.83 -6.49, 45.96 -5.55" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(741.5355262249486 86.0528003415825) rotate(0 137.57057402750797 59.700137989597806)"><path d="M29.85 0 C105.09 -1.74, 178.92 -0.68, 245.29 0 M29.85 0 C92.89 0.57, 156.08 -0.05, 245.29 0 M245.29 0 C266.62 -1.4, 277.1 11.19, 275.14 29.85 M245.29 0 C266.04 0.94, 277.07 7.84, 275.14 29.85 M275.14 29.85 C276.04 48.75, 275.79 62.69, 275.14 89.55 M275.14 29.85 C274.38 54.37, 275.55 77.27, 275.14 89.55 M275.14 89.55 C276.14 108.12, 264.02 118.8, 245.29 119.4 M275.14 89.55 C274.03 109.76, 265.63 120.19, 245.29 119.4 M245.29 119.4 C169.67 116.03, 97.16 116.19, 29.85 119.4 M245.29 119.4 C186.66 120.28, 127.48 119.98, 29.85 119.4 M29.85 119.4 C10.46 119.78, -0.5 110.47, 0 89.55 M29.85 119.4 C9.31 119.82, -0.72 110.61, 0 89.55 M0 89.55 C-0.62 64.67, 1.06 44.8, 0 29.85 M0 89.55 C-0.79 73.27, 0.37 55.6, 0 29.85 M0 29.85 C0.5 9.43, 9.13 1.14, 29.85 0 M0 29.85 C-1.18 7.99, 10.56 1.58, 29.85 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(750.4561979087066 108.2529383311803) rotate(0 128.64990234375 37.5)"><text x="128.64990234375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">1. Loop from 0 to levels </text><text x="128.64990234375" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">to calculate the index at</text><text x="128.64990234375" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">each level of the tree</text></g><g transform="translate(604.1025580001924 126.69903779492552) rotate(0 49.669944763183594 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Processing</text></g><g stroke-linecap="round"><g transform="translate(587.1802965633333 187.3313363392108) rotate(0 53.92228869677592 -0.8472524026133215)"><path d="M0.64 -0.07 C18.74 -0.22, 90.26 -0.75, 108.33 -1.05 M-0.48 -1.15 C17.52 -1.64, 89.4 -2.91, 107.63 -2.84" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(587.1802965633333 187.3313363392108) rotate(0 53.92228869677592 -0.8472524026133215)"><path d="M84.21 5.91 C90.65 4.14, 98.38 2.87, 107.63 -2.84 M84.21 5.91 C91.74 4.23, 97.74 1.54, 107.63 -2.84" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(587.1802965633333 187.3313363392108) rotate(0 53.92228869677592 -0.8472524026133215)"><path d="M84.07 -11.19 C90.53 -8.18, 98.3 -4.67, 107.63 -2.84 M84.07 -11.19 C91.76 -8.05, 97.8 -5.9, 107.63 -2.84" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(324.24438275414013 10) rotate(0 110.05757116156974 32.17741655087593)"><path d="M16.09 0 C83.64 1.23, 148.69 0.67, 204.03 0 M16.09 0 C59.7 -0.76, 103.42 -2.08, 204.03 0 M204.03 0 C214.56 -0.69, 221.76 6.47, 220.12 16.09 M204.03 0 C216.53 0.98, 217.98 7.58, 220.12 16.09 M220.12 16.09 C221.72 25.2, 220.17 32.04, 220.12 48.27 M220.12 16.09 C219.44 23.74, 220.12 31.46, 220.12 48.27 M220.12 48.27 C221.03 58.11, 213.01 63.08, 204.03 64.35 M220.12 48.27 C217.85 60.17, 212.7 63.71, 204.03 64.35 M204.03 64.35 C133.13 62.62, 61.64 64.7, 16.09 64.35 M204.03 64.35 C143.79 65.49, 83.79 65.81, 16.09 64.35 M16.09 64.35 C7.03 62.85, 0.46 57.92, 0 48.27 M16.09 64.35 C3.06 65.06, 1.16 58.64, 0 48.27 M0 48.27 C1.48 38.25, 0.17 25.95, 0 16.09 M0 48.27 C-0.38 38.6, 0.4 31.32, 0 16.09 M0 16.09 C-0.02 4.95, 6.7 -1.38, 16.09 0 M0 16.09 C0.95 3.31, 4.56 2.11, 16.09 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(382.5420051852416 29.677416550875932) rotate(0 51.75994873046875 12.5)"><text x="51.75994873046875" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">input index</text></g><g transform="translate(507.6467641010968 246.4537661800914) rotate(0 34.84996032714844 12.5)"><text x="0" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1e1e1e" text-anchor="start" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">Output</text></g><g stroke-linecap="round"><g transform="translate(446.66589698247117 245.18341241000235) rotate(0 0.22290140994755347 20.51105751905652)"><path d="M-0.49 0.45 C-0.33 7.25, 0.34 33.91, 0.45 40.74 M0.26 0.2 C0.38 7.08, 0.11 34.56, 0.02 41.3" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(446.66589698247117 245.18341241000235) rotate(0 0.22290140994755347 20.51105751905652)"><path d="M-6.78 21.95 C-4.56 26.06, -4.44 29.65, 0.02 41.3 M-6.78 21.95 C-3.68 29.42, -1.36 36.54, 0.02 41.3" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g><g transform="translate(446.66589698247117 245.18341241000235) rotate(0 0.22290140994755347 20.51105751905652)"><path d="M7.25 22.1 C6.52 26.12, 3.68 29.68, 0.02 41.3 M7.25 22.1 C5.02 29.47, 2.01 36.53, 0.02 41.3" stroke="#1e1e1e" stroke-width="1" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(349.64494313223986 312.0815447768946) rotate(0 110.05757116156974 42.5)"><path d="M21.25 0 C57.64 -0.97, 97.66 1.68, 198.87 0 M21.25 0 C63.16 -0.61, 104.46 0.08, 198.87 0 M198.87 0 C211.22 -0.71, 221.96 8.08, 220.12 21.25 M198.87 0 C212.21 1.45, 220.52 4.84, 220.12 21.25 M220.12 21.25 C220.89 35.29, 218.54 48.94, 220.12 63.75 M220.12 21.25 C219.26 32.62, 221.07 44.69, 220.12 63.75 M220.12 63.75 C218.98 77.12, 211.24 84.74, 198.87 85 M220.12 63.75 C218.51 76.29, 213.46 83.46, 198.87 85 M198.87 85 C127.22 84.2, 56.17 86.5, 21.25 85 M198.87 85 C137.09 85.08, 76.31 85.11, 21.25 85 M21.25 85 C7.53 84.07, 1.23 78.85, 0 63.75 M21.25 85 C7.84 83.11, -1.25 77.71, 0 63.75 M0 63.75 C-1.58 54.71, -0.19 43.15, 0 21.25 M0 63.75 C-0.35 49.22, -1.05 36.42, 0 21.25 M0 21.25 C1.29 6.11, 5.62 -0.6, 21.25 0 M0 21.25 C1.7 8.14, 6.56 -1.99, 21.25 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(357.12260401548974 317.0815447768946) rotate(0 102.57991027832031 37.5)"><text x="102.57991027832031" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">out (array of len </text><text x="102.57991027832031" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">levels) containing the</text><text x="102.57991027832031" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#2f9e44" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">indices</text></g><g stroke-linecap="round" transform="translate(1182.4233924767987 92.1438400072725) rotate(0 110.05757116156974 55)"><path d="M27.5 0 C67.4 0.46, 109.31 1.31, 192.62 0 M27.5 0 C65.67 2.11, 105.16 0.62, 192.62 0 M192.62 0 C212.6 -0.5, 220.24 9.61, 220.12 27.5 M192.62 0 C211.42 -0.12, 219.98 10.64, 220.12 27.5 M220.12 27.5 C220.4 45.17, 219.44 60.93, 220.12 82.5 M220.12 27.5 C220.09 48.86, 221.49 71.96, 220.12 82.5 M220.12 82.5 C222.06 102.59, 209.15 108.1, 192.62 110 M220.12 82.5 C220.94 99.13, 210.21 111.59, 192.62 110 M192.62 110 C140.52 110.07, 92.39 111.93, 27.5 110 M192.62 110 C130.71 109.82, 68.91 109.58, 27.5 110 M27.5 110 C10.6 109.92, 0.28 100.93, 0 82.5 M27.5 110 C7.05 111.63, -1.36 102.89, 0 82.5 M0 82.5 C-0.92 71.63, 1.06 59.62, 0 27.5 M0 82.5 C0.03 67.51, 0.23 54.74, 0 27.5 M0 27.5 C-1.85 10.59, 8.84 -1.45, 27.5 0 M0 27.5 C0.54 9.42, 8.62 0.63, 27.5 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1197.0710515289938 109.6438400072725) rotate(0 95.409912109375 37.5)"><text x="95.409912109375" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">divide the input by </text><text x="95.409912109375" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the base (5) and </text><text x="95.409912109375" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">take the remainder</text></g><g stroke-linecap="round" transform="translate(1437.1809081754418 61.649239881258836) rotate(0 201.97326024695485 77.07826296629332)"><path d="M32 0 C148.01 -1.51, 260.67 -0.93, 371.95 0 M32 0 C159.45 -1.39, 286.47 -1.4, 371.95 0 M371.95 0 C393.63 0.25, 403.82 12.21, 403.95 32 M371.95 0 C392.99 -1.35, 402.69 11.52, 403.95 32 M403.95 32 C405.5 54.47, 403.39 76.97, 403.95 122.16 M403.95 32 C404.55 54.19, 404.78 77.84, 403.95 122.16 M403.95 122.16 C404.34 145.44, 392.55 154.89, 371.95 154.16 M403.95 122.16 C405.63 144.45, 395.47 152.2, 371.95 154.16 M371.95 154.16 C301.73 152.2, 231.08 152.57, 32 154.16 M371.95 154.16 C257.21 151.76, 142.77 151.87, 32 154.16 M32 154.16 C11.5 152.72, 0.05 143.36, 0 122.16 M32 154.16 C11.11 155.04, -2.17 145.1, 0 122.16 M0 122.16 C1.19 91.85, -2.36 66.21, 0 32 M0 122.16 C-0.05 100.59, 0.53 77.8, 0 32 M0 32 C-0.89 9.06, 9.1 0.41, 32 0 M0 32 C-1.6 10.85, 9.16 -1.77, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1451.3243039204435 88.72750284755239) rotate(0 187.82986450195312 50)"><text x="187.82986450195312" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">The remainder (m % BASE) gives the </text><text x="187.82986450195312" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">index at a particular level, and the </text><text x="187.82986450195312" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">quotient (m \ BASE) is used as the </text><text x="187.82986450195312" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">input for the next iteration.</text></g><g stroke-linecap="round"><g transform="translate(1025.9523336778566 153.51355165181076) rotate(0 62.55337452264848 0.11552772232425923)"><path d="M0.15 0.62 C21.25 0.73, 104.73 0.32, 125.66 0.23 M-1.24 -0.1 C19.84 0.26, 103.91 1.53, 125 1.76" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1025.9523336778566 153.51355165181076) rotate(0 62.55337452264848 0.11552772232425923)"><path d="M101.39 10 C107.6 9.09, 111.71 7.39, 125 1.76 M101.39 10 C107.56 6.93, 114.89 5.49, 125 1.76" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1025.9523336778566 153.51355165181076) rotate(0 62.55337452264848 0.11552772232425923)"><path d="M101.62 -7.1 C107.72 -4.28, 111.77 -2.25, 125 1.76 M101.62 -7.1 C107.83 -5.28, 115.1 -1.82, 125 1.76" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(735.2327519872097 251.34651885525136) rotate(0 147.87945843468287 81.6386264727737)"><path d="M32 0 C118.16 0.99, 204.75 2.3, 263.76 0 M32 0 C96.64 -0.15, 162.32 -0.87, 263.76 0 M263.76 0 C283.99 -0.42, 294.29 8.71, 295.76 32 M263.76 0 C285.52 -1.59, 293.87 10.7, 295.76 32 M295.76 32 C294.65 65.57, 295.91 99.06, 295.76 131.28 M295.76 32 C295.42 70.94, 295.7 108.49, 295.76 131.28 M295.76 131.28 C295.88 154.43, 284.83 161.91, 263.76 163.28 M295.76 131.28 C295.6 152.5, 284.73 161.61, 263.76 163.28 M263.76 163.28 C184.9 161.63, 106.8 161.05, 32 163.28 M263.76 163.28 C194.45 163.02, 125.6 164.24, 32 163.28 M32 163.28 C9.07 162.57, 0.43 150.78, 0 131.28 M32 163.28 C12.8 162.21, 0.53 154.63, 0 131.28 M0 131.28 C-0.71 99.78, 0.15 68.03, 0 32 M0 131.28 C-1.36 95.58, -0.47 61.1, 0 32 M0 32 C-0.67 12.23, 10.89 0.11, 32 0 M0 32 C-1.03 11.09, 12.68 1.75, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(749.472317843768 282.9851453280253) rotate(0 133.639892578125 50)"><text x="133.639892578125" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">2. Loop again from 0 to </text><text x="133.639892578125" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">levels to check that each </text><text x="133.639892578125" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">output is &lt; 5 and to sum </text><text x="133.639892578125" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the output elements</text></g><g stroke-linecap="round" transform="translate(1173.2295693221886 250.74673478112027) rotate(0 140.19874513460854 65.19000106145859)"><path d="M32 0 C102.82 0.4, 177.45 -0.81, 248.4 0 M32 0 C108.08 0.56, 185.67 1.95, 248.4 0 M248.4 0 C270.99 -0.92, 280.92 10.58, 280.4 32 M248.4 0 C271.32 -0.97, 282.02 12.87, 280.4 32 M280.4 32 C281.33 53.14, 282.21 73.06, 280.4 98.38 M280.4 32 C281.22 49.78, 281.82 65.88, 280.4 98.38 M280.4 98.38 C279.27 119.55, 268.48 131.34, 248.4 130.38 M280.4 98.38 C278.56 120.82, 270.46 129.4, 248.4 130.38 M248.4 130.38 C197.23 131.16, 147.4 129.01, 32 130.38 M248.4 130.38 C202.37 132.96, 157.28 132.32, 32 130.38 M32 130.38 C12.26 132.36, -0.86 118.19, 0 98.38 M32 130.38 C9.76 132.16, -0.87 121.23, 0 98.38 M0 98.38 C0.29 82.23, 1.26 62.69, 0 32 M0 98.38 C-0.31 72.43, -0.3 45.47, 0 32 M0 32 C-0.13 10.86, 8.83 1.04, 32 0 M0 32 C1.67 8.68, 9.69 1.67, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1199.7484057043557 278.43673584257886) rotate(0 113.6799087524414 37.5)"><text x="113.6799087524414" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">use SafeLessThan to </text><text x="113.6799087524414" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">check that output at </text><text x="113.6799087524414" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">index i &lt; 5</text></g><g stroke-linecap="round"><g transform="translate(1048.7092678375739 314.6248986355108) rotate(0 38.813388371497695 -0.9916461194504791)"><path d="M-0.08 0.16 C12.97 -0.48, 64.77 -2.67, 77.82 -3.09 M-1.58 -0.8 C11.36 -1.4, 63.75 -2.07, 76.97 -2.13" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1048.7092678375739 314.6248986355108) rotate(0 38.813388371497695 -0.9916461194504791)"><path d="M53.56 6.65 C59.91 4.68, 63.92 3, 76.97 -2.13 M53.56 6.65 C60.35 4.77, 65.59 0.93, 76.97 -2.13" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1048.7092678375739 314.6248986355108) rotate(0 38.813388371497695 -0.9916461194504791)"><path d="M53.39 -10.45 C59.89 -7.94, 63.95 -5.14, 76.97 -2.13 M53.39 -10.45 C60.14 -7.69, 65.42 -6.9, 76.97 -2.13" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(1151.5324415219966 635.0881743993596) rotate(0 138.50041162436537 78.93403035771144)"><path d="M32 0 C93.4 1.28, 159.64 1.06, 245 0 M32 0 C104.23 0.93, 176.79 0.57, 245 0 M245 0 C265.52 0.19, 277.47 9.83, 277 32 M245 0 C268.14 1.56, 279.16 12.23, 277 32 M277 32 C274.9 57.03, 275.04 86.51, 277 125.87 M277 32 C277.99 59.53, 277.22 85.15, 277 125.87 M277 125.87 C276.97 145.74, 267.39 159.23, 245 157.87 M277 125.87 C278.94 148.64, 265.28 158.47, 245 157.87 M245 157.87 C189.02 155.05, 132.74 156.33, 32 157.87 M245 157.87 C190.23 158.27, 134.86 158.22, 32 157.87 M32 157.87 C8.99 157.84, 1.55 148.78, 0 125.87 M32 157.87 C9.7 155.77, -1.37 148.6, 0 125.87 M0 125.87 C-1.35 103.91, -0.55 79.88, 0 32 M0 125.87 C0.79 97.7, 0.71 68.26, 0 32 M0 32 C1.85 10.89, 8.75 0.09, 32 0 M0 32 C1.74 10.76, 9.36 -2.13, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1159.7829446990963 676.522204757071) rotate(0 130.24990844726562 37.5)"><text x="130.24990844726562" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">add to the CalculateSum </text><text x="130.24990844726562" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">component the output at </text><text x="130.24990844726562" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">index i * (5 ** i)</text></g><g stroke-linecap="round" transform="translate(1117.465200019723 859.771154111982) rotate(0 196.59708185255067 97.50132682305502)"><path d="M32 0 C114.35 0, 194.79 0.08, 361.19 0 M32 0 C143.34 -1.68, 256.12 -2.04, 361.19 0 M361.19 0 C380.85 -0.26, 393.57 9.18, 393.19 32 M361.19 0 C381.18 2.03, 392.03 9.98, 393.19 32 M393.19 32 C391.07 74.12, 393.54 115.43, 393.19 163 M393.19 32 C393.13 68.1, 394.02 102.55, 393.19 163 M393.19 163 C391.79 186.23, 384.4 193.73, 361.19 195 M393.19 163 C391.05 182.34, 383.18 195.01, 361.19 195 M361.19 195 C251.13 195.74, 143.88 193.96, 32 195 M361.19 195 C271.61 194.36, 181.18 194.99, 32 195 M32 195 C11.4 194.05, 1.26 182.44, 0 163 M32 195 C11.6 193.24, 2.1 186.42, 0 163 M0 163 C-0.3 116.13, 1.7 69.64, 0 32 M0 163 C-0.32 117.66, 0.28 71.69, 0 32 M0 32 C0.02 10.41, 12.13 -0.52, 32 0 M0 32 C0.65 8.76, 8.81 0.95, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1124.0424454464928 894.772480935037) rotate(0 190.01983642578125 62.5)"><text x="190.01983642578125" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">each index is multiplied by 5 raised to</text><text x="190.01983642578125" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">the power of its level. This is </text><text x="190.01983642578125" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">because we're converting from a base-</text><text x="190.01983642578125" y="75" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">5 number to a base-10 number.</text><text x="190.01983642578125" y="100" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge"></text></g><g stroke-linecap="round" transform="translate(1136.2728084395876 452.50542740239644) rotate(0 198.35089697684452 58.71698798554303)"><path d="M29.36 0 C122.04 1.83, 216.87 1.32, 367.34 0 M29.36 0 C140.7 -0.24, 251.81 -0.78, 367.34 0 M367.34 0 C387.67 -1.82, 397.49 11.78, 396.7 29.36 M367.34 0 C385.61 -2.24, 396.66 9.3, 396.7 29.36 M396.7 29.36 C395.33 50.03, 394.82 70.41, 396.7 88.08 M396.7 29.36 C396.48 41.25, 396.09 53.72, 396.7 88.08 M396.7 88.08 C397.91 109.36, 388.17 118.69, 367.34 117.43 M396.7 88.08 C394.97 109.61, 386.67 117.3, 367.34 117.43 M367.34 117.43 C261.99 116.08, 156.92 116.53, 29.36 117.43 M367.34 117.43 C256.23 118.41, 145.91 118.3, 29.36 117.43 M29.36 117.43 C10.98 116.15, -0.52 106.61, 0 88.08 M29.36 117.43 C11.57 116.48, 1.77 108.01, 0 88.08 M0 88.08 C-1.03 66.7, 0.52 41.18, 0 29.36 M0 88.08 C1.08 75.23, 0.36 61.92, 0 29.36 M0 29.36 C-1.92 10.46, 8.24 -1.1, 29.36 0 M0 29.36 C-0.22 11.32, 10.82 2.07, 29.36 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(1154.5938592250259 473.7224153879397) rotate(0 180.02984619140625 37.5)"><text x="180.02984619140625" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">we use a quinary tree so the index </text><text x="180.02984619140625" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">must be &lt; 5 </text><text x="180.02984619140625" y="50" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">(0 &lt;= index &lt; 5)</text></g><g stroke-linecap="round"><g transform="translate(1297.8129512395253 811.0308836291847) rotate(0 -0.8781508727374785 15.917543169664441)"><path d="M-0.13 -0.02 C-0.56 5.28, -1.73 26.31, -2.04 31.68 M0.8 -0.51 C0.51 4.88, -0.41 27, -0.95 32.3" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1297.8129512395253 811.0308836291847) rotate(0 -0.8781508727374785 15.917543169664441)"><path d="M-5.39 16.98 C-3.68 22.64, -2.12 28.76, -0.95 32.3 M-5.39 16.98 C-3.79 22.88, -2.41 27.66, -0.95 32.3" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1297.8129512395253 811.0308836291847) rotate(0 -0.8781508727374785 15.917543169664441)"><path d="M5.49 17.71 C2.89 23.06, 0.15 28.9, -0.95 32.3 M5.49 17.71 C3.2 23.31, 0.68 27.84, -0.95 32.3" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round"><g transform="translate(1284.3784514014715 394.1474025007992) rotate(0 -2.656717494154691 18.656006844578314)"><path d="M0.38 -0.09 C-0.48 6.06, -4.6 31.1, -5.63 37.26 M-0.09 -0.62 C-0.73 5.59, -3.78 31.63, -4.55 37.94" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1284.3784514014715 394.1474025007992) rotate(0 -2.656717494154691 18.656006844578314)"><path d="M-8.86 19.59 C-8.03 22.97, -7.04 26.59, -4.55 37.94 M-8.86 19.59 C-7.57 24.15, -7.35 28.14, -4.55 37.94" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1284.3784514014715 394.1474025007992) rotate(0 -2.656717494154691 18.656006844578314)"><path d="M3.94 21.12 C2.02 24.21, 0.28 27.5, -4.55 37.94 M3.94 21.12 C2.37 25.34, -0.26 28.99, -4.55 37.94" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask><g stroke-linecap="round" transform="translate(744.2051025889568 439.2498964303127) rotate(0 146.69062497751293 75.84306336906911)"><path d="M32 0 C85.16 0.34, 135.44 0.57, 261.38 0 M32 0 C105.41 -2.36, 178.2 -2.52, 261.38 0 M261.38 0 C283.14 1.19, 293.58 11.84, 293.38 32 M261.38 0 C281.23 -2.16, 292.01 8.46, 293.38 32 M293.38 32 C294.85 55.98, 292.18 80.78, 293.38 119.69 M293.38 32 C292.9 60.71, 294.12 89.74, 293.38 119.69 M293.38 119.69 C293.3 141.23, 282.48 150.26, 261.38 151.69 M293.38 119.69 C291.14 138.81, 282.54 149.55, 261.38 151.69 M261.38 151.69 C190.63 153.01, 119.73 154.49, 32 151.69 M261.38 151.69 C191.98 150.17, 120.31 150.61, 32 151.69 M32 151.69 C11.74 149.92, -0.2 141.9, 0 119.69 M32 151.69 C10.59 150.29, 1.53 138.85, 0 119.69 M0 119.69 C0.47 93.68, -0.39 70.75, 0 32 M0 119.69 C-0.77 88.96, -0.41 56.37, 0 32 M0 32 C-0.22 9.19, 8.81 0.48, 32 0 M0 32 C-1.19 11.71, 12.45 -2.21, 32 0" stroke="#1971c2" stroke-width="1" fill="none"></path></g><g transform="translate(755.0258240020166 490.0929597993818) rotate(0 135.86990356445312 25)"><text x="135.86990356445312" y="0" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">3. Ensure that the sum is </text><text x="135.86990356445312" y="25" font-family="Virgil, Segoe UI Emoji" font-size="20px" fill="#1971c2" text-anchor="middle" style="white-space: pre;" direction="ltr" dominant-baseline="text-before-edge">equal to the input index</text></g><g stroke-linecap="round"><g transform="translate(1291.0613371450745 579.2123614620255) rotate(0 0.40083312327897147 13.735085498648914)"><path d="M0.48 0.27 C0.66 4.73, 0.43 22.6, 0.57 27.18 M0.06 -0.06 C0.2 4.7, -0.18 23.25, 0.02 27.73" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1291.0613371450745 579.2123614620255) rotate(0 0.40083312327897147 13.735085498648914)"><path d="M-4.78 14.86 C-3.39 17.2, -3.1 20.83, 0.02 27.73 M-4.78 14.86 C-2.72 19.48, -1.64 23.89, 0.02 27.73" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g><g transform="translate(1291.0613371450745 579.2123614620255) rotate(0 0.40083312327897147 13.735085498648914)"><path d="M4.62 14.78 C4.07 17.19, 2.42 20.82, 0.02 27.73 M4.62 14.78 C3.39 19.42, 1.19 23.86, 0.02 27.73" stroke="#1e1e1e" stroke-width="2" fill="none"></path></g></g><mask></mask></svg>