@coti-io/coti-contracts 0.1.0

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 (180) hide show
  1. package/.github/workflows/npm-publish.yml +52 -0
  2. package/CODE_OF_CONDUCT.md +44 -0
  3. package/CONTRIBUTING.md +101 -0
  4. package/LICENSE +201 -0
  5. package/README.md +48 -0
  6. package/contracts/access/DataPrivacyFramework/DataPrivacyFramework.sol +480 -0
  7. package/contracts/access/DataPrivacyFramework/README.md +68 -0
  8. package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +1139 -0
  9. package/contracts/mocks/README.md +5 -0
  10. package/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock.sol +9 -0
  11. package/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.sol +17 -0
  12. package/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock.sol +34 -0
  13. package/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol +431 -0
  14. package/contracts/mocks/utils/mpc/BitwiseTestsContract.sol +361 -0
  15. package/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol +307 -0
  16. package/contracts/mocks/utils/mpc/Comparison2TestsContract.sol +307 -0
  17. package/contracts/mocks/utils/mpc/MinMaxTestsContract.sol +297 -0
  18. package/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.sol +185 -0
  19. package/contracts/mocks/utils/mpc/Miscellaneous2TestsContract.sol +448 -0
  20. package/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol +81 -0
  21. package/contracts/mocks/utils/mpc/README.md +486 -0
  22. package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +311 -0
  23. package/contracts/mocks/utils/mpc/StringTestsContract.sol +59 -0
  24. package/contracts/mocks/utils/mpc/TransferScalarTestsContract.sol +271 -0
  25. package/contracts/mocks/utils/mpc/TransferTestsContract.sol +715 -0
  26. package/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.sol +25 -0
  27. package/contracts/onboard/AccountOnboard.sol +21 -0
  28. package/contracts/onboard/README.md +65 -0
  29. package/contracts/package.json +11 -0
  30. package/contracts/token/PrivateERC20/IPrivateERC20.sol +142 -0
  31. package/contracts/token/PrivateERC20/PrivateERC20.sol +478 -0
  32. package/contracts/token/PrivateERC20/README.md +104 -0
  33. package/contracts/token/PrivateERC721/PrivateERC721.sol +458 -0
  34. package/contracts/token/PrivateERC721/README.md +282 -0
  35. package/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage.sol +87 -0
  36. package/contracts/utils/mpc/MpcCore.sol +3215 -0
  37. package/contracts/utils/mpc/MpcInterface.sol +41 -0
  38. package/contracts/utils/mpc/README.md +82 -0
  39. package/hardhat.config.ts +18 -0
  40. package/package.json +14 -0
  41. package/test/access/DataPrivacyFramework/DataPrivacyFramework.test.ts +780 -0
  42. package/test/onboard/AccountOnboard.test.ts +45 -0
  43. package/test/token/PrivateERC20/PrivateERC20.test.ts +546 -0
  44. package/test/token/PrivateERC721/PrivateERC721.test.ts +223 -0
  45. package/test/utils/accounts.ts +55 -0
  46. package/test/utils/mpc/Precompile.test.ts +113 -0
  47. package/test/utils/mpc/String.test.ts +227 -0
  48. package/tsconfig.json +11 -0
  49. package/typechain-types/@openzeppelin/contracts/index.ts +9 -0
  50. package/typechain-types/@openzeppelin/contracts/interfaces/IERC4906.ts +462 -0
  51. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts +69 -0
  52. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts +69 -0
  53. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts +69 -0
  54. package/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +6 -0
  55. package/typechain-types/@openzeppelin/contracts/interfaces/index.ts +6 -0
  56. package/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721.ts +393 -0
  57. package/typechain-types/@openzeppelin/contracts/token/ERC721/IERC721Receiver.ts +110 -0
  58. package/typechain-types/@openzeppelin/contracts/token/ERC721/index.ts +5 -0
  59. package/typechain-types/@openzeppelin/contracts/token/index.ts +5 -0
  60. package/typechain-types/@openzeppelin/contracts/utils/index.ts +5 -0
  61. package/typechain-types/@openzeppelin/contracts/utils/introspection/ERC165.ts +94 -0
  62. package/typechain-types/@openzeppelin/contracts/utils/introspection/IERC165.ts +94 -0
  63. package/typechain-types/@openzeppelin/contracts/utils/introspection/index.ts +5 -0
  64. package/typechain-types/@openzeppelin/index.ts +5 -0
  65. package/typechain-types/common.ts +131 -0
  66. package/typechain-types/contracts/access/DataPrivacyFramework/DataPrivacyFramework.ts +598 -0
  67. package/typechain-types/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.ts +598 -0
  68. package/typechain-types/contracts/access/DataPrivacyFramework/extensions/index.ts +4 -0
  69. package/typechain-types/contracts/access/DataPrivacyFramework/index.ts +6 -0
  70. package/typechain-types/contracts/access/index.ts +5 -0
  71. package/typechain-types/contracts/index.ts +13 -0
  72. package/typechain-types/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock.ts +598 -0
  73. package/typechain-types/contracts/mocks/access/DataPrivacyFramework/index.ts +4 -0
  74. package/typechain-types/contracts/mocks/access/index.ts +5 -0
  75. package/typechain-types/contracts/mocks/index.ts +11 -0
  76. package/typechain-types/contracts/mocks/token/PrivateERC20/PrivateERC20Mock.ts +543 -0
  77. package/typechain-types/contracts/mocks/token/PrivateERC20/index.ts +4 -0
  78. package/typechain-types/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock.ts +576 -0
  79. package/typechain-types/contracts/mocks/token/PrivateERC721/index.ts +4 -0
  80. package/typechain-types/contracts/mocks/token/index.ts +7 -0
  81. package/typechain-types/contracts/mocks/utils/index.ts +5 -0
  82. package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.ts +354 -0
  83. package/typechain-types/contracts/mocks/utils/mpc/BitwiseTestsContract.ts +340 -0
  84. package/typechain-types/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/Comparison1TestsContract.ts +340 -0
  85. package/typechain-types/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/index.ts +4 -0
  86. package/typechain-types/contracts/mocks/utils/mpc/Comparison2TestsContract.ts +340 -0
  87. package/typechain-types/contracts/mocks/utils/mpc/MinMaxTestsContract.ts +321 -0
  88. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.ts +199 -0
  89. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous2TestsContract.ts +384 -0
  90. package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract.ts +218 -0
  91. package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/index.ts +4 -0
  92. package/typechain-types/contracts/mocks/utils/mpc/ShiftTestsContract.ts +339 -0
  93. package/typechain-types/contracts/mocks/utils/mpc/StringTestsContract.ts +211 -0
  94. package/typechain-types/contracts/mocks/utils/mpc/TransferScalarTestsContract.ts +266 -0
  95. package/typechain-types/contracts/mocks/utils/mpc/TransferTestsContract.ts +288 -0
  96. package/typechain-types/contracts/mocks/utils/mpc/index.ts +17 -0
  97. package/typechain-types/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock.ts +173 -0
  98. package/typechain-types/contracts/mocks/wallet/PrivateERC20Wallet/index.ts +4 -0
  99. package/typechain-types/contracts/mocks/wallet/index.ts +5 -0
  100. package/typechain-types/contracts/onboard/AccountOnboard.ts +135 -0
  101. package/typechain-types/contracts/onboard/index.ts +4 -0
  102. package/typechain-types/contracts/token/PrivateERC20/IPrivateERC20.ts +437 -0
  103. package/typechain-types/contracts/token/PrivateERC20/PrivateERC20.ts +505 -0
  104. package/typechain-types/contracts/token/PrivateERC20/index.ts +5 -0
  105. package/typechain-types/contracts/token/PrivateERC721/PrivateERC721.ts +409 -0
  106. package/typechain-types/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage.ts +501 -0
  107. package/typechain-types/contracts/token/PrivateERC721/extensions/index.ts +4 -0
  108. package/typechain-types/contracts/token/PrivateERC721/index.ts +6 -0
  109. package/typechain-types/contracts/token/index.ts +7 -0
  110. package/typechain-types/contracts/utils/index.ts +5 -0
  111. package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +698 -0
  112. package/typechain-types/contracts/utils/mpc/MpcInterface.sol/index.ts +4 -0
  113. package/typechain-types/contracts/utils/mpc/index.ts +5 -0
  114. package/typechain-types/factories/@openzeppelin/contracts/index.ts +6 -0
  115. package/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC4906__factory.ts +339 -0
  116. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts +127 -0
  117. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts +111 -0
  118. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts +128 -0
  119. package/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +6 -0
  120. package/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +5 -0
  121. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.ts +59 -0
  122. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/IERC721__factory.ts +307 -0
  123. package/typechain-types/factories/@openzeppelin/contracts/token/ERC721/index.ts +5 -0
  124. package/typechain-types/factories/@openzeppelin/contracts/token/index.ts +4 -0
  125. package/typechain-types/factories/@openzeppelin/contracts/utils/index.ts +4 -0
  126. package/typechain-types/factories/@openzeppelin/contracts/utils/introspection/ERC165__factory.ts +41 -0
  127. package/typechain-types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.ts +41 -0
  128. package/typechain-types/factories/@openzeppelin/contracts/utils/introspection/index.ts +5 -0
  129. package/typechain-types/factories/@openzeppelin/index.ts +4 -0
  130. package/typechain-types/factories/contracts/access/DataPrivacyFramework/DataPrivacyFramework__factory.ts +621 -0
  131. package/typechain-types/factories/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc__factory.ts +621 -0
  132. package/typechain-types/factories/contracts/access/DataPrivacyFramework/extensions/index.ts +4 -0
  133. package/typechain-types/factories/contracts/access/DataPrivacyFramework/index.ts +5 -0
  134. package/typechain-types/factories/contracts/access/index.ts +4 -0
  135. package/typechain-types/factories/contracts/index.ts +8 -0
  136. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +670 -0
  137. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/index.ts +4 -0
  138. package/typechain-types/factories/contracts/mocks/access/index.ts +4 -0
  139. package/typechain-types/factories/contracts/mocks/index.ts +7 -0
  140. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +615 -0
  141. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/index.ts +4 -0
  142. package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +630 -0
  143. package/typechain-types/factories/contracts/mocks/token/PrivateERC721/index.ts +4 -0
  144. package/typechain-types/factories/contracts/mocks/token/index.ts +5 -0
  145. package/typechain-types/factories/contracts/mocks/utils/index.ts +4 -0
  146. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +374 -0
  147. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +361 -0
  148. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/Comparison1TestsContract__factory.ts +361 -0
  149. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/index.ts +4 -0
  150. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +361 -0
  151. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +337 -0
  152. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +236 -0
  153. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous2TestsContract__factory.ts +432 -0
  154. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract__factory.ts +245 -0
  155. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/index.ts +4 -0
  156. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +374 -0
  157. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +264 -0
  158. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +360 -0
  159. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +441 -0
  160. package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +15 -0
  161. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +194 -0
  162. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/index.ts +4 -0
  163. package/typechain-types/factories/contracts/mocks/wallet/index.ts +4 -0
  164. package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +104 -0
  165. package/typechain-types/factories/contracts/onboard/index.ts +4 -0
  166. package/typechain-types/factories/contracts/token/PrivateERC20/IPrivateERC20__factory.ts +406 -0
  167. package/typechain-types/factories/contracts/token/PrivateERC20/PrivateERC20__factory.ts +532 -0
  168. package/typechain-types/factories/contracts/token/PrivateERC20/index.ts +5 -0
  169. package/typechain-types/factories/contracts/token/PrivateERC721/PrivateERC721__factory.ts +439 -0
  170. package/typechain-types/factories/contracts/token/PrivateERC721/extensions/PrivateERC721URIStorage__factory.ts +512 -0
  171. package/typechain-types/factories/contracts/token/PrivateERC721/extensions/index.ts +4 -0
  172. package/typechain-types/factories/contracts/token/PrivateERC721/index.ts +5 -0
  173. package/typechain-types/factories/contracts/token/index.ts +5 -0
  174. package/typechain-types/factories/contracts/utils/index.ts +4 -0
  175. package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +919 -0
  176. package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/index.ts +4 -0
  177. package/typechain-types/factories/contracts/utils/mpc/index.ts +4 -0
  178. package/typechain-types/factories/index.ts +5 -0
  179. package/typechain-types/hardhat.d.ts +621 -0
  180. package/typechain-types/index.ts +72 -0
