You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2545 lines
48 KiB

6 years ago
  1. const bigInt = require("big-integer");
  2. const __P__ = new bigInt("21888242871839275222246405745257275088696311157297823662689037894645226208583");
  3. const __MASK__ = new bigInt(2).pow(253).minus(1);
  4. const circuit = {};
  5. module.exports = circuit;
  6. circuit.signals={
  7. "one": {
  8. "fullName": "one",
  9. "value": "1",
  10. "equivalence": "",
  11. "direction": "",
  12. "id": 0
  13. },
  14. "main.inp[0][0]": {
  15. "fullName": "main.inp[0][0]",
  16. "direction": "IN",
  17. "component": "main",
  18. "equivalence": "",
  19. "alias": [
  20. "main.inp[0][0]"
  21. ],
  22. "id": 1
  23. },
  24. "main.inp[0][1]": {
  25. "fullName": "main.inp[0][1]",
  26. "direction": "IN",
  27. "component": "main",
  28. "equivalence": "",
  29. "alias": [
  30. "main.inp[0][1]"
  31. ],
  32. "id": 2
  33. },
  34. "main.inp[0][2]": {
  35. "fullName": "main.inp[0][2]",
  36. "direction": "IN",
  37. "component": "main",
  38. "equivalence": "",
  39. "alias": [
  40. "main.inp[0][2]"
  41. ],
  42. "id": 3
  43. },
  44. "main.inp[0][3]": {
  45. "fullName": "main.inp[0][3]",
  46. "direction": "IN",
  47. "component": "main",
  48. "equivalence": "",
  49. "alias": [
  50. "main.inp[0][3]"
  51. ],
  52. "id": 4
  53. },
  54. "main.inp[0][4]": {
  55. "fullName": "main.inp[0][4]",
  56. "direction": "IN",
  57. "component": "main",
  58. "equivalence": "",
  59. "alias": [
  60. "main.inp[0][4]"
  61. ],
  62. "id": 5
  63. },
  64. "main.inp[0][5]": {
  65. "fullName": "main.inp[0][5]",
  66. "direction": "IN",
  67. "component": "main",
  68. "equivalence": "",
  69. "alias": [
  70. "main.inp[0][5]"
  71. ],
  72. "id": 6
  73. },
  74. "main.inp[0][6]": {
  75. "fullName": "main.inp[0][6]",
  76. "direction": "IN",
  77. "component": "main",
  78. "equivalence": "",
  79. "alias": [
  80. "main.inp[0][6]"
  81. ],
  82. "id": 7
  83. },
  84. "main.inp[0][7]": {
  85. "fullName": "main.inp[0][7]",
  86. "direction": "IN",
  87. "component": "main",
  88. "equivalence": "",
  89. "alias": [
  90. "main.inp[0][7]"
  91. ],
  92. "id": 8
  93. },
  94. "main.inp[1][0]": {
  95. "fullName": "main.inp[1][0]",
  96. "direction": "IN",
  97. "component": "main",
  98. "equivalence": "",
  99. "alias": [
  100. "main.inp[1][0]"
  101. ],
  102. "id": 9
  103. },
  104. "main.inp[1][1]": {
  105. "fullName": "main.inp[1][1]",
  106. "direction": "IN",
  107. "component": "main",
  108. "equivalence": "",
  109. "alias": [
  110. "main.inp[1][1]"
  111. ],
  112. "id": 10
  113. },
  114. "main.inp[1][2]": {
  115. "fullName": "main.inp[1][2]",
  116. "direction": "IN",
  117. "component": "main",
  118. "equivalence": "",
  119. "alias": [
  120. "main.inp[1][2]"
  121. ],
  122. "id": 11
  123. },
  124. "main.inp[1][3]": {
  125. "fullName": "main.inp[1][3]",
  126. "direction": "IN",
  127. "component": "main",
  128. "equivalence": "",
  129. "alias": [
  130. "main.inp[1][3]"
  131. ],
  132. "id": 12
  133. },
  134. "main.inp[1][4]": {
  135. "fullName": "main.inp[1][4]",
  136. "direction": "IN",
  137. "component": "main",
  138. "equivalence": "",
  139. "alias": [
  140. "main.inp[1][4]"
  141. ],
  142. "id": 13
  143. },
  144. "main.inp[1][5]": {
  145. "fullName": "main.inp[1][5]",
  146. "direction": "IN",
  147. "component": "main",
  148. "equivalence": "",
  149. "alias": [
  150. "main.inp[1][5]"
  151. ],
  152. "id": 14
  153. },
  154. "main.inp[1][6]": {
  155. "fullName": "main.inp[1][6]",
  156. "direction": "IN",
  157. "component": "main",
  158. "equivalence": "",
  159. "alias": [
  160. "main.inp[1][6]"
  161. ],
  162. "id": 15
  163. },
  164. "main.inp[1][7]": {
  165. "fullName": "main.inp[1][7]",
  166. "direction": "IN",
  167. "component": "main",
  168. "equivalence": "",
  169. "alias": [
  170. "main.inp[1][7]"
  171. ],
  172. "id": 16
  173. },
  174. "main.inp[2][0]": {
  175. "fullName": "main.inp[2][0]",
  176. "direction": "IN",
  177. "component": "main",
  178. "equivalence": "",
  179. "alias": [
  180. "main.inp[2][0]"
  181. ],
  182. "id": 17
  183. },
  184. "main.inp[2][1]": {
  185. "fullName": "main.inp[2][1]",
  186. "direction": "IN",
  187. "component": "main",
  188. "equivalence": "",
  189. "alias": [
  190. "main.inp[2][1]"
  191. ],
  192. "id": 18
  193. },
  194. "main.inp[2][2]": {
  195. "fullName": "main.inp[2][2]",
  196. "direction": "IN",
  197. "component": "main",
  198. "equivalence": "",
  199. "alias": [
  200. "main.inp[2][2]"
  201. ],
  202. "id": 19
  203. },
  204. "main.inp[2][3]": {
  205. "fullName": "main.inp[2][3]",
  206. "direction": "IN",
  207. "component": "main",
  208. "equivalence": "",
  209. "alias": [
  210. "main.inp[2][3]"
  211. ],
  212. "id": 20
  213. },
  214. "main.inp[2][4]": {
  215. "fullName": "main.inp[2][4]",
  216. "direction": "IN",
  217. "component": "main",
  218. "equivalence": "",
  219. "alias": [
  220. "main.inp[2][4]"
  221. ],
  222. "id": 21
  223. },
  224. "main.inp[2][5]": {
  225. "fullName": "main.inp[2][5]",
  226. "direction": "IN",
  227. "component": "main",
  228. "equivalence": "",
  229. "alias": [
  230. "main.inp[2][5]"
  231. ],
  232. "id": 22
  233. },
  234. "main.inp[2][6]": {
  235. "fullName": "main.inp[2][6]",
  236. "direction": "IN",
  237. "component": "main",
  238. "equivalence": "",
  239. "alias": [
  240. "main.inp[2][6]"
  241. ],
  242. "id": 23
  243. },
  244. "main.inp[2][7]": {
  245. "fullName": "main.inp[2][7]",
  246. "direction": "IN",
  247. "component": "main",
  248. "equivalence": "",
  249. "alias": [
  250. "main.inp[2][7]"
  251. ],
  252. "id": 24
  253. },
  254. "main.sel": {
  255. "fullName": "main.sel",
  256. "direction": "IN",
  257. "component": "main",
  258. "equivalence": "",
  259. "alias": [
  260. "main.sel"
  261. ],
  262. "id": 25
  263. },
  264. "main.out[0]": {
  265. "fullName": "main.out[0]",
  266. "direction": "OUT",
  267. "component": "main",
  268. "equivalence": "main.ep[0].out",
  269. "alias": [
  270. "main.out[0]",
  271. null
  272. ],
  273. "id": 26
  274. },
  275. "main.out[1]": {
  276. "fullName": "main.out[1]",
  277. "direction": "OUT",
  278. "component": "main",
  279. "equivalence": "main.ep[1].out",
  280. "alias": [
  281. "main.out[1]",
  282. null
  283. ],
  284. "id": 27
  285. },
  286. "main.out[2]": {
  287. "fullName": "main.out[2]",
  288. "direction": "OUT",
  289. "component": "main",
  290. "equivalence": "main.ep[2].out",
  291. "alias": [
  292. "main.out[2]",
  293. null
  294. ],
  295. "id": 28
  296. },
  297. "main.out[3]": {
  298. "fullName": "main.out[3]",
  299. "direction": "OUT",
  300. "component": "main",
  301. "equivalence": "main.ep[3].out",
  302. "alias": [
  303. "main.out[3]",
  304. null
  305. ],
  306. "id": 29
  307. },
  308. "main.out[4]": {
  309. "fullName": "main.out[4]",
  310. "direction": "OUT",
  311. "component": "main",
  312. "equivalence": "main.ep[4].out",
  313. "alias": [
  314. "main.out[4]",
  315. null
  316. ],
  317. "id": 30
  318. },
  319. "main.out[5]": {
  320. "fullName": "main.out[5]",
  321. "direction": "OUT",
  322. "component": "main",
  323. "equivalence": "main.ep[5].out",
  324. "alias": [
  325. "main.out[5]",
  326. null
  327. ],
  328. "id": 31
  329. },
  330. "main.out[6]": {
  331. "fullName": "main.out[6]",
  332. "direction": "OUT",
  333. "component": "main",
  334. "equivalence": "main.ep[6].out",
  335. "alias": [
  336. "main.out[6]",
  337. null
  338. ],
  339. "id": 32
  340. },
  341. "main.out[7]": {
  342. "fullName": "main.out[7]",
  343. "direction": "OUT",
  344. "component": "main",
  345. "equivalence": "main.ep[7].out",
  346. "alias": [
  347. "main.out[7]",
  348. null
  349. ],
  350. "id": 33
  351. },
  352. "main.dec.inp": {
  353. "fullName": "main.dec.inp",
  354. "direction": "IN",
  355. "component": "main.dec",
  356. "equivalence": "main.sel",
  357. "alias": [
  358. "main.dec.inp",
  359. null
  360. ],
  361. "id": 25
  362. },
  363. "main.dec.out[0]": {
  364. "fullName": "main.dec.out[0]",
  365. "direction": "OUT",
  366. "component": "main.dec",
  367. "equivalence": "",
  368. "alias": [
  369. "main.dec.out[0]"
  370. ],
  371. "id": 34
  372. },
  373. "main.dec.out[1]": {
  374. "fullName": "main.dec.out[1]",
  375. "direction": "OUT",
  376. "component": "main.dec",
  377. "equivalence": "",
  378. "alias": [
  379. "main.dec.out[1]"
  380. ],
  381. "id": 35
  382. },
  383. "main.dec.out[2]": {
  384. "fullName": "main.dec.out[2]",
  385. "direction": "OUT",
  386. "component": "main.dec",
  387. "equivalence": "",
  388. "alias": [
  389. "main.dec.out[2]"
  390. ],
  391. "id": 36
  392. },
  393. "main.dec.success": {
  394. "fullName": "main.dec.success",
  395. "direction": "OUT",
  396. "component": "main.dec",
  397. "equivalence": "",
  398. "alias": [
  399. "main.dec.success"
  400. ],
  401. "id": 37
  402. },
  403. "main.ep[0].in1[0]": {
  404. "fullName": "main.ep[0].in1[0]",
  405. "direction": "IN",
  406. "component": "main.ep[0]",
  407. "equivalence": "main.inp[0][0]",
  408. "alias": [
  409. "main.ep[0].in1[0]",
  410. null
  411. ],
  412. "id": 1
  413. },
  414. "main.ep[0].in1[1]": {
  415. "fullName": "main.ep[0].in1[1]",
  416. "direction": "IN",
  417. "component": "main.ep[0]",
  418. "equivalence": "main.inp[1][0]",
  419. "alias": [
  420. "main.ep[0].in1[1]",
  421. null
  422. ],
  423. "id": 9
  424. },
  425. "main.ep[0].in1[2]": {
  426. "fullName": "main.ep[0].in1[2]",
  427. "direction": "IN",
  428. "component": "main.ep[0]",
  429. "equivalence": "main.inp[2][0]",
  430. "alias": [
  431. "main.ep[0].in1[2]",
  432. null
  433. ],
  434. "id": 17
  435. },
  436. "main.ep[0].in2[0]": {
  437. "fullName": "main.ep[0].in2[0]",
  438. "direction": "IN",
  439. "component": "main.ep[0]",
  440. "equivalence": "main.dec.out[0]",
  441. "alias": [
  442. "main.ep[0].in2[0]",
  443. null
  444. ],
  445. "id": 34
  446. },
  447. "main.ep[0].in2[1]": {
  448. "fullName": "main.ep[0].in2[1]",
  449. "direction": "IN",
  450. "component": "main.ep[0]",
  451. "equivalence": "main.dec.out[1]",
  452. "alias": [
  453. "main.ep[0].in2[1]",
  454. null
  455. ],
  456. "id": 35
  457. },
  458. "main.ep[0].in2[2]": {
  459. "fullName": "main.ep[0].in2[2]",
  460. "direction": "IN",
  461. "component": "main.ep[0]",
  462. "equivalence": "main.dec.out[2]",
  463. "alias": [
  464. "main.ep[0].in2[2]",
  465. null
  466. ],
  467. "id": 36
  468. },
  469. "main.ep[0].out": {
  470. "fullName": "main.ep[0].out",
  471. "direction": "OUT",
  472. "component": "main.ep[0]",
  473. "equivalence": "",
  474. "alias": [
  475. "main.ep[0].out"
  476. ],
  477. "id": 26
  478. },
  479. "main.ep[0].aux[0]": {
  480. "fullName": "main.ep[0].aux[0]",
  481. "direction": "",
  482. "component": "main.ep[0]",
  483. "equivalence": "",
  484. "alias": [
  485. "main.ep[0].aux[0]"
  486. ],
  487. "id": 38
  488. },
  489. "main.ep[0].aux[1]": {
  490. "fullName": "main.ep[0].aux[1]",
  491. "direction": "",
  492. "component": "main.ep[0]",
  493. "equivalence": "",
  494. "alias": [
  495. "main.ep[0].aux[1]"
  496. ],
  497. "id": 39
  498. },
  499. "main.ep[0].aux[2]": {
  500. "fullName": "main.ep[0].aux[2]",
  501. "direction": "",
  502. "component": "main.ep[0]",
  503. "equivalence": "",
  504. "alias": [
  505. "main.ep[0].aux[2]"
  506. ],
  507. "id": 40
  508. },
  509. "main.ep[1].in1[0]": {
  510. "fullName": "main.ep[1].in1[0]",
  511. "direction": "IN",
  512. "component": "main.ep[1]",
  513. "equivalence": "main.inp[0][1]",
  514. "alias": [
  515. "main.ep[1].in1[0]",
  516. null
  517. ],
  518. "id": 2
  519. },
  520. "main.ep[1].in1[1]": {
  521. "fullName": "main.ep[1].in1[1]",
  522. "direction": "IN",
  523. "component": "main.ep[1]",
  524. "equivalence": "main.inp[1][1]",
  525. "alias": [
  526. "main.ep[1].in1[1]",
  527. null
  528. ],
  529. "id": 10
  530. },
  531. "main.ep[1].in1[2]": {
  532. "fullName": "main.ep[1].in1[2]",
  533. "direction": "IN",
  534. "component": "main.ep[1]",
  535. "equivalence": "main.inp[2][1]",
  536. "alias": [
  537. "main.ep[1].in1[2]",
  538. null
  539. ],
  540. "id": 18
  541. },
  542. "main.ep[1].in2[0]": {
  543. "fullName": "main.ep[1].in2[0]",
  544. "direction": "IN",
  545. "component": "main.ep[1]",
  546. "equivalence": "main.dec.out[0]",
  547. "alias": [
  548. "main.ep[1].in2[0]",
  549. null
  550. ],
  551. "id": 34
  552. },
  553. "main.ep[1].in2[1]": {
  554. "fullName": "main.ep[1].in2[1]",
  555. "direction": "IN",
  556. "component": "main.ep[1]",
  557. "equivalence": "main.dec.out[1]",
  558. "alias": [
  559. "main.ep[1].in2[1]",
  560. null
  561. ],
  562. "id": 35
  563. },
  564. "main.ep[1].in2[2]": {
  565. "fullName": "main.ep[1].in2[2]",
  566. "direction": "IN",
  567. "component": "main.ep[1]",
  568. "equivalence": "main.dec.out[2]",
  569. "alias": [
  570. "main.ep[1].in2[2]",
  571. null
  572. ],
  573. "id": 36
  574. },
  575. "main.ep[1].out": {
  576. "fullName": "main.ep[1].out",
  577. "direction": "OUT",
  578. "component": "main.ep[1]",
  579. "equivalence": "",
  580. "alias": [
  581. "main.ep[1].out"
  582. ],
  583. "id": 27
  584. },
  585. "main.ep[1].aux[0]": {
  586. "fullName": "main.ep[1].aux[0]",
  587. "direction": "",
  588. "component": "main.ep[1]",
  589. "equivalence": "",
  590. "alias": [
  591. "main.ep[1].aux[0]"
  592. ],
  593. "id": 41
  594. },
  595. "main.ep[1].aux[1]": {
  596. "fullName": "main.ep[1].aux[1]",
  597. "direction": "",
  598. "component": "main.ep[1]",
  599. "equivalence": "",
  600. "alias": [
  601. "main.ep[1].aux[1]"
  602. ],
  603. "id": 42
  604. },
  605. "main.ep[1].aux[2]": {
  606. "fullName": "main.ep[1].aux[2]",
  607. "direction": "",
  608. "component": "main.ep[1]",
  609. "equivalence": "",
  610. "alias": [
  611. "main.ep[1].aux[2]"
  612. ],
  613. "id": 43
  614. },
  615. "main.ep[2].in1[0]": {
  616. "fullName": "main.ep[2].in1[0]",
  617. "direction": "IN",
  618. "component": "main.ep[2]",
  619. "equivalence": "main.inp[0][2]",
  620. "alias": [
  621. "main.ep[2].in1[0]",
  622. null
  623. ],
  624. "id": 3
  625. },
  626. "main.ep[2].in1[1]": {
  627. "fullName": "main.ep[2].in1[1]",
  628. "direction": "IN",
  629. "component": "main.ep[2]",
  630. "equivalence": "main.inp[1][2]",
  631. "alias": [
  632. "main.ep[2].in1[1]",
  633. null
  634. ],
  635. "id": 11
  636. },
  637. "main.ep[2].in1[2]": {
  638. "fullName": "main.ep[2].in1[2]",
  639. "direction": "IN",
  640. "component": "main.ep[2]",
  641. "equivalence": "main.inp[2][2]",
  642. "alias": [
  643. "main.ep[2].in1[2]",
  644. null
  645. ],
  646. "id": 19
  647. },
  648. "main.ep[2].in2[0]": {
  649. "fullName": "main.ep[2].in2[0]",
  650. "direction": "IN",
  651. "component": "main.ep[2]",
  652. "equivalence": "main.dec.out[0]",
  653. "alias": [
  654. "main.ep[2].in2[0]",
  655. null
  656. ],
  657. "id": 34
  658. },
  659. "main.ep[2].in2[1]": {
  660. "fullName": "main.ep[2].in2[1]",
  661. "direction": "IN",
  662. "component": "main.ep[2]",
  663. "equivalence": "main.dec.out[1]",
  664. "alias": [
  665. "main.ep[2].in2[1]",
  666. null
  667. ],
  668. "id": 35
  669. },
  670. "main.ep[2].in2[2]": {
  671. "fullName": "main.ep[2].in2[2]",
  672. "direction": "IN",
  673. "component": "main.ep[2]",
  674. "equivalence": "main.dec.out[2]",
  675. "alias": [
  676. "main.ep[2].in2[2]",
  677. null
  678. ],
  679. "id": 36
  680. },
  681. "main.ep[2].out": {
  682. "fullName": "main.ep[2].out",
  683. "direction": "OUT",
  684. "component": "main.ep[2]",
  685. "equivalence": "",
  686. "alias": [
  687. "main.ep[2].out"
  688. ],
  689. "id": 28
  690. },
  691. "main.ep[2].aux[0]": {
  692. "fullName": "main.ep[2].aux[0]",
  693. "direction": "",
  694. "component": "main.ep[2]",
  695. "equivalence": "",
  696. "alias": [
  697. "main.ep[2].aux[0]"
  698. ],
  699. "id": 44
  700. },
  701. "main.ep[2].aux[1]": {
  702. "fullName": "main.ep[2].aux[1]",
  703. "direction": "",
  704. "component": "main.ep[2]",
  705. "equivalence": "",
  706. "alias": [
  707. "main.ep[2].aux[1]"
  708. ],
  709. "id": 45
  710. },
  711. "main.ep[2].aux[2]": {
  712. "fullName": "main.ep[2].aux[2]",
  713. "direction": "",
  714. "component": "main.ep[2]",
  715. "equivalence": "",
  716. "alias": [
  717. "main.ep[2].aux[2]"
  718. ],
  719. "id": 46
  720. },
  721. "main.ep[3].in1[0]": {
  722. "fullName": "main.ep[3].in1[0]",
  723. "direction": "IN",
  724. "component": "main.ep[3]",
  725. "equivalence": "main.inp[0][3]",
  726. "alias": [
  727. "main.ep[3].in1[0]",
  728. null
  729. ],
  730. "id": 4
  731. },
  732. "main.ep[3].in1[1]": {
  733. "fullName": "main.ep[3].in1[1]",
  734. "direction": "IN",
  735. "component": "main.ep[3]",
  736. "equivalence": "main.inp[1][3]",
  737. "alias": [
  738. "main.ep[3].in1[1]",
  739. null
  740. ],
  741. "id": 12
  742. },
  743. "main.ep[3].in1[2]": {
  744. "fullName": "main.ep[3].in1[2]",
  745. "direction": "IN",
  746. "component": "main.ep[3]",
  747. "equivalence": "main.inp[2][3]",
  748. "alias": [
  749. "main.ep[3].in1[2]",
  750. null
  751. ],
  752. "id": 20
  753. },
  754. "main.ep[3].in2[0]": {
  755. "fullName": "main.ep[3].in2[0]",
  756. "direction": "IN",
  757. "component": "main.ep[3]",
  758. "equivalence": "main.dec.out[0]",
  759. "alias": [
  760. "main.ep[3].in2[0]",
  761. null
  762. ],
  763. "id": 34
  764. },
  765. "main.ep[3].in2[1]": {
  766. "fullName": "main.ep[3].in2[1]",
  767. "direction": "IN",
  768. "component": "main.ep[3]",
  769. "equivalence": "main.dec.out[1]",
  770. "alias": [
  771. "main.ep[3].in2[1]",
  772. null
  773. ],
  774. "id": 35
  775. },
  776. "main.ep[3].in2[2]": {
  777. "fullName": "main.ep[3].in2[2]",
  778. "direction": "IN",
  779. "component": "main.ep[3]",
  780. "equivalence": "main.dec.out[2]",
  781. "alias": [
  782. "main.ep[3].in2[2]",
  783. null
  784. ],
  785. "id": 36
  786. },
  787. "main.ep[3].out": {
  788. "fullName": "main.ep[3].out",
  789. "direction": "OUT",
  790. "component": "main.ep[3]",
  791. "equivalence": "",
  792. "alias": [
  793. "main.ep[3].out"
  794. ],
  795. "id": 29
  796. },
  797. "main.ep[3].aux[0]": {
  798. "fullName": "main.ep[3].aux[0]",
  799. "direction": "",
  800. "component": "main.ep[3]",
  801. "equivalence": "",
  802. "alias": [
  803. "main.ep[3].aux[0]"
  804. ],
  805. "id": 47
  806. },
  807. "main.ep[3].aux[1]": {
  808. "fullName": "main.ep[3].aux[1]",
  809. "direction": "",
  810. "component": "main.ep[3]",
  811. "equivalence": "",
  812. "alias": [
  813. "main.ep[3].aux[1]"
  814. ],
  815. "id": 48
  816. },
  817. "main.ep[3].aux[2]": {
  818. "fullName": "main.ep[3].aux[2]",
  819. "direction": "",
  820. "component": "main.ep[3]",
  821. "equivalence": "",
  822. "alias": [
  823. "main.ep[3].aux[2]"
  824. ],
  825. "id": 49
  826. },
  827. "main.ep[4].in1[0]": {
  828. "fullName": "main.ep[4].in1[0]",
  829. "direction": "IN",
  830. "component": "main.ep[4]",
  831. "equivalence": "main.inp[0][4]",
  832. "alias": [
  833. "main.ep[4].in1[0]",
  834. null
  835. ],
  836. "id": 5
  837. },
  838. "main.ep[4].in1[1]": {
  839. "fullName": "main.ep[4].in1[1]",
  840. "direction": "IN",
  841. "component": "main.ep[4]",
  842. "equivalence": "main.inp[1][4]",
  843. "alias": [
  844. "main.ep[4].in1[1]",
  845. null
  846. ],
  847. "id": 13
  848. },
  849. "main.ep[4].in1[2]": {
  850. "fullName": "main.ep[4].in1[2]",
  851. "direction": "IN",
  852. "component": "main.ep[4]",
  853. "equivalence": "main.inp[2][4]",
  854. "alias": [
  855. "main.ep[4].in1[2]",
  856. null
  857. ],
  858. "id": 21
  859. },
  860. "main.ep[4].in2[0]": {
  861. "fullName": "main.ep[4].in2[0]",
  862. "direction": "IN",
  863. "component": "main.ep[4]",
  864. "equivalence": "main.dec.out[0]",
  865. "alias": [
  866. "main.ep[4].in2[0]",
  867. null
  868. ],
  869. "id": 34
  870. },
  871. "main.ep[4].in2[1]": {
  872. "fullName": "main.ep[4].in2[1]",
  873. "direction": "IN",
  874. "component": "main.ep[4]",
  875. "equivalence": "main.dec.out[1]",
  876. "alias": [
  877. "main.ep[4].in2[1]",
  878. null
  879. ],
  880. "id": 35
  881. },
  882. "main.ep[4].in2[2]": {
  883. "fullName": "main.ep[4].in2[2]",
  884. "direction": "IN",
  885. "component": "main.ep[4]",
  886. "equivalence": "main.dec.out[2]",
  887. "alias": [
  888. "main.ep[4].in2[2]",
  889. null
  890. ],
  891. "id": 36
  892. },
  893. "main.ep[4].out": {
  894. "fullName": "main.ep[4].out",
  895. "direction": "OUT",
  896. "component": "main.ep[4]",
  897. "equivalence": "",
  898. "alias": [
  899. "main.ep[4].out"
  900. ],
  901. "id": 30
  902. },
  903. "main.ep[4].aux[0]": {
  904. "fullName": "main.ep[4].aux[0]",
  905. "direction": "",
  906. "component": "main.ep[4]",
  907. "equivalence": "",
  908. "alias": [
  909. "main.ep[4].aux[0]"
  910. ],
  911. "id": 50
  912. },
  913. "main.ep[4].aux[1]": {
  914. "fullName": "main.ep[4].aux[1]",
  915. "direction": "",
  916. "component": "main.ep[4]",
  917. "equivalence": "",
  918. "alias": [
  919. "main.ep[4].aux[1]"
  920. ],
  921. "id": 51
  922. },
  923. "main.ep[4].aux[2]": {
  924. "fullName": "main.ep[4].aux[2]",
  925. "direction": "",
  926. "component": "main.ep[4]",
  927. "equivalence": "",
  928. "alias": [
  929. "main.ep[4].aux[2]"
  930. ],
  931. "id": 52
  932. },
  933. "main.ep[5].in1[0]": {
  934. "fullName": "main.ep[5].in1[0]",
  935. "direction": "IN",
  936. "component": "main.ep[5]",
  937. "equivalence": "main.inp[0][5]",
  938. "alias": [
  939. "main.ep[5].in1[0]",
  940. null
  941. ],
  942. "id": 6
  943. },
  944. "main.ep[5].in1[1]": {
  945. "fullName": "main.ep[5].in1[1]",
  946. "direction": "IN",
  947. "component": "main.ep[5]",
  948. "equivalence": "main.inp[1][5]",
  949. "alias": [
  950. "main.ep[5].in1[1]",
  951. null
  952. ],
  953. "id": 14
  954. },
  955. "main.ep[5].in1[2]": {
  956. "fullName": "main.ep[5].in1[2]",
  957. "direction": "IN",
  958. "component": "main.ep[5]",
  959. "equivalence": "main.inp[2][5]",
  960. "alias": [
  961. "main.ep[5].in1[2]",
  962. null
  963. ],
  964. "id": 22
  965. },
  966. "main.ep[5].in2[0]": {
  967. "fullName": "main.ep[5].in2[0]",
  968. "direction": "IN",
  969. "component": "main.ep[5]",
  970. "equivalence": "main.dec.out[0]",
  971. "alias": [
  972. "main.ep[5].in2[0]",
  973. null
  974. ],
  975. "id": 34
  976. },
  977. "main.ep[5].in2[1]": {
  978. "fullName": "main.ep[5].in2[1]",
  979. "direction": "IN",
  980. "component": "main.ep[5]",
  981. "equivalence": "main.dec.out[1]",
  982. "alias": [
  983. "main.ep[5].in2[1]",
  984. null
  985. ],
  986. "id": 35
  987. },
  988. "main.ep[5].in2[2]": {
  989. "fullName": "main.ep[5].in2[2]",
  990. "direction": "IN",
  991. "component": "main.ep[5]",
  992. "equivalence": "main.dec.out[2]",
  993. "alias": [
  994. "main.ep[5].in2[2]",
  995. null
  996. ],
  997. "id": 36
  998. },
  999. "main.ep[5].out": {
  1000. "fullName": "main.ep[5].out",
  1001. "direction": "OUT",
  1002. "component": "main.ep[5]",
  1003. "equivalence": "",
  1004. "alias": [
  1005. "main.ep[5].out"
  1006. ],
  1007. "id": 31
  1008. },
  1009. "main.ep[5].aux[0]": {
  1010. "fullName": "main.ep[5].aux[0]",
  1011. "direction": "",
  1012. "component": "main.ep[5]",
  1013. "equivalence": "",
  1014. "alias": [
  1015. "main.ep[5].aux[0]"
  1016. ],
  1017. "id": 53
  1018. },
  1019. "main.ep[5].aux[1]": {
  1020. "fullName": "main.ep[5].aux[1]",
  1021. "direction": "",
  1022. "component": "main.ep[5]",
  1023. "equivalence": "",
  1024. "alias": [
  1025. "main.ep[5].aux[1]"
  1026. ],
  1027. "id": 54
  1028. },
  1029. "main.ep[5].aux[2]": {
  1030. "fullName": "main.ep[5].aux[2]",
  1031. "direction": "",
  1032. "component": "main.ep[5]",
  1033. "equivalence": "",
  1034. "alias": [
  1035. "main.ep[5].aux[2]"
  1036. ],
  1037. "id": 55
  1038. },
  1039. "main.ep[6].in1[0]": {
  1040. "fullName": "main.ep[6].in1[0]",
  1041. "direction": "IN",
  1042. "component": "main.ep[6]",
  1043. "equivalence": "main.inp[0][6]",
  1044. "alias": [
  1045. "main.ep[6].in1[0]",
  1046. null
  1047. ],
  1048. "id": 7
  1049. },
  1050. "main.ep[6].in1[1]": {
  1051. "fullName": "main.ep[6].in1[1]",
  1052. "direction": "IN",
  1053. "component": "main.ep[6]",
  1054. "equivalence": "main.inp[1][6]",
  1055. "alias": [
  1056. "main.ep[6].in1[1]",
  1057. null
  1058. ],
  1059. "id": 15
  1060. },
  1061. "main.ep[6].in1[2]": {
  1062. "fullName": "main.ep[6].in1[2]",
  1063. "direction": "IN",
  1064. "component": "main.ep[6]",
  1065. "equivalence": "main.inp[2][6]",
  1066. "alias": [
  1067. "main.ep[6].in1[2]",
  1068. null
  1069. ],
  1070. "id": 23
  1071. },
  1072. "main.ep[6].in2[0]": {
  1073. "fullName": "main.ep[6].in2[0]",
  1074. "direction": "IN",
  1075. "component": "main.ep[6]",
  1076. "equivalence": "main.dec.out[0]",
  1077. "alias": [
  1078. "main.ep[6].in2[0]",
  1079. null
  1080. ],
  1081. "id": 34
  1082. },
  1083. "main.ep[6].in2[1]": {
  1084. "fullName": "main.ep[6].in2[1]",
  1085. "direction": "IN",
  1086. "component": "main.ep[6]",
  1087. "equivalence": "main.dec.out[1]",
  1088. "alias": [
  1089. "main.ep[6].in2[1]",
  1090. null
  1091. ],
  1092. "id": 35
  1093. },
  1094. "main.ep[6].in2[2]": {
  1095. "fullName": "main.ep[6].in2[2]",
  1096. "direction": "IN",
  1097. "component": "main.ep[6]",
  1098. "equivalence": "main.dec.out[2]",
  1099. "alias": [
  1100. "main.ep[6].in2[2]",
  1101. null
  1102. ],
  1103. "id": 36
  1104. },
  1105. "main.ep[6].out": {
  1106. "fullName": "main.ep[6].out",
  1107. "direction": "OUT",
  1108. "component": "main.ep[6]",
  1109. "equivalence": "",
  1110. "alias": [
  1111. "main.ep[6].out"
  1112. ],
  1113. "id": 32
  1114. },
  1115. "main.ep[6].aux[0]": {
  1116. "fullName": "main.ep[6].aux[0]",
  1117. "direction": "",
  1118. "component": "main.ep[6]",
  1119. "equivalence": "",
  1120. "alias": [
  1121. "main.ep[6].aux[0]"
  1122. ],
  1123. "id": 56
  1124. },
  1125. "main.ep[6].aux[1]": {
  1126. "fullName": "main.ep[6].aux[1]",
  1127. "direction": "",
  1128. "component": "main.ep[6]",
  1129. "equivalence": "",
  1130. "alias": [
  1131. "main.ep[6].aux[1]"
  1132. ],
  1133. "id": 57
  1134. },
  1135. "main.ep[6].aux[2]": {
  1136. "fullName": "main.ep[6].aux[2]",
  1137. "direction": "",
  1138. "component": "main.ep[6]",
  1139. "equivalence": "",
  1140. "alias": [
  1141. "main.ep[6].aux[2]"
  1142. ],
  1143. "id": 58
  1144. },
  1145. "main.ep[7].in1[0]": {
  1146. "fullName": "main.ep[7].in1[0]",
  1147. "direction": "IN",
  1148. "component": "main.ep[7]",
  1149. "equivalence": "main.inp[0][7]",
  1150. "alias": [
  1151. "main.ep[7].in1[0]",
  1152. null
  1153. ],
  1154. "id": 8
  1155. },
  1156. "main.ep[7].in1[1]": {
  1157. "fullName": "main.ep[7].in1[1]",
  1158. "direction": "IN",
  1159. "component": "main.ep[7]",
  1160. "equivalence": "main.inp[1][7]",
  1161. "alias": [
  1162. "main.ep[7].in1[1]",
  1163. null
  1164. ],
  1165. "id": 16
  1166. },
  1167. "main.ep[7].in1[2]": {
  1168. "fullName": "main.ep[7].in1[2]",
  1169. "direction": "IN",
  1170. "component": "main.ep[7]",
  1171. "equivalence": "main.inp[2][7]",
  1172. "alias": [
  1173. "main.ep[7].in1[2]",
  1174. null
  1175. ],
  1176. "id": 24
  1177. },
  1178. "main.ep[7].in2[0]": {
  1179. "fullName": "main.ep[7].in2[0]",
  1180. "direction": "IN",
  1181. "component": "main.ep[7]",
  1182. "equivalence": "main.dec.out[0]",
  1183. "alias": [
  1184. "main.ep[7].in2[0]",
  1185. null
  1186. ],
  1187. "id": 34
  1188. },
  1189. "main.ep[7].in2[1]": {
  1190. "fullName": "main.ep[7].in2[1]",
  1191. "direction": "IN",
  1192. "component": "main.ep[7]",
  1193. "equivalence": "main.dec.out[1]",
  1194. "alias": [
  1195. "main.ep[7].in2[1]",
  1196. null
  1197. ],
  1198. "id": 35
  1199. },
  1200. "main.ep[7].in2[2]": {
  1201. "fullName": "main.ep[7].in2[2]",
  1202. "direction": "IN",
  1203. "component": "main.ep[7]",
  1204. "equivalence": "main.dec.out[2]",
  1205. "alias": [
  1206. "main.ep[7].in2[2]",
  1207. null
  1208. ],
  1209. "id": 36
  1210. },
  1211. "main.ep[7].out": {
  1212. "fullName": "main.ep[7].out",
  1213. "direction": "OUT",
  1214. "component": "main.ep[7]",
  1215. "equivalence": "",
  1216. "alias": [
  1217. "main.ep[7].out"
  1218. ],
  1219. "id": 33
  1220. },
  1221. "main.ep[7].aux[0]": {
  1222. "fullName": "main.ep[7].aux[0]",
  1223. "direction": "",
  1224. "component": "main.ep[7]",
  1225. "equivalence": "",
  1226. "alias": [
  1227. "main.ep[7].aux[0]"
  1228. ],
  1229. "id": 59
  1230. },
  1231. "main.ep[7].aux[1]": {
  1232. "fullName": "main.ep[7].aux[1]",
  1233. "direction": "",
  1234. "component": "main.ep[7]",
  1235. "equivalence": "",
  1236. "alias": [
  1237. "main.ep[7].aux[1]"
  1238. ],
  1239. "id": 60
  1240. },
  1241. "main.ep[7].aux[2]": {
  1242. "fullName": "main.ep[7].aux[2]",
  1243. "direction": "",
  1244. "component": "main.ep[7]",
  1245. "equivalence": "",
  1246. "alias": [
  1247. "main.ep[7].aux[2]"
  1248. ],
  1249. "id": 61
  1250. }
  1251. };
  1252. circuit.components={
  1253. "main": {
  1254. "signals": [
  1255. "main.inp[0][0]",
  1256. "main.inp[0][1]",
  1257. "main.inp[0][2]",
  1258. "main.inp[0][3]",
  1259. "main.inp[0][4]",
  1260. "main.inp[0][5]",
  1261. "main.inp[0][6]",
  1262. "main.inp[0][7]",
  1263. "main.inp[1][0]",
  1264. "main.inp[1][1]",
  1265. "main.inp[1][2]",
  1266. "main.inp[1][3]",
  1267. "main.inp[1][4]",
  1268. "main.inp[1][5]",
  1269. "main.inp[1][6]",
  1270. "main.inp[1][7]",
  1271. "main.inp[2][0]",
  1272. "main.inp[2][1]",
  1273. "main.inp[2][2]",
  1274. "main.inp[2][3]",
  1275. "main.inp[2][4]",
  1276. "main.inp[2][5]",
  1277. "main.inp[2][6]",
  1278. "main.inp[2][7]",
  1279. "main.sel",
  1280. "main.out[0]",
  1281. "main.out[1]",
  1282. "main.out[2]",
  1283. "main.out[3]",
  1284. "main.out[4]",
  1285. "main.out[5]",
  1286. "main.out[6]",
  1287. "main.out[7]"
  1288. ],
  1289. "params": {
  1290. "wIn": "8",
  1291. "nIn": "3"
  1292. },
  1293. "template": "Multiplexor",
  1294. "inputSignals": 25
  1295. },
  1296. "main.dec": {
  1297. "signals": [
  1298. "main.dec.inp",
  1299. "main.dec.out[0]",
  1300. "main.dec.out[1]",
  1301. "main.dec.out[2]",
  1302. "main.dec.success"
  1303. ],
  1304. "params": {
  1305. "w": "3"
  1306. },
  1307. "template": "Decoder",
  1308. "inputSignals": 1
  1309. },
  1310. "main.ep[0]": {
  1311. "signals": [
  1312. "main.ep[0].in1[0]",
  1313. "main.ep[0].in1[1]",
  1314. "main.ep[0].in1[2]",
  1315. "main.ep[0].in2[0]",
  1316. "main.ep[0].in2[1]",
  1317. "main.ep[0].in2[2]",
  1318. "main.ep[0].out",
  1319. "main.ep[0].aux[0]",
  1320. "main.ep[0].aux[1]",
  1321. "main.ep[0].aux[2]"
  1322. ],
  1323. "params": {
  1324. "w": "3"
  1325. },
  1326. "template": "EscalarProduct",
  1327. "inputSignals": 6
  1328. },
  1329. "main.ep[1]": {
  1330. "signals": [
  1331. "main.ep[1].in1[0]",
  1332. "main.ep[1].in1[1]",
  1333. "main.ep[1].in1[2]",
  1334. "main.ep[1].in2[0]",
  1335. "main.ep[1].in2[1]",
  1336. "main.ep[1].in2[2]",
  1337. "main.ep[1].out",
  1338. "main.ep[1].aux[0]",
  1339. "main.ep[1].aux[1]",
  1340. "main.ep[1].aux[2]"
  1341. ],
  1342. "params": {
  1343. "w": "3"
  1344. },
  1345. "template": "EscalarProduct",
  1346. "inputSignals": 6
  1347. },
  1348. "main.ep[2]": {
  1349. "signals": [
  1350. "main.ep[2].in1[0]",
  1351. "main.ep[2].in1[1]",
  1352. "main.ep[2].in1[2]",
  1353. "main.ep[2].in2[0]",
  1354. "main.ep[2].in2[1]",
  1355. "main.ep[2].in2[2]",
  1356. "main.ep[2].out",
  1357. "main.ep[2].aux[0]",
  1358. "main.ep[2].aux[1]",
  1359. "main.ep[2].aux[2]"
  1360. ],
  1361. "params": {
  1362. "w": "3"
  1363. },
  1364. "template": "EscalarProduct",
  1365. "inputSignals": 6
  1366. },
  1367. "main.ep[3]": {
  1368. "signals": [
  1369. "main.ep[3].in1[0]",
  1370. "main.ep[3].in1[1]",
  1371. "main.ep[3].in1[2]",
  1372. "main.ep[3].in2[0]",
  1373. "main.ep[3].in2[1]",
  1374. "main.ep[3].in2[2]",
  1375. "main.ep[3].out",
  1376. "main.ep[3].aux[0]",
  1377. "main.ep[3].aux[1]",
  1378. "main.ep[3].aux[2]"
  1379. ],
  1380. "params": {
  1381. "w": "3"
  1382. },
  1383. "template": "EscalarProduct",
  1384. "inputSignals": 6
  1385. },
  1386. "main.ep[4]": {
  1387. "signals": [
  1388. "main.ep[4].in1[0]",
  1389. "main.ep[4].in1[1]",
  1390. "main.ep[4].in1[2]",
  1391. "main.ep[4].in2[0]",
  1392. "main.ep[4].in2[1]",
  1393. "main.ep[4].in2[2]",
  1394. "main.ep[4].out",
  1395. "main.ep[4].aux[0]",
  1396. "main.ep[4].aux[1]",
  1397. "main.ep[4].aux[2]"
  1398. ],
  1399. "params": {
  1400. "w": "3"
  1401. },
  1402. "template": "EscalarProduct",
  1403. "inputSignals": 6
  1404. },
  1405. "main.ep[5]": {
  1406. "signals": [
  1407. "main.ep[5].in1[0]",
  1408. "main.ep[5].in1[1]",
  1409. "main.ep[5].in1[2]",
  1410. "main.ep[5].in2[0]",
  1411. "main.ep[5].in2[1]",
  1412. "main.ep[5].in2[2]",
  1413. "main.ep[5].out",
  1414. "main.ep[5].aux[0]",
  1415. "main.ep[5].aux[1]",
  1416. "main.ep[5].aux[2]"
  1417. ],
  1418. "params": {
  1419. "w": "3"
  1420. },
  1421. "template": "EscalarProduct",
  1422. "inputSignals": 6
  1423. },
  1424. "main.ep[6]": {
  1425. "signals": [
  1426. "main.ep[6].in1[0]",
  1427. "main.ep[6].in1[1]",
  1428. "main.ep[6].in1[2]",
  1429. "main.ep[6].in2[0]",
  1430. "main.ep[6].in2[1]",
  1431. "main.ep[6].in2[2]",
  1432. "main.ep[6].out",
  1433. "main.ep[6].aux[0]",
  1434. "main.ep[6].aux[1]",
  1435. "main.ep[6].aux[2]"
  1436. ],
  1437. "params": {
  1438. "w": "3"
  1439. },
  1440. "template": "EscalarProduct",
  1441. "inputSignals": 6
  1442. },
  1443. "main.ep[7]": {
  1444. "signals": [
  1445. "main.ep[7].in1[0]",
  1446. "main.ep[7].in1[1]",
  1447. "main.ep[7].in1[2]",
  1448. "main.ep[7].in2[0]",
  1449. "main.ep[7].in2[1]",
  1450. "main.ep[7].in2[2]",
  1451. "main.ep[7].out",
  1452. "main.ep[7].aux[0]",
  1453. "main.ep[7].aux[1]",
  1454. "main.ep[7].aux[2]"
  1455. ],
  1456. "params": {
  1457. "w": "3"
  1458. },
  1459. "template": "EscalarProduct",
  1460. "inputSignals": 6
  1461. }
  1462. };
  1463. circuit.signalConstrains=[
  1464. {
  1465. "type": "QEQ",
  1466. "a": {
  1467. "type": "LINEARCOMBINATION",
  1468. "values": {
  1469. "main.dec.out[0]": "1"
  1470. }
  1471. },
  1472. "b": {
  1473. "type": "LINEARCOMBINATION",
  1474. "values": {
  1475. "main.sel": "1"
  1476. }
  1477. },
  1478. "c": {
  1479. "type": "LINEARCOMBINATION",
  1480. "values": {}
  1481. }
  1482. },
  1483. {
  1484. "type": "QEQ",
  1485. "a": {
  1486. "type": "LINEARCOMBINATION",
  1487. "values": {
  1488. "main.dec.out[1]": "1"
  1489. }
  1490. },
  1491. "b": {
  1492. "type": "LINEARCOMBINATION",
  1493. "values": {
  1494. "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1495. "main.sel": "1"
  1496. }
  1497. },
  1498. "c": {
  1499. "type": "LINEARCOMBINATION",
  1500. "values": {}
  1501. }
  1502. },
  1503. {
  1504. "type": "QEQ",
  1505. "a": {
  1506. "type": "LINEARCOMBINATION",
  1507. "values": {
  1508. "main.dec.out[2]": "1"
  1509. }
  1510. },
  1511. "b": {
  1512. "type": "LINEARCOMBINATION",
  1513. "values": {
  1514. "one": "21888242871839275222246405745257275088696311157297823662689037894645226208581",
  1515. "main.sel": "1"
  1516. }
  1517. },
  1518. "c": {
  1519. "type": "LINEARCOMBINATION",
  1520. "values": {}
  1521. }
  1522. },
  1523. {
  1524. "type": "QEQ",
  1525. "a": {
  1526. "type": "LINEARCOMBINATION",
  1527. "values": {}
  1528. },
  1529. "b": {
  1530. "type": "LINEARCOMBINATION",
  1531. "values": {}
  1532. },
  1533. "c": {
  1534. "type": "LINEARCOMBINATION",
  1535. "values": {
  1536. "main.dec.success": "1",
  1537. "main.dec.out[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1538. "main.dec.out[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1539. "main.dec.out[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1540. }
  1541. }
  1542. },
  1543. {
  1544. "type": "QEQ",
  1545. "a": {
  1546. "type": "LINEARCOMBINATION",
  1547. "values": {
  1548. "main.dec.success": "1"
  1549. }
  1550. },
  1551. "b": {
  1552. "type": "LINEARCOMBINATION",
  1553. "values": {
  1554. "main.dec.success": "1",
  1555. "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1556. }
  1557. },
  1558. "c": {
  1559. "type": "LINEARCOMBINATION",
  1560. "values": {}
  1561. }
  1562. },
  1563. {
  1564. "type": "QEQ",
  1565. "a": {
  1566. "type": "LINEARCOMBINATION",
  1567. "values": {
  1568. "main.inp[0][0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1569. }
  1570. },
  1571. "b": {
  1572. "type": "LINEARCOMBINATION",
  1573. "values": {
  1574. "main.dec.out[0]": "1"
  1575. }
  1576. },
  1577. "c": {
  1578. "type": "LINEARCOMBINATION",
  1579. "values": {
  1580. "main.ep[0].aux[0]": "1"
  1581. }
  1582. }
  1583. },
  1584. {
  1585. "type": "QEQ",
  1586. "a": {
  1587. "type": "LINEARCOMBINATION",
  1588. "values": {
  1589. "main.inp[1][0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1590. }
  1591. },
  1592. "b": {
  1593. "type": "LINEARCOMBINATION",
  1594. "values": {
  1595. "main.dec.out[1]": "1"
  1596. }
  1597. },
  1598. "c": {
  1599. "type": "LINEARCOMBINATION",
  1600. "values": {
  1601. "main.ep[0].aux[1]": "1"
  1602. }
  1603. }
  1604. },
  1605. {
  1606. "type": "QEQ",
  1607. "a": {
  1608. "type": "LINEARCOMBINATION",
  1609. "values": {
  1610. "main.inp[2][0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1611. }
  1612. },
  1613. "b": {
  1614. "type": "LINEARCOMBINATION",
  1615. "values": {
  1616. "main.dec.out[2]": "1"
  1617. }
  1618. },
  1619. "c": {
  1620. "type": "LINEARCOMBINATION",
  1621. "values": {
  1622. "main.ep[0].aux[2]": "1"
  1623. }
  1624. }
  1625. },
  1626. {
  1627. "type": "QEQ",
  1628. "a": {
  1629. "type": "LINEARCOMBINATION",
  1630. "values": {}
  1631. },
  1632. "b": {
  1633. "type": "LINEARCOMBINATION",
  1634. "values": {}
  1635. },
  1636. "c": {
  1637. "type": "LINEARCOMBINATION",
  1638. "values": {
  1639. "main.ep[0].out": "1",
  1640. "main.ep[0].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1641. "main.ep[0].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1642. "main.ep[0].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1643. }
  1644. }
  1645. },
  1646. {
  1647. "type": "QEQ",
  1648. "a": {
  1649. "type": "LINEARCOMBINATION",
  1650. "values": {
  1651. "main.inp[0][1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1652. }
  1653. },
  1654. "b": {
  1655. "type": "LINEARCOMBINATION",
  1656. "values": {
  1657. "main.dec.out[0]": "1"
  1658. }
  1659. },
  1660. "c": {
  1661. "type": "LINEARCOMBINATION",
  1662. "values": {
  1663. "main.ep[1].aux[0]": "1"
  1664. }
  1665. }
  1666. },
  1667. {
  1668. "type": "QEQ",
  1669. "a": {
  1670. "type": "LINEARCOMBINATION",
  1671. "values": {
  1672. "main.inp[1][1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1673. }
  1674. },
  1675. "b": {
  1676. "type": "LINEARCOMBINATION",
  1677. "values": {
  1678. "main.dec.out[1]": "1"
  1679. }
  1680. },
  1681. "c": {
  1682. "type": "LINEARCOMBINATION",
  1683. "values": {
  1684. "main.ep[1].aux[1]": "1"
  1685. }
  1686. }
  1687. },
  1688. {
  1689. "type": "QEQ",
  1690. "a": {
  1691. "type": "LINEARCOMBINATION",
  1692. "values": {
  1693. "main.inp[2][1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1694. }
  1695. },
  1696. "b": {
  1697. "type": "LINEARCOMBINATION",
  1698. "values": {
  1699. "main.dec.out[2]": "1"
  1700. }
  1701. },
  1702. "c": {
  1703. "type": "LINEARCOMBINATION",
  1704. "values": {
  1705. "main.ep[1].aux[2]": "1"
  1706. }
  1707. }
  1708. },
  1709. {
  1710. "type": "QEQ",
  1711. "a": {
  1712. "type": "LINEARCOMBINATION",
  1713. "values": {}
  1714. },
  1715. "b": {
  1716. "type": "LINEARCOMBINATION",
  1717. "values": {}
  1718. },
  1719. "c": {
  1720. "type": "LINEARCOMBINATION",
  1721. "values": {
  1722. "main.ep[1].out": "1",
  1723. "main.ep[1].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1724. "main.ep[1].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1725. "main.ep[1].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1726. }
  1727. }
  1728. },
  1729. {
  1730. "type": "QEQ",
  1731. "a": {
  1732. "type": "LINEARCOMBINATION",
  1733. "values": {
  1734. "main.inp[0][2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1735. }
  1736. },
  1737. "b": {
  1738. "type": "LINEARCOMBINATION",
  1739. "values": {
  1740. "main.dec.out[0]": "1"
  1741. }
  1742. },
  1743. "c": {
  1744. "type": "LINEARCOMBINATION",
  1745. "values": {
  1746. "main.ep[2].aux[0]": "1"
  1747. }
  1748. }
  1749. },
  1750. {
  1751. "type": "QEQ",
  1752. "a": {
  1753. "type": "LINEARCOMBINATION",
  1754. "values": {
  1755. "main.inp[1][2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1756. }
  1757. },
  1758. "b": {
  1759. "type": "LINEARCOMBINATION",
  1760. "values": {
  1761. "main.dec.out[1]": "1"
  1762. }
  1763. },
  1764. "c": {
  1765. "type": "LINEARCOMBINATION",
  1766. "values": {
  1767. "main.ep[2].aux[1]": "1"
  1768. }
  1769. }
  1770. },
  1771. {
  1772. "type": "QEQ",
  1773. "a": {
  1774. "type": "LINEARCOMBINATION",
  1775. "values": {
  1776. "main.inp[2][2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1777. }
  1778. },
  1779. "b": {
  1780. "type": "LINEARCOMBINATION",
  1781. "values": {
  1782. "main.dec.out[2]": "1"
  1783. }
  1784. },
  1785. "c": {
  1786. "type": "LINEARCOMBINATION",
  1787. "values": {
  1788. "main.ep[2].aux[2]": "1"
  1789. }
  1790. }
  1791. },
  1792. {
  1793. "type": "QEQ",
  1794. "a": {
  1795. "type": "LINEARCOMBINATION",
  1796. "values": {}
  1797. },
  1798. "b": {
  1799. "type": "LINEARCOMBINATION",
  1800. "values": {}
  1801. },
  1802. "c": {
  1803. "type": "LINEARCOMBINATION",
  1804. "values": {
  1805. "main.ep[2].out": "1",
  1806. "main.ep[2].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1807. "main.ep[2].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1808. "main.ep[2].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1809. }
  1810. }
  1811. },
  1812. {
  1813. "type": "QEQ",
  1814. "a": {
  1815. "type": "LINEARCOMBINATION",
  1816. "values": {
  1817. "main.inp[0][3]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1818. }
  1819. },
  1820. "b": {
  1821. "type": "LINEARCOMBINATION",
  1822. "values": {
  1823. "main.dec.out[0]": "1"
  1824. }
  1825. },
  1826. "c": {
  1827. "type": "LINEARCOMBINATION",
  1828. "values": {
  1829. "main.ep[3].aux[0]": "1"
  1830. }
  1831. }
  1832. },
  1833. {
  1834. "type": "QEQ",
  1835. "a": {
  1836. "type": "LINEARCOMBINATION",
  1837. "values": {
  1838. "main.inp[1][3]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1839. }
  1840. },
  1841. "b": {
  1842. "type": "LINEARCOMBINATION",
  1843. "values": {
  1844. "main.dec.out[1]": "1"
  1845. }
  1846. },
  1847. "c": {
  1848. "type": "LINEARCOMBINATION",
  1849. "values": {
  1850. "main.ep[3].aux[1]": "1"
  1851. }
  1852. }
  1853. },
  1854. {
  1855. "type": "QEQ",
  1856. "a": {
  1857. "type": "LINEARCOMBINATION",
  1858. "values": {
  1859. "main.inp[2][3]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1860. }
  1861. },
  1862. "b": {
  1863. "type": "LINEARCOMBINATION",
  1864. "values": {
  1865. "main.dec.out[2]": "1"
  1866. }
  1867. },
  1868. "c": {
  1869. "type": "LINEARCOMBINATION",
  1870. "values": {
  1871. "main.ep[3].aux[2]": "1"
  1872. }
  1873. }
  1874. },
  1875. {
  1876. "type": "QEQ",
  1877. "a": {
  1878. "type": "LINEARCOMBINATION",
  1879. "values": {}
  1880. },
  1881. "b": {
  1882. "type": "LINEARCOMBINATION",
  1883. "values": {}
  1884. },
  1885. "c": {
  1886. "type": "LINEARCOMBINATION",
  1887. "values": {
  1888. "main.ep[3].out": "1",
  1889. "main.ep[3].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1890. "main.ep[3].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1891. "main.ep[3].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1892. }
  1893. }
  1894. },
  1895. {
  1896. "type": "QEQ",
  1897. "a": {
  1898. "type": "LINEARCOMBINATION",
  1899. "values": {
  1900. "main.inp[0][4]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1901. }
  1902. },
  1903. "b": {
  1904. "type": "LINEARCOMBINATION",
  1905. "values": {
  1906. "main.dec.out[0]": "1"
  1907. }
  1908. },
  1909. "c": {
  1910. "type": "LINEARCOMBINATION",
  1911. "values": {
  1912. "main.ep[4].aux[0]": "1"
  1913. }
  1914. }
  1915. },
  1916. {
  1917. "type": "QEQ",
  1918. "a": {
  1919. "type": "LINEARCOMBINATION",
  1920. "values": {
  1921. "main.inp[1][4]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1922. }
  1923. },
  1924. "b": {
  1925. "type": "LINEARCOMBINATION",
  1926. "values": {
  1927. "main.dec.out[1]": "1"
  1928. }
  1929. },
  1930. "c": {
  1931. "type": "LINEARCOMBINATION",
  1932. "values": {
  1933. "main.ep[4].aux[1]": "1"
  1934. }
  1935. }
  1936. },
  1937. {
  1938. "type": "QEQ",
  1939. "a": {
  1940. "type": "LINEARCOMBINATION",
  1941. "values": {
  1942. "main.inp[2][4]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1943. }
  1944. },
  1945. "b": {
  1946. "type": "LINEARCOMBINATION",
  1947. "values": {
  1948. "main.dec.out[2]": "1"
  1949. }
  1950. },
  1951. "c": {
  1952. "type": "LINEARCOMBINATION",
  1953. "values": {
  1954. "main.ep[4].aux[2]": "1"
  1955. }
  1956. }
  1957. },
  1958. {
  1959. "type": "QEQ",
  1960. "a": {
  1961. "type": "LINEARCOMBINATION",
  1962. "values": {}
  1963. },
  1964. "b": {
  1965. "type": "LINEARCOMBINATION",
  1966. "values": {}
  1967. },
  1968. "c": {
  1969. "type": "LINEARCOMBINATION",
  1970. "values": {
  1971. "main.ep[4].out": "1",
  1972. "main.ep[4].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1973. "main.ep[4].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  1974. "main.ep[4].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1975. }
  1976. }
  1977. },
  1978. {
  1979. "type": "QEQ",
  1980. "a": {
  1981. "type": "LINEARCOMBINATION",
  1982. "values": {
  1983. "main.inp[0][5]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  1984. }
  1985. },
  1986. "b": {
  1987. "type": "LINEARCOMBINATION",
  1988. "values": {
  1989. "main.dec.out[0]": "1"
  1990. }
  1991. },
  1992. "c": {
  1993. "type": "LINEARCOMBINATION",
  1994. "values": {
  1995. "main.ep[5].aux[0]": "1"
  1996. }
  1997. }
  1998. },
  1999. {
  2000. "type": "QEQ",
  2001. "a": {
  2002. "type": "LINEARCOMBINATION",
  2003. "values": {
  2004. "main.inp[1][5]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  2005. }
  2006. },
  2007. "b": {
  2008. "type": "LINEARCOMBINATION",
  2009. "values": {
  2010. "main.dec.out[1]": "1"
  2011. }
  2012. },
  2013. "c": {
  2014. "type": "LINEARCOMBINATION",
  2015. "values": {
  2016. "main.ep[5].aux[1]": "1"
  2017. }
  2018. }
  2019. },
  2020. {
  2021. "type": "QEQ",
  2022. "a": {
  2023. "type": "LINEARCOMBINATION",
  2024. "values": {
  2025. "main.inp[2][5]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  2026. }
  2027. },
  2028. "b": {
  2029. "type": "LINEARCOMBINATION",
  2030. "values": {
  2031. "main.dec.out[2]": "1"
  2032. }
  2033. },
  2034. "c": {
  2035. "type": "LINEARCOMBINATION",
  2036. "values": {
  2037. "main.ep[5].aux[2]": "1"
  2038. }
  2039. }
  2040. },
  2041. {
  2042. "type": "QEQ",
  2043. "a": {
  2044. "type": "LINEARCOMBINATION",
  2045. "values": {}
  2046. },
  2047. "b": {
  2048. "type": "LINEARCOMBINATION",
  2049. "values": {}
  2050. },
  2051. "c": {
  2052. "type": "LINEARCOMBINATION",
  2053. "values": {
  2054. "main.ep[5].out": "1",
  2055. "main.ep[5].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  2056. "main.ep[5].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  2057. "main.ep[5].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  2058. }
  2059. }
  2060. },
  2061. {
  2062. "type": "QEQ",
  2063. "a": {
  2064. "type": "LINEARCOMBINATION",
  2065. "values": {
  2066. "main.inp[0][6]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  2067. }
  2068. },
  2069. "b": {
  2070. "type": "LINEARCOMBINATION",
  2071. "values": {
  2072. "main.dec.out[0]": "1"
  2073. }
  2074. },
  2075. "c": {
  2076. "type": "LINEARCOMBINATION",
  2077. "values": {
  2078. "main.ep[6].aux[0]": "1"
  2079. }
  2080. }
  2081. },
  2082. {
  2083. "type": "QEQ",
  2084. "a": {
  2085. "type": "LINEARCOMBINATION",
  2086. "values": {
  2087. "main.inp[1][6]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  2088. }
  2089. },
  2090. "b": {
  2091. "type": "LINEARCOMBINATION",
  2092. "values": {
  2093. "main.dec.out[1]": "1"
  2094. }
  2095. },
  2096. "c": {
  2097. "type": "LINEARCOMBINATION",
  2098. "values": {
  2099. "main.ep[6].aux[1]": "1"
  2100. }
  2101. }
  2102. },
  2103. {
  2104. "type": "QEQ",
  2105. "a": {
  2106. "type": "LINEARCOMBINATION",
  2107. "values": {
  2108. "main.inp[2][6]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  2109. }
  2110. },
  2111. "b": {
  2112. "type": "LINEARCOMBINATION",
  2113. "values": {
  2114. "main.dec.out[2]": "1"
  2115. }
  2116. },
  2117. "c": {
  2118. "type": "LINEARCOMBINATION",
  2119. "values": {
  2120. "main.ep[6].aux[2]": "1"
  2121. }
  2122. }
  2123. },
  2124. {
  2125. "type": "QEQ",
  2126. "a": {
  2127. "type": "LINEARCOMBINATION",
  2128. "values": {}
  2129. },
  2130. "b": {
  2131. "type": "LINEARCOMBINATION",
  2132. "values": {}
  2133. },
  2134. "c": {
  2135. "type": "LINEARCOMBINATION",
  2136. "values": {
  2137. "main.ep[6].out": "1",
  2138. "main.ep[6].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  2139. "main.ep[6].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  2140. "main.ep[6].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  2141. }
  2142. }
  2143. },
  2144. {
  2145. "type": "QEQ",
  2146. "a": {
  2147. "type": "LINEARCOMBINATION",
  2148. "values": {
  2149. "main.inp[0][7]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  2150. }
  2151. },
  2152. "b": {
  2153. "type": "LINEARCOMBINATION",
  2154. "values": {
  2155. "main.dec.out[0]": "1"
  2156. }
  2157. },
  2158. "c": {
  2159. "type": "LINEARCOMBINATION",
  2160. "values": {
  2161. "main.ep[7].aux[0]": "1"
  2162. }
  2163. }
  2164. },
  2165. {
  2166. "type": "QEQ",
  2167. "a": {
  2168. "type": "LINEARCOMBINATION",
  2169. "values": {
  2170. "main.inp[1][7]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  2171. }
  2172. },
  2173. "b": {
  2174. "type": "LINEARCOMBINATION",
  2175. "values": {
  2176. "main.dec.out[1]": "1"
  2177. }
  2178. },
  2179. "c": {
  2180. "type": "LINEARCOMBINATION",
  2181. "values": {
  2182. "main.ep[7].aux[1]": "1"
  2183. }
  2184. }
  2185. },
  2186. {
  2187. "type": "QEQ",
  2188. "a": {
  2189. "type": "LINEARCOMBINATION",
  2190. "values": {
  2191. "main.inp[2][7]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  2192. }
  2193. },
  2194. "b": {
  2195. "type": "LINEARCOMBINATION",
  2196. "values": {
  2197. "main.dec.out[2]": "1"
  2198. }
  2199. },
  2200. "c": {
  2201. "type": "LINEARCOMBINATION",
  2202. "values": {
  2203. "main.ep[7].aux[2]": "1"
  2204. }
  2205. }
  2206. },
  2207. {
  2208. "type": "QEQ",
  2209. "a": {
  2210. "type": "LINEARCOMBINATION",
  2211. "values": {}
  2212. },
  2213. "b": {
  2214. "type": "LINEARCOMBINATION",
  2215. "values": {}
  2216. },
  2217. "c": {
  2218. "type": "LINEARCOMBINATION",
  2219. "values": {
  2220. "main.ep[7].out": "1",
  2221. "main.ep[7].aux[0]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  2222. "main.ep[7].aux[1]": "21888242871839275222246405745257275088696311157297823662689037894645226208582",
  2223. "main.ep[7].aux[2]": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  2224. }
  2225. }
  2226. },
  2227. {
  2228. "type": "QEQ",
  2229. "a": {
  2230. "type": "LINEARCOMBINATION",
  2231. "values": {}
  2232. },
  2233. "b": {
  2234. "type": "LINEARCOMBINATION",
  2235. "values": {}
  2236. },
  2237. "c": {
  2238. "type": "LINEARCOMBINATION",
  2239. "values": {
  2240. "main.dec.success": "1",
  2241. "one": "21888242871839275222246405745257275088696311157297823662689037894645226208582"
  2242. }
  2243. }
  2244. }
  2245. ];
  2246. circuit.witnessNames=[
  2247. [
  2248. "one"
  2249. ],
  2250. [
  2251. "main.inp[0][0]",
  2252. "main.ep[0].in1[0]"
  2253. ],
  2254. [
  2255. "main.inp[0][1]",
  2256. "main.ep[1].in1[0]"
  2257. ],
  2258. [
  2259. "main.inp[0][2]",
  2260. "main.ep[2].in1[0]"
  2261. ],
  2262. [
  2263. "main.inp[0][3]",
  2264. "main.ep[3].in1[0]"
  2265. ],
  2266. [
  2267. "main.inp[0][4]",
  2268. "main.ep[4].in1[0]"
  2269. ],
  2270. [
  2271. "main.inp[0][5]",
  2272. "main.ep[5].in1[0]"
  2273. ],
  2274. [
  2275. "main.inp[0][6]",
  2276. "main.ep[6].in1[0]"
  2277. ],
  2278. [
  2279. "main.inp[0][7]",
  2280. "main.ep[7].in1[0]"
  2281. ],
  2282. [
  2283. "main.inp[1][0]",
  2284. "main.ep[0].in1[1]"
  2285. ],
  2286. [
  2287. "main.inp[1][1]",
  2288. "main.ep[1].in1[1]"
  2289. ],
  2290. [
  2291. "main.inp[1][2]",
  2292. "main.ep[2].in1[1]"
  2293. ],
  2294. [
  2295. "main.inp[1][3]",
  2296. "main.ep[3].in1[1]"
  2297. ],
  2298. [
  2299. "main.inp[1][4]",
  2300. "main.ep[4].in1[1]"
  2301. ],
  2302. [
  2303. "main.inp[1][5]",
  2304. "main.ep[5].in1[1]"
  2305. ],
  2306. [
  2307. "main.inp[1][6]",
  2308. "main.ep[6].in1[1]"
  2309. ],
  2310. [
  2311. "main.inp[1][7]",
  2312. "main.ep[7].in1[1]"
  2313. ],
  2314. [
  2315. "main.inp[2][0]",
  2316. "main.ep[0].in1[2]"
  2317. ],
  2318. [
  2319. "main.inp[2][1]",
  2320. "main.ep[1].in1[2]"
  2321. ],
  2322. [
  2323. "main.inp[2][2]",
  2324. "main.ep[2].in1[2]"
  2325. ],
  2326. [
  2327. "main.inp[2][3]",
  2328. "main.ep[3].in1[2]"
  2329. ],
  2330. [
  2331. "main.inp[2][4]",
  2332. "main.ep[4].in1[2]"
  2333. ],
  2334. [
  2335. "main.inp[2][5]",
  2336. "main.ep[5].in1[2]"
  2337. ],
  2338. [
  2339. "main.inp[2][6]",
  2340. "main.ep[6].in1[2]"
  2341. ],
  2342. [
  2343. "main.inp[2][7]",
  2344. "main.ep[7].in1[2]"
  2345. ],
  2346. [
  2347. "main.sel",
  2348. "main.dec.inp"
  2349. ],
  2350. [
  2351. "main.out[0]",
  2352. "main.ep[0].out"
  2353. ],
  2354. [
  2355. "main.out[1]",
  2356. "main.ep[1].out"
  2357. ],
  2358. [
  2359. "main.out[2]",
  2360. "main.ep[2].out"
  2361. ],
  2362. [
  2363. "main.out[3]",
  2364. "main.ep[3].out"
  2365. ],
  2366. [
  2367. "main.out[4]",
  2368. "main.ep[4].out"
  2369. ],
  2370. [
  2371. "main.out[5]",
  2372. "main.ep[5].out"
  2373. ],
  2374. [
  2375. "main.out[6]",
  2376. "main.ep[6].out"
  2377. ],
  2378. [
  2379. "main.out[7]",
  2380. "main.ep[7].out"
  2381. ],
  2382. [
  2383. "main.dec.out[0]",
  2384. "main.ep[0].in2[0]",
  2385. "main.ep[1].in2[0]",
  2386. "main.ep[2].in2[0]",
  2387. "main.ep[3].in2[0]",
  2388. "main.ep[4].in2[0]",
  2389. "main.ep[5].in2[0]",
  2390. "main.ep[6].in2[0]",
  2391. "main.ep[7].in2[0]"
  2392. ],
  2393. [
  2394. "main.dec.out[1]",
  2395. "main.ep[0].in2[1]",
  2396. "main.ep[1].in2[1]",
  2397. "main.ep[2].in2[1]",
  2398. "main.ep[3].in2[1]",
  2399. "main.ep[4].in2[1]",
  2400. "main.ep[5].in2[1]",
  2401. "main.ep[6].in2[1]",
  2402. "main.ep[7].in2[1]"
  2403. ],
  2404. [
  2405. "main.dec.out[2]",
  2406. "main.ep[0].in2[2]",
  2407. "main.ep[1].in2[2]",
  2408. "main.ep[2].in2[2]",
  2409. "main.ep[3].in2[2]",
  2410. "main.ep[4].in2[2]",
  2411. "main.ep[5].in2[2]",
  2412. "main.ep[6].in2[2]",
  2413. "main.ep[7].in2[2]"
  2414. ],
  2415. [
  2416. "main.dec.success"
  2417. ],
  2418. [
  2419. "main.ep[0].aux[0]"
  2420. ],
  2421. [
  2422. "main.ep[0].aux[1]"
  2423. ],
  2424. [
  2425. "main.ep[0].aux[2]"
  2426. ],
  2427. [
  2428. "main.ep[1].aux[0]"
  2429. ],
  2430. [
  2431. "main.ep[1].aux[1]"
  2432. ],
  2433. [
  2434. "main.ep[1].aux[2]"
  2435. ],
  2436. [
  2437. "main.ep[2].aux[0]"
  2438. ],
  2439. [
  2440. "main.ep[2].aux[1]"
  2441. ],
  2442. [
  2443. "main.ep[2].aux[2]"
  2444. ],
  2445. [
  2446. "main.ep[3].aux[0]"
  2447. ],
  2448. [
  2449. "main.ep[3].aux[1]"
  2450. ],
  2451. [
  2452. "main.ep[3].aux[2]"
  2453. ],
  2454. [
  2455. "main.ep[4].aux[0]"
  2456. ],
  2457. [
  2458. "main.ep[4].aux[1]"
  2459. ],
  2460. [
  2461. "main.ep[4].aux[2]"
  2462. ],
  2463. [
  2464. "main.ep[5].aux[0]"
  2465. ],
  2466. [
  2467. "main.ep[5].aux[1]"
  2468. ],
  2469. [
  2470. "main.ep[5].aux[2]"
  2471. ],
  2472. [
  2473. "main.ep[6].aux[0]"
  2474. ],
  2475. [
  2476. "main.ep[6].aux[1]"
  2477. ],
  2478. [
  2479. "main.ep[6].aux[2]"
  2480. ],
  2481. [
  2482. "main.ep[7].aux[0]"
  2483. ],
  2484. [
  2485. "main.ep[7].aux[1]"
  2486. ],
  2487. [
  2488. "main.ep[7].aux[2]"
  2489. ]
  2490. ];
  2491. {
  2492. }
  2493. circuit.templates = [];
  2494. circuit.templates["EscalarProduct"] = function(ctx) {
  2495. ctx.setVar("lc", [], "0");
  2496. for (ctx.setVar("i", [], "0");bigInt(ctx.getVar("i",[])).lt(ctx.getVar("w",[])) ? 1 : 0;(ctx.setVar("i", [], bigInt(ctx.getVar("i",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__))
  2497. {
  2498. ctx.setSignal("aux", [ctx.getVar("i",[])], bigInt(ctx.getSignal("in1", [ctx.getVar("i",[])])).times(ctx.getSignal("in2", [ctx.getVar("i",[])])).mod(__P__));
  2499. ctx.assert(bigInt(ctx.getSignal("aux", [ctx.getVar("i",[])])).equals(bigInt(ctx.getSignal("in1", [ctx.getVar("i",[])])).times(ctx.getSignal("in2", [ctx.getVar("i",[])])).mod(__P__)));
  2500. ctx.setVar("lc", [], bigInt(ctx.getVar("lc",[])).add(ctx.getSignal("aux", [ctx.getVar("i",[])])).mod(__P__));
  2501. }
  2502. ctx.setSignal("out", [], ctx.getVar("lc",[]));
  2503. ctx.assert(bigInt(ctx.getSignal("out", [])).equals(ctx.getVar("lc",[])));
  2504. }
  2505. ;
  2506. circuit.templates["Decoder"] = function(ctx) {
  2507. ctx.setVar("lc", [], "0");
  2508. for (ctx.setVar("i", [], "0");bigInt(ctx.getVar("i",[])).lt(ctx.getVar("w",[])) ? 1 : 0;(ctx.setVar("i", [], bigInt(ctx.getVar("i",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__))
  2509. {
  2510. ctx.setSignal("out", [ctx.getVar("i",[])], bigInt(bigInt(ctx.getSignal("inp", [])).eq(ctx.getVar("i",[])) ? 1 : 0).neq(0) ? ("1") : ("0"));
  2511. ctx.assert(bigInt(bigInt(ctx.getSignal("out", [ctx.getVar("i",[])])).times(bigInt(ctx.getSignal("inp", [])).add(__P__).minus(ctx.getVar("i",[])).mod(__P__)).mod(__P__)).equals("0"));
  2512. ctx.setVar("lc", [], bigInt(ctx.getVar("lc",[])).add(ctx.getSignal("out", [ctx.getVar("i",[])])).mod(__P__));
  2513. }
  2514. ctx.setSignal("success", [], ctx.getVar("lc",[]));
  2515. ctx.assert(bigInt(ctx.getSignal("success", [])).equals(ctx.getVar("lc",[])));
  2516. ctx.assert(bigInt(bigInt(ctx.getSignal("success", [])).times(bigInt(ctx.getSignal("success", [])).add(__P__).minus("1").mod(__P__)).mod(__P__)).equals("0"));
  2517. }
  2518. ;
  2519. circuit.templates["Multiplexor"] = function(ctx) {
  2520. ctx.setPin("dec", [], "inp", [], ctx.getSignal("sel", []));
  2521. ctx.assert(bigInt(ctx.getPin("dec", [], "inp", [])).equals(ctx.getSignal("sel", [])));
  2522. for (ctx.setVar("j", [], "0");bigInt(ctx.getVar("j",[])).lt(ctx.getVar("wIn",[])) ? 1 : 0;(ctx.setVar("j", [], bigInt(ctx.getVar("j",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__))
  2523. {
  2524. for (ctx.setVar("k", [], "0");bigInt(ctx.getVar("k",[])).lt(ctx.getVar("nIn",[])) ? 1 : 0;(ctx.setVar("k", [], bigInt(ctx.getVar("k",[])).add("1").mod(__P__))).add(__P__).minus(1).mod(__P__))
  2525. {
  2526. ctx.setPin("ep", [ctx.getVar("j",[])], "in1", [ctx.getVar("k",[])], ctx.getSignal("inp", [ctx.getVar("k",[]),ctx.getVar("j",[])]));
  2527. ctx.assert(bigInt(ctx.getPin("ep", [ctx.getVar("j",[])], "in1", [ctx.getVar("k",[])])).equals(ctx.getSignal("inp", [ctx.getVar("k",[]),ctx.getVar("j",[])])));
  2528. ctx.setPin("ep", [ctx.getVar("j",[])], "in2", [ctx.getVar("k",[])], ctx.getPin("dec", [], "out", [ctx.getVar("k",[])]));
  2529. ctx.assert(bigInt(ctx.getPin("ep", [ctx.getVar("j",[])], "in2", [ctx.getVar("k",[])])).equals(ctx.getPin("dec", [], "out", [ctx.getVar("k",[])])));
  2530. }
  2531. ctx.setSignal("out", [ctx.getVar("j",[])], ctx.getPin("ep", [ctx.getVar("j",[])], "out", []));
  2532. ctx.assert(bigInt(ctx.getSignal("out", [ctx.getVar("j",[])])).equals(ctx.getPin("ep", [ctx.getVar("j",[])], "out", [])));
  2533. }
  2534. ctx.assert(bigInt(ctx.getPin("dec", [], "success", [])).equals("1"));
  2535. }
  2536. ;