@coti-io/coti-contracts 0.1.0 → 1.0.2

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 (125) hide show
  1. package/.github/workflows/npm-publish.yml +2 -1
  2. package/CONTRIBUTING.md +2 -2
  3. package/LICENSE +1 -1
  4. package/README.md +18 -35
  5. package/contracts/access/DataPrivacyFramework/extensions/DataPrivacyFrameworkMpc.sol +3 -115
  6. package/contracts/mocks/README.md +1 -1
  7. package/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol +257 -280
  8. package/contracts/mocks/utils/mpc/BitwiseTestsContract.sol +93 -187
  9. package/contracts/mocks/utils/mpc/{Comparison1Tests.Contract.sol → Comparison1TestsContract.sol} +67 -115
  10. package/contracts/mocks/utils/mpc/Comparison2TestsContract.sol +76 -116
  11. package/contracts/mocks/utils/mpc/MinMaxTestsContract.sol +69 -164
  12. package/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.sol +103 -56
  13. package/contracts/mocks/utils/mpc/MiscellaneousTestsContract.sol +270 -0
  14. package/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.sol +127 -0
  15. package/contracts/mocks/utils/mpc/README.md +12 -12
  16. package/contracts/mocks/utils/mpc/TransferScalarTestsContract.sol +54 -211
  17. package/contracts/mocks/utils/mpc/TransferTestsContract.sol +165 -640
  18. package/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract.sol +222 -0
  19. package/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract.sol +222 -0
  20. package/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol +223 -0
  21. package/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract.sol +222 -0
  22. package/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract.sol +265 -0
  23. package/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol +281 -0
  24. package/contracts/onboard/AccountOnboard.sol +3 -3
  25. package/contracts/token/PrivateERC20/PrivateERC20.sol +1 -1
  26. package/contracts/token/PrivateERC721/IERC721Errors.sol +57 -0
  27. package/contracts/token/PrivateERC721/PrivateERC721.sol +1 -1
  28. package/contracts/utils/mpc/MpcCore.sol +2835 -988
  29. package/contracts/utils/mpc/MpcInterface.sol +6 -4
  30. package/hardhat.config.ts +17 -6
  31. package/package.json +20 -4
  32. package/test/token/PrivateERC20/PrivateERC20.test.ts +2 -2
  33. package/test/utils/accounts.ts +1 -1
  34. package/test/utils/mpc/Precompile.test.ts +42 -39
  35. package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract.ts +374 -0
  36. package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract.ts +374 -0
  37. package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/index.ts +5 -0
  38. package/typechain-types/contracts/mocks/utils/mpc/ArithmeticTestsContract.ts +96 -10
  39. package/typechain-types/contracts/mocks/utils/mpc/BitwiseTestsContract.ts +45 -5
  40. package/typechain-types/contracts/mocks/utils/mpc/Comparison1TestsContract.ts +374 -0
  41. package/typechain-types/contracts/mocks/utils/mpc/Comparison2TestsContract.ts +45 -5
  42. package/typechain-types/contracts/mocks/utils/mpc/MinMaxTestsContract.ts +25 -5
  43. package/typechain-types/contracts/mocks/utils/mpc/Miscellaneous1TestsContract.ts +62 -0
  44. package/typechain-types/contracts/mocks/utils/mpc/MiscellaneousTestsContract.ts +396 -0
  45. package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract.ts +251 -0
  46. package/typechain-types/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract.ts +11 -8
  47. package/typechain-types/contracts/mocks/utils/mpc/TransferScalarTestsContract.ts +15 -15
  48. package/typechain-types/contracts/mocks/utils/mpc/TransferTestsContract.ts +15 -15
  49. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowance64TestsContract.ts +251 -0
  50. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowanceTestsContract.ts +250 -0
  51. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/index.ts +5 -0
  52. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.ts +389 -0
  53. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract.ts +391 -0
  54. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract.ts +391 -0
  55. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_64TestsContract.ts +391 -0
  56. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_8TestsContract.ts +391 -0
  57. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/index.ts +5 -0
  58. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.ts +391 -0
  59. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract.ts +391 -0
  60. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract.ts +306 -0
  61. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferTestsContract.ts +125 -0
  62. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferWithAllowanceTestsContract.ts +125 -0
  63. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/index.ts +5 -0
  64. package/typechain-types/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.ts +296 -0
  65. package/typechain-types/contracts/mocks/utils/mpc/index.ts +9 -6
  66. package/typechain-types/contracts/onboard/AccountOnboard.ts +9 -4
  67. package/typechain-types/contracts/token/PrivateERC721/IERC721Errors.ts +69 -0
  68. package/typechain-types/contracts/token/PrivateERC721/index.ts +1 -0
  69. package/typechain-types/contracts/utils/mpc/MpcCore.ts +84 -0
  70. package/typechain-types/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations.ts +81 -40
  71. package/typechain-types/contracts/utils/mpc/index.ts +1 -0
  72. package/typechain-types/factories/contracts/mocks/access/DataPrivacyFramework/DataPrivacyFrameworkMock__factory.ts +1 -1
  73. package/typechain-types/factories/contracts/mocks/token/PrivateERC20/PrivateERC20Mock__factory.ts +1 -1
  74. package/typechain-types/factories/contracts/mocks/token/PrivateERC721/PrivateERC721URIStorageMock__factory.ts +1 -1
  75. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/ArithmeticTestsContract__factory.ts +387 -0
  76. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/PrecompilesArythmeticTestsContract__factory.ts +388 -0
  77. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract.sol/index.ts +5 -0
  78. package/typechain-types/factories/contracts/mocks/utils/mpc/ArithmeticTestsContract__factory.ts +92 -7
  79. package/typechain-types/factories/contracts/mocks/utils/mpc/BitwiseTestsContract__factory.ts +38 -2
  80. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1Tests.Contract.sol/Comparison1TestsContract__factory.ts +1 -1
  81. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison1TestsContract__factory.ts +387 -0
  82. package/typechain-types/factories/contracts/mocks/utils/mpc/Comparison2TestsContract__factory.ts +38 -2
  83. package/typechain-types/factories/contracts/mocks/utils/mpc/MinMaxTestsContract__factory.ts +15 -2
  84. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous1TestsContract__factory.ts +66 -1
  85. package/typechain-types/factories/contracts/mocks/utils/mpc/Miscellaneous2TestsContract__factory.ts +1 -1
  86. package/typechain-types/factories/contracts/mocks/utils/mpc/MiscellaneousTestsContract__factory.ts +424 -0
  87. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestContract__factory.ts +285 -0
  88. package/typechain-types/factories/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol/OffboardToUserKeyTestContract__factory.ts +19 -3
  89. package/typechain-types/factories/contracts/mocks/utils/mpc/ShiftTestsContract__factory.ts +1 -1
  90. package/typechain-types/factories/contracts/mocks/utils/mpc/StringTestsContract__factory.ts +1 -1
  91. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferScalarTestsContract__factory.ts +4 -4
  92. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferTestsContract__factory.ts +4 -4
  93. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowance64TestsContract__factory.ts +294 -0
  94. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/TransferWithAllowanceTestsContract__factory.ts +292 -0
  95. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract.sol/index.ts +5 -0
  96. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64TestsContract__factory.ts +720 -0
  97. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_16TestsContract__factory.ts +724 -0
  98. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_32TestsContract__factory.ts +724 -0
  99. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_64TestsContract__factory.ts +724 -0
  100. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/TransferWithAllowance64_8TestsContract__factory.ts +724 -0
  101. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract.sol/index.ts +5 -0
  102. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_64TestsContract__factory.ts +724 -0
  103. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowance64_8TestsContract__factory.ts +724 -0
  104. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceScalarTestsContract__factory.ts +507 -0
  105. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferTestsContract__factory.ts +150 -0
  106. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/TransferWithAllowanceTestsContract__factory.ts +150 -0
  107. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract.sol/index.ts +5 -0
  108. package/typechain-types/factories/contracts/mocks/utils/mpc/TransferWithAllowanceTestsContract__factory.ts +434 -0
  109. package/typechain-types/factories/contracts/mocks/utils/mpc/index.ts +9 -4
  110. package/typechain-types/factories/contracts/mocks/wallet/PrivateERC20Wallet/PrivateERC20WalletMock__factory.ts +1 -1
  111. package/typechain-types/factories/contracts/onboard/AccountOnboard__factory.ts +8 -2
  112. package/typechain-types/factories/contracts/token/PrivateERC721/IERC721Errors__factory.ts +128 -0
  113. package/typechain-types/factories/contracts/token/PrivateERC721/index.ts +1 -0
  114. package/typechain-types/factories/contracts/utils/mpc/MpcCore__factory.ts +77 -0
  115. package/typechain-types/factories/contracts/utils/mpc/MpcInterface.sol/ExtendedOperations__factory.ts +124 -61
  116. package/typechain-types/factories/contracts/utils/mpc/index.ts +1 -0
  117. package/typechain-types/hardhat.d.ts +152 -26
  118. package/typechain-types/index.ts +20 -8
  119. package/contracts/access/DataPrivacyFramework/README.md +0 -68
  120. package/contracts/mocks/utils/mpc/Miscellaneous2TestsContract.sol +0 -448
  121. package/contracts/mocks/utils/mpc/OffboardToUserKeyTestsContract.sol +0 -81
  122. package/contracts/mocks/utils/mpc/ShiftTestsContract.sol +0 -311
  123. package/contracts/token/PrivateERC20/README.md +0 -104
  124. package/contracts/token/PrivateERC721/README.md +0 -282
  125. package/contracts/utils/mpc/README.md +0 -82
@@ -85,7 +85,7 @@ const _abi = [
85
85
  type: "uint8",
86
86
  },
87
87
  ],
88
- name: "computeAndChekTransfer16",
88
+ name: "computeAndCheckTransfer16",
89
89
  outputs: [],
90
90
  stateMutability: "nonpayable",
91
91
  type: "function",
@@ -160,7 +160,7 @@ const _abi = [
160
160
  type: "uint8",
161
161
  },
162
162
  ],
163
- name: "computeAndChekTransfer32",
163
+ name: "computeAndCheckTransfer32",
164
164
  outputs: [],