@@ -0,0 +1,432 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import {
5
+ Contract,
6
+ ContractFactory,
7
+ ContractTransactionResponse,
8
+ Interface,
9
+ } from "ethers";
10
+ import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers";
11
+ import type { NonPayableOverrides } from "../../../../../common";
12
+ import type {
13
+ Miscellaneous2TestsContract,
14
+ Miscellaneous2TestsContractInterface,
15
+ } from "../../../../../contracts/mocks/utils/mpc/Miscellaneous2TestsContract";
16
+
17
+ const _abi = [
18
+ {
19
+ inputs: [
20
+ {
21
+ components: [
22
+ {
23
+ internalType: "gtUint16",
24
+ name: "res16_16",
25
+ type: "uint256",
26
+ },
27
+ {
28
+ internalType: "gtUint16",
29
+ name: "res8_16",
30
+ type: "uint256",
31
+ },
32
+ {
33
+ internalType: "gtUint16",
34
+ name: "res16_8",
35
+ type: "uint256",
36
+ },
37
+ ],
38
+ internalType: "struct Miscellaneous2TestsContract.Check16",
39
+ name: "check16",
40
+ type: "tuple",
41
+ },
42
+ ],
43
+ name: "decryptAndCompareResults16",
44
+ outputs: [
45
+ {
46
+ internalType: "uint16",
47
+ name: "",
48
+ type: "uint16",
49
+ },
50
+ ],
51
+ stateMutability: "nonpayable",
52
+ type: "function",
53
+ },
54
+ {
55
+ inputs: [
56
+ {
57
+ components: [
58
+ {
59
+ internalType: "gtUint32",
60
+ name: "res32_32",
61
+ type: "uint256",
62
+ },
63
+ {
64
+ internalType: "gtUint32",
65
+ name: "res8_32",
66
+ type: "uint256",
67
+ },
68
+ {
69
+ internalType: "gtUint32",
70
+ name: "res32_8",
71
+ type: "uint256",
72
+ },
73
+ {
74
+ internalType: "gtUint32",
75
+ name: "res16_32",
76
+ type: "uint256",
77
+ },
78
+ {
79
+ internalType: "gtUint32",
80
+ name: "res32_16",
81
+ type: "uint256",
82
+ },
83
+ ],
84
+ internalType: "struct Miscellaneous2TestsContract.Check32",
85
+ name: "check32",
86
+ type: "tuple",
87
+ },
88
+ ],
89
+ name: "decryptAndCompareResults32",
90
+ outputs: [
91
+ {
92
+ internalType: "uint32",
93
+ name: "",
94
+ type: "uint32",
95
+ },
96
+ ],
97
+ stateMutability: "nonpayable",
98
+ type: "function",
99
+ },
100
+ {
101
+ inputs: [
102
+ {
103
+ components: [
104
+ {
105
+ internalType: "gtUint64",
106
+ name: "res64_64",
107
+ type: "uint256",
108
+ },
109
+ {
110
+ internalType: "gtUint64",
111
+ name: "res8_64",
112
+ type: "uint256",
113
+ },
114
+ {
115
+ internalType: "gtUint64",
116
+ name: "res64_8",
117
+ type: "uint256",
118
+ },
119
+ {
120
+ internalType: "gtUint64",
121
+ name: "res16_64",
122
+ type: "uint256",
123
+ },
124
+ {
125
+ internalType: "gtUint64",
126
+ name: "res64_16",
127
+ type: "uint256",
128
+ },
129
+ {
130
+ internalType: "gtUint64",
131
+ name: "res32_64",
132
+ type: "uint256",
133
+ },
134
+ {
135
+ internalType: "gtUint64",
136
+ name: "res64_32",
137
+ type: "uint256",
138
+ },
139
+ ],
140
+ internalType: "struct Miscellaneous2TestsContract.Check64",
141
+ name: "check64",
142
+ type: "tuple",
143
+ },
144
+ ],
145
+ name: "decryptAndCompareResults64",
146
+ outputs: [
147
+ {
148
+ internalType: "uint64",
149
+ name: "",
150
+ type: "uint64",
151
+ },
152
+ ],
153
+ stateMutability: "nonpayable",
154
+ type: "function",
155
+ },
156
+ {
157
+ inputs: [
158
+ {
159
+ internalType: "uint8",
160
+ name: "a",
161
+ type: "uint8",
162
+ },
163
+ {
164
+ internalType: "uint8",
165
+ name: "b",
166
+ type: "uint8",
167
+ },
168
+ ],
169
+ name: "divTest",
170
+ outputs: [
171
+ {
172
+ internalType: "uint8",
173
+ name: "",
174
+ type: "uint8",
175
+ },
176
+ ],
177
+ stateMutability: "nonpayable",
178
+ type: "function",
179
+ },
180
+ {
181
+ inputs: [],
182
+ name: "getBoolResult",
183
+ outputs: [
184
+ {
185
+ internalType: "bool",
186
+ name: "",
187
+ type: "bool",
188
+ },
189
+ ],
190
+ stateMutability: "view",
191
+ type: "function",
192
+ },
193
+ {
194
+ inputs: [],
195
+ name: "getResult",
196
+ outputs: [
197
+ {
198
+ internalType: "uint8",
199
+ name: "",
200
+ type: "uint8",
201
+ },
202
+ ],
203
+ stateMutability: "view",
204
+ type: "function",
205
+ },
206
+ {
207
+ inputs: [
208
+ {
209
+ internalType: "bool",
210
+ name: "selectionBit",
211
+ type: "bool",
212
+ },
213
+ {
214
+ internalType: "uint8",
215
+ name: "a",
216
+ type: "uint8",
217
+ },
218
+ {
219
+ internalType: "uint8",
220
+ name: "b",
221
+ type: "uint8",
222
+ },
223
+ ],
224
+ name: "muxTest",
225
+ outputs: [
226
+ {
227
+ internalType: "uint8",
228
+ name: "",
229
+ type: "uint8",
230
+ },
231
+ ],
232
+ stateMutability: "nonpayable",
233
+ type: "function",
234
+ },
235
+ {
236
+ inputs: [
237
+ {
238
+ internalType: "bool",
239
+ name: "a",
240
+ type: "bool",
241
+ },
242
+ ],
243
+ name: "notTest",
244
+ outputs: [
245
+ {
246
+ internalType: "bool",
247
+ name: "",
248
+ type: "bool",
249
+ },
250
+ ],
251
+ stateMutability: "nonpayable",
252
+ type: "function",
253
+ },
254
+ {
255
+ inputs: [
256
+ {
257
+ internalType: "uint8",
258
+ name: "a8",
259
+ type: "uint8",
260
+ },
261
+ {
262
+ internalType: "uint16",
263
+ name: "a16",
264
+ type: "uint16",
265
+ },
266
+ {
267
+ internalType: "uint32",
268
+ name: "a32",
269
+ type: "uint32",
270
+ },
271
+ {
272
+ internalType: "uint32",
273
+ name: "a64",
274
+ type: "uint32",
275
+ },
276
+ ],
277
+ name: "offboardOnboardTest",
278
+ outputs: [
279
+ {
280
+ internalType: "uint8",
281
+ name: "",
282
+ type: "uint8",
283
+ },
284
+ ],
285
+ stateMutability: "nonpayable",
286
+ type: "function",
287
+ },
288
+ {
289
+ inputs: [
290
+ {
291
+ internalType: "uint8",
292
+ name: "a",
293
+ type: "uint8",
294
+ },
295
+ {
296
+ internalType: "uint8",
297
+ name: "b",
298
+ type: "uint8",
299
+ },
300
+ ],
301
+ name: "remTest",
302
+ outputs: [
303
+ {
304
+ internalType: "uint8",
305
+ name: "",
306
+ type: "uint8",
307
+ },
308
+ ],
309
+ stateMutability: "nonpayable",
310
+ type: "function",
311
+ },
312
+ {
313
+ inputs: [
314
+ {
315
+ components: [
316
+ {
317
+ internalType: "gtUint8",
318
+ name: "a8_s",
319
+ type: "uint256",
320
+ },
321
+ {
322
+ internalType: "gtUint8",
323
+ name: "b8_s",
324
+ type: "uint256",
325
+ },
326
+ {
327
+ internalType: "gtUint16",
328
+ name: "a16_s",
329
+ type: "uint256",
330
+ },
331
+ {
332
+ internalType: "gtUint16",
333
+ name: "b16_s",
334
+ type: "uint256",
335
+ },
336
+ {
337
+ internalType: "gtUint32",
338
+ name: "a32_s",
339
+ type: "uint256",
340
+ },
341
+ {
342
+ internalType: "gtUint32",
343
+ name: "b32_s",
344
+ type: "uint256",
345
+ },
346
+ {
347
+ internalType: "gtUint64",
348
+ name: "a64_s",
349
+ type: "uint256",
350
+ },
351
+ {
352
+ internalType: "gtUint64",
353
+ name: "b64_s",
354
+ type: "uint256",
355
+ },
356
+ ],
357
+ internalType: "struct Miscellaneous2TestsContract.AllGTCastingValues",
358
+ name: "castingValues",
359
+ type: "tuple",
360
+ },
361
+ {
362
+ internalType: "uint8",
363
+ name: "a",
364
+ type: "uint8",
365
+ },
366
+ {
367
+ internalType: "uint8",
368
+ name: "b",
369
+ type: "uint8",
370
+ },
371
+ ],
372
+ name: "setPublicValues",
373
+ outputs: [],
374
+ stateMutability: "nonpayable",
375
+ type: "function",
376
+ },
377
+ ] as const;
378
+
379
+ const _bytecode =
380
+ "0x608060405234801561001057600080fd5b50615def80620000216000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063a103e4c011610071578063a103e4c01461018c578063a609476a146101bc578063acb38169146101ec578063b30fc30d1461021c578063de2927891461024c578063ebb571fd1461026a576100a9565b80632e544aa0146100ae578063690ec3d9146100de5780636c74e7141461010e57806380f937bc1461013e57806392bba3561461016e575b600080fd5b6100c860048036038101906100c39190614bf1565b610286565b6040516100d59190614c3b565b60405180910390f35b6100f860048036038101906100f39190614c8e565b610316565b6040516101059190614cca565b60405180910390f35b61012860048036038101906101239190614d1e565b61036c565b6040516101359190614d80565b60405180910390f35b61015860048036038101906101539190614e7b565b6106ce565b6040516101659190614ecb565b60405180910390f35b610176610822565b6040516101839190614cca565b60405180910390f35b6101a660048036038101906101a19190614ee6565b610838565b6040516101b39190614d80565b60405180910390f35b6101d660048036038101906101d19190614ee6565b610e17565b6040516101e39190614d80565b60405180910390f35b61020660048036038101906102019190614fde565b6113f6565b604051610213919061502a565b60405180910390f35b6102366004803603810190610231919061509d565b6114d4565b6040516102439190614d80565b60405180910390f35b61025461166b565b6040516102619190614d80565b60405180910390f35b610284600480360381019061027f91906151fa565b611681565b005b6000806102968360000151611728565b90506102a58360200151611728565b61ffff168161ffff161480156102ce57506102c38360400151611728565b61ffff168161ffff16145b61030d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610304906152f9565b60405180910390fd5b80915050919050565b600080610322836117c6565b9050600061032f8261187a565b905061033a81611918565b600060016101000a81548160ff021916908315150217905550600060019054906101000a900460ff1692505050919050565b60006103766149e5565b61037e614a2a565b610386614a4b565b61038e614a7a565b610399848888611681565b60006103a4896117c6565b90506103c16103bc82876000015188602001516119bf565b611a59565b6000806101000a81548160ff021916908360ff1602179055506103ed8186604001518760600151611af7565b8460000181815250506104098186600001518760600151611b91565b8460200181815250506104258186604001518760200151611c2c565b846040018181525050600061043985610286565b905060008054906101000a900460ff1660ff168161ffff1614610491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048890615365565b60405180910390fd5b6104a48287608001518860a00151611cc7565b8460000181815250506104c08287600001518860a00151611d61565b8460200181815250506104dc8287608001518860200151611dfc565b8460400181815250506104f88287604001518860a00151611e97565b8460600181815250506105148287608001518860600151611f32565b8460800181815250506000610528856113f6565b90508063ffffffff1660008054906101000a900460ff1660ff1614610582576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610579906153d1565b60405180910390fd5b610595838860c001518960e00151611fcd565b8460000181815250506105b18388600001518960e00151612067565b8460200181815250506105cd838860c001518960200151612102565b8460400181815250506105e98388604001518960e0015161219d565b846060018181525050610605838860c001518960600151612238565b8460800181815250506106218388608001518960e001516122d3565b8460a001818152505061063d838860c001518960a0015161236e565b8460c00181815250506000610651856106ce565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff16146106af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a69061543d565b60405180910390fd5b60008054906101000a900460ff16985050505050505050509392505050565b6000806106de8360000151612409565b90506106ed8360200151612409565b67ffffffffffffffff168167ffffffffffffffff1614801561072e57506107178360400151612409565b67ffffffffffffffff168167ffffffffffffffff16145b801561075957506107428360800151612409565b67ffffffffffffffff168167ffffffffffffffff16145b8015610784575061076d8360600151612409565b67ffffffffffffffff168167ffffffffffffffff16145b80156107af57506107988360c00151612409565b67ffffffffffffffff168167ffffffffffffffff16145b80156107da57506107c38360a00151612409565b67ffffffffffffffff168167ffffffffffffffff16145b610819576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610810906152f9565b60405180910390fd5b80915050919050565b60008060019054906101000a900460ff16905090565b60006108426149e5565b61084a614a2a565b610852614a4b565b61085a614a7a565b610865848888611681565b61087f61087a856000015186602001516124a6565b611a59565b6000806101000a81548160ff021916908360ff1602179055506108aa8460400151856060015161253d565b8360000181815250506108c5846000015185606001516125d4565b8360200181815250506108e08460400151856020015161266c565b83604001818152505060006108f484610286565b905060008054906101000a900460ff1660ff168161ffff161461094c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610943906154a9565b60405180910390fd5b61095e85608001518660a00151612704565b83600001818152505061097985600001518660a0015161279b565b83602001818152505061099485608001518660200151612833565b8360400181815250506109af85604001518660a001516128cb565b8360600181815250506109ca85608001518660600151612963565b83608001818152505060006109de846113f6565b90508063ffffffff1660008054906101000a900460ff1660ff1614610a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2f90615515565b60405180910390fd5b610a4a8660c001518760e001516129fb565b836000018181525050610a6586600001518760e00151612a92565b836020018181525050610a808660c001518760200151612b2a565b836040018181525050610a9b86604001518760e00151612bc2565b836060018181525050610ab68660c001518760600151612c5a565b836080018181525050610ad186608001518760e00151612cf2565b8360a0018181525050610aec8660c001518760a00151612d8a565b8360c00181815250506000610b00846106ce565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff1614610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5590615581565b60405180910390fd5b610b74610b6f8b8960200151612e22565b611a59565b60ff1660008054906101000a900460ff1660ff16148015610bbc5750610ba6610ba188600001518b612ebc565b611a59565b60ff1660008054906101000a900460ff1660ff16145b610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290615613565b60405180910390fd5b610c14610c0f8b60ff168960600151612f56565b611728565b61ffff1660008054906101000a900460ff1660ff16148015610c615750610c4a610c4588604001518b60ff16612ff1565b611728565b61ffff1660008054906101000a900460ff1660ff16145b610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c97906156a5565b60405180910390fd5b610cb9610cb48b60ff168960a0015161308c565b613129565b63ffffffff1660008054906101000a900460ff1660ff16148015610d0a5750610cf1610cec88608001518b60ff166131c7565b613129565b63ffffffff1660008054906101000a900460ff1660ff16145b610d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4090615737565b60405180910390fd5b610d62610d5d8b60ff168960e00151613264565b612409565b67ffffffffffffffff1660008054906101000a900460ff1660ff16148015610dbb5750610d9e610d998860c001518b60ff16613305565b612409565b67ffffffffffffffff1660008054906101000a900460ff1660ff16145b610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df1906157c9565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b6000610e216149e5565b610e29614a2a565b610e31614a4b565b610e39614a7a565b610e44848888611681565b610e5e610e59856000015186602001516133a6565b611a59565b6000806101000a81548160ff021916908360ff160217905550610e898460400151856060015161343d565b836000018181525050610ea4846000015185606001516134d4565b836020018181525050610ebf8460400151856020015161356c565b8360400181815250506000610ed384610286565b905060008054906101000a900460ff1660ff168161ffff1614610f2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2290615835565b60405180910390fd5b610f3d85608001518660a00151613604565b836000018181525050610f5885600001518660a0015161369b565b836020018181525050610f7385608001518660200151613733565b836040018181525050610f8e85604001518660a001516137cb565b836060018181525050610fa985608001518660600151613863565b8360800181815250506000610fbd846113f6565b90508063ffffffff1660008054906101000a900460ff1660ff1614611017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100e906158a1565b60405180910390fd5b6110298660c001518760e001516138fb565b83600001818152505061104486600001518760e00151613992565b83602001818152505061105f8660c001518760200151613a2a565b83604001818152505061107a86604001518760e00151613ac2565b8360600181815250506110958660c001518760600151613b5a565b8360800181815250506110b086608001518760e00151613bf2565b8360a00181815250506110cb8660c001518760a00151613c8a565b8360c001818152505060006110df846106ce565b90508067ffffffffffffffff1660008054906101000a900460ff1660ff161461113d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111349061590d565b60405180910390fd5b61115361114e8b8960200151613d22565b611a59565b60ff1660008054906101000a900460ff1660ff1614801561119b575061118561118088600001518b613dbc565b611a59565b60ff1660008054906101000a900460ff1660ff16145b6111da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d19061599f565b60405180910390fd5b6111f36111ee8b60ff168960600151613e56565b611728565b61ffff1660008054906101000a900460ff1660ff16148015611240575061122961122488604001518b60ff16613ef1565b611728565b61ffff1660008054906101000a900460ff1660ff16145b61127f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127690615a31565b60405180910390fd5b6112986112938b60ff168960a00151613f8c565b613129565b63ffffffff1660008054906101000a900460ff1660ff161480156112e957506112d06112cb88608001518b60ff16614029565b613129565b63ffffffff1660008054906101000a900460ff1660ff16145b611328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131f90615ac3565b60405180910390fd5b61134161133c8b60ff168960e001516140c6565b612409565b67ffffffffffffffff1660008054906101000a900460ff1660ff1614801561139a575061137d6113788860c001518b60ff16614167565b612409565b67ffffffffffffffff1660008054906101000a900460ff1660ff16145b6113d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d090615b55565b60405180910390fd5b60008054906101000a900460ff1697505050505050505092915050565b6000806114068360000151613129565b90506114158360200151613129565b63ffffffff168163ffffffff1614801561144657506114378360400151613129565b63ffffffff168163ffffffff16145b8015611469575061145a8360800151613129565b63ffffffff168163ffffffff16145b801561148c575061147d8360600151613129565b63ffffffff168163ffffffff16145b6114cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c2906152f9565b60405180910390fd5b80915050919050565b6000806114e086614208565b905060006114ed866142a9565b905060006114fa8661434b565b9050600061150d8663ffffffff166143ef565b9050600061151a85614496565b905061152d61152882614534565b611a59565b6000806101000a81548160ff021916908360ff1602179055506000611551856145d2565b9050600061156661156183614670565b611728565b905060006115738661470e565b90506000611588611583836147ac565b613129565b905060006115958761484a565b905060006115aa6115a5836148e7565b612409565b90508461ffff1660008054906101000a900460ff1660ff161480156115e457508263ffffffff1660008054906101000a900460ff1660ff16145b801561160957508067ffffffffffffffff1660008054906101000a900460ff1660ff16145b611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163f90615be7565b60405180910390fd5b60008054906101000a900460ff169b505050505050505050505050949350505050565b60008060009054906101000a900460ff16905090565b61168a82614208565b83600001818152505061169c81614208565b8360200181815250506116b18260ff166142a9565b8360400181815250506116c68160ff166142a9565b8360600181815250506116db8260ff1661434b565b8360800181815250506116f08160ff1661434b565b8360a00181815250506117058260ff166143ef565b8360c001818152505061171a8160ff166143ef565b8360e0018181525050505050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616002600481111561175b5761175a615c07565b5b60f81b846040518363ffffffff1660e01b815260040161177c929190615c80565b6020604051808303816000875af115801561179b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bf9190615cd5565b9050919050565b600080826117d55760006117d8565b60015b60ff169050606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606000600481111561180e5761180d615c07565b5b60f81b836040518363ffffffff1660e01b815260040161182f929190615c80565b6020604051808303816000875af115801561184e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118729190615cd5565b915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff16631d79e49a600060048111156118ad576118ac615c07565b5b60f81b846040518363ffffffff1660e01b81526004016118ce929190615c80565b6020604051808303816000875af11580156118ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119119190615cd5565b9050919050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616000600481111561194c5761194b615c07565b5b60f81b856040518363ffffffff1660e01b815260040161196d929190615c80565b6020604051808303816000875af115801561198c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b09190615cd5565b90506000811415915050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d6119eb6001806000614984565b8686866040518563ffffffff1660e01b8152600401611a0d9493929190615d3d565b6020604051808303816000875af1158015611a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a509190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160016004811115611a8c57611a8b615c07565b5b60f81b846040518363ffffffff1660e01b8152600401611aad929190615c80565b6020604051808303816000875af1158015611acc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af09190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611b236002806000614984565b8686866040518563ffffffff1660e01b8152600401611b459493929190615d3d565b6020604051808303816000875af1158015611b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b889190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611bbe600160026000614984565b8686866040518563ffffffff1660e01b8152600401611be09493929190615d3d565b6020604051808303816000875af1158015611bff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c239190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611c59600260016000614984565b8686866040518563ffffffff1660e01b8152600401611c7b9493929190615d3d565b6020604051808303816000875af1158015611c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbe9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611cf36003806000614984565b8686866040518563ffffffff1660e01b8152600401611d159493929190615d3d565b6020604051808303816000875af1158015611d34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d589190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611d8e600160036000614984565b8686866040518563ffffffff1660e01b8152600401611db09493929190615d3d565b6020604051808303816000875af1158015611dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df39190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611e29600360016000614984565b8686866040518563ffffffff1660e01b8152600401611e4b9493929190615d3d565b6020604051808303816000875af1158015611e6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8e9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611ec4600260036000614984565b8686866040518563ffffffff1660e01b8152600401611ee69493929190615d3d565b6020604051808303816000875af1158015611f05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f299190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611f5f600360026000614984565b8686866040518563ffffffff1660e01b8152600401611f819493929190615d3d565b6020604051808303816000875af1158015611fa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc49190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d611ff96004806000614984565b8686866040518563ffffffff1660e01b815260040161201b9493929190615d3d565b6020604051808303816000875af115801561203a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205e9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d612094600160046000614984565b8686866040518563ffffffff1660e01b81526004016120b69493929190615d3d565b6020604051808303816000875af11580156120d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f99190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d61212f600460016000614984565b8686866040518563ffffffff1660e01b81526004016121519493929190615d3d565b6020604051808303816000875af1158015612170573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121949190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d6121ca600260046000614984565b8686866040518563ffffffff1660e01b81526004016121ec9493929190615d3d565b6020604051808303816000875af115801561220b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222f9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d612265600460026000614984565b8686866040518563ffffffff1660e01b81526004016122879493929190615d3d565b6020604051808303816000875af11580156122a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ca9190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d612300600360046000614984565b8686866040518563ffffffff1660e01b81526004016123229493929190615d3d565b6020604051808303816000875af1158015612341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123659190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff166320cc408d61239b600460036000614984565b8686866040518563ffffffff1660e01b81526004016123bd9493929190615d3d565b6020604051808303816000875af11580156123dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124009190615cd5565b90509392505050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160048081111561243b5761243a615c07565b5b60f81b846040518363ffffffff1660e01b815260040161245c929190615c80565b6020604051808303816000875af115801561247b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249f9190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96124d26001806000614984565b85856040518463ffffffff1660e01b81526004016124f293929190615d82565b6020604051808303816000875af1158015612511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125359190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96125696002806000614984565b85856040518463ffffffff1660e01b815260040161258993929190615d82565b6020604051808303816000875af11580156125a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125cc9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612601600160026000614984565b85856040518463ffffffff1660e01b815260040161262193929190615d82565b6020604051808303816000875af1158015612640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126649190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612699600260016000614984565b85856040518463ffffffff1660e01b81526004016126b993929190615d82565b6020604051808303816000875af11580156126d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126fc9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96127306003806000614984565b85856040518463ffffffff1660e01b815260040161275093929190615d82565b6020604051808303816000875af115801561276f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127939190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96127c8600160036000614984565b85856040518463ffffffff1660e01b81526004016127e893929190615d82565b6020604051808303816000875af1158015612807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282b9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612860600360016000614984565b85856040518463ffffffff1660e01b815260040161288093929190615d82565b6020604051808303816000875af115801561289f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128c39190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96128f8600260036000614984565b85856040518463ffffffff1660e01b815260040161291893929190615d82565b6020604051808303816000875af1158015612937573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295b9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612990600360026000614984565b85856040518463ffffffff1660e01b81526004016129b093929190615d82565b6020604051808303816000875af11580156129cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f39190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612a276004806000614984565b85856040518463ffffffff1660e01b8152600401612a4793929190615d82565b6020604051808303816000875af1158015612a66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8a9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612abf600160046000614984565b85856040518463ffffffff1660e01b8152600401612adf93929190615d82565b6020604051808303816000875af1158015612afe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b229190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612b57600460016000614984565b85856040518463ffffffff1660e01b8152600401612b7793929190615d82565b6020604051808303816000875af1158015612b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bba9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612bef600260046000614984565b85856040518463ffffffff1660e01b8152600401612c0f93929190615d82565b6020604051808303816000875af1158015612c2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c529190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612c87600460026000614984565b85856040518463ffffffff1660e01b8152600401612ca793929190615d82565b6020604051808303816000875af1158015612cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cea9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612d1f600360046000614984565b85856040518463ffffffff1660e01b8152600401612d3f93929190615d82565b6020604051808303816000875af1158015612d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d829190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612db7600460036000614984565b85856040518463ffffffff1660e01b8152600401612dd793929190615d82565b6020604051808303816000875af1158015612df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e1a9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612e4e6001806001614984565b8560ff16856040518463ffffffff1660e01b8152600401612e7193929190615d82565b6020604051808303816000875af1158015612e90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb49190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612ee86001806002614984565b858560ff166040518463ffffffff1660e01b8152600401612f0b93929190615d82565b6020604051808303816000875af1158015612f2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f4e9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b9612f826002806001614984565b8561ffff16856040518463ffffffff1660e01b8152600401612fa693929190615d82565b6020604051808303816000875af1158015612fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe99190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b961301d6001806002614984565b858561ffff166040518463ffffffff1660e01b815260040161304193929190615d82565b6020604051808303816000875af1158015613060573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130849190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96130b86003806001614984565b8563ffffffff16856040518463ffffffff1660e01b81526004016130de93929190615d82565b6020604051808303816000875af11580156130fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131219190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616003600481111561315c5761315b615c07565b5b60f81b846040518363ffffffff1660e01b815260040161317d929190615c80565b6020604051808303816000875af115801561319c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c09190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96131f36003806002614984565b858563ffffffff166040518463ffffffff1660e01b815260040161321993929190615d82565b6020604051808303816000875af1158015613238573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061325c9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96132906004806001614984565b8567ffffffffffffffff16856040518463ffffffff1660e01b81526004016132ba93929190615d82565b6020604051808303816000875af11580156132d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132fd9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff166386e3b7b96133316004806002614984565b858567ffffffffffffffff166040518463ffffffff1660e01b815260040161335b93929190615d82565b6020604051808303816000875af115801561337a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061339e9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56133d26001806000614984565b85856040518463ffffffff1660e01b81526004016133f293929190615d82565b6020604051808303816000875af1158015613411573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134359190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56134696002806000614984565b85856040518463ffffffff1660e01b815260040161348993929190615d82565b6020604051808303816000875af11580156134a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134cc9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613501600160026000614984565b85856040518463ffffffff1660e01b815260040161352193929190615d82565b6020604051808303816000875af1158015613540573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135649190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613599600260016000614984565b85856040518463ffffffff1660e01b81526004016135b993929190615d82565b6020604051808303816000875af11580156135d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135fc9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56136306003806000614984565b85856040518463ffffffff1660e01b815260040161365093929190615d82565b6020604051808303816000875af115801561366f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136939190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56136c8600160036000614984565b85856040518463ffffffff1660e01b81526004016136e893929190615d82565b6020604051808303816000875af1158015613707573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061372b9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613760600360016000614984565b85856040518463ffffffff1660e01b815260040161378093929190615d82565b6020604051808303816000875af115801561379f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137c39190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56137f8600260036000614984565b85856040518463ffffffff1660e01b815260040161381893929190615d82565b6020604051808303816000875af1158015613837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061385b9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613890600360026000614984565b85856040518463ffffffff1660e01b81526004016138b093929190615d82565b6020604051808303816000875af11580156138cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f39190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56139276004806000614984565b85856040518463ffffffff1660e01b815260040161394793929190615d82565b6020604051808303816000875af1158015613966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061398a9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56139bf600160046000614984565b85856040518463ffffffff1660e01b81526004016139df93929190615d82565b6020604051808303816000875af11580156139fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a229190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613a57600460016000614984565b85856040518463ffffffff1660e01b8152600401613a7793929190615d82565b6020604051808303816000875af1158015613a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aba9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613aef600260046000614984565b85856040518463ffffffff1660e01b8152600401613b0f93929190615d82565b6020604051808303816000875af1158015613b2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b529190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613b87600460026000614984565b85856040518463ffffffff1660e01b8152600401613ba793929190615d82565b6020604051808303816000875af1158015613bc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bea9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613c1f600360046000614984565b85856040518463ffffffff1660e01b8152600401613c3f93929190615d82565b6020604051808303816000875af1158015613c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c829190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613cb7600460036000614984565b85856040518463ffffffff1660e01b8152600401613cd793929190615d82565b6020604051808303816000875af1158015613cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d1a9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613d4e6001806001614984565b8560ff16856040518463ffffffff1660e01b8152600401613d7193929190615d82565b6020604051808303816000875af1158015613d90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613db49190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613de86001806002614984565b858560ff166040518463ffffffff1660e01b8152600401613e0b93929190615d82565b6020604051808303816000875af1158015613e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e4e9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613e826002806001614984565b8561ffff16856040518463ffffffff1660e01b8152600401613ea693929190615d82565b6020604051808303816000875af1158015613ec5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee99190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613f1d6001806002614984565b858561ffff166040518463ffffffff1660e01b8152600401613f4193929190615d82565b6020604051808303816000875af1158015613f60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f849190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b5613fb86003806001614984565b8563ffffffff16856040518463ffffffff1660e01b8152600401613fde93929190615d82565b6020604051808303816000875af1158015613ffd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140219190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56140556003806002614984565b858563ffffffff166040518463ffffffff1660e01b815260040161407b93929190615d82565b6020604051808303816000875af115801561409a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140be9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56140f26004806001614984565b8567ffffffffffffffff16856040518463ffffffff1660e01b815260040161411c93929190615d82565b6020604051808303816000875af115801561413b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061415f9190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff16634e9ba4b56141936004806002614984565b858567ffffffffffffffff166040518463ffffffff1660e01b81526004016141bd93929190615d82565b6020604051808303816000875af11580156141dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142009190615cd5565b905092915050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606001600481111561423b5761423a615c07565b5b60f81b8460ff166040518363ffffffff1660e01b815260040161425f929190615c80565b6020604051808303816000875af115801561427e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142a29190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600260048111156142dc576142db615c07565b5b60f81b8461ffff166040518363ffffffff1660e01b8152600401614301929190615c80565b6020604051808303816000875af1158015614320573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143449190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b606003600481111561437e5761437d615c07565b5b60f81b8463ffffffff166040518363ffffffff1660e01b81526004016143a5929190615c80565b6020604051808303816000875af11580156143c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143e89190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060048081111561442157614420615c07565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b815260040161444c929190615c80565b6020604051808303816000875af115801561446b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061448f9190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c02600160048111156144c9576144c8615c07565b5b60f81b846040518363ffffffff1660e01b81526004016144ea929190615c80565b6020604051808303816000875af1158015614509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061452d9190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e56001600481111561456757614566615c07565b5b60f81b846040518363ffffffff1660e01b8152600401614588929190615c80565b6020604051808303816000875af11580156145a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145cb9190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c026002600481111561460557614604615c07565b5b60f81b846040518363ffffffff1660e01b8152600401614626929190615c80565b6020604051808303816000875af1158015614645573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146699190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e5600260048111156146a3576146a2615c07565b5b60f81b846040518363ffffffff1660e01b81526004016146c4929190615c80565b6020604051808303816000875af11580156146e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147079190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c026003600481111561474157614740615c07565b5b60f81b846040518363ffffffff1660e01b8152600401614762929190615c80565b6020604051808303816000875af1158015614781573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147a59190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e5600360048111156147df576147de615c07565b5b60f81b846040518363ffffffff1660e01b8152600401614800929190615c80565b6020604051808303816000875af115801561481f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148439190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663c50c9c0260048081111561487c5761487b615c07565b5b60f81b846040518363ffffffff1660e01b815260040161489d929190615c80565b6020604051808303816000875af11580156148bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148e09190615cd5565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d2c135e560048081111561491957614918615c07565b5b60f81b846040518363ffffffff1660e01b815260040161493a929190615c80565b6020604051808303816000875af1158015614959573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061497d9190615cd5565b9050919050565b600081600281111561499957614998615c07565b5b60ff1660088460048111156149b1576149b0615c07565b5b61ffff16901b61ffff1660108660048111156149d0576149cf615c07565b5b62ffffff16901b171760e81b90509392505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60405180606001604052806000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614b1482614acb565b810181811067ffffffffffffffff82111715614b3357614b32614adc565b5b80604052505050565b6000614b46614ab7565b9050614b528282614b0b565b919050565b6000819050919050565b614b6a81614b57565b8114614b7557600080fd5b50565b600081359050614b8781614b61565b92915050565b600060608284031215614ba357614ba2614ac6565b5b614bad6060614b3c565b90506000614bbd84828501614b78565b6000830152506020614bd184828501614b78565b6020830152506040614be584828501614b78565b60408301525092915050565b600060608284031215614c0757614c06614ac1565b5b6000614c1584828501614b8d565b91505092915050565b600061ffff82169050919050565b614c3581614c1e565b82525050565b6000602082019050614c506000830184614c2c565b92915050565b60008115159050919050565b614c6b81614c56565b8114614c7657600080fd5b50565b600081359050614c8881614c62565b92915050565b600060208284031215614ca457614ca3614ac1565b5b6000614cb284828501614c79565b91505092915050565b614cc481614c56565b82525050565b6000602082019050614cdf6000830184614cbb565b92915050565b600060ff82169050919050565b614cfb81614ce5565b8114614d0657600080fd5b50565b600081359050614d1881614cf2565b92915050565b600080600060608486031215614d3757614d36614ac1565b5b6000614d4586828701614c79565b9350506020614d5686828701614d09565b9250506040614d6786828701614d09565b9150509250925092565b614d7a81614ce5565b82525050565b6000602082019050614d956000830184614d71565b92915050565b614da481614b57565b8114614daf57600080fd5b50565b600081359050614dc181614d9b565b92915050565b600060e08284031215614ddd57614ddc614ac6565b5b614de760e0614b3c565b90506000614df784828501614db2565b6000830152506020614e0b84828501614db2565b6020830152506040614e1f84828501614db2565b6040830152506060614e3384828501614db2565b6060830152506080614e4784828501614db2565b60808301525060a0614e5b84828501614db2565b60a08301525060c0614e6f84828501614db2565b60c08301525092915050565b600060e08284031215614e9157614e90614ac1565b5b6000614e9f84828501614dc7565b91505092915050565b600067ffffffffffffffff82169050919050565b614ec581614ea8565b82525050565b6000602082019050614ee06000830184614ebc565b92915050565b60008060408385031215614efd57614efc614ac1565b5b6000614f0b85828601614d09565b9250506020614f1c85828601614d09565b9150509250929050565b614f2f81614b57565b8114614f3a57600080fd5b50565b600081359050614f4c81614f26565b92915050565b600060a08284031215614f6857614f67614ac6565b5b614f7260a0614b3c565b90506000614f8284828501614f3d565b6000830152506020614f9684828501614f3d565b6020830152506040614faa84828501614f3d565b6040830152506060614fbe84828501614f3d565b6060830152506080614fd284828501614f3d565b60808301525092915050565b600060a08284031215614ff457614ff3614ac1565b5b600061500284828501614f52565b91505092915050565b600063ffffffff82169050919050565b6150248161500b565b82525050565b600060208201905061503f600083018461501b565b92915050565b61504e81614c1e565b811461505957600080fd5b50565b60008135905061506b81615045565b92915050565b61507a8161500b565b811461508557600080fd5b50565b60008135905061509781615071565b92915050565b600080600080608085870312156150b7576150b6614ac1565b5b60006150c587828801614d09565b94505060206150d68782880161505c565b93505060406150e787828801615088565b92505060606150f887828801615088565b91505092959194509250565b61510d81614b57565b811461511857600080fd5b50565b60008135905061512a81615104565b92915050565b6000610100828403121561514757615146614ac6565b5b615152610100614b3c565b905060006151628482850161511b565b60008301525060206151768482850161511b565b602083015250604061518a84828501614b78565b604083015250606061519e84828501614b78565b60608301525060806151b284828501614f3d565b60808301525060a06151c684828501614f3d565b60a08301525060c06151da84828501614db2565b60c08301525060e06151ee84828501614db2565b60e08301525092915050565b6000806000610140848603121561521457615213614ac1565b5b600061522286828701615130565b93505061010061523486828701614d09565b92505061012061524686828701614d09565b9150509250925092565b600082825260208201905092915050565b7f64656372797074416e64436f6d70617265416c6c526573756c74733a2046616960008201527f6c656420746f206465637279707420616e6420636f6d7061726520616c6c207260208201527f6573756c74730000000000000000000000000000000000000000000000000000604082015250565b60006152e3604683615250565b91506152ee82615261565b606082019050919050565b60006020820190508181036000830152615312816152d6565b9050919050565b7f6d7578546573743a2063617374203136206661696c6564000000000000000000600082015250565b600061534f601783615250565b915061535a82615319565b602082019050919050565b6000602082019050818103600083015261537e81615342565b9050919050565b7f6d7578546573743a2063617374203332206661696c6564000000000000000000600082015250565b60006153bb601783615250565b91506153c682615385565b602082019050919050565b600060208201905081810360008301526153ea816153ae565b9050919050565b7f6d7578546573743a2063617374203634206661696c6564000000000000000000600082015250565b6000615427601783615250565b9150615432826153f1565b602082019050919050565b600060208201905081810360008301526154568161541a565b9050919050565b7f72656d546573743a2063617374203136206661696c6564000000000000000000600082015250565b6000615493601783615250565b915061549e8261545d565b602082019050919050565b600060208201905081810360008301526154c281615486565b9050919050565b7f72656d546573743a2063617374203332206661696c6564000000000000000000600082015250565b60006154ff601783615250565b915061550a826154c9565b602082019050919050565b6000602082019050818103600083015261552e816154f2565b9050919050565b7f72656d546573743a2063617374203634206661696c6564000000000000000000600082015250565b600061556b601783615250565b915061557682615535565b602082019050919050565b6000602082019050818103600083015261559a8161555e565b9050919050565b7f72656d546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b60006155fd602783615250565b9150615608826155a1565b604082019050919050565b6000602082019050818103600083015261562c816155f0565b9050919050565b7f72656d546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b600061568f602883615250565b915061569a82615633565b604082019050919050565b600060208201905081810360008301526156be81615682565b9050919050565b7f72656d546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615721602883615250565b915061572c826156c5565b604082019050919050565b6000602082019050818103600083015261575081615714565b9050919050565b7f72656d546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b60006157b3602883615250565b91506157be82615757565b604082019050919050565b600060208201905081810360008301526157e2816157a6565b9050919050565b7f646976546573743a2063617374203136206661696c6564000000000000000000600082015250565b600061581f601783615250565b915061582a826157e9565b602082019050919050565b6000602082019050818103600083015261584e81615812565b9050919050565b7f646976546573743a2063617374203332206661696c6564000000000000000000600082015250565b600061588b601783615250565b915061589682615855565b602082019050919050565b600060208201905081810360008301526158ba8161587e565b9050919050565b7f646976546573743a2063617374203634206661696c6564000000000000000000600082015250565b60006158f7601783615250565b9150615902826158c1565b602082019050919050565b60006020820190508181036000830152615926816158ea565b9050919050565b7f646976546573743a2074657374203820626974732077697468207363616c617260008201527f206661696c656400000000000000000000000000000000000000000000000000602082015250565b6000615989602783615250565b91506159948261592d565b604082019050919050565b600060208201905081810360008301526159b88161597c565b9050919050565b7f646976546573743a207465737420313620626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615a1b602883615250565b9150615a26826159bf565b604082019050919050565b60006020820190508181036000830152615a4a81615a0e565b9050919050565b7f646976546573743a207465737420333220626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615aad602883615250565b9150615ab882615a51565b604082019050919050565b60006020820190508181036000830152615adc81615aa0565b9050919050565b7f646976546573743a207465737420363420626974732077697468207363616c6160008201527f72206661696c6564000000000000000000000000000000000000000000000000602082015250565b6000615b3f602883615250565b9150615b4a82615ae3565b604082019050919050565b60006020820190508181036000830152615b6e81615b32565b9050919050565b7f4661696c656420746f206f6666626f61726420616e64206f6e626f617264206160008201527f6c6c2076616c7565730000000000000000000000000000000000000000000000602082015250565b6000615bd1602983615250565b9150615bdc82615b75565b604082019050919050565b60006020820190508181036000830152615c0081615bc4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b615c6b81615c36565b82525050565b615c7a81614b57565b82525050565b6000604082019050615c956000830185615c62565b615ca26020830184615c71565b9392505050565b615cb281614b57565b8114615cbd57600080fd5b50565b600081519050615ccf81615ca9565b92915050565b600060208284031215615ceb57615cea614ac1565b5b6000615cf984828501615cc0565b91505092915050565b60007fffffff000000000000000000000000000000000000000000000000000000000082169050919050565b615d3781615d02565b82525050565b6000608082019050615d526000830187615d2e565b615d5f6020830186615c71565b615d6c6040830185615c71565b615d796060830184615c71565b95945050505050565b6000606082019050615d976000830186615d2e565b615da46020830185615c71565b615db16040830184615c71565b94935050505056fea2646970667358221220773797954435188e1632a14107ecb9abaed8b67348c3140474ce12406eac818d64736f6c63430008140033";
381
+
382
+ type Miscellaneous2TestsContractConstructorParams =
383
+ | [signer?: Signer]
384
+ | ConstructorParameters<typeof ContractFactory>;
385
+
386
+ const isSuperArgs = (
387
+ xs: Miscellaneous2TestsContractConstructorParams
388
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
389
+
390
+ export class Miscellaneous2TestsContract__factory extends ContractFactory {
391
+ constructor(...args: Miscellaneous2TestsContractConstructorParams) {
392
+ if (isSuperArgs(args)) {
393
+ super(...args);
394
+ } else {
395
+ super(_abi, _bytecode, args[0]);
396
+ }
397
+ }
398
+
399
+ override getDeployTransaction(
400
+ overrides?: NonPayableOverrides & { from?: string }
401
+ ): Promise<ContractDeployTransaction> {
402
+ return super.getDeployTransaction(overrides || {});
403
+ }
404
+ override deploy(overrides?: NonPayableOverrides & { from?: string }) {
405
+ return super.deploy(overrides || {}) as Promise<
406
+ Miscellaneous2TestsContract & {
407
+ deploymentTransaction(): ContractTransactionResponse;
408
+ }
409
+ >;
410
+ }
411
+ override connect(
412
+ runner: ContractRunner | null
413
+ ): Miscellaneous2TestsContract__factory {
414
+ return super.connect(runner) as Miscellaneous2TestsContract__factory;
415
+ }
416
+
417
+ static readonly bytecode = _bytecode;
418
+ static readonly abi = _abi;
419
+ static createInterface(): Miscellaneous2TestsContractInterface {
420
+ return new Interface(_abi) as Miscellaneous2TestsContractInterface;
421
+ }
422
+ static connect(
423
+ address: string,
424
+ runner?: ContractRunner | null
425
+ ): Miscellaneous2TestsContract {
426
+ return new Contract(
427
+ address,
428
+ _abi,
429
+ runner
430
+ ) as unknown as Miscellaneous2TestsContract;
431
+ }
432
+ }