165
165
  stateMutability: "nonpayable",
166
166
  type: "function",
@@ -235,7 +235,7 @@ const _abi = [
235
235
  type: "uint8",
236
236
  },
237
237
  ],
238
- name: "computeAndChekTransfer64",
238
+ name: "computeAndCheckTransfer64",
239
239
  outputs: [],
240
240
  stateMutability: "nonpayable",
241
241
  type: "function",
@@ -305,7 +305,7 @@ const _abi = [
305
305
  ] as const;
306
306
 
307
307
  const _bytecode =
308
- "0x608060405234801561001057600080fd5b5061261f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063298bd1a31461005c578063451353bb146100785780634717f97c14610094578063de9f7a7d146100b4578063df6d2101146100d0575b600080fd5b61007660048036038101906100719190612250565b610102565b005b610092600480360381019061008d9190612250565b610453565b005b61009c610648565b6040516100ab939291906122ee565b60405180910390f35b6100ce60048036038101906100c99190612250565b610687565b005b6100ea60048036038101906100e59190612325565b610b60565b6040516100f9939291906122ee565b60405180910390f35b600080600061011d88608001518960a001518660ff16610d7d565b92509250925061012c83610e38565b63ffffffff168760ff16148015610153575061014782610e38565b63ffffffff168660ff16145b801561016a575061016381610ed6565b1515851515145b6101a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a0906123fb565b60405180910390fd5b6101bf88600001518960a001518660ff16610f7d565b8093508194508295505050506101d483610e38565b63ffffffff168760ff161480156101fb57506101ef82610e38565b63ffffffff168660ff16145b8015610212575061020b81610ed6565b1515851515145b610251576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610248906123fb565b60405180910390fd5b610267886080015189602001518660ff16611038565b80935081945082955050505061027c83610e38565b63ffffffff168760ff161480156102a3575061029782610e38565b63ffffffff168660ff16145b80156102ba57506102b381610ed6565b1515851515145b6102f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f0906123fb565b60405180910390fd5b61030f88604001518960a001518660ff166110f4565b80935081945082955050505061032483610e38565b63ffffffff168760ff1614801561034b575061033f82610e38565b63ffffffff168660ff16145b8015610362575061035b81610ed6565b1515851515145b6103a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610398906123fb565b60405180910390fd5b6103b7886080015189606001518660ff166111af565b8093508194508295505050506103cc83610e38565b63ffffffff168760ff161480156103f357506103e782610e38565b63ffffffff168660ff16145b801561040a575061040381610ed6565b1515851515145b610449576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610440906123fb565b60405180910390fd5b5050505050505050565b600080600061046e886040015189606001518660ff1661126b565b92509250925061047d83611324565b61ffff168760ff161480156104a0575061049682611324565b61ffff168660ff16145b80156104b757506104b081610ed6565b1515851515145b6104f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ed906123fb565b60405180910390fd5b61050c886000015189606001518660ff166113c2565b80935081945082955050505061052183611324565b61ffff168760ff16148015610544575061053a82611324565b61ffff168660ff16145b801561055b575061055481610ed6565b1515851515145b61059a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610591906123fb565b60405180910390fd5b6105b0886040015189602001518660ff1661147b565b8093508194508295505050506105c583611324565b61ffff168760ff161480156105e857506105de82611324565b61ffff168660ff16145b80156105ff57506105f881610ed6565b1515851515145b61063e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610635906123fb565b60405180910390fd5b5050505050505050565b60008060008060009054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16925092509250909192565b60008060006106a28860c001518960e001518660ff16611535565b9250925092506106b1836115f4565b67ffffffffffffffff168760ff161480156106e057506106d0826115f4565b67ffffffffffffffff168660ff16145b80156106f757506106f081610ed6565b1515851515145b610736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072d906123fb565b60405180910390fd5b61074c88600001518960e001518660ff16611691565b809350819450829550505050610761836115f4565b67ffffffffffffffff168760ff161480156107905750610780826115f4565b67ffffffffffffffff168660ff16145b80156107a757506107a081610ed6565b1515851515145b6107e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dd906123fb565b60405180910390fd5b6107fc8860c0015189602001518660ff16611750565b809350819450829550505050610811836115f4565b67ffffffffffffffff168760ff161480156108405750610830826115f4565b67ffffffffffffffff168660ff16145b8015610857575061085081610ed6565b1515851515145b610896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088d906123fb565b60405180910390fd5b6108ac88604001518960e001518660ff16611810565b8093508194508295505050506108c1836115f4565b67ffffffffffffffff168760ff161480156108f057506108e0826115f4565b67ffffffffffffffff168660ff16145b8015610907575061090081610ed6565b1515851515145b610946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093d906123fb565b60405180910390fd5b61095c8860c0015189606001518660ff166118cf565b809350819450829550505050610971836115f4565b67ffffffffffffffff168760ff161480156109a05750610990826115f4565b67ffffffffffffffff168660ff16145b80156109b757506109b081610ed6565b1515851515145b6109f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ed906123fb565b60405180910390fd5b610a0c88608001518960e001518660ff1661198f565b809350819450829550505050610a21836115f4565b67ffffffffffffffff168760ff16148015610a505750610a40826115f4565b67ffffffffffffffff168660ff16145b8015610a675750610a6081610ed6565b1515851515145b610aa6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9d906123fb565b60405180910390fd5b610abc8860c001518960a001518660ff16611a4e565b809350819450829550505050610ad1836115f4565b67ffffffffffffffff168760ff16148015610b005750610af0826115f4565b67ffffffffffffffff168660ff16145b8015610b175750610b1081610ed6565b1515851515145b610b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4d906123fb565b60405180910390fd5b5050505050505050565b6000806000610b6d611f76565b610b7687611b0e565b816000018181525050610b8886611b0e565b816020018181525050610b9d8760ff16611baf565b816040018181525050610bb28660ff16611baf565b816060018181525050610bc78760ff16611c51565b816080018181525050610bdc8660ff16611c51565b8160a0018181525050610bf18760ff16611cf5565b8160c0018181525050610c068660ff16611cf5565b8160e00181815250506000806000610c27846000015185602001518a611d9c565b925092509250610c3683611e53565b6000806101000a81548160ff021916908360ff160217905550610c5882611e53565b600060016101000a81548160ff021916908360ff160217905550610c7b81610ed6565b600060026101000a81548160ff021916908315150217905550610ccc8460008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff168c610453565b610d048460008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff168c610102565b610d3c8460008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff168c610687565b60008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff169650965096505050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28610db260038060036001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b8152600401610dda9493929190612465565b6060604051808303816000875af1158015610df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1d91906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160036004811115610e6b57610e6a612529565b5b60f81b846040518363ffffffff1660e01b8152600401610e8c929190612593565b6020604051808303816000875af1158015610eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ecf91906125bc565b9050919050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160006004811115610f0a57610f09612529565b5b60f81b856040518363ffffffff1660e01b8152600401610f2b929190612593565b6020604051808303816000875af1158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e91906125bc565b90506000811415915050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28610fb260016003806001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b8152600401610fda9493929190612465565b6060604051808303816000875af1158015610ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101d91906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861106e6003600160036001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b81526004016110969493929190612465565b6060604051808303816000875af11580156110b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d991906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861112960026003806001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b81526004016111519493929190612465565b6060604051808303816000875af1158015611170573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119491906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286111e56003600260036001611ef1565b8b8b8b63ffffffff166040518563ffffffff1660e01b815260040161120d9493929190612465565b6060604051808303816000875af115801561122c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061125091906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286112a060028060026001611ef1565b8b8b8b61ffff166040518563ffffffff1660e01b81526004016112c69493929190612465565b6060604051808303816000875af11580156112e5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130991906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616002600481111561135757611356612529565b5b60f81b846040518363ffffffff1660e01b8152600401611378929190612593565b6020604051808303816000875af1158015611397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bb91906125bc565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286113f760016002806001611ef1565b8b8b8b61ffff166040518563ffffffff1660e01b815260040161141d9493929190612465565b6060604051808303816000875af115801561143c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146091906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286114b16002600160026001611ef1565b8b8b8b61ffff166040518563ffffffff1660e01b81526004016114d79493929190612465565b6060604051808303816000875af11580156114f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061151a91906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861156a60048060046001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016115969493929190612465565b6060604051808303816000875af11580156115b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d991906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160048081111561162657611625612529565b5b60f81b846040518363ffffffff1660e01b8152600401611647929190612593565b6020604051808303816000875af1158015611666573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168a91906125bc565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286116c660016004806001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016116f29493929190612465565b6060604051808303816000875af1158015611711573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173591906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286117866004600160046001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016117b29493929190612465565b6060604051808303816000875af11580156117d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117f591906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861184560026004806001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016118719493929190612465565b6060604051808303816000875af1158015611890573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b491906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286119056004600260046001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016119319493929190612465565b6060604051808303816000875af1158015611950573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197491906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286119c460036004806001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b81526004016119f09493929190612465565b6060604051808303816000875af1158015611a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3391906124d6565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28611a846004600360046001611ef1565b8b8b8b67ffffffffffffffff166040518563ffffffff1660e01b8152600401611ab09493929190612465565b6060604051808303816000875af1158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af391906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060016004811115611b4157611b40612529565b5b60f81b8460ff166040518363ffffffff1660e01b8152600401611b65929190612593565b6020604051808303816000875af1158015611b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba891906125bc565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060026004811115611be257611be1612529565b5b60f81b8461ffff166040518363ffffffff1660e01b8152600401611c07929190612593565b6020604051808303816000875af1158015611c26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4a91906125bc565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060036004811115611c8457611c83612529565b5b60f81b8463ffffffff166040518363ffffffff1660e01b8152600401611cab929190612593565b6020604051808303816000875af1158015611cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cee91906125bc565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600480811115611d2757611d26612529565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b8152600401611d52929190612593565b6020604051808303816000875af1158015611d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9591906125bc565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28611dd0600180600180611ef1565b8b8b8b60ff166040518563ffffffff1660e01b8152600401611df59493929190612465565b6060604051808303816000875af1158015611e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3891906124d6565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160016004811115611e8657611e85612529565b5b60f81b846040518363ffffffff1660e01b8152600401611ea7929190612593565b6020604051808303816000875af1158015611ec6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eea91906125bc565b9050919050565b6000816002811115611f0657611f05612529565b5b60ff166008846004811115611f1e57611f1d612529565b5b61ffff16901b61ffff166010866004811115611f3d57611f3c612529565b5b62ffffff16901b62ffffff166018886004811115611f5e57611f5d612529565b5b63ffffffff16901b17171760e01b9050949350505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61201882611fcf565b810181811067ffffffffffffffff8211171561203757612036611fe0565b5b80604052505050565b600061204a611fbb565b9050612056828261200f565b919050565b6000819050919050565b61206e8161205b565b811461207957600080fd5b50565b60008135905061208b81612065565b92915050565b61209a8161205b565b81146120a557600080fd5b50565b6000813590506120b781612091565b92915050565b6120c68161205b565b81146120d157600080fd5b50565b6000813590506120e3816120bd565b92915050565b6120f28161205b565b81146120fd57600080fd5b50565b60008135905061210f816120e9565b92915050565b6000610100828403121561212c5761212b611fca565b5b612137610100612040565b905060006121478482850161207c565b600083015250602061215b8482850161207c565b602083015250604061216f848285016120a8565b6040830152506060612183848285016120a8565b6060830152506080612197848285016120d4565b60808301525060a06121ab848285016120d4565b60a08301525060c06121bf84828501612100565b60c08301525060e06121d384828501612100565b60e08301525092915050565b600060ff82169050919050565b6121f5816121df565b811461220057600080fd5b50565b600081359050612212816121ec565b92915050565b60008115159050919050565b61222d81612218565b811461223857600080fd5b50565b60008135905061224a81612224565b92915050565b6000806000806000610180868803121561226d5761226c611fc5565b5b600061227b88828901612115565b95505061010061228d88828901612203565b94505061012061229f88828901612203565b9350506101406122b18882890161223b565b9250506101606122c388828901612203565b9150509295509295909350565b6122d9816121df565b82525050565b6122e881612218565b82525050565b600060608201905061230360008301866122d0565b61231060208301856122d0565b61231d60408301846122df565b949350505050565b60008060006060848603121561233e5761233d611fc5565b5b600061234c86828701612203565b935050602061235d86828701612203565b925050604061236e86828701612203565b9150509250925092565b600082825260208201905092915050565b7f7472616e73666572546573743a20636865636b207363616c6172206661696c6560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006123e5602183612378565b91506123f082612389565b604082019050919050565b60006020820190508181036000830152612414816123d8565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6124508161241b565b82525050565b61245f8161205b565b82525050565b600060808201905061247a6000830187612447565b6124876020830186612456565b6124946040830185612456565b6124a16060830184612456565b95945050505050565b6124b38161205b565b81146124be57600080fd5b50565b6000815190506124d0816124aa565b92915050565b6000806000606084860312156124ef576124ee611fc5565b5b60006124fd868287016124c1565b935050602061250e868287016124c1565b925050604061251f868287016124c1565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61258d81612558565b82525050565b60006040820190506125a86000830185612584565b6125b56020830184612456565b9392505050565b6000602082840312156125d2576125d1611fc5565b5b60006125e0848285016124c1565b9150509291505056fea2646970667358221220f9b3efaf3a5651e81e8b9aa383288344f2b71dbb24e5644f9f308bf3c74de0b464736f6c63430008140033";
308
+ "0x608060405234801561001057600080fd5b506116ae806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c806352fdcece1161005057806352fdcece146100c1578063df6d2101146100d4578063ea8fe3d5146100e757600080fd5b806319902cb11461006c5780634717f97c14610081575b600080fd5b61007f61007a3660046114b2565b6100fa565b005b60005460ff80821691610100810482169162010000909104165b6040805160ff948516815293909216602084015215159082015260600160405180910390f35b61007f6100cf3660046114b2565b61065b565b61009b6100e23660046115bf565b610823565b61007f6100f53660046114b2565b610a40565b60008060006101158860c001518960e001518660ff16610d88565b92509250925061012483610e51565b67ffffffffffffffff168760ff16148015610153575061014382610e51565b67ffffffffffffffff168660ff16145b801561016a575061016381610ef4565b1515851515145b6101c55760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084015b60405180910390fd5b6101db88600001518960e001518660ff16610f85565b919450925090506101eb83610e51565b67ffffffffffffffff168760ff1614801561021a575061020a82610e51565b67ffffffffffffffff168660ff16145b8015610231575061022a81610ef4565b1515851515145b6102875760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b61029d8860c0015189602001518660ff16610fa1565b919450925090506102ad83610e51565b67ffffffffffffffff168760ff161480156102dc57506102cc82610e51565b67ffffffffffffffff168660ff16145b80156102f357506102ec81610ef4565b1515851515145b6103495760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b61035f88604001518960e001518660ff16610fbd565b9194509250905061036f83610e51565b67ffffffffffffffff168760ff1614801561039e575061038e82610e51565b67ffffffffffffffff168660ff16145b80156103b557506103ae81610ef4565b1515851515145b61040b5760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b6104218860c0015189606001518660ff16610fda565b9194509250905061043183610e51565b67ffffffffffffffff168760ff16148015610460575061045082610e51565b67ffffffffffffffff168660ff16145b8015610477575061047081610ef4565b1515851515145b6104cd5760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b6104e388608001518960e001518660ff16610ff7565b919450925090506104f383610e51565b67ffffffffffffffff168760ff16148015610522575061051282610e51565b67ffffffffffffffff168660ff16145b8015610539575061053281610ef4565b1515851515145b61058f5760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b6105a58860c001518960a001518660ff16611014565b919450925090506105b583610e51565b67ffffffffffffffff168760ff161480156105e457506105d482610e51565b67ffffffffffffffff168660ff16145b80156105fb57506105f481610ef4565b1515851515145b6106515760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b5050505050505050565b6000806000610676886040015189606001518660ff16611031565b925092509250610685836110a3565b61ffff168760ff161480156106a8575061069e826110a3565b61ffff168660ff16145b80156106bf57506106b881610ef4565b1515851515145b6107155760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b61072b886000015189606001518660ff166110b3565b9194509250905061073b836110a3565b61ffff168760ff1614801561075e5750610754826110a3565b61ffff168660ff16145b8015610775575061076e81610ef4565b1515851515145b6107cb5760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b6107e1886040015189602001518660ff166110cf565b919450925090506107f1836110a3565b61ffff168760ff161480156105e4575061080a826110a3565b61ffff168660ff161480156105fb57506105f481610ef4565b600080600061087060405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610879876110eb565b8152610884866110eb565b602082015261089560ff8816611154565b60408201526108a660ff8716611154565b60608201526108b760ff88166111be565b60808201526108c860ff87166111be565b60a08201526108d960ff881661122a565b60c08201526108ea60ff871661122a565b60e08201528051602082015160009182918291610907918a61129a565b9250925092506109168361130a565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff929092169190911790556109518261130a565b600060016101000a81548160ff021916908360ff16021790555061097481610ef4565b60008054911515620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff84168117928390556109cf93889360ff928316918316919091179261010082048316929104168c61065b565b6000546109f490859060ff80821691610100810482169162010000909104168c610a40565b600054610a1990859060ff80821691610100810482169162010000909104168c6100fa565b505060005460ff8082169a610100830482169a506201000090920416975095505050505050565b6000806000610a5b88608001518960a001518660ff1661131a565b925092509250610a6a8361138e565b63ffffffff168760ff16148015610a915750610a858261138e565b63ffffffff168660ff16145b8015610aa85750610aa181610ef4565b1515851515145b610afe5760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b610b1488600001518960a001518660ff1661139e565b91945092509050610b248361138e565b63ffffffff168760ff16148015610b4b5750610b3f8261138e565b63ffffffff168660ff16145b8015610b625750610b5b81610ef4565b1515851515145b610bb85760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b610bce886080015189602001518660ff166113ba565b91945092509050610bde8361138e565b63ffffffff168760ff16148015610c055750610bf98261138e565b63ffffffff168660ff16145b8015610c1c5750610c1581610ef4565b1515851515145b610c725760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b610c8888604001518960a001518660ff166113d6565b91945092509050610c988361138e565b63ffffffff168760ff16148015610cbf5750610cb38261138e565b63ffffffff168660ff16145b8015610cd65750610ccf81610ef4565b1515851515145b610d2c5760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572546573743a20636865636b207363616c6172206661696c656044820152601960fa1b60648201526084016101bc565b610d42886080015189606001518660ff166113f3565b91945092509050610d528361138e565b63ffffffff168760ff161480156105e45750610d6d8261138e565b63ffffffff168660ff161480156105fb57506105f481610ef4565b6000808080808060646356c72d28610da460048080600161140c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b905267ffffffffffffffff8a1660648201526084015b6060604051808303816000875af1158015610e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3f9190611602565b919b909a509098509650505050505050565b60006064630cfed56160045b60f81b846040518363ffffffff1660e01b8152600401610eab9291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af1158015610eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eee919061165f565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015610f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7c919061165f565b15159392505050565b6000808080808060646356c72d28610da460016004808261140c565b6000808080808060646356c72d28610da460046001818161140c565b6000808080808060646356c72d28610da46002600480600161140c565b6000808080808060646356c72d28610da46004600281600161140c565b6000808080808060646356c72d28610da46003600480600161140c565b6000808080808060646356c72d28610da46004600381600161140c565b6000808080808060646356c72d2861104d60028080600161140c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b905261ffff8a166064820152608401610dfc565b60006064630cfed5616002610e5d565b6000808080808060646356c72d2861104d60016002808261140c565b6000808080808060646356c72d2861104d60026001818161140c565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b6090604401610eab565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b6090604401610eab565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b6090604401610eab565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b6090604401610eab565b6000808080808060646356c72d286112b5600180808061140c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b905260ff8a166064820152608401610dfc565b60006064630cfed5616001610e5d565b6000808080808060646356c72d2861133660038080600161140c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b905263ffffffff8a166064820152608401610dfc565b60006064630cfed5616003610e5d565b6000808080808060646356c72d2861133660016003808261140c565b6000808080808060646356c72d2861133660036001818161140c565b6000808080808060646356c72d286113366002600380600161140c565b6000808080808060646356c72d28611336600360028160015b600081600281111561142057611420611630565b60ff16600884600481111561143757611437611630565b61ffff16901b61ffff16601086600481111561145557611455611630565b62ffffff16901b62ffffff16601888600481111561147557611475611630565b63ffffffff16901b17171760e01b95945050505050565b803560ff8116811461149d57600080fd5b919050565b8035801515811461149d57600080fd5b60008060008060008587036101808112156114cc57600080fd5b610100808212156114dc57600080fd5b604051915080820182811067ffffffffffffffff82111715611527577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b8060405250873582526020880135602083015260408801356040830152606088013560608301526080880135608083015260a088013560a083015260c088013560c083015260e088013560e083015281965061158481890161148c565b95505050611595610120870161148c565b92506115a461014087016114a2565b91506115b3610160870161148c565b90509295509295909350565b6000806000606084860312156115d457600080fd5b6115dd8461148c565b92506115eb6020850161148c565b91506115f96040850161148c565b90509250925092565b60008060006060848603121561161757600080fd5b8351925060208401519150604084015190509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561167157600080fd5b505191905056fea26469706673582212203c71c613d51099985ee627a32b3fb635871c0be16da2b948aa1d85d039aeaedd64736f6c63430008130033";
309
309
 
310
310
  type TransferScalarTestsContractConstructorParams =
311
311
  | [signer?: Signer]
@@ -112,7 +112,7 @@ const _abi = [
112
112
  type: "bool",
113
113
  },
114
114
  ],
115
- name: "computeAndChekTransfer16",
115
+ name: "computeAndCheckTransfer16",
116
116
  outputs: [],
117
117
  stateMutability: "nonpayable",
118
118
  type: "function",
@@ -214,7 +214,7 @@ const _abi = [
214
214
  type: "bool",
215
215
  },
216
216
  ],
217
- name: "computeAndChekTransfer32",
217
+ name: "computeAndCheckTransfer32",
218
218
  outputs: [],
219
219
  stateMutability: "nonpayable",
220
220
  type: "function",
@@ -316,7 +316,7 @@ const _abi = [
316
316
  type: "bool",
317
317
  },
318
318
  ],
319
- name: "computeAndChekTransfer64",
319
+ name: "computeAndCheckTransfer64",
320
320
  outputs: [],
321
321
  stateMutability: "nonpayable",
322
322
  type: "function",
@@ -386,7 +386,7 @@ const _abi = [
386
386
  ] as const;
387
387
 
388
388
  const _bytecode =
389
- "0x608060405234801561001057600080fd5b5061573580620000216000396000f3fe608060405234801561001057600080fd5b50600436106100565760003560e01c80629839f51461005b5780634717f97c146100775780637012513114610097578063a7bb5454146100c9578063b83071d7146100e5575b600080fd5b61007560048036038101906100709190615248565b610101565b005b61007f610af1565b60405161008e939291906152e6565b60405180910390f35b6100b160048036038101906100ac919061531d565b610b30565b6040516100c0939291906152e6565b60405180910390f35b6100e360048036038101906100de9190615248565b610dbd565b005b6100ff60048036038101906100fa9190615248565b612122565b005b600080600061011d88608001518960a001518960400151612509565b92509250925061012c836125be565b63ffffffff168660ff161480156101535750610147826125be565b63ffffffff168560ff16145b801561016a57506101638161265c565b1515841515145b6101a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a0906153cd565b60405180910390fd5b6101c088600001518960a001518960400151612703565b8093508194508295505050506101d5836125be565b63ffffffff168660ff161480156101fc57506101f0826125be565b63ffffffff168560ff16145b8015610213575061020c8161265c565b1515841515145b610252576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610249906153cd565b60405180910390fd5b6102698860800151896020015189604001516127b8565b80935081945082955050505061027e836125be565b63ffffffff168660ff161480156102a55750610299826125be565b63ffffffff168560ff16145b80156102bc57506102b58161265c565b1515841515145b6102fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f2906153cd565b60405180910390fd5b61031288604001518960a00151896040015161286e565b809350819450829550505050610327836125be565b63ffffffff168660ff1614801561034e5750610342826125be565b63ffffffff168560ff16145b8015610365575061035e8161265c565b1515841515145b6103a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039b906153cd565b60405180910390fd5b6103bb886080015189606001518960400151612923565b8093508194508295505050506103d0836125be565b63ffffffff168660ff161480156103f757506103eb826125be565b63ffffffff168560ff16145b801561040e57506104078161265c565b1515841515145b61044d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610444906153cd565b60405180910390fd5b61046488608001518960a0015189600001516129d9565b809350819450829550505050610479836125be565b63ffffffff168660ff161480156104a05750610494826125be565b63ffffffff168560ff16145b80156104b757506104b08161265c565b1515841515145b6104f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ed906153cd565b60405180910390fd5b61050d88600001518960a001518960000151612a8e565b809350819450829550505050610522836125be565b63ffffffff168660ff16148015610549575061053d826125be565b63ffffffff168560ff16145b801561056057506105598161265c565b1515841515145b61059f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610596906153cd565b60405180910390fd5b6105b6886080015189602001518960000151612b44565b8093508194508295505050506105cb836125be565b63ffffffff168660ff161480156105f257506105e6826125be565b63ffffffff168560ff16145b801561060957506106028161265c565b1515841515145b610648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063f906153cd565b60405180910390fd5b61065f88604001518960a001518960000151612bf9565b809350819450829550505050610674836125be565b63ffffffff168660ff1614801561069b575061068f826125be565b63ffffffff168560ff16145b80156106b257506106ab8161265c565b1515841515145b6106f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e8906153cd565b60405180910390fd5b610708886080015189606001518960000151612caf565b80935081945082955050505061071d836125be565b63ffffffff168660ff161480156107445750610738826125be565b63ffffffff168560ff16145b801561075b57506107548161265c565b1515841515145b61079a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610791906153cd565b60405180910390fd5b6107b188608001518960a001518960200151612d65565b8093508194508295505050506107c6836125be565b63ffffffff168660ff161480156107ed57506107e1826125be565b63ffffffff168560ff16145b801561080457506107fd8161265c565b1515841515145b610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083a906153cd565b60405180910390fd5b61085a88600001518960a001518960200151612e1a565b80935081945082955050505061086f836125be565b63ffffffff168660ff16148015610896575061088a826125be565b63ffffffff168560ff16145b80156108ad57506108a68161265c565b1515841515145b6108ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e3906153cd565b60405180910390fd5b610903886080015189602001518960200151612ed0565b809350819450829550505050610918836125be565b63ffffffff168660ff1614801561093f5750610933826125be565b63ffffffff168560ff16145b8015610956575061094f8161265c565b1515841515145b610995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098c906153cd565b60405180910390fd5b6109ac88604001518960a001518960200151612f86565b8093508194508295505050506109c1836125be565b63ffffffff168660ff161480156109e857506109dc826125be565b63ffffffff168560ff16145b80156109ff57506109f88161265c565b1515841515145b610a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a35906153cd565b60405180910390fd5b610a5588608001518960600151896020015161303c565b809350819450829550505050610a6a836125be565b63ffffffff168660ff16148015610a915750610a85826125be565b63ffffffff168560ff16145b8015610aa85750610aa18161265c565b1515841515145b610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906153cd565b60405180910390fd5b5050505050505050565b60008060008060009054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16925092509250909192565b6000806000610b3d614eb0565b610b45614ef5565b610b4e886130f1565b826000018181525050610b60876130f1565b826020018181525050610b758860ff16613192565b826040018181525050610b8a8760ff16613192565b826060018181525050610b9f8860ff16613234565b826080018181525050610bb48760ff16613234565b8260a0018181525050610bc98860ff166132d8565b8260c0018181525050610bde8760ff166132d8565b8260e0018181525050610bf0866130f1565b816000018181525050610c058660ff16613192565b816020018181525050610c1a8660ff16613234565b816040018181525050610c2f8660ff166132d8565b81606001818152505085816080019060ff16908160ff16815250506000806000610c6685600001518660200151866000015161337f565b925092509250610c7583613434565b6000806101000a81548160ff021916908360ff160217905550610c9782613434565b600060016101000a81548160ff021916908360ff160217905550610cba8161265c565b600060026101000a81548160ff021916908315150217905550610d0b858560008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16612122565b610d43858560008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16610101565b610d7b858560008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16610dbd565b60008054906101000a900460ff16600060019054906101000a900460ff16600060029054906101000a900460ff16975097509750505050505093509350939050565b6000806000610dd98860c001518960e0015189606001516134d2565b925092509250610de883613587565b67ffffffffffffffff168660ff16148015610e175750610e0782613587565b67ffffffffffffffff168560ff16145b8015610e2e5750610e278161265c565b1515841515145b610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6490615439565b60405180910390fd5b610e8488600001518960e001518960600151613624565b809350819450829550505050610e9983613587565b67ffffffffffffffff168660ff16148015610ec85750610eb882613587565b67ffffffffffffffff168560ff16145b8015610edf5750610ed88161265c565b1515841515145b610f1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1590615439565b60405180910390fd5b610f358860c00151896020015189606001516136d9565b809350819450829550505050610f4a83613587565b67ffffffffffffffff168660ff16148015610f795750610f6982613587565b67ffffffffffffffff168560ff16145b8015610f905750610f898161265c565b1515841515145b610fcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc690615439565b60405180910390fd5b610fe688604001518960e00151896060015161378f565b809350819450829550505050610ffb83613587565b67ffffffffffffffff168660ff1614801561102a575061101a82613587565b67ffffffffffffffff168560ff16145b8015611041575061103a8161265c565b1515841515145b611080576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107790615439565b60405180910390fd5b6110978860c0015189606001518960600151613844565b8093508194508295505050506110ac83613587565b67ffffffffffffffff168660ff161480156110db57506110cb82613587565b67ffffffffffffffff168560ff16145b80156110f257506110eb8161265c565b1515841515145b611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890615439565b60405180910390fd5b61114888608001518960e0015189606001516138fa565b80935081945082955050505061115d83613587565b67ffffffffffffffff168660ff1614801561118c575061117c82613587565b67ffffffffffffffff168560ff16145b80156111a3575061119c8161265c565b1515841515145b6111e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d990615439565b60405180910390fd5b6111f98860c001518960a0015189606001516139af565b80935081945082955050505061120e83613587565b67ffffffffffffffff168660ff1614801561123d575061122d82613587565b67ffffffffffffffff168560ff16145b8015611254575061124d8161265c565b1515841515145b611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a90615439565b60405180910390fd5b6112aa8860c001518960e001518960400151613a65565b8093508194508295505050506112bf83613587565b67ffffffffffffffff168660ff161480156112ee57506112de82613587565b67ffffffffffffffff168560ff16145b801561130557506112fe8161265c565b1515841515145b611344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133b906153cd565b60405180910390fd5b61135b88600001518960e001518960400151613b1a565b80935081945082955050505061137083613587565b67ffffffffffffffff168660ff1614801561139f575061138f82613587565b67ffffffffffffffff168560ff16145b80156113b657506113af8161265c565b1515841515145b6113f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ec906153cd565b60405180910390fd5b61140c8860c0015189602001518960400151613bd0565b80935081945082955050505061142183613587565b67ffffffffffffffff168660ff16148015611450575061144082613587565b67ffffffffffffffff168560ff16145b801561146757506114608161265c565b1515841515145b6114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d906153cd565b60405180910390fd5b6114bd88604001518960e001518960400151613c86565b8093508194508295505050506114d283613587565b67ffffffffffffffff168660ff1614801561150157506114f182613587565b67ffffffffffffffff168560ff16145b801561151857506115118161265c565b1515841515145b611557576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154e906153cd565b60405180910390fd5b61156e8860c0015189606001518960400151613d3c565b80935081945082955050505061158383613587565b67ffffffffffffffff168660ff161480156115b257506115a282613587565b67ffffffffffffffff168560ff16145b80156115c957506115c28161265c565b1515841515145b611608576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ff906153cd565b60405180910390fd5b61161f88608001518960e001518960400151613df2565b80935081945082955050505061163483613587565b67ffffffffffffffff168660ff16148015611663575061165382613587565b67ffffffffffffffff168560ff16145b801561167a57506116738161265c565b1515841515145b6116b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b0906153cd565b60405180910390fd5b6116d08860c001518960a001518960400151613ea8565b8093508194508295505050506116e583613587565b67ffffffffffffffff168660ff16148015611714575061170482613587565b67ffffffffffffffff168560ff16145b801561172b57506117248161265c565b1515841515145b61176a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611761906153cd565b60405180910390fd5b6117818860c001518960e001518960000151613f5d565b80935081945082955050505061179683613587565b67ffffffffffffffff168660ff161480156117c557506117b582613587565b67ffffffffffffffff168560ff16145b80156117dc57506117d58161265c565b1515841515145b61181b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611812906154a5565b60405180910390fd5b61183288600001518960e001518960000151614012565b80935081945082955050505061184783613587565b67ffffffffffffffff168660ff16148015611876575061186682613587565b67ffffffffffffffff168560ff16145b801561188d57506118868161265c565b1515841515145b6118cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c3906154a5565b60405180910390fd5b6118e38860c00151896020015189600001516140c8565b8093508194508295505050506118f883613587565b67ffffffffffffffff168660ff16148015611927575061191782613587565b67ffffffffffffffff168560ff16145b801561193e57506119378161265c565b1515841515145b61197d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611974906154a5565b60405180910390fd5b61199488604001518960e00151896000015161417d565b8093508194508295505050506119a983613587565b67ffffffffffffffff168660ff161480156119d857506119c882613587565b67ffffffffffffffff168560ff16145b80156119ef57506119e88161265c565b1515841515145b611a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a25906154a5565b60405180910390fd5b611a458860c0015189606001518960000151614233565b809350819450829550505050611a5a83613587565b67ffffffffffffffff168660ff16148015611a895750611a7982613587565b67ffffffffffffffff168560ff16145b8015611aa05750611a998161265c565b1515841515145b611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad6906154a5565b60405180910390fd5b611af688608001518960e0015189600001516142e9565b809350819450829550505050611b0b83613587565b67ffffffffffffffff168660ff16148015611b3a5750611b2a82613587565b67ffffffffffffffff168560ff16145b8015611b515750611b4a8161265c565b1515841515145b611b90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b87906154a5565b60405180910390fd5b611ba78860c001518960a00151896000015161439f565b809350819450829550505050611bbc83613587565b67ffffffffffffffff168660ff16148015611beb5750611bdb82613587565b67ffffffffffffffff168560ff16145b8015611c025750611bfb8161265c565b1515841515145b611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c38906154a5565b60405180910390fd5b611c588860c001518960e001518960200151614455565b809350819450829550505050611c6d83613587565b67ffffffffffffffff168660ff16148015611c9c5750611c8c82613587565b67ffffffffffffffff168560ff16145b8015611cb35750611cac8161265c565b1515841515145b611cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce990615511565b60405180910390fd5b611d0988600001518960e00151896020015161450a565b809350819450829550505050611d1e83613587565b67ffffffffffffffff168660ff16148015611d4d5750611d3d82613587565b67ffffffffffffffff168560ff16145b8015611d645750611d5d8161265c565b1515841515145b611da3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9a90615511565b60405180910390fd5b611dba8860c00151896020015189602001516145c0565b809350819450829550505050611dcf83613587565b67ffffffffffffffff168660ff16148015611dfe5750611dee82613587565b67ffffffffffffffff168560ff16145b8015611e155750611e0e8161265c565b1515841515145b611e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4b90615511565b60405180910390fd5b611e6b88604001518960e001518960200151614676565b809350819450829550505050611e8083613587565b67ffffffffffffffff168660ff16148015611eaf5750611e9f82613587565b67ffffffffffffffff168560ff16145b8015611ec65750611ebf8161265c565b1515841515145b611f05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efc90615511565b60405180910390fd5b611f1c8860c001518960600151896020015161472c565b809350819450829550505050611f3183613587565b67ffffffffffffffff168660ff16148015611f605750611f5082613587565b67ffffffffffffffff168560ff16145b8015611f775750611f708161265c565b1515841515145b611fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fad90615511565b60405180910390fd5b611fcd88608001518960e0015189602001516147e1565b809350819450829550505050611fe283613587565b67ffffffffffffffff168660ff16148015612011575061200182613587565b67ffffffffffffffff168560ff16145b801561202857506120218161265c565b1515841515145b612067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205e90615511565b60405180910390fd5b61207e8860c001518960a001518960200151614897565b80935081945082955050505061209383613587565b67ffffffffffffffff168660ff161480156120c257506120b282613587565b67ffffffffffffffff168560ff16145b80156120d957506120d28161265c565b1515841515145b612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f90615511565b60405180910390fd5b5050505050505050565b600080600061213e88604001518960600151896000015161494d565b92509250925061214d83614a02565b61ffff168660ff16148015612170575061216682614a02565b61ffff168560ff16145b801561218757506121808161265c565b1515841515145b6121c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bd90615511565b60405180910390fd5b6121dd886000015189606001518960000151614aa0565b8093508194508295505050506121f283614a02565b61ffff168660ff16148015612215575061220b82614a02565b61ffff168560ff16145b801561222c57506122258161265c565b1515841515145b61226b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226290615511565b60405180910390fd5b612282886040015189602001518960000151614b56565b80935081945082955050505061229783614a02565b61ffff168660ff161480156122ba57506122b082614a02565b61ffff168560ff16145b80156122d157506122ca8161265c565b1515841515145b612310576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230790615511565b60405180910390fd5b612327886040015189606001518960200151614c0b565b80935081945082955050505061233c83614a02565b61ffff168660ff1614801561235f575061235582614a02565b61ffff168560ff16145b8015612376575061236f8161265c565b1515841515145b6123b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ac90615511565b60405180910390fd5b6123cc886000015189606001518960200151614cc0565b8093508194508295505050506123e183614a02565b61ffff168660ff1614801561240457506123fa82614a02565b61ffff168560ff16145b801561241b57506124148161265c565b1515841515145b61245a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245190615511565b60405180910390fd5b612471886040015189602001518960200151614d75565b80935081945082955050505061248683614a02565b61ffff168660ff161480156124a9575061249f82614a02565b61ffff168560ff16145b80156124c057506124b98161265c565b1515841515145b6124ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124f690615511565b60405180910390fd5b5050505050505050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861253e60038060036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612560949392919061557b565b6060604051808303816000875af115801561257f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125a391906155ec565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600360048111156125f1576125f061563f565b5b60f81b846040518363ffffffff1660e01b81526004016126129291906156a9565b6020604051808303816000875af1158015612631573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265591906156d2565b9050919050565b600080606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600060048111156126905761268f61563f565b5b60f81b856040518363ffffffff1660e01b81526004016126b19291906156a9565b6020604051808303816000875af11580156126d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f491906156d2565b90506000811415915050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861273860016003806000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161275a949392919061557b565b6060604051808303816000875af1158015612779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279d91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286127ee6003600160036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612810949392919061557b565b6060604051808303816000875af115801561282f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061285391906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286128a360026003806000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016128c5949392919061557b565b6060604051808303816000875af11580156128e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290891906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286129596003600260036000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161297b949392919061557b565b6060604051808303816000875af115801561299a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129be91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612a0e60038060016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612a30949392919061557b565b6060604051808303816000875af1158015612a4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7391906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612ac46001600360016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612ae6949392919061557b565b6060604051808303816000875af1158015612b05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2991906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612b7960036001806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612b9b949392919061557b565b6060604051808303816000875af1158015612bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bde91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612c2f6002600360016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612c51949392919061557b565b6060604051808303816000875af1158015612c70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9491906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612ce56003600260016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612d07949392919061557b565b6060604051808303816000875af1158015612d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d4a91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612d9a60038060026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612dbc949392919061557b565b6060604051808303816000875af1158015612ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dff91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612e506001600360026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612e72949392919061557b565b6060604051808303816000875af1158015612e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eb591906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612f066003600160026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612f28949392919061557b565b6060604051808303816000875af1158015612f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f6b91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28612fbc6002600360026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401612fde949392919061557b565b6060604051808303816000875af1158015612ffd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061302191906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861307160036002806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613093949392919061557b565b6060604051808303816000875af11580156130b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130d691906155ec565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600160048111156131245761312361563f565b5b60f81b8460ff166040518363ffffffff1660e01b81526004016131489291906156a9565b6020604051808303816000875af1158015613167573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061318b91906156d2565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600260048111156131c5576131c461563f565b5b60f81b8461ffff166040518363ffffffff1660e01b81526004016131ea9291906156a9565b6020604051808303816000875af1158015613209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061322d91906156d2565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b60600360048111156132675761326661563f565b5b60f81b8463ffffffff166040518363ffffffff1660e01b815260040161328e9291906156a9565b6020604051808303816000875af11580156132ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d191906156d2565b9050919050565b6000606473ffffffffffffffffffffffffffffffffffffffff1663d9b60b6060048081111561330a5761330961563f565b5b60f81b8467ffffffffffffffff166040518363ffffffff1660e01b81526004016133359291906156a9565b6020604051808303816000875af1158015613354573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061337891906156d2565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286133b460018060016000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016133d6949392919061557b565b6060604051808303816000875af11580156133f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061341991906155ec565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed561600160048111156134675761346661563f565b5b60f81b846040518363ffffffff1660e01b81526004016134889291906156a9565b6020604051808303816000875af11580156134a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134cb91906156d2565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861350760048060046000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613529949392919061557b565b6060604051808303816000875af1158015613548573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061356c91906155ec565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed5616004808111156135b9576135b861563f565b5b60f81b846040518363ffffffff1660e01b81526004016135da9291906156a9565b6020604051808303816000875af11580156135f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061361d91906156d2565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861365960016004806000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161367b949392919061557b565b6060604051808303816000875af115801561369a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136be91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861370f6004600160046000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613731949392919061557b565b6060604051808303816000875af1158015613750573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061377491906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286137c460026004806000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016137e6949392919061557b565b6060604051808303816000875af1158015613805573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382991906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861387a6004600260046000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161389c949392919061557b565b6060604051808303816000875af11580156138bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138df91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861392f60036004806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613951949392919061557b565b6060604051808303816000875af1158015613970573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399491906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286139e56004600360046000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613a07949392919061557b565b6060604051808303816000875af1158015613a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a4a91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613a9a60048060036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613abc949392919061557b565b6060604051808303816000875af1158015613adb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aff91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613b506001600460036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613b72949392919061557b565b6060604051808303816000875af1158015613b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bb591906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613c066004600160036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613c28949392919061557b565b6060604051808303816000875af1158015613c47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c6b91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613cbc6002600460036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613cde949392919061557b565b6060604051808303816000875af1158015613cfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d2191906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613d726004600260036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613d94949392919061557b565b6060604051808303816000875af1158015613db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dd791906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613e286003600460036000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613e4a949392919061557b565b6060604051808303816000875af1158015613e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e8d91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613edd60046003806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613eff949392919061557b565b6060604051808303816000875af1158015613f1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f4291906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28613f9260048060016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401613fb4949392919061557b565b6060604051808303816000875af1158015613fd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ff791906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286140486001600460016000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161406a949392919061557b565b6060604051808303816000875af1158015614089573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140ad91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286140fd60046001806000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161411f949392919061557b565b6060604051808303816000875af115801561413e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416291906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286141b36002600460016000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016141d5949392919061557b565b6060604051808303816000875af11580156141f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061421891906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286142696004600260016000614e2b565b8b8b8b6040518563ffffffff1660e01b815260040161428b949392919061557b565b6060604051808303816000875af11580156142aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142ce91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861431f6003600460016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614341949392919061557b565b6060604051808303816000875af1158015614360573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061438491906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286143d56004600360016000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016143f7949392919061557b565b6060604051808303816000875af1158015614416573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061443a91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861448a60048060026000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016144ac949392919061557b565b6060604051808303816000875af11580156144cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144ef91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286145406001600460026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614562949392919061557b565b6060604051808303816000875af1158015614581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145a591906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286145f66004600160026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614618949392919061557b565b6060604051808303816000875af1158015614637573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061465b91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286146ac6002600460026000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016146ce949392919061557b565b6060604051808303816000875af11580156146ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061471191906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861476160046002806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614783949392919061557b565b6060604051808303816000875af11580156147a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147c691906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286148176003600460026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614839949392919061557b565b6060604051808303816000875af1158015614858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061487c91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d286148cd6004600360026000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016148ef949392919061557b565b6060604051808303816000875af115801561490e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061493291906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d2861498260028060016000614e2b565b8b8b8b6040518563ffffffff1660e01b81526004016149a4949392919061557b565b6060604051808303816000875af11580156149c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149e791906155ec565b92509250925082828295509550955050505093509350939050565b6000606473ffffffffffffffffffffffffffffffffffffffff16630cfed56160026004811115614a3557614a3461563f565b5b60f81b846040518363ffffffff1660e01b8152600401614a569291906156a9565b6020604051808303816000875af1158015614a75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a9991906156d2565b9050919050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614ad66001600260016000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614af8949392919061557b565b6060604051808303816000875af1158015614b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b3b91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614b8b60026001806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614bad949392919061557b565b6060604051808303816000875af1158015614bcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bf091906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614c4060028060026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614c62949392919061557b565b6060604051808303816000875af1158015614c81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ca591906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614cf560016002806000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614d17949392919061557b565b6060604051808303816000875af1158015614d36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d5a91906155ec565b92509250925082828295509550955050505093509350939050565b600080600080600080606473ffffffffffffffffffffffffffffffffffffffff166356c72d28614dab6002600160026000614e2b565b8b8b8b6040518563ffffffff1660e01b8152600401614dcd949392919061557b565b6060604051808303816000875af1158015614dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e1091906155ec565b92509250925082828295509550955050505093509350939050565b6000816002811115614e4057614e3f61563f565b5b60ff166008846004811115614e5857614e5761563f565b5b61ffff16901b61ffff166010866004811115614e7757614e7661563f565b5b62ffffff16901b62ffffff166018886004811115614e9857614e9761563f565b5b63ffffffff16901b17171760e01b9050949350505050565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b6000604051905090565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614f8482614f3b565b810181811067ffffffffffffffff82111715614fa357614fa2614f4c565b5b80604052505050565b6000614fb6614f27565b9050614fc28282614f7b565b919050565b6000819050919050565b614fda81614fc7565b8114614fe557600080fd5b50565b600081359050614ff781614fd1565b92915050565b61500681614fc7565b811461501157600080fd5b50565b60008135905061502381614ffd565b92915050565b61503281614fc7565b811461503d57600080fd5b50565b60008135905061504f81615029565b92915050565b61505e81614fc7565b811461506957600080fd5b50565b60008135905061507b81615055565b92915050565b6000610100828403121561509857615097614f36565b5b6150a3610100614fac565b905060006150b384828501614fe8565b60008301525060206150c784828501614fe8565b60208301525060406150db84828501615014565b60408301525060606150ef84828501615014565b606083015250608061510384828501615040565b60808301525060a061511784828501615040565b60a08301525060c061512b8482850161506c565b60c08301525060e061513f8482850161506c565b60e08301525092915050565b600060ff82169050919050565b6151618161514b565b811461516c57600080fd5b50565b60008135905061517e81615158565b92915050565b600060a0828403121561519a57615199614f36565b5b6151a460a0614fac565b905060006151b484828501614fe8565b60008301525060206151c884828501615014565b60208301525060406151dc84828501615040565b60408301525060606151f08482850161506c565b60608301525060806152048482850161516f565b60808301525092915050565b60008115159050919050565b61522581615210565b811461523057600080fd5b50565b6000813590506152428161521c565b92915050565b6000806000806000610200868803121561526557615264614f31565b5b600061527388828901615081565b95505061010061528588828901615184565b9450506101a06152978882890161516f565b9350506101c06152a98882890161516f565b9250506101e06152bb88828901615233565b9150509295509295909350565b6152d18161514b565b82525050565b6152e081615210565b82525050565b60006060820190506152fb60008301866152c8565b61530860208301856152c8565b61531560408301846152d7565b949350505050565b60008060006060848603121561533657615335614f31565b5b60006153448682870161516f565b93505060206153558682870161516f565b92505060406153668682870161516f565b9150509250925092565b600082825260208201905092915050565b7f7472616e73666572546573743a2063617374203332206661696c656400000000600082015250565b60006153b7601c83615370565b91506153c282615381565b602082019050919050565b600060208201905081810360008301526153e6816153aa565b9050919050565b7f7472616e73666572546573743a2063617374203634206661696c656400000000600082015250565b6000615423601c83615370565b915061542e826153ed565b602082019050919050565b6000602082019050818103600083015261545281615416565b9050919050565b7f7472616e73666572546573743a20636173742038206661696c65640000000000600082015250565b600061548f601b83615370565b915061549a82615459565b602082019050919050565b600060208201905081810360008301526154be81615482565b9050919050565b7f7472616e73666572546573743a2063617374203136206661696c656400000000600082015250565b60006154fb601c83615370565b9150615506826154c5565b602082019050919050565b6000602082019050818103600083015261552a816154ee565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61556681615531565b82525050565b61557581614fc7565b82525050565b6000608082019050615590600083018761555d565b61559d602083018661556c565b6155aa604083018561556c565b6155b7606083018461556c565b95945050505050565b6155c981614fc7565b81146155d457600080fd5b50565b6000815190506155e6816155c0565b92915050565b60008060006060848603121561560557615604614f31565b5b6000615613868287016155d7565b9350506020615624868287016155d7565b9250506040615635868287016155d7565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6156a38161566e565b82525050565b60006040820190506156be600083018561569a565b6156cb602083018461556c565b9392505050565b6000602082840312156156e8576156e7614f31565b5b60006156f6848285016155d7565b9150509291505056fea26469706673582212201efe314b3f951e90a274c03bfc894408e4c4d4a3ac22382db0e9a08643fe01fa64736f6c63430008140033";
389
+ "0x608060405234801561001057600080fd5b50613331806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063701251311161005057806370125131146100c1578063d7b0fe63146100d4578063f6029cb3146100e757600080fd5b80634717f97c1461006c5780636a3ae654146100ac575b600080fd5b60005460ff80821691610100810482169162010000909104165b6040805160ff948516815293909216602084015215159082015260600160405180910390f35b6100bf6100ba36600461317a565b6100fa565b005b6100866100cf366004613242565b610b69565b6100bf6100e236600461317a565b610e0a565b6100bf6100f536600461317a565b6112c6565b600080600061011688608001518960a0015189604001516126af565b9250925092506101258361276d565b63ffffffff168660ff1614801561014c57506101408261276d565b63ffffffff168560ff16145b8015610163575061015c81612810565b1515841515145b6101b45760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064015b60405180910390fd5b6101cb88600001518960a0015189604001516128a1565b919450925090506101db8361276d565b63ffffffff168660ff1614801561020257506101f68261276d565b63ffffffff168560ff16145b8015610219575061021281612810565b1515841515145b6102655760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61027c8860800151896020015189604001516128bd565b9194509250905061028c8361276d565b63ffffffff168660ff161480156102b357506102a78261276d565b63ffffffff168560ff16145b80156102ca57506102c381612810565b1515841515145b6103165760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61032d88604001518960a0015189604001516128d9565b9194509250905061033d8361276d565b63ffffffff168660ff1614801561036457506103588261276d565b63ffffffff168560ff16145b801561037b575061037481612810565b1515841515145b6103c75760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6103de8860800151896060015189604001516128f5565b919450925090506103ee8361276d565b63ffffffff168660ff1614801561041557506104098261276d565b63ffffffff168560ff16145b801561042c575061042581612810565b1515841515145b6104785760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61048f88608001518960a001518960000151612911565b9194509250905061049f8361276d565b63ffffffff168660ff161480156104c657506104ba8261276d565b63ffffffff168560ff16145b80156104dd57506104d681612810565b1515841515145b6105295760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b875160a0890151885161053d92919061292d565b9194509250905061054d8361276d565b63ffffffff168660ff1614801561057457506105688261276d565b63ffffffff168560ff16145b801561058b575061058481612810565b1515841515145b6105d75760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6105ee886080015189602001518960000151612949565b919450925090506105fe8361276d565b63ffffffff168660ff1614801561062557506106198261276d565b63ffffffff168560ff16145b801561063c575061063581612810565b1515841515145b6106885760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61069f88604001518960a001518960000151612965565b919450925090506106af8361276d565b63ffffffff168660ff161480156106d657506106ca8261276d565b63ffffffff168560ff16145b80156106ed57506106e681612810565b1515841515145b6107395760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610750886080015189606001518960000151612982565b919450925090506107608361276d565b63ffffffff168660ff16148015610787575061077b8261276d565b63ffffffff168560ff16145b801561079e575061079781612810565b1515841515145b6107ea5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b61080188608001518960a00151896020015161299f565b919450925090506108118361276d565b63ffffffff168660ff16148015610838575061082c8261276d565b63ffffffff168560ff16145b801561084f575061084881612810565b1515841515145b61089b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6108b288600001518960a0015189602001516129bb565b919450925090506108c28361276d565b63ffffffff168660ff161480156108e957506108dd8261276d565b63ffffffff168560ff16145b801561090057506108f981612810565b1515841515145b61094c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6109638860800151896020015189602001516129d8565b919450925090506109738361276d565b63ffffffff168660ff1614801561099a575061098e8261276d565b63ffffffff168560ff16145b80156109b157506109aa81612810565b1515841515145b6109fd5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610a1488604001518960a0015189602001516129f5565b91945092509050610a248361276d565b63ffffffff168660ff16148015610a4b5750610a3f8261276d565b63ffffffff168560ff16145b8015610a625750610a5b81612810565b1515841515145b610aae5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b610ac5886080015189606001518960200151612a11565b91945092509050610ad58361276d565b63ffffffff168660ff16148015610afc5750610af08261276d565b63ffffffff168560ff16145b8015610b135750610b0c81612810565b1515841515145b610b5f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b5050505050505050565b6000806000610bb660405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610beb6040518060a0016040528060008152602001600081526020016000815260200160008152602001600060ff1681525090565b610bf488612a2d565b8252610bff87612a2d565b6020830152610c1060ff8916612a96565b6040830152610c2160ff8816612a96565b6060830152610c3260ff8916612b00565b6080830152610c4360ff8816612b00565b60a0830152610c5460ff8916612b6c565b60c0830152610c6560ff8816612b6c565b60e0830152610c7386612a2d565b8152610c8160ff8716612a96565b6020820152610c9260ff8716612b00565b6040820152610ca360ff8716612b6c565b606082015260ff8616608082015281516020830151825160009283928392610ccc929190612bdc565b925092509250610cdb83612bf7565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff92909216919091179055610d1682612bf7565b600060016101000a81548160ff021916908360ff160217905550610d3981612810565b60008054911515620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff8416811792839055610d96938993899360ff9384169284169290921792610100820481169290910416610e0a565b600054610dbc908690869060ff80821691610100810482169162010000909104166100fa565b600054610de2908690869060ff80821691610100810482169162010000909104166112c6565b505060005460ff8082169b610100830482169b50620100009092041698509650505050505050565b6000806000610e26886040015189606001518960000151612c07565b925092509250610e3583612c23565b61ffff168660ff16148015610e585750610e4e82612c23565b61ffff168560ff16145b8015610e6f5750610e6881612810565b1515841515145b610ebb5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b875160608901518851610ecf929190612c33565b91945092509050610edf83612c23565b61ffff168660ff16148015610f025750610ef882612c23565b61ffff168560ff16145b8015610f195750610f1281612810565b1515841515145b610f655760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b610f7c886040015189602001518960000151612c4f565b91945092509050610f8c83612c23565b61ffff168660ff16148015610faf5750610fa582612c23565b61ffff168560ff16145b8015610fc65750610fbf81612810565b1515841515145b6110125760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611029886040015189606001518960200151612c6b565b9194509250905061103983612c23565b61ffff168660ff1614801561105c575061105282612c23565b61ffff168560ff16145b8015611073575061106c81612810565b1515841515145b6110bf5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6110d6886000015189606001518960200151612c86565b919450925090506110e683612c23565b61ffff168660ff1614801561110957506110ff82612c23565b61ffff168560ff16145b8015611120575061111981612810565b1515841515145b61116c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611183886040015189602001518960200151612ca2565b9194509250905061119383612c23565b61ffff168660ff161480156111b657506111ac82612c23565b61ffff168560ff16145b80156111cd57506111c681612810565b1515841515145b6112195760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b611230886040015189606001518960000151612c07565b9194509250905061124083612c23565b61ffff168660ff16148015611263575061125982612c23565b61ffff168560ff16145b801561127a575061127381612810565b1515841515145b610b5f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b60008060006112e28860c001518960e001518960600151612cbe565b9250925092506112f183612cd9565b67ffffffffffffffff168660ff16148015611320575061131082612cd9565b67ffffffffffffffff168560ff16145b8015611337575061133081612810565b1515841515145b6113835760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61139a88600001518960e001518960600151612ce9565b919450925090506113aa83612cd9565b67ffffffffffffffff168660ff161480156113d957506113c982612cd9565b67ffffffffffffffff168560ff16145b80156113f057506113e981612810565b1515841515145b61143c5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6114538860c0015189602001518960600151612d05565b9194509250905061146383612cd9565b67ffffffffffffffff168660ff16148015611492575061148282612cd9565b67ffffffffffffffff168560ff16145b80156114a957506114a281612810565b1515841515145b6114f55760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61150c88604001518960e001518960600151612d21565b9194509250905061151c83612cd9565b67ffffffffffffffff168660ff1614801561154b575061153b82612cd9565b67ffffffffffffffff168560ff16145b8015611562575061155b81612810565b1515841515145b6115ae5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6115c58860c0015189606001518960600151612d3d565b919450925090506115d583612cd9565b67ffffffffffffffff168660ff1614801561160457506115f482612cd9565b67ffffffffffffffff168560ff16145b801561161b575061161481612810565b1515841515145b6116675760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b61167e88608001518960e001518960600151612d59565b9194509250905061168e83612cd9565b67ffffffffffffffff168660ff161480156116bd57506116ad82612cd9565b67ffffffffffffffff168560ff16145b80156116d457506116cd81612810565b1515841515145b6117205760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6117378860c001518960a001518960600151612d75565b9194509250905061174783612cd9565b67ffffffffffffffff168660ff16148015611776575061176682612cd9565b67ffffffffffffffff168560ff16145b801561178d575061178681612810565b1515841515145b6117d95760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203634206661696c65640000000060448201526064016101ab565b6117f08860c001518960e001518960400151612d91565b9194509250905061180083612cd9565b67ffffffffffffffff168660ff1614801561182f575061181f82612cd9565b67ffffffffffffffff168560ff16145b8015611846575061183f81612810565b1515841515145b6118925760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6118a988600001518960e001518960400151612dad565b919450925090506118b983612cd9565b67ffffffffffffffff168660ff161480156118e857506118d882612cd9565b67ffffffffffffffff168560ff16145b80156118ff57506118f881612810565b1515841515145b61194b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b6119628860c0015189602001518960400151612dca565b9194509250905061197283612cd9565b67ffffffffffffffff168660ff161480156119a1575061199182612cd9565b67ffffffffffffffff168560ff16145b80156119b857506119b181612810565b1515841515145b611a045760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611a1b88604001518960e001518960400151612de7565b91945092509050611a2b83612cd9565b67ffffffffffffffff168660ff16148015611a5a5750611a4a82612cd9565b67ffffffffffffffff168560ff16145b8015611a715750611a6a81612810565b1515841515145b611abd5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611ad48860c0015189606001518960400151612e04565b91945092509050611ae483612cd9565b67ffffffffffffffff168660ff16148015611b135750611b0382612cd9565b67ffffffffffffffff168560ff16145b8015611b2a5750611b2381612810565b1515841515145b611b765760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611b8d88608001518960e001518960400151612e21565b91945092509050611b9d83612cd9565b67ffffffffffffffff168660ff16148015611bcc5750611bbc82612cd9565b67ffffffffffffffff168560ff16145b8015611be35750611bdc81612810565b1515841515145b611c2f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611c468860c001518960a001518960400151612e3d565b91945092509050611c5683612cd9565b67ffffffffffffffff168660ff16148015611c855750611c7582612cd9565b67ffffffffffffffff168560ff16145b8015611c9c5750611c9581612810565b1515841515145b611ce85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203332206661696c65640000000060448201526064016101ab565b611cff8860c001518960e001518960000151612e59565b91945092509050611d0f83612cd9565b67ffffffffffffffff168660ff16148015611d3e5750611d2e82612cd9565b67ffffffffffffffff168560ff16145b8015611d555750611d4e81612810565b1515841515145b611da15760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b875160e08901518851611db5929190612e75565b91945092509050611dc583612cd9565b67ffffffffffffffff168660ff16148015611df45750611de482612cd9565b67ffffffffffffffff168560ff16145b8015611e0b5750611e0481612810565b1515841515145b611e575760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611e6e8860c0015189602001518960000151612e91565b91945092509050611e7e83612cd9565b67ffffffffffffffff168660ff16148015611ead5750611e9d82612cd9565b67ffffffffffffffff168560ff16145b8015611ec45750611ebd81612810565b1515841515145b611f105760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611f2788604001518960e001518960000151612ead565b91945092509050611f3783612cd9565b67ffffffffffffffff168660ff16148015611f665750611f5682612cd9565b67ffffffffffffffff168560ff16145b8015611f7d5750611f7681612810565b1515841515145b611fc95760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b611fe08860c0015189606001518960000151612eca565b91945092509050611ff083612cd9565b67ffffffffffffffff168660ff1614801561201f575061200f82612cd9565b67ffffffffffffffff168560ff16145b8015612036575061202f81612810565b1515841515145b6120825760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b61209988608001518960e001518960000151612ee7565b919450925090506120a983612cd9565b67ffffffffffffffff168660ff161480156120d857506120c882612cd9565b67ffffffffffffffff168560ff16145b80156120ef57506120e881612810565b1515841515145b61213b5760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b6121528860c001518960a001518960000151612f04565b9194509250905061216283612cd9565b67ffffffffffffffff168660ff16148015612191575061218182612cd9565b67ffffffffffffffff168560ff16145b80156121a857506121a181612810565b1515841515145b6121f45760405162461bcd60e51b815260206004820152601b60248201527f7472616e73666572546573743a20636173742038206661696c6564000000000060448201526064016101ab565b61220b8860c001518960e001518960200151612f21565b9194509250905061221b83612cd9565b67ffffffffffffffff168660ff1614801561224a575061223a82612cd9565b67ffffffffffffffff168560ff16145b8015612261575061225a81612810565b1515841515145b6122ad5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6122c488600001518960e001518960200151612f3d565b919450925090506122d483612cd9565b67ffffffffffffffff168660ff1614801561230357506122f382612cd9565b67ffffffffffffffff168560ff16145b801561231a575061231381612810565b1515841515145b6123665760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b61237d8860c0015189602001518960200151612f5a565b9194509250905061238d83612cd9565b67ffffffffffffffff168660ff161480156123bc57506123ac82612cd9565b67ffffffffffffffff168560ff16145b80156123d357506123cc81612810565b1515841515145b61241f5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b61243688604001518960e001518960200151612f77565b9194509250905061244683612cd9565b67ffffffffffffffff168660ff16148015612475575061246582612cd9565b67ffffffffffffffff168560ff16145b801561248c575061248581612810565b1515841515145b6124d85760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6124ef8860c0015189606001518960200151612f93565b919450925090506124ff83612cd9565b67ffffffffffffffff168660ff1614801561252e575061251e82612cd9565b67ffffffffffffffff168560ff16145b8015612545575061253e81612810565b1515841515145b6125915760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6125a888608001518960e001518960200151612faf565b919450925090506125b883612cd9565b67ffffffffffffffff168660ff161480156125e757506125d782612cd9565b67ffffffffffffffff168560ff16145b80156125fe57506125f781612810565b1515841515145b61264a5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572546573743a2063617374203136206661696c65640000000060448201526064016101ab565b6126618860c001518960a001518960200151612fcc565b9194509250905061267183612cd9565b67ffffffffffffffff168660ff16148015611263575061269082612cd9565b67ffffffffffffffff168560ff1614801561127a575061127381612810565b6000808080808060646356c72d286126ca6003808086612fe5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b81168252919091166004820152602481018c9052604481018b9052606481018a90526084016060604051808303816000875af1158015612737573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275b9190613285565b919b909a509098509650505050505050565b60006064630cfed56160035b60f81b846040518363ffffffff1660e01b81526004016127c79291907fff00000000000000000000000000000000000000000000000000000000000000929092168252602082015260400190565b6020604051808303816000875af11580156127e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061280a91906132e2565b92915050565b6040517f0cfed56100000000000000000000000000000000000000000000000000000000815260006004820181905260248201839052908190606490630cfed561906044016020604051808303816000875af1158015612874573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061289891906132e2565b15159392505050565b6000808080808060646356c72d286126ca600160038086612fe5565b6000808080808060646356c72d286126ca600360018186612fe5565b6000808080808060646356c72d286126ca600260038086612fe5565b6000808080808060646356c72d286126ca600360028186612fe5565b6000808080808060646356c72d286126ca600380600186612fe5565b6000808080808060646356c72d286126ca600160038186612fe5565b6000808080808060646356c72d286126ca600360018086612fe5565b6000808080808060646356c72d286126ca60026003600186612fe5565b6000808080808060646356c72d286126ca60036002600186612fe5565b6000808080808060646356c72d286126ca600380600286612fe5565b6000808080808060646356c72d286126ca60016003600286612fe5565b6000808080808060646356c72d286126ca60036001600286612fe5565b6000808080808060646356c72d286126ca600260038186612fe5565b6000808080808060646356c72d286126ca600360028086612fe5565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0100000000000000000000000000000000000000000000000000000000000000600482015260ff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0200000000000000000000000000000000000000000000000000000000000000600482015261ffff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0300000000000000000000000000000000000000000000000000000000000000600482015263ffffffff8216602482015260009060649063d9b60b60906044016127c7565b6040517fd9b60b600000000000000000000000000000000000000000000000000000000081527f0400000000000000000000000000000000000000000000000000000000000000600482015267ffffffffffffffff8216602482015260009060649063d9b60b60906044016127c7565b6000808080808060646356c72d286126ca6001808086612fe5565b60006064630cfed5616001612779565b6000808080808060646356c72d286126ca600280600186612fe5565b60006064630cfed5616002612779565b6000808080808060646356c72d286126ca600160028186612fe5565b6000808080808060646356c72d286126ca600260018086612fe5565b6000808080808060646356c72d286126ca6002808086612fe5565b6000808080808060646356c72d286126ca600160028086612fe5565b6000808080808060646356c72d286126ca600260018186612fe5565b6000808080808060646356c72d286126ca6004808086612fe5565b60006064630cfed5616004612779565b6000808080808060646356c72d286126ca600160048086612fe5565b6000808080808060646356c72d286126ca600460018186612fe5565b6000808080808060646356c72d286126ca600260048086612fe5565b6000808080808060646356c72d286126ca600460028186612fe5565b6000808080808060646356c72d286126ca600360048086612fe5565b6000808080808060646356c72d286126ca600460038186612fe5565b6000808080808060646356c72d286126ca600480600386612fe5565b6000808080808060646356c72d286126ca60016004600386612fe5565b6000808080808060646356c72d286126ca60046001600386612fe5565b6000808080808060646356c72d286126ca60026004600386612fe5565b6000808080808060646356c72d286126ca60046002600386612fe5565b6000808080808060646356c72d286126ca600360048186612fe5565b6000808080808060646356c72d286126ca600460038086612fe5565b6000808080808060646356c72d286126ca600480600186612fe5565b6000808080808060646356c72d286126ca600160048186612fe5565b6000808080808060646356c72d286126ca600460018086612fe5565b6000808080808060646356c72d286126ca60026004600186612fe5565b6000808080808060646356c72d286126ca60046002600186612fe5565b6000808080808060646356c72d286126ca60036004600186612fe5565b6000808080808060646356c72d286126ca60046003600186612fe5565b6000808080808060646356c72d286126ca600480600286612fe5565b6000808080808060646356c72d286126ca60016004600286612fe5565b6000808080808060646356c72d286126ca60046001600286612fe5565b6000808080808060646356c72d286126ca600260048186612fe5565b6000808080808060646356c72d286126ca600460028086612fe5565b6000808080808060646356c72d286126ca60036004600286612fe5565b6000808080808060646356c72d286126ca600460036002865b6000816002811115612ff957612ff96132b3565b60ff166008846004811115613010576130106132b3565b61ffff16901b61ffff16601086600481111561302e5761302e6132b3565b62ffffff16901b62ffffff16601888600481111561304e5761304e6132b3565b63ffffffff16901b17171760e01b95945050505050565b604051610100810167ffffffffffffffff811182821017156130b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405290565b803560ff811681146130c757600080fd5b919050565b600060a082840312156130de57600080fd5b60405160a0810181811067ffffffffffffffff82111715613128577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b80604052508091508235815260208301356020820152604083013560408201526060830135606082015261315e608084016130b6565b60808201525092915050565b803580151581146130c757600080fd5b600080600080600085870361020081121561319457600080fd5b610100808212156131a457600080fd5b6131ac613065565b9150873582526020880135602083015260408801356040830152606088013560608301526080880135608083015260a088013560a083015260c088013560c083015260e088013560e083015281965061320789828a016130cc565b955050506132186101a087016130b6565b92506132276101c087016130b6565b91506132366101e0870161316a565b90509295509295909350565b60008060006060848603121561325757600080fd5b613260846130b6565b925061326e602085016130b6565b915061327c604085016130b6565b90509250925092565b60008060006060848603121561329a57600080fd5b8351925060208401519150604084015190509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602082840312156132f457600080fd5b505191905056fea26469706673582212204f48bb12bccd2efcfbf76620f31e747efea23da5b13378544498b83d4a79eaaf64736f6c63430008130033";
390
390
 
391
391
  type TransferTestsContractConstructorParams =
392
392
  | [signer?: Signer]