@superfluid-finance/sdk-core 0.6.14-dev.d3d602f.0 → 0.6.14-dev.dc41b52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/dist/index.umd.js +1243 -1126
  3. package/dist/main/typechain-types/contracts/apps/{SuperAppBaseFlow.d.ts → CFASuperAppBase.d.ts} +31 -5
  4. package/dist/main/typechain-types/contracts/apps/CFASuperAppBase.d.ts.map +1 -0
  5. package/dist/main/typechain-types/contracts/apps/{SuperAppBaseFlow.js → CFASuperAppBase.js} +1 -1
  6. package/dist/main/typechain-types/contracts/apps/CFASuperAppBase.js.map +1 -0
  7. package/dist/main/typechain-types/contracts/apps/index.d.ts +1 -1
  8. package/dist/main/typechain-types/contracts/apps/index.d.ts.map +1 -1
  9. package/dist/main/typechain-types/contracts/interfaces/utils/IUserDefinedMacro.d.ts +59 -0
  10. package/dist/main/typechain-types/contracts/interfaces/utils/IUserDefinedMacro.d.ts.map +1 -0
  11. package/dist/main/typechain-types/contracts/{mocks/SuperAppBaseFlowTester.js → interfaces/utils/IUserDefinedMacro.js} +1 -1
  12. package/dist/main/typechain-types/contracts/interfaces/utils/IUserDefinedMacro.js.map +1 -0
  13. package/dist/main/typechain-types/contracts/interfaces/utils/index.d.ts +1 -0
  14. package/dist/main/typechain-types/contracts/interfaces/utils/index.d.ts.map +1 -1
  15. package/dist/main/typechain-types/contracts/mocks/{SuperAppBaseFlowTester.d.ts → CFASuperAppBaseTester.d.ts} +31 -5
  16. package/dist/main/typechain-types/contracts/mocks/CFASuperAppBaseTester.d.ts.map +1 -0
  17. package/dist/main/typechain-types/contracts/mocks/CFASuperAppBaseTester.js +3 -0
  18. package/dist/main/typechain-types/contracts/mocks/CFASuperAppBaseTester.js.map +1 -0
  19. package/dist/main/typechain-types/contracts/mocks/CrossStreamSuperApp.d.ts +27 -1
  20. package/dist/main/typechain-types/contracts/mocks/CrossStreamSuperApp.d.ts.map +1 -1
  21. package/dist/main/typechain-types/contracts/mocks/index.d.ts +1 -1
  22. package/dist/main/typechain-types/contracts/mocks/index.d.ts.map +1 -1
  23. package/dist/main/typechain-types/contracts/utils/MacroForwarder.d.ts +75 -0
  24. package/dist/main/typechain-types/contracts/utils/MacroForwarder.d.ts.map +1 -0
  25. package/dist/main/typechain-types/contracts/utils/MacroForwarder.js +3 -0
  26. package/dist/main/typechain-types/contracts/utils/MacroForwarder.js.map +1 -0
  27. package/dist/main/typechain-types/contracts/utils/index.d.ts +1 -0
  28. package/dist/main/typechain-types/contracts/utils/index.d.ts.map +1 -1
  29. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts +1 -1
  30. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js +1 -1
  31. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts +1 -1
  32. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts.map +1 -1
  33. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js +1 -1
  34. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js.map +1 -1
  35. package/dist/{module/typechain-types/factories/contracts/apps/SuperAppBaseFlow__factory.d.ts → main/typechain-types/factories/contracts/apps/CFASuperAppBase__factory.d.ts} +45 -5
  36. package/dist/main/typechain-types/factories/contracts/apps/CFASuperAppBase__factory.d.ts.map +1 -0
  37. package/dist/main/typechain-types/factories/contracts/apps/{SuperAppBaseFlow__factory.js → CFASuperAppBase__factory.js} +57 -5
  38. package/dist/main/typechain-types/factories/contracts/apps/CFASuperAppBase__factory.js.map +1 -0
  39. package/dist/main/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.d.ts +1 -1
  40. package/dist/main/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.d.ts.map +1 -1
  41. package/dist/main/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.js +1 -1
  42. package/dist/main/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.js.map +1 -1
  43. package/dist/main/typechain-types/factories/contracts/apps/index.d.ts +1 -1
  44. package/dist/main/typechain-types/factories/contracts/apps/index.d.ts.map +1 -1
  45. package/dist/main/typechain-types/factories/contracts/apps/index.js +3 -3
  46. package/dist/main/typechain-types/factories/contracts/apps/index.js.map +1 -1
  47. package/dist/main/typechain-types/factories/contracts/interfaces/utils/IUserDefinedMacro__factory.d.ts +44 -0
  48. package/dist/main/typechain-types/factories/contracts/interfaces/utils/IUserDefinedMacro__factory.d.ts.map +1 -0
  49. package/dist/main/typechain-types/factories/contracts/interfaces/utils/IUserDefinedMacro__factory.js +66 -0
  50. package/dist/main/typechain-types/factories/contracts/interfaces/utils/IUserDefinedMacro__factory.js.map +1 -0
  51. package/dist/main/typechain-types/factories/contracts/interfaces/utils/index.d.ts +1 -0
  52. package/dist/main/typechain-types/factories/contracts/interfaces/utils/index.d.ts.map +1 -1
  53. package/dist/main/typechain-types/factories/contracts/interfaces/utils/index.js +3 -1
  54. package/dist/main/typechain-types/factories/contracts/interfaces/utils/index.js.map +1 -1
  55. package/dist/main/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.d.ts +379 -0
  56. package/dist/main/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.d.ts.map +1 -0
  57. package/dist/main/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.js +508 -0
  58. package/dist/main/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.js.map +1 -0
  59. package/dist/main/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.d.ts +41 -1
  60. package/dist/main/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.d.ts.map +1 -1
  61. package/dist/main/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.js +53 -1
  62. package/dist/main/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.js.map +1 -1
  63. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.d.ts +1 -1
  64. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.js +1 -1
  65. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  66. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.js +1 -1
  67. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  68. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.js +1 -1
  69. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.d.ts +1 -1
  70. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.js +1 -1
  71. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  72. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  73. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  74. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  75. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.d.ts +1 -1
  76. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.js +1 -1
  77. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  78. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  79. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.d.ts +1 -1
  80. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.js +1 -1
  81. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.d.ts +1 -1
  82. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.js +1 -1
  83. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  84. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  85. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.d.ts +1 -1
  86. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.d.ts.map +1 -1
  87. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.js +1 -1
  88. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.js.map +1 -1
  89. package/dist/main/typechain-types/factories/contracts/mocks/index.d.ts +1 -1
  90. package/dist/main/typechain-types/factories/contracts/mocks/index.d.ts.map +1 -1
  91. package/dist/main/typechain-types/factories/contracts/mocks/index.js +3 -3
  92. package/dist/main/typechain-types/factories/contracts/mocks/index.js.map +1 -1
  93. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  94. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  95. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts +1 -1
  96. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts.map +1 -1
  97. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js +1 -1
  98. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js.map +1 -1
  99. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts +1 -1
  100. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts.map +1 -1
  101. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js +1 -1
  102. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js.map +1 -1
  103. package/dist/main/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.d.ts +1 -1
  104. package/dist/main/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.d.ts.map +1 -1
  105. package/dist/main/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.js +1 -1
  106. package/dist/main/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.js.map +1 -1
  107. package/dist/main/typechain-types/factories/contracts/utils/MacroForwarder__factory.d.ts +78 -0
  108. package/dist/main/typechain-types/factories/contracts/utils/MacroForwarder__factory.d.ts.map +1 -0
  109. package/dist/main/typechain-types/factories/contracts/utils/MacroForwarder__factory.js +119 -0
  110. package/dist/main/typechain-types/factories/contracts/utils/MacroForwarder__factory.js.map +1 -0
  111. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  112. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js +1 -1
  113. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  114. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  115. package/dist/main/typechain-types/factories/contracts/utils/index.d.ts +1 -0
  116. package/dist/main/typechain-types/factories/contracts/utils/index.d.ts.map +1 -1
  117. package/dist/main/typechain-types/factories/contracts/utils/index.js +3 -1
  118. package/dist/main/typechain-types/factories/contracts/utils/index.js.map +1 -1
  119. package/dist/main/typechain-types/index.d.ts +8 -4
  120. package/dist/main/typechain-types/index.d.ts.map +1 -1
  121. package/dist/main/typechain-types/index.js +12 -8
  122. package/dist/main/typechain-types/index.js.map +1 -1
  123. package/dist/module/typechain-types/contracts/apps/{SuperAppBaseFlow.d.ts → CFASuperAppBase.d.ts} +31 -5
  124. package/dist/module/typechain-types/contracts/apps/CFASuperAppBase.d.ts.map +1 -0
  125. package/dist/module/typechain-types/contracts/apps/CFASuperAppBase.js +2 -0
  126. package/dist/module/typechain-types/contracts/apps/CFASuperAppBase.js.map +1 -0
  127. package/dist/module/typechain-types/contracts/apps/index.d.ts +1 -1
  128. package/dist/module/typechain-types/contracts/apps/index.d.ts.map +1 -1
  129. package/dist/module/typechain-types/contracts/interfaces/utils/IUserDefinedMacro.d.ts +59 -0
  130. package/dist/module/typechain-types/contracts/interfaces/utils/IUserDefinedMacro.d.ts.map +1 -0
  131. package/dist/module/typechain-types/contracts/interfaces/utils/IUserDefinedMacro.js +2 -0
  132. package/dist/module/typechain-types/contracts/interfaces/utils/IUserDefinedMacro.js.map +1 -0
  133. package/dist/module/typechain-types/contracts/interfaces/utils/index.d.ts +1 -0
  134. package/dist/module/typechain-types/contracts/interfaces/utils/index.d.ts.map +1 -1
  135. package/dist/module/typechain-types/contracts/mocks/{SuperAppBaseFlowTester.d.ts → CFASuperAppBaseTester.d.ts} +31 -5
  136. package/dist/module/typechain-types/contracts/mocks/CFASuperAppBaseTester.d.ts.map +1 -0
  137. package/dist/module/typechain-types/contracts/mocks/CFASuperAppBaseTester.js +2 -0
  138. package/dist/module/typechain-types/contracts/mocks/CFASuperAppBaseTester.js.map +1 -0
  139. package/dist/module/typechain-types/contracts/mocks/CrossStreamSuperApp.d.ts +27 -1
  140. package/dist/module/typechain-types/contracts/mocks/CrossStreamSuperApp.d.ts.map +1 -1
  141. package/dist/module/typechain-types/contracts/mocks/index.d.ts +1 -1
  142. package/dist/module/typechain-types/contracts/mocks/index.d.ts.map +1 -1
  143. package/dist/module/typechain-types/contracts/utils/MacroForwarder.d.ts +75 -0
  144. package/dist/module/typechain-types/contracts/utils/MacroForwarder.d.ts.map +1 -0
  145. package/dist/module/typechain-types/contracts/utils/MacroForwarder.js +2 -0
  146. package/dist/module/typechain-types/contracts/utils/MacroForwarder.js.map +1 -0
  147. package/dist/module/typechain-types/contracts/utils/index.d.ts +1 -0
  148. package/dist/module/typechain-types/contracts/utils/index.d.ts.map +1 -1
  149. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts +1 -1
  150. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js +1 -1
  151. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts +1 -1
  152. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts.map +1 -1
  153. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js +1 -1
  154. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js.map +1 -1
  155. package/dist/{main/typechain-types/factories/contracts/apps/SuperAppBaseFlow__factory.d.ts → module/typechain-types/factories/contracts/apps/CFASuperAppBase__factory.d.ts} +45 -5
  156. package/dist/module/typechain-types/factories/contracts/apps/CFASuperAppBase__factory.d.ts.map +1 -0
  157. package/dist/module/typechain-types/factories/contracts/apps/{SuperAppBaseFlow__factory.js → CFASuperAppBase__factory.js} +55 -3
  158. package/dist/module/typechain-types/factories/contracts/apps/CFASuperAppBase__factory.js.map +1 -0
  159. package/dist/module/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.d.ts +1 -1
  160. package/dist/module/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.d.ts.map +1 -1
  161. package/dist/module/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.js +1 -1
  162. package/dist/module/typechain-types/factories/contracts/apps/SuperfluidLoaderLibrary__factory.js.map +1 -1
  163. package/dist/module/typechain-types/factories/contracts/apps/index.d.ts +1 -1
  164. package/dist/module/typechain-types/factories/contracts/apps/index.d.ts.map +1 -1
  165. package/dist/module/typechain-types/factories/contracts/apps/index.js +1 -1
  166. package/dist/module/typechain-types/factories/contracts/apps/index.js.map +1 -1
  167. package/dist/module/typechain-types/factories/contracts/interfaces/utils/IUserDefinedMacro__factory.d.ts +44 -0
  168. package/dist/module/typechain-types/factories/contracts/interfaces/utils/IUserDefinedMacro__factory.d.ts.map +1 -0
  169. package/dist/module/typechain-types/factories/contracts/interfaces/utils/IUserDefinedMacro__factory.js +62 -0
  170. package/dist/module/typechain-types/factories/contracts/interfaces/utils/IUserDefinedMacro__factory.js.map +1 -0
  171. package/dist/module/typechain-types/factories/contracts/interfaces/utils/index.d.ts +1 -0
  172. package/dist/module/typechain-types/factories/contracts/interfaces/utils/index.d.ts.map +1 -1
  173. package/dist/module/typechain-types/factories/contracts/interfaces/utils/index.js +1 -0
  174. package/dist/module/typechain-types/factories/contracts/interfaces/utils/index.js.map +1 -1
  175. package/dist/module/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.d.ts +379 -0
  176. package/dist/module/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.d.ts.map +1 -0
  177. package/dist/module/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.js +504 -0
  178. package/dist/module/typechain-types/factories/contracts/mocks/CFASuperAppBaseTester__factory.js.map +1 -0
  179. package/dist/module/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.d.ts +41 -1
  180. package/dist/module/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.d.ts.map +1 -1
  181. package/dist/module/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.js +53 -1
  182. package/dist/module/typechain-types/factories/contracts/mocks/CrossStreamSuperApp__factory.js.map +1 -1
  183. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.d.ts +1 -1
  184. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester__factory.js +1 -1
  185. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  186. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.js +1 -1
  187. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  188. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.js +1 -1
  189. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.d.ts +1 -1
  190. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.js +1 -1
  191. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  192. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  193. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  194. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  195. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.d.ts +1 -1
  196. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingRegisterApp__factory.js +1 -1
  197. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  198. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  199. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.d.ts +1 -1
  200. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.js +1 -1
  201. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.d.ts +1 -1
  202. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.js +1 -1
  203. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  204. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  205. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.d.ts +1 -1
  206. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.d.ts.map +1 -1
  207. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.js +1 -1
  208. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidPoolUpgradabilityMock.sol/SuperfluidPoolStorageLayoutMock__factory.js.map +1 -1
  209. package/dist/module/typechain-types/factories/contracts/mocks/index.d.ts +1 -1
  210. package/dist/module/typechain-types/factories/contracts/mocks/index.d.ts.map +1 -1
  211. package/dist/module/typechain-types/factories/contracts/mocks/index.js +1 -1
  212. package/dist/module/typechain-types/factories/contracts/mocks/index.js.map +1 -1
  213. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  214. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  215. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts +1 -1
  216. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts.map +1 -1
  217. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js +1 -1
  218. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js.map +1 -1
  219. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts +1 -1
  220. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts.map +1 -1
  221. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js +1 -1
  222. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js.map +1 -1
  223. package/dist/module/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.d.ts +1 -1
  224. package/dist/module/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.d.ts.map +1 -1
  225. package/dist/module/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.js +1 -1
  226. package/dist/module/typechain-types/factories/contracts/utils/IDAv1Forwarder__factory.js.map +1 -1
  227. package/dist/module/typechain-types/factories/contracts/utils/MacroForwarder__factory.d.ts +78 -0
  228. package/dist/module/typechain-types/factories/contracts/utils/MacroForwarder__factory.d.ts.map +1 -0
  229. package/dist/module/typechain-types/factories/contracts/utils/MacroForwarder__factory.js +115 -0
  230. package/dist/module/typechain-types/factories/contracts/utils/MacroForwarder__factory.js.map +1 -0
  231. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  232. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js +1 -1
  233. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  234. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  235. package/dist/module/typechain-types/factories/contracts/utils/index.d.ts +1 -0
  236. package/dist/module/typechain-types/factories/contracts/utils/index.d.ts.map +1 -1
  237. package/dist/module/typechain-types/factories/contracts/utils/index.js +1 -0
  238. package/dist/module/typechain-types/factories/contracts/utils/index.js.map +1 -1
  239. package/dist/module/typechain-types/index.d.ts +8 -4
  240. package/dist/module/typechain-types/index.d.ts.map +1 -1
  241. package/dist/module/typechain-types/index.js +4 -2
  242. package/dist/module/typechain-types/index.js.map +1 -1
  243. package/package.json +5 -5
  244. package/dist/main/typechain-types/contracts/apps/SuperAppBaseFlow.d.ts.map +0 -1
  245. package/dist/main/typechain-types/contracts/apps/SuperAppBaseFlow.js.map +0 -1
  246. package/dist/main/typechain-types/contracts/mocks/SuperAppBaseFlowTester.d.ts.map +0 -1
  247. package/dist/main/typechain-types/contracts/mocks/SuperAppBaseFlowTester.js.map +0 -1
  248. package/dist/main/typechain-types/factories/contracts/apps/SuperAppBaseFlow__factory.d.ts.map +0 -1
  249. package/dist/main/typechain-types/factories/contracts/apps/SuperAppBaseFlow__factory.js.map +0 -1
  250. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts +0 -351
  251. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts.map +0 -1
  252. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js +0 -471
  253. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js.map +0 -1
  254. package/dist/module/typechain-types/contracts/apps/SuperAppBaseFlow.d.ts.map +0 -1
  255. package/dist/module/typechain-types/contracts/apps/SuperAppBaseFlow.js +0 -2
  256. package/dist/module/typechain-types/contracts/apps/SuperAppBaseFlow.js.map +0 -1
  257. package/dist/module/typechain-types/contracts/mocks/SuperAppBaseFlowTester.d.ts.map +0 -1
  258. package/dist/module/typechain-types/contracts/mocks/SuperAppBaseFlowTester.js +0 -2
  259. package/dist/module/typechain-types/contracts/mocks/SuperAppBaseFlowTester.js.map +0 -1
  260. package/dist/module/typechain-types/factories/contracts/apps/SuperAppBaseFlow__factory.d.ts.map +0 -1
  261. package/dist/module/typechain-types/factories/contracts/apps/SuperAppBaseFlow__factory.js.map +0 -1
  262. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts +0 -351
  263. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts.map +0 -1
  264. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js +0 -467
  265. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js.map +0 -1
@@ -12,7 +12,7 @@ export declare class SuperAppMock__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): SuperAppMock;
14
14
  connect(signer: Signer): SuperAppMock__factory;
15
- static readonly bytecode = "0x60806040523480156200001157600080fd5b506040516200341f3803806200341f833981016040819052620000349162000190565b600080546001600160a01b0319166001600160a01b03851690811782556040805163bd1c448b60e01b815260048101869052602481019190915260448101929092529063bd1c448b90606401600060405180830381600087803b1580156200009b57600080fd5b505af1158015620000b0573d6000803e3d6000fd5b5050505080156200012c57600080546040805163bd1c448b60e01b815260048101869052602481019190915260448101929092526001600160a01b03169063bd1c448b90606401600060405180830381600087803b1580156200011257600080fd5b505af115801562000127573d6000803e3d6000fd5b505050505b6040516200013a9062000182565b604051809103906000f08015801562000157573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905550620001e7915050565b6106478062002dd883390190565b600080600060608486031215620001a657600080fd5b83516001600160a01b0381168114620001be57600080fd5b6020850151604086015191945092508015158114620001dc57600080fd5b809150509250925092565b612be180620001f76000396000f3fe6080604052600436106101b75760003560e01c80636affc782116100ec578063b88bd14f1161008a578063dc1ce9cb11610064578063dc1ce9cb14610454578063e772ecc114610467578063ecdccfd914610487578063fe5f2b9b146104a757600080fd5b8063b88bd14f14610414578063bc90ea3c14610434578063d86ed3e51461025457600080fd5b8063884d1f40116100c6578063884d1f401461029457806390d4b672146103b4578063a6b71066146103d4578063b88a2483146103f457600080fd5b80636affc78214610354578063772ce847146103745780637a7675a01461039457600080fd5b80633b790ac81161015957806357121e0c1161013357806357121e0c146102f457806358b0d33d146103145780635f9e7d7714610294578063602e48cd1461033457600080fd5b80633b790ac8146102b45780633fc3b0f7146102d457806353c11f991461025457600080fd5b80630bfe0f20116101955780630bfe0f201461021e578063230dbd291461025457806328fd0b471461027457806330d9c9151461029457600080fd5b80630769a69b146101bc57806308c95b5d146101de5780630a00b52d146101fe575b600080fd5b3480156101c857600080fd5b506101dc6101d736600461203c565b6104c7565b005b3480156101ea57600080fd5b506101dc6101f9366004612095565b6105e7565b34801561020a57600080fd5b506101dc61021936600461203c565b6106e3565b34801561022a57600080fd5b5061023e6102393660046120f0565b610844565b60405161024b9190612194565b60405180910390f35b34801561026057600080fd5b5061023e61026f3660046121ae565b6109cc565b34801561028057600080fd5b506101dc61028f366004612278565b610aa4565b3480156102a057600080fd5b5061023e6102af366004612291565b610aff565b3480156102c057600080fd5b506101dc6102cf36600461203c565b610b9e565b3480156102e057600080fd5b5061023e6102ef36600461232f565b610c24565b34801561030057600080fd5b506101dc61030f36600461238e565b610d9d565b34801561032057600080fd5b506101dc61032f36600461203c565b610dcf565b34801561034057600080fd5b5061023e61034f3660046120f0565b610ec7565b34801561036057600080fd5b5061023e61036f36600461203c565b61106d565b34801561038057600080fd5b506101dc61038f3660046123ab565b61111b565b3480156103a057600080fd5b506101dc6103af36600461203c565b61114c565b3480156103c057600080fd5b5061023e6103cf3660046123cf565b6111d2565b3480156103e057600080fd5b5061023e6103ef366004612095565b611346565b34801561040057600080fd5b506101dc61040f36600461203c565b6114b9565b34801561042057600080fd5b506101dc61042f36600461203c565b61157d565b34801561044057600080fd5b5061023e61044f36600461203c565b61160b565b61023e61046236600461203c565b611769565b34801561047357600080fd5b5061023e61048236600461203c565b6117a9565b34801561049357600080fd5b5061023e6104a236600461232f565b611929565b3480156104b357600080fd5b506101dc6104c236600461232f565b611a3b565b604051632fd0a1cd60e21b815282908290339063bf428734906104f0908590859060040161247a565b602060405180830381865afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190612496565b6105565760405162461bcd60e51b815260040161054d906124b8565b60405180910390fd5b600080546040805183815260208101848152818301928390526339255d5b60e01b9092526001600160a01b03909216926339255d5b926105999260448201612511565b6000604051808303816000875af11580156105b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105e0919081019061260d565b5050505050565b604051632fd0a1cd60e21b815282908290339063bf42873490610610908590859060040161247a565b602060405180830381865afa15801561062d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106519190612496565b61066d5760405162461bcd60e51b815260040161054d906124b8565b600154600054604051630a1bcfa560e11b81526001600160a01b03928316926314379f4a926106a9929116908a908a908a908a90600401612641565b600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b50505050505050505050565b604051632fd0a1cd60e21b815282908290339063bf4287349061070c908590859060040161247a565b602060405180830381865afa158015610729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074d9190612496565b6107695760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f89030908190636affc782906107a19060448101612194565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526107ee9392509089908990600401612675565b6000604051808303816000875af115801561080d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610835919081019061260d565b5061083e6126ac565b50505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490610870908590859060040161247a565b602060405180830381865afa15801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b19190612496565b6108cd5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b0390811691634329d29391899190821690638e6b27499061090e903090602a90604481016126c2565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b1790528151600081529081018252602a8183015281518082038301815260608201928390529387901b6001600160e01b03191690915261097a9493509091606482016126e9565b6000604051808303816000875af1158015610999573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109c19190810190612733565b509695505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf428734906109f8908590859060040161247a565b602060405180830381865afa158015610a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a399190612496565b610a555760405162461bcd60e51b815260040161054d906124b8565b610a9485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611add92505050565b9c9b505050505050505050505050565b6000546040516315a722b960e31b8152600481018390526001600160a01b039091169063ad3915c8906024015b600060405180830381600087803b158015610aeb57600080fd5b505af11580156105e0573d6000803e3d6000fd5b604051632fd0a1cd60e21b815260609083908390339063bf42873490610b2b908590859060040161247a565b602060405180830381865afa158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c9190612496565b610b885760405162461bcd60e51b815260040161054d906124b8565b610b90611e33565b9a9950505050505050505050565b604051632fd0a1cd60e21b815282908290339063bf42873490610bc7908590859060040161247a565b602060405180830381865afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c089190612496565b61083e5760405162461bcd60e51b815260040161054d906124b8565b604051632fd0a1cd60e21b815260609083908390339063bf42873490610c50908590859060040161247a565b602060405180830381865afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c919190612496565b610cad5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f8903090819063fe5f2b9b90610ce9908d908d9060448101612796565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b1790528151602a8183015282518082039092018252808301928390529387901b6001600160e01b031916909152610d4b9493509091604401612511565b6000604051808303816000875af1158015610d6a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d92919081019061260d565b979650505050505050565b6000546040516315c4878360e21b81526001600160a01b038381166004830152909116906357121e0c90602401610ad1565b604051632fd0a1cd60e21b815282908290339063bf42873490610df8908590859060040161247a565b602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e399190612496565b610e555760405162461bcd60e51b815260040161054d906124b8565b60015460005460405163131e7b7560e21b81526001600160a01b0392831692634c79edd492610e8f929116903090899089906004016127bc565b600060405180830381600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b5050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490610ef3908590859060040161247a565b602060405180830381865afa158015610f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f349190612496565b610f505760405162461bcd60e51b815260040161054d906124b8565b604051631fb6491d60e11b81526000903390633f6c923a90610f78908990899060040161247a565b600060405180830381865afa158015610f95573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fbd9190810190612822565b9050866001600160a01b031681606001516001600160a01b031614610fe457610fe46126ac565b7f5d497a0f141d2596bd23602421f1cc06c3b9ad6c29b51997cf62ca3f84754e1381600001518260200151836080015160405161102393929190612928565b60405180910390a185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929a9950505050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611099908590859060040161247a565b602060405180830381865afa1580156110b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110da9190612496565b6110f65760405162461bcd60e51b815260040161054d906124b8565b60408051602a6020820152016040516020818303038152906040529250505092915050565b6002805484919060ff1916600183600681111561113a5761113a61294f565b0217905550600361083e8284836129e9565b604051632fd0a1cd60e21b815282908290339063bf42873490611175908590859060040161247a565b602060405180830381865afa158015611192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b69190612496565b6101b75760405162461bcd60e51b815260040161054d906124b8565b604051632fd0a1cd60e21b815260609083908390339063bf428734906111fe908590859060040161247a565b602060405180830381865afa15801561121b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123f9190612496565b61125b5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b0390811691634329d293918b919082169063edf02c4e9061129b908d908d9060448101612796565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b179052815160008152908101918290529286901b6001600160e01b03191690526112f2939250908a8a60248301612aa8565b6000604051808303816000875af1158015611311573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113399190810190612733565b5098975050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611372908590859060040161247a565b602060405180830381865afa15801561138f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b39190612496565b6113cf5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b0390811691634329d293918a9190821690638e6b27499061140f9030908d90604481016126c2565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b179052815160008152908101918290529286901b6001600160e01b0319169052611466939250908a8a60248301612aa8565b6000604051808303816000875af1158015611485573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114ad9190810190612733565b50979650505050505050565b604051632fd0a1cd60e21b815282908290339063bf428734906114e2908590859060040161247a565b602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190612496565b61153f5760405162461bcd60e51b815260040161054d906124b8565b60008054604080518381526020810191829052631e855cf360e01b9091526001600160a01b0390911691631e855cf391610599919060248101612aff565b604051632fd0a1cd60e21b815282908290339063bf428734906115a6908590859060040161247a565b602060405180830381865afa1580156115c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e79190612496565b6116035760405162461bcd60e51b815260040161054d906124b8565b61083e6126ac565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611637908590859060040161247a565b602060405180830381865afa158015611654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116789190612496565b6116945760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f8903090819063e772ecc1906116cc9060448101612194565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252611719939250908a908a90600401612675565b6000604051808303816000875af1158015611738573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611760919081019061260d565b95945050505050565b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf428734906117d5908590859060040161247a565b602060405180830381865afa1580156117f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118169190612496565b6118325760405162461bcd60e51b815260040161054d906124b8565b604051631fb6491d60e11b81526000903390633f6c923a9061185a908990899060040161247a565b600060405180830381865afa158015611877573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261189f9190810190612822565b90507f5d497a0f141d2596bd23602421f1cc06c3b9ad6c29b51997cf62ca3f84754e138160000151826020015183608001516040516118e093929190612928565b60405180910390a185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611955908590859060040161247a565b602060405180830381865afa158015611972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119969190612496565b6119b25760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f8903090819063fe5f2b9b906119ee908d908d9060448101612796565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610d4b939250908a908a90600401612675565b604051632fd0a1cd60e21b815282908290339063bf42873490611a64908590859060040161247a565b602060405180830381865afa158015611a81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa59190612496565b611ac15760405162461bcd60e51b815260040161054d906124b8565b858560405162461bcd60e51b815260040161054d92919061247a565b604051631fb6491d60e11b81526060906000903390633f6c923a90611b06908690600401612194565b600060405180830381865afa158015611b23573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b4b9190810190612822565b9050600060025460ff166006811115611b6657611b6661294f565b03611bb9577f5d497a0f141d2596bd23602421f1cc06c3b9ad6c29b51997cf62ca3f84754e13816000015182602001518360800151604051611baa93929190612928565b60405180910390a15090919050565b600160025460ff166006811115611bd257611bd261294f565b03611be457611bdf6126ac565b611e2d565b6002805460ff166006811115611bfc57611bfc61294f565b03611c0657600080fd5b600360025460ff166006811115611c1f57611c1f61294f565b03611cdb5760038054611c3190612965565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5d90612965565b8015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b5050505050806020019051810190611cc29190612b23565b60405162461bcd60e51b815260040161054d9190612194565b600460025460ff166006811115611cf457611cf461294f565b03611d2e57602a5b6040519080825280601f01601f191660200182016040528015611d26576020820181803683370190505b509392505050565b600560025460ff166006811115611d4757611d4761294f565b03611e0057600060026001018054611d5e90612965565b80601f0160208091040260200160405190810160405280929190818152602001828054611d8a90612965565b8015611dd75780601f10611dac57610100808354040283529160200191611dd7565b820191906000526020600020905b815481529060010190602001808311611dba57829003601f168201915b5050505050806020019051810190611def9190612b6b565b9050611dfa81611fc0565b50611e2d565b600660025460ff166006811115611e1957611e1961294f565b03611e25576000611cfc565b611e2d6126ac565b50919050565b6060600060025460ff166006811115611e4e57611e4e61294f565b03611e72575060408051808201909152600481526304e6f6f760e41b602082015290565b600160025460ff166006811115611e8b57611e8b61294f565b03611e9b57611e986126ac565b90565b6002805460ff166006811115611eb357611eb361294f565b03611ebd57600080fd5b600360025460ff166006811115611ed657611ed661294f565b03611ee85760038054611c3190612965565b600560025460ff166006811115611f0157611f0161294f565b03611fb857600060026001018054611f1890612965565b80601f0160208091040260200160405190810160405280929190818152602001828054611f4490612965565b8015611f915780601f10611f6657610100808354040283529160200191611f91565b820191906000526020600020905b815481529060010190602001808311611f7457829003601f168201915b5050505050806020019051810190611fa99190612b6b565b9050611fb481611fc0565b5090565b611e986126ac565b60005a905060005a90505b611fd76103e884612b84565b611fe18284612b84565b1015611fef575a9050611fcb565b505050565b60008083601f84011261200657600080fd5b5081356001600160401b0381111561201d57600080fd5b60208301915083602082850101111561203557600080fd5b9250929050565b6000806020838503121561204f57600080fd5b82356001600160401b0381111561206557600080fd5b61207185828601611ff4565b90969095509350505050565b6001600160a01b038116811461209257600080fd5b50565b600080600080606085870312156120ab57600080fd5b84356120b68161207d565b93506020850135925060408501356001600160401b038111156120d857600080fd5b6120e487828801611ff4565b95989497509550505050565b60008060006040848603121561210557600080fd5b83356121108161207d565b925060208401356001600160401b0381111561212b57600080fd5b61213786828701611ff4565b9497909650939450505050565b60005b8381101561215f578181015183820152602001612147565b50506000910152565b60008151808452612180816020860160208601612144565b601f01601f19169290920160200192915050565b6020815260006121a76020830184612168565b9392505050565b600080600080600080600080600060c08a8c0312156121cc57600080fd5b89356121d78161207d565b985060208a01356121e78161207d565b975060408a0135965060608a01356001600160401b038082111561220a57600080fd5b6122168d838e01611ff4565b909850965060808c013591508082111561222f57600080fd5b61223b8d838e01611ff4565b909650945060a08c013591508082111561225457600080fd5b506122618c828d01611ff4565b915080935050809150509295985092959850929598565b60006020828403121561228a57600080fd5b5035919050565b600080600080600080600060a0888a0312156122ac57600080fd5b87356122b78161207d565b965060208801356122c78161207d565b95506040880135945060608801356001600160401b03808211156122ea57600080fd5b6122f68b838c01611ff4565b909650945060808a013591508082111561230f57600080fd5b5061231c8a828b01611ff4565b989b979a50959850939692959293505050565b6000806000806040858703121561234557600080fd5b84356001600160401b038082111561235c57600080fd5b61236888838901611ff4565b9096509450602087013591508082111561238157600080fd5b506120e487828801611ff4565b6000602082840312156123a057600080fd5b81356121a78161207d565b6000806000604084860312156123c057600080fd5b83356007811061211057600080fd5b6000806000806000606086880312156123e757600080fd5b85356123f28161207d565b945060208601356001600160401b038082111561240e57600080fd5b61241a89838a01611ff4565b9096509450604088013591508082111561243357600080fd5b5061244088828901611ff4565b969995985093965092949392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600061248e602083018486612451565b949350505050565b6000602082840312156124a857600080fd5b815180151581146121a757600080fd5b60208082526023908201527f41677265656d656e744d6f636b3a20637478206e6f742076616c6964206265666040820152626f726560e81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038416815260606020820181905260009061253590830185612168565b82810360408401526125478185612168565b9695505050505050565b60405161016081016001600160401b0381118282101715612574576125746124fb565b60405290565b60006001600160401b0380841115612594576125946124fb565b604051601f8501601f19908116603f011681019082821181831017156125bc576125bc6124fb565b816040528093508581528686860111156125d557600080fd5b6125e3866020830187612144565b5050509392505050565b600082601f8301126125fe57600080fd5b6121a78383516020850161257a565b60006020828403121561261f57600080fd5b81516001600160401b0381111561263557600080fd5b61248e848285016125ed565b6001600160a01b0386811682528516602082015260408101849052608060608201819052600090610d929083018486612451565b6001600160a01b038516815260606020820181905260009061269990830186612168565b8281036040840152610d92818587612451565b634e487b7160e01b600052600160045260246000fd5b60018060a01b03841681528260208201526060604082015260006117606060830184612168565b6001600160a01b038516815260806020820181905260009061270d90830186612168565b828103604084015261271f8186612168565b90508281036060840152610d928185612168565b6000806040838503121561274657600080fd5b82516001600160401b038082111561275d57600080fd5b612769868387016125ed565b9350602085015191508082111561277f57600080fd5b5061278c858286016125ed565b9150509250929050565b6040815260006127aa604083018587612451565b82810360208401526125478185612168565b6001600160a01b038581168252841660208201526060604082018190526000906125479083018486612451565b805160ff811681146127fa57600080fd5b919050565b80516127fa8161207d565b80516001600160e01b0319811681146127fa57600080fd5b60006020828403121561283457600080fd5b81516001600160401b038082111561284b57600080fd5b90830190610160828603121561286057600080fd5b612868612551565b612871836127e9565b815261287f602084016127e9565b60208201526040830151604082015261289a606084016127ff565b60608201526128ab6080840161280a565b608082015260a0830151828111156128c257600080fd5b6128ce878286016125ed565b60a08301525060c083015160c082015260e083015160e08201526101009150818301518282015261012091506129058284016127ff565b8282015261014091506129198284016127ff565b91810191909152949350505050565b60ff93841681529190921660208201526001600160e01b0319909116604082015260600190565b634e487b7160e01b600052602160045260246000fd5b600181811c9082168061297957607f821691505b602082108103611e2d57634e487b7160e01b600052602260045260246000fd5b601f821115611fef576000816000526020600020601f850160051c810160208610156129c25750805b601f850160051c820191505b818110156129e1578281556001016129ce565b505050505050565b6001600160401b03831115612a0057612a006124fb565b612a1483612a0e8354612965565b83612999565b6000601f841160018114612a485760008515612a305750838201355b600019600387901b1c1916600186901b1783556105e0565b600083815260209020601f19861690835b82811015612a795786850135825560209485019460019092019101612a59565b5086821015612a965760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6001600160a01b0386168152608060208201819052600090612acc90830187612168565b8281036040840152612ade8187612168565b90508281036060840152612af3818587612451565b98975050505050505050565b6001600160a01b038316815260406020820181905260009061248e90830184612168565b600060208284031215612b3557600080fd5b81516001600160401b03811115612b4b57600080fd5b8201601f81018413612b5c57600080fd5b61248e8482516020840161257a565b600060208284031215612b7d57600080fd5b5051919050565b81810381811115612ba557634e487b7160e01b600052601160045260246000fd5b9291505056fea2646970667358221220f395bae9fb8547bbdb4222e9d2624b2dbdf56f1a033961e2c50edab800eeb69564736f6c63430008170033608060405234801561001057600080fd5b50610627806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806314379f4a1461003b5780634c79edd414610050575b600080fd5b61004e61004936600461027e565b610063565b005b61004e61005e3660046102f1565b610148565b6040805160008152602081019091526001600160a01b0386811691634329d29391879190821690638e6b2749906100a19030908a90604481016103bc565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b179052815160008152908101918290529286901b6001600160e01b03191690526100f893925090878760248301610415565b6000604051808303816000875af1158015610117573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261013f91908101906104f4565b50505050505050565b6040805160008152602081019091526001600160a01b038581169163ba48b5f89186919082169063e772ecc1906101829060448101610558565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526101cf9392509087908790600401610572565b6000604051808303816000875af11580156101ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021691908101906105b4565b5050505050565b6001600160a01b038116811461023257600080fd5b50565b60008083601f84011261024757600080fd5b50813567ffffffffffffffff81111561025f57600080fd5b60208301915083602082850101111561027757600080fd5b9250929050565b60008060008060006080868803121561029657600080fd5b85356102a18161021d565b945060208601356102b18161021d565b935060408601359250606086013567ffffffffffffffff8111156102d457600080fd5b6102e088828901610235565b969995985093965092949392505050565b6000806000806060858703121561030757600080fd5b84356103128161021d565b935060208501356103228161021d565b9250604085013567ffffffffffffffff81111561033e57600080fd5b61034a87828801610235565b95989497509550505050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561038757818101518382015260200161036f565b50506000910152565b600081518084526103a881602086016020860161036c565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006103e36060830184610390565b95945050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038616815260806020820181905260009061043990830187610390565b828103604084015261044b8187610390565b905082810360608401526104608185876103ec565b98975050505050505050565b600082601f83011261047d57600080fd5b815167ffffffffffffffff8082111561049857610498610356565b604051601f8301601f19908116603f011681019082821181831017156104c0576104c0610356565b816040528381528660208588010111156104d957600080fd5b6104ea84602083016020890161036c565b9695505050505050565b6000806040838503121561050757600080fd5b825167ffffffffffffffff8082111561051f57600080fd5b61052b8683870161046c565b9350602085015191508082111561054157600080fd5b5061054e8582860161046c565b9150509250929050565b60208152600061056b6020830184610390565b9392505050565b6001600160a01b038516815260606020820181905260009061059690830186610390565b82810360408401526105a98185876103ec565b979650505050505050565b6000602082840312156105c657600080fd5b815167ffffffffffffffff8111156105dd57600080fd5b6105e98482850161046c565b94935050505056fea2646970667358221220aa517cf95f47675a4b597f15bc6487e47e2a6584d4efb8196d4260e3f25cd19b64736f6c63430008170033";
15
+ static readonly bytecode = "0x60806040523480156200001157600080fd5b506040516200341f3803806200341f833981016040819052620000349162000190565b600080546001600160a01b0319166001600160a01b03851690811782556040805163bd1c448b60e01b815260048101869052602481019190915260448101929092529063bd1c448b90606401600060405180830381600087803b1580156200009b57600080fd5b505af1158015620000b0573d6000803e3d6000fd5b5050505080156200012c57600080546040805163bd1c448b60e01b815260048101869052602481019190915260448101929092526001600160a01b03169063bd1c448b90606401600060405180830381600087803b1580156200011257600080fd5b505af115801562000127573d6000803e3d6000fd5b505050505b6040516200013a9062000182565b604051809103906000f08015801562000157573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905550620001e7915050565b6106478062002dd883390190565b600080600060608486031215620001a657600080fd5b83516001600160a01b0381168114620001be57600080fd5b6020850151604086015191945092508015158114620001dc57600080fd5b809150509250925092565b612be180620001f76000396000f3fe6080604052600436106101b75760003560e01c80636affc782116100ec578063b88bd14f1161008a578063dc1ce9cb11610064578063dc1ce9cb14610454578063e772ecc114610467578063ecdccfd914610487578063fe5f2b9b146104a757600080fd5b8063b88bd14f14610414578063bc90ea3c14610434578063d86ed3e51461025457600080fd5b8063884d1f40116100c6578063884d1f401461029457806390d4b672146103b4578063a6b71066146103d4578063b88a2483146103f457600080fd5b80636affc78214610354578063772ce847146103745780637a7675a01461039457600080fd5b80633b790ac81161015957806357121e0c1161013357806357121e0c146102f457806358b0d33d146103145780635f9e7d7714610294578063602e48cd1461033457600080fd5b80633b790ac8146102b45780633fc3b0f7146102d457806353c11f991461025457600080fd5b80630bfe0f20116101955780630bfe0f201461021e578063230dbd291461025457806328fd0b471461027457806330d9c9151461029457600080fd5b80630769a69b146101bc57806308c95b5d146101de5780630a00b52d146101fe575b600080fd5b3480156101c857600080fd5b506101dc6101d736600461203c565b6104c7565b005b3480156101ea57600080fd5b506101dc6101f9366004612095565b6105e7565b34801561020a57600080fd5b506101dc61021936600461203c565b6106e3565b34801561022a57600080fd5b5061023e6102393660046120f0565b610844565b60405161024b9190612194565b60405180910390f35b34801561026057600080fd5b5061023e61026f3660046121ae565b6109cc565b34801561028057600080fd5b506101dc61028f366004612278565b610aa4565b3480156102a057600080fd5b5061023e6102af366004612291565b610aff565b3480156102c057600080fd5b506101dc6102cf36600461203c565b610b9e565b3480156102e057600080fd5b5061023e6102ef36600461232f565b610c24565b34801561030057600080fd5b506101dc61030f36600461238e565b610d9d565b34801561032057600080fd5b506101dc61032f36600461203c565b610dcf565b34801561034057600080fd5b5061023e61034f3660046120f0565b610ec7565b34801561036057600080fd5b5061023e61036f36600461203c565b61106d565b34801561038057600080fd5b506101dc61038f3660046123ab565b61111b565b3480156103a057600080fd5b506101dc6103af36600461203c565b61114c565b3480156103c057600080fd5b5061023e6103cf3660046123cf565b6111d2565b3480156103e057600080fd5b5061023e6103ef366004612095565b611346565b34801561040057600080fd5b506101dc61040f36600461203c565b6114b9565b34801561042057600080fd5b506101dc61042f36600461203c565b61157d565b34801561044057600080fd5b5061023e61044f36600461203c565b61160b565b61023e61046236600461203c565b611769565b34801561047357600080fd5b5061023e61048236600461203c565b6117a9565b34801561049357600080fd5b5061023e6104a236600461232f565b611929565b3480156104b357600080fd5b506101dc6104c236600461232f565b611a3b565b604051632fd0a1cd60e21b815282908290339063bf428734906104f0908590859060040161247a565b602060405180830381865afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190612496565b6105565760405162461bcd60e51b815260040161054d906124b8565b60405180910390fd5b600080546040805183815260208101848152818301928390526339255d5b60e01b9092526001600160a01b03909216926339255d5b926105999260448201612511565b6000604051808303816000875af11580156105b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105e0919081019061260d565b5050505050565b604051632fd0a1cd60e21b815282908290339063bf42873490610610908590859060040161247a565b602060405180830381865afa15801561062d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106519190612496565b61066d5760405162461bcd60e51b815260040161054d906124b8565b600154600054604051630a1bcfa560e11b81526001600160a01b03928316926314379f4a926106a9929116908a908a908a908a90600401612641565b600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b50505050505050505050565b604051632fd0a1cd60e21b815282908290339063bf4287349061070c908590859060040161247a565b602060405180830381865afa158015610729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074d9190612496565b6107695760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f89030908190636affc782906107a19060448101612194565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526107ee9392509089908990600401612675565b6000604051808303816000875af115801561080d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610835919081019061260d565b5061083e6126ac565b50505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490610870908590859060040161247a565b602060405180830381865afa15801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b19190612496565b6108cd5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b0390811691634329d29391899190821690638e6b27499061090e903090602a90604481016126c2565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b1790528151600081529081018252602a8183015281518082038301815260608201928390529387901b6001600160e01b03191690915261097a9493509091606482016126e9565b6000604051808303816000875af1158015610999573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109c19190810190612733565b509695505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf428734906109f8908590859060040161247a565b602060405180830381865afa158015610a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a399190612496565b610a555760405162461bcd60e51b815260040161054d906124b8565b610a9485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611add92505050565b9c9b505050505050505050505050565b6000546040516315a722b960e31b8152600481018390526001600160a01b039091169063ad3915c8906024015b600060405180830381600087803b158015610aeb57600080fd5b505af11580156105e0573d6000803e3d6000fd5b604051632fd0a1cd60e21b815260609083908390339063bf42873490610b2b908590859060040161247a565b602060405180830381865afa158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c9190612496565b610b885760405162461bcd60e51b815260040161054d906124b8565b610b90611e33565b9a9950505050505050505050565b604051632fd0a1cd60e21b815282908290339063bf42873490610bc7908590859060040161247a565b602060405180830381865afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c089190612496565b61083e5760405162461bcd60e51b815260040161054d906124b8565b604051632fd0a1cd60e21b815260609083908390339063bf42873490610c50908590859060040161247a565b602060405180830381865afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c919190612496565b610cad5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f8903090819063fe5f2b9b90610ce9908d908d9060448101612796565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b1790528151602a8183015282518082039092018252808301928390529387901b6001600160e01b031916909152610d4b9493509091604401612511565b6000604051808303816000875af1158015610d6a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d92919081019061260d565b979650505050505050565b6000546040516315c4878360e21b81526001600160a01b038381166004830152909116906357121e0c90602401610ad1565b604051632fd0a1cd60e21b815282908290339063bf42873490610df8908590859060040161247a565b602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e399190612496565b610e555760405162461bcd60e51b815260040161054d906124b8565b60015460005460405163131e7b7560e21b81526001600160a01b0392831692634c79edd492610e8f929116903090899089906004016127bc565b600060405180830381600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b5050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490610ef3908590859060040161247a565b602060405180830381865afa158015610f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f349190612496565b610f505760405162461bcd60e51b815260040161054d906124b8565b604051631fb6491d60e11b81526000903390633f6c923a90610f78908990899060040161247a565b600060405180830381865afa158015610f95573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fbd9190810190612822565b9050866001600160a01b031681606001516001600160a01b031614610fe457610fe46126ac565b7f5d497a0f141d2596bd23602421f1cc06c3b9ad6c29b51997cf62ca3f84754e1381600001518260200151836080015160405161102393929190612928565b60405180910390a185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929a9950505050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611099908590859060040161247a565b602060405180830381865afa1580156110b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110da9190612496565b6110f65760405162461bcd60e51b815260040161054d906124b8565b60408051602a6020820152016040516020818303038152906040529250505092915050565b6002805484919060ff1916600183600681111561113a5761113a61294f565b0217905550600361083e8284836129e9565b604051632fd0a1cd60e21b815282908290339063bf42873490611175908590859060040161247a565b602060405180830381865afa158015611192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b69190612496565b6101b75760405162461bcd60e51b815260040161054d906124b8565b604051632fd0a1cd60e21b815260609083908390339063bf428734906111fe908590859060040161247a565b602060405180830381865afa15801561121b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123f9190612496565b61125b5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b0390811691634329d293918b919082169063edf02c4e9061129b908d908d9060448101612796565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b179052815160008152908101918290529286901b6001600160e01b03191690526112f2939250908a8a60248301612aa8565b6000604051808303816000875af1158015611311573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113399190810190612733565b5098975050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611372908590859060040161247a565b602060405180830381865afa15801561138f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b39190612496565b6113cf5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b0390811691634329d293918a9190821690638e6b27499061140f9030908d90604481016126c2565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b179052815160008152908101918290529286901b6001600160e01b0319169052611466939250908a8a60248301612aa8565b6000604051808303816000875af1158015611485573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114ad9190810190612733565b50979650505050505050565b604051632fd0a1cd60e21b815282908290339063bf428734906114e2908590859060040161247a565b602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190612496565b61153f5760405162461bcd60e51b815260040161054d906124b8565b60008054604080518381526020810191829052631e855cf360e01b9091526001600160a01b0390911691631e855cf391610599919060248101612aff565b604051632fd0a1cd60e21b815282908290339063bf428734906115a6908590859060040161247a565b602060405180830381865afa1580156115c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e79190612496565b6116035760405162461bcd60e51b815260040161054d906124b8565b61083e6126ac565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611637908590859060040161247a565b602060405180830381865afa158015611654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116789190612496565b6116945760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f8903090819063e772ecc1906116cc9060448101612194565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252611719939250908a908a90600401612675565b6000604051808303816000875af1158015611738573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611760919081019061260d565b95945050505050565b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf428734906117d5908590859060040161247a565b602060405180830381865afa1580156117f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118169190612496565b6118325760405162461bcd60e51b815260040161054d906124b8565b604051631fb6491d60e11b81526000903390633f6c923a9061185a908990899060040161247a565b600060405180830381865afa158015611877573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261189f9190810190612822565b90507f5d497a0f141d2596bd23602421f1cc06c3b9ad6c29b51997cf62ca3f84754e138160000151826020015183608001516040516118e093929190612928565b60405180910390a185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611955908590859060040161247a565b602060405180830381865afa158015611972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119969190612496565b6119b25760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f8903090819063fe5f2b9b906119ee908d908d9060448101612796565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610d4b939250908a908a90600401612675565b604051632fd0a1cd60e21b815282908290339063bf42873490611a64908590859060040161247a565b602060405180830381865afa158015611a81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa59190612496565b611ac15760405162461bcd60e51b815260040161054d906124b8565b858560405162461bcd60e51b815260040161054d92919061247a565b604051631fb6491d60e11b81526060906000903390633f6c923a90611b06908690600401612194565b600060405180830381865afa158015611b23573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b4b9190810190612822565b9050600060025460ff166006811115611b6657611b6661294f565b03611bb9577f5d497a0f141d2596bd23602421f1cc06c3b9ad6c29b51997cf62ca3f84754e13816000015182602001518360800151604051611baa93929190612928565b60405180910390a15090919050565b600160025460ff166006811115611bd257611bd261294f565b03611be457611bdf6126ac565b611e2d565b6002805460ff166006811115611bfc57611bfc61294f565b03611c0657600080fd5b600360025460ff166006811115611c1f57611c1f61294f565b03611cdb5760038054611c3190612965565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5d90612965565b8015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b5050505050806020019051810190611cc29190612b23565b60405162461bcd60e51b815260040161054d9190612194565b600460025460ff166006811115611cf457611cf461294f565b03611d2e57602a5b6040519080825280601f01601f191660200182016040528015611d26576020820181803683370190505b509392505050565b600560025460ff166006811115611d4757611d4761294f565b03611e0057600060026001018054611d5e90612965565b80601f0160208091040260200160405190810160405280929190818152602001828054611d8a90612965565b8015611dd75780601f10611dac57610100808354040283529160200191611dd7565b820191906000526020600020905b815481529060010190602001808311611dba57829003601f168201915b5050505050806020019051810190611def9190612b6b565b9050611dfa81611fc0565b50611e2d565b600660025460ff166006811115611e1957611e1961294f565b03611e25576000611cfc565b611e2d6126ac565b50919050565b6060600060025460ff166006811115611e4e57611e4e61294f565b03611e72575060408051808201909152600481526304e6f6f760e41b602082015290565b600160025460ff166006811115611e8b57611e8b61294f565b03611e9b57611e986126ac565b90565b6002805460ff166006811115611eb357611eb361294f565b03611ebd57600080fd5b600360025460ff166006811115611ed657611ed661294f565b03611ee85760038054611c3190612965565b600560025460ff166006811115611f0157611f0161294f565b03611fb857600060026001018054611f1890612965565b80601f0160208091040260200160405190810160405280929190818152602001828054611f4490612965565b8015611f915780601f10611f6657610100808354040283529160200191611f91565b820191906000526020600020905b815481529060010190602001808311611f7457829003601f168201915b5050505050806020019051810190611fa99190612b6b565b9050611fb481611fc0565b5090565b611e986126ac565b60005a905060005a90505b611fd76103e884612b84565b611fe18284612b84565b1015611fef575a9050611fcb565b505050565b60008083601f84011261200657600080fd5b5081356001600160401b0381111561201d57600080fd5b60208301915083602082850101111561203557600080fd5b9250929050565b6000806020838503121561204f57600080fd5b82356001600160401b0381111561206557600080fd5b61207185828601611ff4565b90969095509350505050565b6001600160a01b038116811461209257600080fd5b50565b600080600080606085870312156120ab57600080fd5b84356120b68161207d565b93506020850135925060408501356001600160401b038111156120d857600080fd5b6120e487828801611ff4565b95989497509550505050565b60008060006040848603121561210557600080fd5b83356121108161207d565b925060208401356001600160401b0381111561212b57600080fd5b61213786828701611ff4565b9497909650939450505050565b60005b8381101561215f578181015183820152602001612147565b50506000910152565b60008151808452612180816020860160208601612144565b601f01601f19169290920160200192915050565b6020815260006121a76020830184612168565b9392505050565b600080600080600080600080600060c08a8c0312156121cc57600080fd5b89356121d78161207d565b985060208a01356121e78161207d565b975060408a0135965060608a01356001600160401b038082111561220a57600080fd5b6122168d838e01611ff4565b909850965060808c013591508082111561222f57600080fd5b61223b8d838e01611ff4565b909650945060a08c013591508082111561225457600080fd5b506122618c828d01611ff4565b915080935050809150509295985092959850929598565b60006020828403121561228a57600080fd5b5035919050565b600080600080600080600060a0888a0312156122ac57600080fd5b87356122b78161207d565b965060208801356122c78161207d565b95506040880135945060608801356001600160401b03808211156122ea57600080fd5b6122f68b838c01611ff4565b909650945060808a013591508082111561230f57600080fd5b5061231c8a828b01611ff4565b989b979a50959850939692959293505050565b6000806000806040858703121561234557600080fd5b84356001600160401b038082111561235c57600080fd5b61236888838901611ff4565b9096509450602087013591508082111561238157600080fd5b506120e487828801611ff4565b6000602082840312156123a057600080fd5b81356121a78161207d565b6000806000604084860312156123c057600080fd5b83356007811061211057600080fd5b6000806000806000606086880312156123e757600080fd5b85356123f28161207d565b945060208601356001600160401b038082111561240e57600080fd5b61241a89838a01611ff4565b9096509450604088013591508082111561243357600080fd5b5061244088828901611ff4565b969995985093965092949392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600061248e602083018486612451565b949350505050565b6000602082840312156124a857600080fd5b815180151581146121a757600080fd5b60208082526023908201527f41677265656d656e744d6f636b3a20637478206e6f742076616c6964206265666040820152626f726560e81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038416815260606020820181905260009061253590830185612168565b82810360408401526125478185612168565b9695505050505050565b60405161016081016001600160401b0381118282101715612574576125746124fb565b60405290565b60006001600160401b0380841115612594576125946124fb565b604051601f8501601f19908116603f011681019082821181831017156125bc576125bc6124fb565b816040528093508581528686860111156125d557600080fd5b6125e3866020830187612144565b5050509392505050565b600082601f8301126125fe57600080fd5b6121a78383516020850161257a565b60006020828403121561261f57600080fd5b81516001600160401b0381111561263557600080fd5b61248e848285016125ed565b6001600160a01b0386811682528516602082015260408101849052608060608201819052600090610d929083018486612451565b6001600160a01b038516815260606020820181905260009061269990830186612168565b8281036040840152610d92818587612451565b634e487b7160e01b600052600160045260246000fd5b60018060a01b03841681528260208201526060604082015260006117606060830184612168565b6001600160a01b038516815260806020820181905260009061270d90830186612168565b828103604084015261271f8186612168565b90508281036060840152610d928185612168565b6000806040838503121561274657600080fd5b82516001600160401b038082111561275d57600080fd5b612769868387016125ed565b9350602085015191508082111561277f57600080fd5b5061278c858286016125ed565b9150509250929050565b6040815260006127aa604083018587612451565b82810360208401526125478185612168565b6001600160a01b038581168252841660208201526060604082018190526000906125479083018486612451565b805160ff811681146127fa57600080fd5b919050565b80516127fa8161207d565b80516001600160e01b0319811681146127fa57600080fd5b60006020828403121561283457600080fd5b81516001600160401b038082111561284b57600080fd5b90830190610160828603121561286057600080fd5b612868612551565b612871836127e9565b815261287f602084016127e9565b60208201526040830151604082015261289a606084016127ff565b60608201526128ab6080840161280a565b608082015260a0830151828111156128c257600080fd5b6128ce878286016125ed565b60a08301525060c083015160c082015260e083015160e08201526101009150818301518282015261012091506129058284016127ff565b8282015261014091506129198284016127ff565b91810191909152949350505050565b60ff93841681529190921660208201526001600160e01b0319909116604082015260600190565b634e487b7160e01b600052602160045260246000fd5b600181811c9082168061297957607f821691505b602082108103611e2d57634e487b7160e01b600052602260045260246000fd5b601f821115611fef576000816000526020600020601f850160051c810160208610156129c25750805b601f850160051c820191505b818110156129e1578281556001016129ce565b505050505050565b6001600160401b03831115612a0057612a006124fb565b612a1483612a0e8354612965565b83612999565b6000601f841160018114612a485760008515612a305750838201355b600019600387901b1c1916600186901b1783556105e0565b600083815260209020601f19861690835b82811015612a795786850135825560209485019460019092019101612a59565b5086821015612a965760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6001600160a01b0386168152608060208201819052600090612acc90830187612168565b8281036040840152612ade8187612168565b90508281036060840152612af3818587612451565b98975050505050505050565b6001600160a01b038316815260406020820181905260009061248e90830184612168565b600060208284031215612b3557600080fd5b81516001600160401b03811115612b4b57600080fd5b8201601f81018413612b5c57600080fd5b61248e8482516020840161257a565b600060208284031215612b7d57600080fd5b5051919050565b81810381811115612ba557634e487b7160e01b600052601160045260246000fd5b9291505056fea26469706673582212208c28b9940354895107599eefef68e0e4fd9bf27e50de3ed227784b8489e7594464736f6c63430008170033608060405234801561001057600080fd5b50610627806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806314379f4a1461003b5780634c79edd414610050575b600080fd5b61004e61004936600461027e565b610063565b005b61004e61005e3660046102f1565b610148565b6040805160008152602081019091526001600160a01b0386811691634329d29391879190821690638e6b2749906100a19030908a90604481016103bc565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b179052815160008152908101918290529286901b6001600160e01b03191690526100f893925090878760248301610415565b6000604051808303816000875af1158015610117573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261013f91908101906104f4565b50505050505050565b6040805160008152602081019091526001600160a01b038581169163ba48b5f89186919082169063e772ecc1906101829060448101610558565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526101cf9392509087908790600401610572565b6000604051808303816000875af11580156101ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021691908101906105b4565b5050505050565b6001600160a01b038116811461023257600080fd5b50565b60008083601f84011261024757600080fd5b50813567ffffffffffffffff81111561025f57600080fd5b60208301915083602082850101111561027757600080fd5b9250929050565b60008060008060006080868803121561029657600080fd5b85356102a18161021d565b945060208601356102b18161021d565b935060408601359250606086013567ffffffffffffffff8111156102d457600080fd5b6102e088828901610235565b969995985093965092949392505050565b6000806000806060858703121561030757600080fd5b84356103128161021d565b935060208501356103228161021d565b9250604085013567ffffffffffffffff81111561033e57600080fd5b61034a87828801610235565b95989497509550505050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561038757818101518382015260200161036f565b50506000910152565b600081518084526103a881602086016020860161036c565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006103e36060830184610390565b95945050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038616815260806020820181905260009061043990830187610390565b828103604084015261044b8187610390565b905082810360608401526104608185876103ec565b98975050505050505050565b600082601f83011261047d57600080fd5b815167ffffffffffffffff8082111561049857610498610356565b604051601f8301601f19908116603f011681019082821181831017156104c0576104c0610356565b816040528381528660208588010111156104d957600080fd5b6104ea84602083016020890161036c565b9695505050505050565b6000806040838503121561050757600080fd5b825167ffffffffffffffff8082111561051f57600080fd5b61052b8683870161046c565b9350602085015191508082111561054157600080fd5b5061054e8582860161046c565b9150509250929050565b60208152600061056b6020830184610390565b9392505050565b6001600160a01b038516815260606020820181905260009061059690830186610390565b82810360408401526105a98185876103ec565b979650505050505050565b6000602082840312156105c657600080fd5b815167ffffffffffffffff8111156105dd57600080fd5b6105e98482850161046c565b94935050505056fea2646970667358221220191c51304b64942cfd9ee17ec7fd3427b143a3c39056aff81d1e41ddb697db1064736f6c63430008170033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "contract ISuperfluid";
@@ -705,7 +705,7 @@ const _abi = [
705
705
  type: "function",
706
706
  },
707
707
  ];
708
- const _bytecode = "0x60806040523480156200001157600080fd5b506040516200341f3803806200341f833981016040819052620000349162000190565b600080546001600160a01b0319166001600160a01b03851690811782556040805163bd1c448b60e01b815260048101869052602481019190915260448101929092529063bd1c448b90606401600060405180830381600087803b1580156200009b57600080fd5b505af1158015620000b0573d6000803e3d6000fd5b5050505080156200012c57600080546040805163bd1c448b60e01b815260048101869052602481019190915260448101929092526001600160a01b03169063bd1c448b90606401600060405180830381600087803b1580156200011257600080fd5b505af115801562000127573d6000803e3d6000fd5b505050505b6040516200013a9062000182565b604051809103906000f08015801562000157573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905550620001e7915050565b6106478062002dd883390190565b600080600060608486031215620001a657600080fd5b83516001600160a01b0381168114620001be57600080fd5b6020850151604086015191945092508015158114620001dc57600080fd5b809150509250925092565b612be180620001f76000396000f3fe6080604052600436106101b75760003560e01c80636affc782116100ec578063b88bd14f1161008a578063dc1ce9cb11610064578063dc1ce9cb14610454578063e772ecc114610467578063ecdccfd914610487578063fe5f2b9b146104a757600080fd5b8063b88bd14f14610414578063bc90ea3c14610434578063d86ed3e51461025457600080fd5b8063884d1f40116100c6578063884d1f401461029457806390d4b672146103b4578063a6b71066146103d4578063b88a2483146103f457600080fd5b80636affc78214610354578063772ce847146103745780637a7675a01461039457600080fd5b80633b790ac81161015957806357121e0c1161013357806357121e0c146102f457806358b0d33d146103145780635f9e7d7714610294578063602e48cd1461033457600080fd5b80633b790ac8146102b45780633fc3b0f7146102d457806353c11f991461025457600080fd5b80630bfe0f20116101955780630bfe0f201461021e578063230dbd291461025457806328fd0b471461027457806330d9c9151461029457600080fd5b80630769a69b146101bc57806308c95b5d146101de5780630a00b52d146101fe575b600080fd5b3480156101c857600080fd5b506101dc6101d736600461203c565b6104c7565b005b3480156101ea57600080fd5b506101dc6101f9366004612095565b6105e7565b34801561020a57600080fd5b506101dc61021936600461203c565b6106e3565b34801561022a57600080fd5b5061023e6102393660046120f0565b610844565b60405161024b9190612194565b60405180910390f35b34801561026057600080fd5b5061023e61026f3660046121ae565b6109cc565b34801561028057600080fd5b506101dc61028f366004612278565b610aa4565b3480156102a057600080fd5b5061023e6102af366004612291565b610aff565b3480156102c057600080fd5b506101dc6102cf36600461203c565b610b9e565b3480156102e057600080fd5b5061023e6102ef36600461232f565b610c24565b34801561030057600080fd5b506101dc61030f36600461238e565b610d9d565b34801561032057600080fd5b506101dc61032f36600461203c565b610dcf565b34801561034057600080fd5b5061023e61034f3660046120f0565b610ec7565b34801561036057600080fd5b5061023e61036f36600461203c565b61106d565b34801561038057600080fd5b506101dc61038f3660046123ab565b61111b565b3480156103a057600080fd5b506101dc6103af36600461203c565b61114c565b3480156103c057600080fd5b5061023e6103cf3660046123cf565b6111d2565b3480156103e057600080fd5b5061023e6103ef366004612095565b611346565b34801561040057600080fd5b506101dc61040f36600461203c565b6114b9565b34801561042057600080fd5b506101dc61042f36600461203c565b61157d565b34801561044057600080fd5b5061023e61044f36600461203c565b61160b565b61023e61046236600461203c565b611769565b34801561047357600080fd5b5061023e61048236600461203c565b6117a9565b34801561049357600080fd5b5061023e6104a236600461232f565b611929565b3480156104b357600080fd5b506101dc6104c236600461232f565b611a3b565b604051632fd0a1cd60e21b815282908290339063bf428734906104f0908590859060040161247a565b602060405180830381865afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190612496565b6105565760405162461bcd60e51b815260040161054d906124b8565b60405180910390fd5b600080546040805183815260208101848152818301928390526339255d5b60e01b9092526001600160a01b03909216926339255d5b926105999260448201612511565b6000604051808303816000875af11580156105b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105e0919081019061260d565b5050505050565b604051632fd0a1cd60e21b815282908290339063bf42873490610610908590859060040161247a565b602060405180830381865afa15801561062d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106519190612496565b61066d5760405162461bcd60e51b815260040161054d906124b8565b600154600054604051630a1bcfa560e11b81526001600160a01b03928316926314379f4a926106a9929116908a908a908a908a90600401612641565b600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b50505050505050505050565b604051632fd0a1cd60e21b815282908290339063bf4287349061070c908590859060040161247a565b602060405180830381865afa158015610729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074d9190612496565b6107695760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f89030908190636affc782906107a19060448101612194565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526107ee9392509089908990600401612675565b6000604051808303816000875af115801561080d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610835919081019061260d565b5061083e6126ac565b50505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490610870908590859060040161247a565b602060405180830381865afa15801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b19190612496565b6108cd5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b0390811691634329d29391899190821690638e6b27499061090e903090602a90604481016126c2565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b1790528151600081529081018252602a8183015281518082038301815260608201928390529387901b6001600160e01b03191690915261097a9493509091606482016126e9565b6000604051808303816000875af1158015610999573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109c19190810190612733565b509695505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf428734906109f8908590859060040161247a565b602060405180830381865afa158015610a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a399190612496565b610a555760405162461bcd60e51b815260040161054d906124b8565b610a9485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611add92505050565b9c9b505050505050505050505050565b6000546040516315a722b960e31b8152600481018390526001600160a01b039091169063ad3915c8906024015b600060405180830381600087803b158015610aeb57600080fd5b505af11580156105e0573d6000803e3d6000fd5b604051632fd0a1cd60e21b815260609083908390339063bf42873490610b2b908590859060040161247a565b602060405180830381865afa158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c9190612496565b610b885760405162461bcd60e51b815260040161054d906124b8565b610b90611e33565b9a9950505050505050505050565b604051632fd0a1cd60e21b815282908290339063bf42873490610bc7908590859060040161247a565b602060405180830381865afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c089190612496565b61083e5760405162461bcd60e51b815260040161054d906124b8565b604051632fd0a1cd60e21b815260609083908390339063bf42873490610c50908590859060040161247a565b602060405180830381865afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c919190612496565b610cad5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f8903090819063fe5f2b9b90610ce9908d908d9060448101612796565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b1790528151602a8183015282518082039092018252808301928390529387901b6001600160e01b031916909152610d4b9493509091604401612511565b6000604051808303816000875af1158015610d6a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d92919081019061260d565b979650505050505050565b6000546040516315c4878360e21b81526001600160a01b038381166004830152909116906357121e0c90602401610ad1565b604051632fd0a1cd60e21b815282908290339063bf42873490610df8908590859060040161247a565b602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e399190612496565b610e555760405162461bcd60e51b815260040161054d906124b8565b60015460005460405163131e7b7560e21b81526001600160a01b0392831692634c79edd492610e8f929116903090899089906004016127bc565b600060405180830381600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b5050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490610ef3908590859060040161247a565b602060405180830381865afa158015610f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f349190612496565b610f505760405162461bcd60e51b815260040161054d906124b8565b604051631fb6491d60e11b81526000903390633f6c923a90610f78908990899060040161247a565b600060405180830381865afa158015610f95573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fbd9190810190612822565b9050866001600160a01b031681606001516001600160a01b031614610fe457610fe46126ac565b7f5d497a0f141d2596bd23602421f1cc06c3b9ad6c29b51997cf62ca3f84754e1381600001518260200151836080015160405161102393929190612928565b60405180910390a185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929a9950505050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611099908590859060040161247a565b602060405180830381865afa1580156110b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110da9190612496565b6110f65760405162461bcd60e51b815260040161054d906124b8565b60408051602a6020820152016040516020818303038152906040529250505092915050565b6002805484919060ff1916600183600681111561113a5761113a61294f565b0217905550600361083e8284836129e9565b604051632fd0a1cd60e21b815282908290339063bf42873490611175908590859060040161247a565b602060405180830381865afa158015611192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b69190612496565b6101b75760405162461bcd60e51b815260040161054d906124b8565b604051632fd0a1cd60e21b815260609083908390339063bf428734906111fe908590859060040161247a565b602060405180830381865afa15801561121b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123f9190612496565b61125b5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b0390811691634329d293918b919082169063edf02c4e9061129b908d908d9060448101612796565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b179052815160008152908101918290529286901b6001600160e01b03191690526112f2939250908a8a60248301612aa8565b6000604051808303816000875af1158015611311573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113399190810190612733565b5098975050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611372908590859060040161247a565b602060405180830381865afa15801561138f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b39190612496565b6113cf5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b0390811691634329d293918a9190821690638e6b27499061140f9030908d90604481016126c2565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b179052815160008152908101918290529286901b6001600160e01b0319169052611466939250908a8a60248301612aa8565b6000604051808303816000875af1158015611485573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114ad9190810190612733565b50979650505050505050565b604051632fd0a1cd60e21b815282908290339063bf428734906114e2908590859060040161247a565b602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190612496565b61153f5760405162461bcd60e51b815260040161054d906124b8565b60008054604080518381526020810191829052631e855cf360e01b9091526001600160a01b0390911691631e855cf391610599919060248101612aff565b604051632fd0a1cd60e21b815282908290339063bf428734906115a6908590859060040161247a565b602060405180830381865afa1580156115c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e79190612496565b6116035760405162461bcd60e51b815260040161054d906124b8565b61083e6126ac565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611637908590859060040161247a565b602060405180830381865afa158015611654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116789190612496565b6116945760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f8903090819063e772ecc1906116cc9060448101612194565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252611719939250908a908a90600401612675565b6000604051808303816000875af1158015611738573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611760919081019061260d565b95945050505050565b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf428734906117d5908590859060040161247a565b602060405180830381865afa1580156117f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118169190612496565b6118325760405162461bcd60e51b815260040161054d906124b8565b604051631fb6491d60e11b81526000903390633f6c923a9061185a908990899060040161247a565b600060405180830381865afa158015611877573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261189f9190810190612822565b90507f5d497a0f141d2596bd23602421f1cc06c3b9ad6c29b51997cf62ca3f84754e138160000151826020015183608001516040516118e093929190612928565b60405180910390a185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611955908590859060040161247a565b602060405180830381865afa158015611972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119969190612496565b6119b25760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f8903090819063fe5f2b9b906119ee908d908d9060448101612796565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610d4b939250908a908a90600401612675565b604051632fd0a1cd60e21b815282908290339063bf42873490611a64908590859060040161247a565b602060405180830381865afa158015611a81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa59190612496565b611ac15760405162461bcd60e51b815260040161054d906124b8565b858560405162461bcd60e51b815260040161054d92919061247a565b604051631fb6491d60e11b81526060906000903390633f6c923a90611b06908690600401612194565b600060405180830381865afa158015611b23573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b4b9190810190612822565b9050600060025460ff166006811115611b6657611b6661294f565b03611bb9577f5d497a0f141d2596bd23602421f1cc06c3b9ad6c29b51997cf62ca3f84754e13816000015182602001518360800151604051611baa93929190612928565b60405180910390a15090919050565b600160025460ff166006811115611bd257611bd261294f565b03611be457611bdf6126ac565b611e2d565b6002805460ff166006811115611bfc57611bfc61294f565b03611c0657600080fd5b600360025460ff166006811115611c1f57611c1f61294f565b03611cdb5760038054611c3190612965565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5d90612965565b8015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b5050505050806020019051810190611cc29190612b23565b60405162461bcd60e51b815260040161054d9190612194565b600460025460ff166006811115611cf457611cf461294f565b03611d2e57602a5b6040519080825280601f01601f191660200182016040528015611d26576020820181803683370190505b509392505050565b600560025460ff166006811115611d4757611d4761294f565b03611e0057600060026001018054611d5e90612965565b80601f0160208091040260200160405190810160405280929190818152602001828054611d8a90612965565b8015611dd75780601f10611dac57610100808354040283529160200191611dd7565b820191906000526020600020905b815481529060010190602001808311611dba57829003601f168201915b5050505050806020019051810190611def9190612b6b565b9050611dfa81611fc0565b50611e2d565b600660025460ff166006811115611e1957611e1961294f565b03611e25576000611cfc565b611e2d6126ac565b50919050565b6060600060025460ff166006811115611e4e57611e4e61294f565b03611e72575060408051808201909152600481526304e6f6f760e41b602082015290565b600160025460ff166006811115611e8b57611e8b61294f565b03611e9b57611e986126ac565b90565b6002805460ff166006811115611eb357611eb361294f565b03611ebd57600080fd5b600360025460ff166006811115611ed657611ed661294f565b03611ee85760038054611c3190612965565b600560025460ff166006811115611f0157611f0161294f565b03611fb857600060026001018054611f1890612965565b80601f0160208091040260200160405190810160405280929190818152602001828054611f4490612965565b8015611f915780601f10611f6657610100808354040283529160200191611f91565b820191906000526020600020905b815481529060010190602001808311611f7457829003601f168201915b5050505050806020019051810190611fa99190612b6b565b9050611fb481611fc0565b5090565b611e986126ac565b60005a905060005a90505b611fd76103e884612b84565b611fe18284612b84565b1015611fef575a9050611fcb565b505050565b60008083601f84011261200657600080fd5b5081356001600160401b0381111561201d57600080fd5b60208301915083602082850101111561203557600080fd5b9250929050565b6000806020838503121561204f57600080fd5b82356001600160401b0381111561206557600080fd5b61207185828601611ff4565b90969095509350505050565b6001600160a01b038116811461209257600080fd5b50565b600080600080606085870312156120ab57600080fd5b84356120b68161207d565b93506020850135925060408501356001600160401b038111156120d857600080fd5b6120e487828801611ff4565b95989497509550505050565b60008060006040848603121561210557600080fd5b83356121108161207d565b925060208401356001600160401b0381111561212b57600080fd5b61213786828701611ff4565b9497909650939450505050565b60005b8381101561215f578181015183820152602001612147565b50506000910152565b60008151808452612180816020860160208601612144565b601f01601f19169290920160200192915050565b6020815260006121a76020830184612168565b9392505050565b600080600080600080600080600060c08a8c0312156121cc57600080fd5b89356121d78161207d565b985060208a01356121e78161207d565b975060408a0135965060608a01356001600160401b038082111561220a57600080fd5b6122168d838e01611ff4565b909850965060808c013591508082111561222f57600080fd5b61223b8d838e01611ff4565b909650945060a08c013591508082111561225457600080fd5b506122618c828d01611ff4565b915080935050809150509295985092959850929598565b60006020828403121561228a57600080fd5b5035919050565b600080600080600080600060a0888a0312156122ac57600080fd5b87356122b78161207d565b965060208801356122c78161207d565b95506040880135945060608801356001600160401b03808211156122ea57600080fd5b6122f68b838c01611ff4565b909650945060808a013591508082111561230f57600080fd5b5061231c8a828b01611ff4565b989b979a50959850939692959293505050565b6000806000806040858703121561234557600080fd5b84356001600160401b038082111561235c57600080fd5b61236888838901611ff4565b9096509450602087013591508082111561238157600080fd5b506120e487828801611ff4565b6000602082840312156123a057600080fd5b81356121a78161207d565b6000806000604084860312156123c057600080fd5b83356007811061211057600080fd5b6000806000806000606086880312156123e757600080fd5b85356123f28161207d565b945060208601356001600160401b038082111561240e57600080fd5b61241a89838a01611ff4565b9096509450604088013591508082111561243357600080fd5b5061244088828901611ff4565b969995985093965092949392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600061248e602083018486612451565b949350505050565b6000602082840312156124a857600080fd5b815180151581146121a757600080fd5b60208082526023908201527f41677265656d656e744d6f636b3a20637478206e6f742076616c6964206265666040820152626f726560e81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038416815260606020820181905260009061253590830185612168565b82810360408401526125478185612168565b9695505050505050565b60405161016081016001600160401b0381118282101715612574576125746124fb565b60405290565b60006001600160401b0380841115612594576125946124fb565b604051601f8501601f19908116603f011681019082821181831017156125bc576125bc6124fb565b816040528093508581528686860111156125d557600080fd5b6125e3866020830187612144565b5050509392505050565b600082601f8301126125fe57600080fd5b6121a78383516020850161257a565b60006020828403121561261f57600080fd5b81516001600160401b0381111561263557600080fd5b61248e848285016125ed565b6001600160a01b0386811682528516602082015260408101849052608060608201819052600090610d929083018486612451565b6001600160a01b038516815260606020820181905260009061269990830186612168565b8281036040840152610d92818587612451565b634e487b7160e01b600052600160045260246000fd5b60018060a01b03841681528260208201526060604082015260006117606060830184612168565b6001600160a01b038516815260806020820181905260009061270d90830186612168565b828103604084015261271f8186612168565b90508281036060840152610d928185612168565b6000806040838503121561274657600080fd5b82516001600160401b038082111561275d57600080fd5b612769868387016125ed565b9350602085015191508082111561277f57600080fd5b5061278c858286016125ed565b9150509250929050565b6040815260006127aa604083018587612451565b82810360208401526125478185612168565b6001600160a01b038581168252841660208201526060604082018190526000906125479083018486612451565b805160ff811681146127fa57600080fd5b919050565b80516127fa8161207d565b80516001600160e01b0319811681146127fa57600080fd5b60006020828403121561283457600080fd5b81516001600160401b038082111561284b57600080fd5b90830190610160828603121561286057600080fd5b612868612551565b612871836127e9565b815261287f602084016127e9565b60208201526040830151604082015261289a606084016127ff565b60608201526128ab6080840161280a565b608082015260a0830151828111156128c257600080fd5b6128ce878286016125ed565b60a08301525060c083015160c082015260e083015160e08201526101009150818301518282015261012091506129058284016127ff565b8282015261014091506129198284016127ff565b91810191909152949350505050565b60ff93841681529190921660208201526001600160e01b0319909116604082015260600190565b634e487b7160e01b600052602160045260246000fd5b600181811c9082168061297957607f821691505b602082108103611e2d57634e487b7160e01b600052602260045260246000fd5b601f821115611fef576000816000526020600020601f850160051c810160208610156129c25750805b601f850160051c820191505b818110156129e1578281556001016129ce565b505050505050565b6001600160401b03831115612a0057612a006124fb565b612a1483612a0e8354612965565b83612999565b6000601f841160018114612a485760008515612a305750838201355b600019600387901b1c1916600186901b1783556105e0565b600083815260209020601f19861690835b82811015612a795786850135825560209485019460019092019101612a59565b5086821015612a965760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6001600160a01b0386168152608060208201819052600090612acc90830187612168565b8281036040840152612ade8187612168565b90508281036060840152612af3818587612451565b98975050505050505050565b6001600160a01b038316815260406020820181905260009061248e90830184612168565b600060208284031215612b3557600080fd5b81516001600160401b03811115612b4b57600080fd5b8201601f81018413612b5c57600080fd5b61248e8482516020840161257a565b600060208284031215612b7d57600080fd5b5051919050565b81810381811115612ba557634e487b7160e01b600052601160045260246000fd5b9291505056fea2646970667358221220f395bae9fb8547bbdb4222e9d2624b2dbdf56f1a033961e2c50edab800eeb69564736f6c63430008170033608060405234801561001057600080fd5b50610627806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806314379f4a1461003b5780634c79edd414610050575b600080fd5b61004e61004936600461027e565b610063565b005b61004e61005e3660046102f1565b610148565b6040805160008152602081019091526001600160a01b0386811691634329d29391879190821690638e6b2749906100a19030908a90604481016103bc565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b179052815160008152908101918290529286901b6001600160e01b03191690526100f893925090878760248301610415565b6000604051808303816000875af1158015610117573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261013f91908101906104f4565b50505050505050565b6040805160008152602081019091526001600160a01b038581169163ba48b5f89186919082169063e772ecc1906101829060448101610558565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526101cf9392509087908790600401610572565b6000604051808303816000875af11580156101ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021691908101906105b4565b5050505050565b6001600160a01b038116811461023257600080fd5b50565b60008083601f84011261024757600080fd5b50813567ffffffffffffffff81111561025f57600080fd5b60208301915083602082850101111561027757600080fd5b9250929050565b60008060008060006080868803121561029657600080fd5b85356102a18161021d565b945060208601356102b18161021d565b935060408601359250606086013567ffffffffffffffff8111156102d457600080fd5b6102e088828901610235565b969995985093965092949392505050565b6000806000806060858703121561030757600080fd5b84356103128161021d565b935060208501356103228161021d565b9250604085013567ffffffffffffffff81111561033e57600080fd5b61034a87828801610235565b95989497509550505050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561038757818101518382015260200161036f565b50506000910152565b600081518084526103a881602086016020860161036c565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006103e36060830184610390565b95945050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038616815260806020820181905260009061043990830187610390565b828103604084015261044b8187610390565b905082810360608401526104608185876103ec565b98975050505050505050565b600082601f83011261047d57600080fd5b815167ffffffffffffffff8082111561049857610498610356565b604051601f8301601f19908116603f011681019082821181831017156104c0576104c0610356565b816040528381528660208588010111156104d957600080fd5b6104ea84602083016020890161036c565b9695505050505050565b6000806040838503121561050757600080fd5b825167ffffffffffffffff8082111561051f57600080fd5b61052b8683870161046c565b9350602085015191508082111561054157600080fd5b5061054e8582860161046c565b9150509250929050565b60208152600061056b6020830184610390565b9392505050565b6001600160a01b038516815260606020820181905260009061059690830186610390565b82810360408401526105a98185876103ec565b979650505050505050565b6000602082840312156105c657600080fd5b815167ffffffffffffffff8111156105dd57600080fd5b6105e98482850161046c565b94935050505056fea2646970667358221220aa517cf95f47675a4b597f15bc6487e47e2a6584d4efb8196d4260e3f25cd19b64736f6c63430008170033";
708
+ const _bytecode = "0x60806040523480156200001157600080fd5b506040516200341f3803806200341f833981016040819052620000349162000190565b600080546001600160a01b0319166001600160a01b03851690811782556040805163bd1c448b60e01b815260048101869052602481019190915260448101929092529063bd1c448b90606401600060405180830381600087803b1580156200009b57600080fd5b505af1158015620000b0573d6000803e3d6000fd5b5050505080156200012c57600080546040805163bd1c448b60e01b815260048101869052602481019190915260448101929092526001600160a01b03169063bd1c448b90606401600060405180830381600087803b1580156200011257600080fd5b505af115801562000127573d6000803e3d6000fd5b505050505b6040516200013a9062000182565b604051809103906000f08015801562000157573d6000803e3d6000fd5b50600180546001600160a01b0319166001600160a01b039290921691909117905550620001e7915050565b6106478062002dd883390190565b600080600060608486031215620001a657600080fd5b83516001600160a01b0381168114620001be57600080fd5b6020850151604086015191945092508015158114620001dc57600080fd5b809150509250925092565b612be180620001f76000396000f3fe6080604052600436106101b75760003560e01c80636affc782116100ec578063b88bd14f1161008a578063dc1ce9cb11610064578063dc1ce9cb14610454578063e772ecc114610467578063ecdccfd914610487578063fe5f2b9b146104a757600080fd5b8063b88bd14f14610414578063bc90ea3c14610434578063d86ed3e51461025457600080fd5b8063884d1f40116100c6578063884d1f401461029457806390d4b672146103b4578063a6b71066146103d4578063b88a2483146103f457600080fd5b80636affc78214610354578063772ce847146103745780637a7675a01461039457600080fd5b80633b790ac81161015957806357121e0c1161013357806357121e0c146102f457806358b0d33d146103145780635f9e7d7714610294578063602e48cd1461033457600080fd5b80633b790ac8146102b45780633fc3b0f7146102d457806353c11f991461025457600080fd5b80630bfe0f20116101955780630bfe0f201461021e578063230dbd291461025457806328fd0b471461027457806330d9c9151461029457600080fd5b80630769a69b146101bc57806308c95b5d146101de5780630a00b52d146101fe575b600080fd5b3480156101c857600080fd5b506101dc6101d736600461203c565b6104c7565b005b3480156101ea57600080fd5b506101dc6101f9366004612095565b6105e7565b34801561020a57600080fd5b506101dc61021936600461203c565b6106e3565b34801561022a57600080fd5b5061023e6102393660046120f0565b610844565b60405161024b9190612194565b60405180910390f35b34801561026057600080fd5b5061023e61026f3660046121ae565b6109cc565b34801561028057600080fd5b506101dc61028f366004612278565b610aa4565b3480156102a057600080fd5b5061023e6102af366004612291565b610aff565b3480156102c057600080fd5b506101dc6102cf36600461203c565b610b9e565b3480156102e057600080fd5b5061023e6102ef36600461232f565b610c24565b34801561030057600080fd5b506101dc61030f36600461238e565b610d9d565b34801561032057600080fd5b506101dc61032f36600461203c565b610dcf565b34801561034057600080fd5b5061023e61034f3660046120f0565b610ec7565b34801561036057600080fd5b5061023e61036f36600461203c565b61106d565b34801561038057600080fd5b506101dc61038f3660046123ab565b61111b565b3480156103a057600080fd5b506101dc6103af36600461203c565b61114c565b3480156103c057600080fd5b5061023e6103cf3660046123cf565b6111d2565b3480156103e057600080fd5b5061023e6103ef366004612095565b611346565b34801561040057600080fd5b506101dc61040f36600461203c565b6114b9565b34801561042057600080fd5b506101dc61042f36600461203c565b61157d565b34801561044057600080fd5b5061023e61044f36600461203c565b61160b565b61023e61046236600461203c565b611769565b34801561047357600080fd5b5061023e61048236600461203c565b6117a9565b34801561049357600080fd5b5061023e6104a236600461232f565b611929565b3480156104b357600080fd5b506101dc6104c236600461232f565b611a3b565b604051632fd0a1cd60e21b815282908290339063bf428734906104f0908590859060040161247a565b602060405180830381865afa15801561050d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105319190612496565b6105565760405162461bcd60e51b815260040161054d906124b8565b60405180910390fd5b600080546040805183815260208101848152818301928390526339255d5b60e01b9092526001600160a01b03909216926339255d5b926105999260448201612511565b6000604051808303816000875af11580156105b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105e0919081019061260d565b5050505050565b604051632fd0a1cd60e21b815282908290339063bf42873490610610908590859060040161247a565b602060405180830381865afa15801561062d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106519190612496565b61066d5760405162461bcd60e51b815260040161054d906124b8565b600154600054604051630a1bcfa560e11b81526001600160a01b03928316926314379f4a926106a9929116908a908a908a908a90600401612641565b600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b50505050505050505050565b604051632fd0a1cd60e21b815282908290339063bf4287349061070c908590859060040161247a565b602060405180830381865afa158015610729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074d9190612496565b6107695760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f89030908190636affc782906107a19060448101612194565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526107ee9392509089908990600401612675565b6000604051808303816000875af115801561080d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610835919081019061260d565b5061083e6126ac565b50505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490610870908590859060040161247a565b602060405180830381865afa15801561088d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b19190612496565b6108cd5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b0390811691634329d29391899190821690638e6b27499061090e903090602a90604481016126c2565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b1790528151600081529081018252602a8183015281518082038301815260608201928390529387901b6001600160e01b03191690915261097a9493509091606482016126e9565b6000604051808303816000875af1158015610999573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109c19190810190612733565b509695505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf428734906109f8908590859060040161247a565b602060405180830381865afa158015610a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a399190612496565b610a555760405162461bcd60e51b815260040161054d906124b8565b610a9485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611add92505050565b9c9b505050505050505050505050565b6000546040516315a722b960e31b8152600481018390526001600160a01b039091169063ad3915c8906024015b600060405180830381600087803b158015610aeb57600080fd5b505af11580156105e0573d6000803e3d6000fd5b604051632fd0a1cd60e21b815260609083908390339063bf42873490610b2b908590859060040161247a565b602060405180830381865afa158015610b48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6c9190612496565b610b885760405162461bcd60e51b815260040161054d906124b8565b610b90611e33565b9a9950505050505050505050565b604051632fd0a1cd60e21b815282908290339063bf42873490610bc7908590859060040161247a565b602060405180830381865afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c089190612496565b61083e5760405162461bcd60e51b815260040161054d906124b8565b604051632fd0a1cd60e21b815260609083908390339063bf42873490610c50908590859060040161247a565b602060405180830381865afa158015610c6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c919190612496565b610cad5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f8903090819063fe5f2b9b90610ce9908d908d9060448101612796565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b1790528151602a8183015282518082039092018252808301928390529387901b6001600160e01b031916909152610d4b9493509091604401612511565b6000604051808303816000875af1158015610d6a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d92919081019061260d565b979650505050505050565b6000546040516315c4878360e21b81526001600160a01b038381166004830152909116906357121e0c90602401610ad1565b604051632fd0a1cd60e21b815282908290339063bf42873490610df8908590859060040161247a565b602060405180830381865afa158015610e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e399190612496565b610e555760405162461bcd60e51b815260040161054d906124b8565b60015460005460405163131e7b7560e21b81526001600160a01b0392831692634c79edd492610e8f929116903090899089906004016127bc565b600060405180830381600087803b158015610ea957600080fd5b505af1158015610ebd573d6000803e3d6000fd5b5050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490610ef3908590859060040161247a565b602060405180830381865afa158015610f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f349190612496565b610f505760405162461bcd60e51b815260040161054d906124b8565b604051631fb6491d60e11b81526000903390633f6c923a90610f78908990899060040161247a565b600060405180830381865afa158015610f95573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fbd9190810190612822565b9050866001600160a01b031681606001516001600160a01b031614610fe457610fe46126ac565b7f5d497a0f141d2596bd23602421f1cc06c3b9ad6c29b51997cf62ca3f84754e1381600001518260200151836080015160405161102393929190612928565b60405180910390a185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929a9950505050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611099908590859060040161247a565b602060405180830381865afa1580156110b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110da9190612496565b6110f65760405162461bcd60e51b815260040161054d906124b8565b60408051602a6020820152016040516020818303038152906040529250505092915050565b6002805484919060ff1916600183600681111561113a5761113a61294f565b0217905550600361083e8284836129e9565b604051632fd0a1cd60e21b815282908290339063bf42873490611175908590859060040161247a565b602060405180830381865afa158015611192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b69190612496565b6101b75760405162461bcd60e51b815260040161054d906124b8565b604051632fd0a1cd60e21b815260609083908390339063bf428734906111fe908590859060040161247a565b602060405180830381865afa15801561121b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123f9190612496565b61125b5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b0390811691634329d293918b919082169063edf02c4e9061129b908d908d9060448101612796565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b179052815160008152908101918290529286901b6001600160e01b03191690526112f2939250908a8a60248301612aa8565b6000604051808303816000875af1158015611311573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113399190810190612733565b5098975050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611372908590859060040161247a565b602060405180830381865afa15801561138f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b39190612496565b6113cf5760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b0390811691634329d293918a9190821690638e6b27499061140f9030908d90604481016126c2565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b179052815160008152908101918290529286901b6001600160e01b0319169052611466939250908a8a60248301612aa8565b6000604051808303816000875af1158015611485573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114ad9190810190612733565b50979650505050505050565b604051632fd0a1cd60e21b815282908290339063bf428734906114e2908590859060040161247a565b602060405180830381865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115239190612496565b61153f5760405162461bcd60e51b815260040161054d906124b8565b60008054604080518381526020810191829052631e855cf360e01b9091526001600160a01b0390911691631e855cf391610599919060248101612aff565b604051632fd0a1cd60e21b815282908290339063bf428734906115a6908590859060040161247a565b602060405180830381865afa1580156115c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e79190612496565b6116035760405162461bcd60e51b815260040161054d906124b8565b61083e6126ac565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611637908590859060040161247a565b602060405180830381865afa158015611654573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116789190612496565b6116945760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f8903090819063e772ecc1906116cc9060448101612194565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252611719939250908a908a90600401612675565b6000604051808303816000875af1158015611738573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611760919081019061260d565b95945050505050565b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf428734906117d5908590859060040161247a565b602060405180830381865afa1580156117f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118169190612496565b6118325760405162461bcd60e51b815260040161054d906124b8565b604051631fb6491d60e11b81526000903390633f6c923a9061185a908990899060040161247a565b600060405180830381865afa158015611877573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261189f9190810190612822565b90507f5d497a0f141d2596bd23602421f1cc06c3b9ad6c29b51997cf62ca3f84754e138160000151826020015183608001516040516118e093929190612928565b60405180910390a185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b604051632fd0a1cd60e21b815260609083908390339063bf42873490611955908590859060040161247a565b602060405180830381865afa158015611972573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119969190612496565b6119b25760405162461bcd60e51b815260040161054d906124b8565b60008054604080519283526020830190526001600160a01b03169063ba48b5f8903090819063fe5f2b9b906119ee908d908d9060448101612796565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b0319168252610d4b939250908a908a90600401612675565b604051632fd0a1cd60e21b815282908290339063bf42873490611a64908590859060040161247a565b602060405180830381865afa158015611a81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa59190612496565b611ac15760405162461bcd60e51b815260040161054d906124b8565b858560405162461bcd60e51b815260040161054d92919061247a565b604051631fb6491d60e11b81526060906000903390633f6c923a90611b06908690600401612194565b600060405180830381865afa158015611b23573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b4b9190810190612822565b9050600060025460ff166006811115611b6657611b6661294f565b03611bb9577f5d497a0f141d2596bd23602421f1cc06c3b9ad6c29b51997cf62ca3f84754e13816000015182602001518360800151604051611baa93929190612928565b60405180910390a15090919050565b600160025460ff166006811115611bd257611bd261294f565b03611be457611bdf6126ac565b611e2d565b6002805460ff166006811115611bfc57611bfc61294f565b03611c0657600080fd5b600360025460ff166006811115611c1f57611c1f61294f565b03611cdb5760038054611c3190612965565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5d90612965565b8015611caa5780601f10611c7f57610100808354040283529160200191611caa565b820191906000526020600020905b815481529060010190602001808311611c8d57829003601f168201915b5050505050806020019051810190611cc29190612b23565b60405162461bcd60e51b815260040161054d9190612194565b600460025460ff166006811115611cf457611cf461294f565b03611d2e57602a5b6040519080825280601f01601f191660200182016040528015611d26576020820181803683370190505b509392505050565b600560025460ff166006811115611d4757611d4761294f565b03611e0057600060026001018054611d5e90612965565b80601f0160208091040260200160405190810160405280929190818152602001828054611d8a90612965565b8015611dd75780601f10611dac57610100808354040283529160200191611dd7565b820191906000526020600020905b815481529060010190602001808311611dba57829003601f168201915b5050505050806020019051810190611def9190612b6b565b9050611dfa81611fc0565b50611e2d565b600660025460ff166006811115611e1957611e1961294f565b03611e25576000611cfc565b611e2d6126ac565b50919050565b6060600060025460ff166006811115611e4e57611e4e61294f565b03611e72575060408051808201909152600481526304e6f6f760e41b602082015290565b600160025460ff166006811115611e8b57611e8b61294f565b03611e9b57611e986126ac565b90565b6002805460ff166006811115611eb357611eb361294f565b03611ebd57600080fd5b600360025460ff166006811115611ed657611ed661294f565b03611ee85760038054611c3190612965565b600560025460ff166006811115611f0157611f0161294f565b03611fb857600060026001018054611f1890612965565b80601f0160208091040260200160405190810160405280929190818152602001828054611f4490612965565b8015611f915780601f10611f6657610100808354040283529160200191611f91565b820191906000526020600020905b815481529060010190602001808311611f7457829003601f168201915b5050505050806020019051810190611fa99190612b6b565b9050611fb481611fc0565b5090565b611e986126ac565b60005a905060005a90505b611fd76103e884612b84565b611fe18284612b84565b1015611fef575a9050611fcb565b505050565b60008083601f84011261200657600080fd5b5081356001600160401b0381111561201d57600080fd5b60208301915083602082850101111561203557600080fd5b9250929050565b6000806020838503121561204f57600080fd5b82356001600160401b0381111561206557600080fd5b61207185828601611ff4565b90969095509350505050565b6001600160a01b038116811461209257600080fd5b50565b600080600080606085870312156120ab57600080fd5b84356120b68161207d565b93506020850135925060408501356001600160401b038111156120d857600080fd5b6120e487828801611ff4565b95989497509550505050565b60008060006040848603121561210557600080fd5b83356121108161207d565b925060208401356001600160401b0381111561212b57600080fd5b61213786828701611ff4565b9497909650939450505050565b60005b8381101561215f578181015183820152602001612147565b50506000910152565b60008151808452612180816020860160208601612144565b601f01601f19169290920160200192915050565b6020815260006121a76020830184612168565b9392505050565b600080600080600080600080600060c08a8c0312156121cc57600080fd5b89356121d78161207d565b985060208a01356121e78161207d565b975060408a0135965060608a01356001600160401b038082111561220a57600080fd5b6122168d838e01611ff4565b909850965060808c013591508082111561222f57600080fd5b61223b8d838e01611ff4565b909650945060a08c013591508082111561225457600080fd5b506122618c828d01611ff4565b915080935050809150509295985092959850929598565b60006020828403121561228a57600080fd5b5035919050565b600080600080600080600060a0888a0312156122ac57600080fd5b87356122b78161207d565b965060208801356122c78161207d565b95506040880135945060608801356001600160401b03808211156122ea57600080fd5b6122f68b838c01611ff4565b909650945060808a013591508082111561230f57600080fd5b5061231c8a828b01611ff4565b989b979a50959850939692959293505050565b6000806000806040858703121561234557600080fd5b84356001600160401b038082111561235c57600080fd5b61236888838901611ff4565b9096509450602087013591508082111561238157600080fd5b506120e487828801611ff4565b6000602082840312156123a057600080fd5b81356121a78161207d565b6000806000604084860312156123c057600080fd5b83356007811061211057600080fd5b6000806000806000606086880312156123e757600080fd5b85356123f28161207d565b945060208601356001600160401b038082111561240e57600080fd5b61241a89838a01611ff4565b9096509450604088013591508082111561243357600080fd5b5061244088828901611ff4565b969995985093965092949392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600061248e602083018486612451565b949350505050565b6000602082840312156124a857600080fd5b815180151581146121a757600080fd5b60208082526023908201527f41677265656d656e744d6f636b3a20637478206e6f742076616c6964206265666040820152626f726560e81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038416815260606020820181905260009061253590830185612168565b82810360408401526125478185612168565b9695505050505050565b60405161016081016001600160401b0381118282101715612574576125746124fb565b60405290565b60006001600160401b0380841115612594576125946124fb565b604051601f8501601f19908116603f011681019082821181831017156125bc576125bc6124fb565b816040528093508581528686860111156125d557600080fd5b6125e3866020830187612144565b5050509392505050565b600082601f8301126125fe57600080fd5b6121a78383516020850161257a565b60006020828403121561261f57600080fd5b81516001600160401b0381111561263557600080fd5b61248e848285016125ed565b6001600160a01b0386811682528516602082015260408101849052608060608201819052600090610d929083018486612451565b6001600160a01b038516815260606020820181905260009061269990830186612168565b8281036040840152610d92818587612451565b634e487b7160e01b600052600160045260246000fd5b60018060a01b03841681528260208201526060604082015260006117606060830184612168565b6001600160a01b038516815260806020820181905260009061270d90830186612168565b828103604084015261271f8186612168565b90508281036060840152610d928185612168565b6000806040838503121561274657600080fd5b82516001600160401b038082111561275d57600080fd5b612769868387016125ed565b9350602085015191508082111561277f57600080fd5b5061278c858286016125ed565b9150509250929050565b6040815260006127aa604083018587612451565b82810360208401526125478185612168565b6001600160a01b038581168252841660208201526060604082018190526000906125479083018486612451565b805160ff811681146127fa57600080fd5b919050565b80516127fa8161207d565b80516001600160e01b0319811681146127fa57600080fd5b60006020828403121561283457600080fd5b81516001600160401b038082111561284b57600080fd5b90830190610160828603121561286057600080fd5b612868612551565b612871836127e9565b815261287f602084016127e9565b60208201526040830151604082015261289a606084016127ff565b60608201526128ab6080840161280a565b608082015260a0830151828111156128c257600080fd5b6128ce878286016125ed565b60a08301525060c083015160c082015260e083015160e08201526101009150818301518282015261012091506129058284016127ff565b8282015261014091506129198284016127ff565b91810191909152949350505050565b60ff93841681529190921660208201526001600160e01b0319909116604082015260600190565b634e487b7160e01b600052602160045260246000fd5b600181811c9082168061297957607f821691505b602082108103611e2d57634e487b7160e01b600052602260045260246000fd5b601f821115611fef576000816000526020600020601f850160051c810160208610156129c25750805b601f850160051c820191505b818110156129e1578281556001016129ce565b505050505050565b6001600160401b03831115612a0057612a006124fb565b612a1483612a0e8354612965565b83612999565b6000601f841160018114612a485760008515612a305750838201355b600019600387901b1c1916600186901b1783556105e0565b600083815260209020601f19861690835b82811015612a795786850135825560209485019460019092019101612a59565b5086821015612a965760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6001600160a01b0386168152608060208201819052600090612acc90830187612168565b8281036040840152612ade8187612168565b90508281036060840152612af3818587612451565b98975050505050505050565b6001600160a01b038316815260406020820181905260009061248e90830184612168565b600060208284031215612b3557600080fd5b81516001600160401b03811115612b4b57600080fd5b8201601f81018413612b5c57600080fd5b61248e8482516020840161257a565b600060208284031215612b7d57600080fd5b5051919050565b81810381811115612ba557634e487b7160e01b600052601160045260246000fd5b9291505056fea26469706673582212208c28b9940354895107599eefef68e0e4fd9bf27e50de3ed227784b8489e7594464736f6c63430008170033608060405234801561001057600080fd5b50610627806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806314379f4a1461003b5780634c79edd414610050575b600080fd5b61004e61004936600461027e565b610063565b005b61004e61005e3660046102f1565b610148565b6040805160008152602081019091526001600160a01b0386811691634329d29391879190821690638e6b2749906100a19030908a90604481016103bc565b60408051601f19818403018152918152602080830180516001600160e01b031660e095861b179052815160008152908101918290529286901b6001600160e01b03191690526100f893925090878760248301610415565b6000604051808303816000875af1158015610117573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261013f91908101906104f4565b50505050505050565b6040805160008152602081019091526001600160a01b038581169163ba48b5f89186919082169063e772ecc1906101829060448101610558565b60408051808303601f1901815291815260208201805160e094851b6001600160e01b03909116179052519185901b6001600160e01b03191682526101cf9392509087908790600401610572565b6000604051808303816000875af11580156101ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021691908101906105b4565b5050505050565b6001600160a01b038116811461023257600080fd5b50565b60008083601f84011261024757600080fd5b50813567ffffffffffffffff81111561025f57600080fd5b60208301915083602082850101111561027757600080fd5b9250929050565b60008060008060006080868803121561029657600080fd5b85356102a18161021d565b945060208601356102b18161021d565b935060408601359250606086013567ffffffffffffffff8111156102d457600080fd5b6102e088828901610235565b969995985093965092949392505050565b6000806000806060858703121561030757600080fd5b84356103128161021d565b935060208501356103228161021d565b9250604085013567ffffffffffffffff81111561033e57600080fd5b61034a87828801610235565b95989497509550505050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561038757818101518382015260200161036f565b50506000910152565b600081518084526103a881602086016020860161036c565b601f01601f19169290920160200192915050565b60018060a01b03841681528260208201526060604082015260006103e36060830184610390565b95945050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038616815260806020820181905260009061043990830187610390565b828103604084015261044b8187610390565b905082810360608401526104608185876103ec565b98975050505050505050565b600082601f83011261047d57600080fd5b815167ffffffffffffffff8082111561049857610498610356565b604051601f8301601f19908116603f011681019082821181831017156104c0576104c0610356565b816040528381528660208588010111156104d957600080fd5b6104ea84602083016020890161036c565b9695505050505050565b6000806040838503121561050757600080fd5b825167ffffffffffffffff8082111561051f57600080fd5b61052b8683870161046c565b9350602085015191508082111561054157600080fd5b5061054e8582860161046c565b9150509250929050565b60208152600061056b6020830184610390565b9392505050565b6001600160a01b038516815260606020820181905260009061059690830186610390565b82810360408401526105a98185876103ec565b979650505050505050565b6000602082840312156105c657600080fd5b815167ffffffffffffffff8111156105dd57600080fd5b6105e98482850161046c565b94935050505056fea2646970667358221220191c51304b64942cfd9ee17ec7fd3427b143a3c39056aff81d1e41ddb697db1064736f6c63430008170033";
709
709
  const isSuperArgs = (xs) => xs.length > 1;
710
710
  export class SuperAppMock__factory extends ContractFactory {
711
711
  constructor(...args) {
@@ -12,7 +12,7 @@ export declare class SuperfluidMock__factory extends ContractFactory {
12
12
  }): TransactionRequest;
13
13
  attach(address: string): SuperfluidMock;
14
14
  connect(signer: Signer): SuperfluidMock__factory;
15
- static readonly bytecode = "0x60c06040523480156200001157600080fd5b5060405162005d0838038062005d0883398101604081905262000034916200005b565b901515608052151560a05262000093565b805180151581146200005657600080fd5b919050565b600080604083850312156200006f57600080fd5b6200007a8362000045565b91506200008a6020840162000045565b90509250929050565b60805160a051615c09620000ff6000396000818161084f01528181612319015281816127f501528181612aa00152612d20015260008181610a9301528181610bf701528181610f180152818161170f01528181611847015281816119a60152612c480152615c096000f3fe6080604052600436106103765760003560e01c80638ca48484116101d1578063bd1c448b11610102578063cd312ec4116100a0578063f37330521161006f578063f373305214610b27578063f539866114610b47578063f9f522f414610b67578063fa6e0cfe14610ba457600080fd5b8063cd312ec414610a81578063e8dccb7d14610ab5578063eb5bf90114610ae4578063f2e55caf14610b1257600080fd5b8063c4d66de8116100dc578063c4d66de8146109e2578063c56a069d14610a02578063c60944a614610a2f578063c6ae797314610a4f57600080fd5b8063bd1c448b1461098d578063bd3252c8146109ad578063bf428734146109c257600080fd5b8063ad3915c81161016f578063ba48b5f811610149578063ba48b5f8146108f1578063bb84cfa114610911578063bbe4fd501461095a578063bced3ddc1461096d57600080fd5b8063ad3915c814610891578063b6d200de146108b1578063b724211e146108d157600080fd5b8063989b0c3e116101ab578063989b0c3e146108085780639903ad38146108285780639d297e301461083d578063a5dbbbcd1461087157600080fd5b80638ca484841461078b5780638ceddd7a146107ab5780639378fa13146107d657600080fd5b8063486ff0cd116102ab578063670e77e3116102495780637283100c116102235780637283100c1461070d578063731aed6e1461072d57806374041e021461074b578063768fabb01461076b57600080fd5b8063670e77e3146106ba5780636ad3ca7d146106da5780636b4f3335146106ed57600080fd5b806354fbc4931161028557806354fbc4931461063a57806357121e0c1461065a578063572b6c051461067a57806359a291411461069a57600080fd5b8063486ff0cd146105bd57806350d75d25146105e857806352d1902d146105fd57600080fd5b806333511863116103185780633ca3ad4e116102f25780633ca3ad4e146104fa5780633f6c923a146105425780634329d2931461056f578063469519541461059d57600080fd5b8063335118631461048b57806333d608f1146104ab57806339255d5b146104da57600080fd5b80631e6d0a84116103545780631e6d0a84146103dd5780631e855cf314610413578063289b3c0d146104335780632f89bf891461046b57600080fd5b806306cecba81461037b5780630c5650751461039d57806315a024e1146103bd575b600080fd5b34801561038757600080fd5b5061039b610396366004614931565b610bc4565b005b3480156103a957600080fd5b5061039b6103b8366004614955565b610d9b565b3480156103c957600080fd5b5061039b6103d8366004614931565b610e2b565b3480156103e957600080fd5b506103fd6103f83660046149e4565b61107b565b60405161040a9190614aca565b60405180910390f35b34801561041f57600080fd5b506103fd61042e366004614ba0565b6112c7565b34801561043f57600080fd5b506000546201000090046001600160a01b03165b6040516001600160a01b03909116815260200161040a565b34801561047757600080fd5b5061039b610486366004614931565b6112df565b34801561049757600080fd5b5061039b6104a6366004614931565b61149d565b3480156104b757600080fd5b506104c2622dc6c081565b6040516001600160401b03909116815260200161040a565b3480156104e657600080fd5b506103fd6104f5366004614bef565b6114ac565b34801561050657600080fd5b50610532610515366004614931565b6001600160a01b0316600090815260046020526040902054151590565b604051901515815260200161040a565b34801561054e57600080fd5b5061056261055d366004614c64565b6114c2565b60405161040a9190614c98565b34801561057b57600080fd5b5061058f61058a366004614d79565b6114d3565b60405161040a929190614e25565b3480156105a957600080fd5b5061039b6105b8366004614931565b6116dc565b3480156105c957600080fd5b50604080518082019091526002815261763160f01b60208201526103fd565b3480156105f457600080fd5b506104536117d5565b34801561060957600080fd5b507fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba745b60405190815260200161040a565b34801561064657600080fd5b5061039b610655366004614931565b611804565b34801561066657600080fd5b5061039b610675366004614931565b611a87565b34801561068657600080fd5b50610532610695366004614931565b611b55565b3480156106a657600080fd5b506103fd6106b5366004614e4a565b611bdf565b3480156106c657600080fd5b5061039b6106d5366004614e95565b611cc1565b61039b6106e8366004614e95565b611cd7565b3480156106f957600080fd5b50610532610708366004614931565b611ce2565b34801561071957600080fd5b5061039b610728366004614931565b611d06565b34801561073957600080fd5b506003546001600160a01b0316610453565b34801561075757600080fd5b506103fd6107663660046149e4565b611dae565b34801561077757600080fd5b506103fd610786366004614f09565b611efd565b34801561079757600080fd5b506105326107a6366004614931565b612099565b3480156107b757600080fd5b506107c161010081565b60405163ffffffff909116815260200161040a565b3480156107e257600080fd5b506107f66107f1366004614931565b61215e565b60405160ff909116815260200161040a565b34801561081457600080fd5b506103fd610823366004614e4a565b61217f565b34801561083457600080fd5b5061039b612212565b34801561084957600080fd5b506105327f000000000000000000000000000000000000000000000000000000000000000081565b34801561087d57600080fd5b5061062c61088c366004614f84565b6122cd565b34801561089d57600080fd5b5061039b6108ac366004614fa6565b612317565b3480156108bd57600080fd5b506104536108cc366004614fa6565b61236b565b3480156108dd57600080fd5b506103fd6108ec366004614fbf565b6123d2565b3480156108fd57600080fd5b506103fd61090c36600461501b565b612493565b34801561091d57600080fd5b5061053261092c366004614955565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561096657600080fd5b504261062c565b34801561097957600080fd5b5061062c610988366004614f84565b6127aa565b34801561099957600080fd5b5061039b6109a836600461509d565b6127f3565b3480156109b957600080fd5b5061062c600181565b3480156109ce57600080fd5b506105326109dd3660046150e8565b612869565b3480156109ee57600080fd5b5061039b6109fd366004614931565b6128aa565b348015610a0e57600080fd5b50610a22610a1d366004614fa6565b61298e565b60405161040a9190615129565b348015610a3b57600080fd5b5061039b610a4a366004615176565b612a73565b348015610a5b57600080fd5b50610a6f610a6a3660046151a2565b612af2565b60405161040a9695949392919061526c565b348015610a8d57600080fd5b506105327f000000000000000000000000000000000000000000000000000000000000000081565b348015610ac157600080fd5b50610532610ad0366004614fa6565b600090815260026020526040902054151590565b348015610af057600080fd5b50610b04610aff36600461509d565b612bdf565b60405161040a9291906152c5565b348015610b1e57600080fd5b50610453612c2b565b348015610b3357600080fd5b5061039b610b42366004615176565b612cf3565b348015610b5357600080fd5b506103fd610b623660046152de565b612dfe565b348015610b7357600080fd5b50610b87610b82366004614931565b612ef6565b60408051931515845291151560208401529082015260600161040a565b348015610bb057600080fd5b5061039b610bbf366004614955565b612f45565b6000546201000090046001600160a01b03163314610bf5576040516362e9152760e11b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015610c34576040516314f72c9f60e01b815260040160405180910390fd5b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c989190615349565b600081815260026020526040812054919250819003610cca57604051630e4f4df560e11b815260040160405180910390fd5b60006001610cd88184615378565b81548110610ce857610ce861538b565b6000918252602090912001546040516311a5465560e21b81526001600160a01b03868116600483015290911691508190634695195490602401600060405180830381600087803b158015610d3b57600080fd5b505af1158015610d4f573d6000803e3d6000fd5b5050604080518681526001600160a01b03881660208201527f9279aa773f2b588996032d8de89911555039f28b13a11a7c17074330bc082d9a935001905060405180910390a150505050565b6000546201000090046001600160a01b03163314610dcc576040516362e9152760e11b815260040160405180910390fd5b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f28397090602401600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b505050505050565b6000546201000090046001600160a01b03163314610e5c576040516362e9152760e11b815260040160405180910390fd5b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec09190615349565b60008181526002602052604090205490915015610ef057604051631b93bb7560e31b815260040160405180910390fd5b60015461010011610f1457604051630f85034f60e31b815260040160405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000610fce576000604051610f49906148b4565b604051809103906000f080158015610f65573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03868116600483015291925090821690634a0687ef90602401600060405180830381600087803b158015610fad57600080fd5b505af1158015610fc1573d6000803e3d6000fd5b5050505080915050610fd1565b50815b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0384166001600160a01b0319909116179055546000838152600260205260409081902091909155517f878135063a6cfb3bc333e534b1fdc83f4f12221cad6705c31c0567048a8bd3d19061106e90849086909182526001600160a01b0316602082015260400190565b60405180910390a1505050565b606061108633612099565b6110a35760405163619c535960e01b815260040160405180910390fd5b82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110e592508391506130a09050565b6110f1576110f16153a1565b60008061116b8a6000898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506130c092505050565b9150915081156112805761117e81613212565b15611218578080602001905181019061119791906153fc565b93506111a2846130a0565b61121357866111cc5760405163a85ba64f60e01b8152601460048201526024015b60405180910390fd5b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965061121392508c915060149050613266565b6112ba565b866112395760405163a85ba64f60e01b8152601660048201526024016111c3565b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965061121392508c915060169050613266565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509296505050505b5050509695505050505050565b60606112d633846000856132e7565b90505b92915050565b6000546201000090046001600160a01b03163314611310576040516362e9152760e11b815260040160405180910390fd5b604051635b69006f60e11b81527fdfd8ece9bfbcb8c5c540edb935641f63d67686490a1ab97f000288759f30a9466004820152600090309063b6d200de90602401602060405180830381865afa15801561136e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113929190615430565b90506000816001600160a01b0316635437dd976040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f89190615430565b604051631b2ce7f360e11b81526001600160a01b03858116600483015291925090821690633659cfe690602401600060405180830381600087803b15801561143f57600080fd5b505af1158015611453573d6000803e3d6000fd5b50506040516001600160a01b038681168252841692507f052cea8931962dd445ef48b0b998d3056bd0705f437087d60fe3c46a3fa09e1f91506020015b60405180910390a2505050565b6114a981611b1e613266565b50565b60606114ba33858585613524565b949350505050565b6114ca6148c1565b6112d982613635565b60608083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061151892508391506130a09050565b6115385760405163a85ba64f60e01b8152601460048201526024016111c3565b8961154281612099565b61155f5760405163619c535960e01b815260040160405180910390fd5b60006115a087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b6101208101519091506001600160a01b031633146115d15760405163066875e160e11b815260040160405180910390fd5b60608101805133909152604080516020601f8c018190048102820181019092528a8152908b908b908190840183828082843760009201919091525050505060a083015261161d82613700565b955060006116638e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508c91506138349050565b9650905080156116c2578580602001905181019061168191906153fc565b965061168c876130a0565b611698576116986153a1565b6116a1876114c2565b6001600160a01b038316606082015292506116bb83613700565b96506116cb565b6116cb866138ef565b505050505097509795505050505050565b6000546201000090046001600160a01b0316331461170d576040516362e9152760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000001561174c576040516314f72c9f60e01b815260040160405180910390fd5b806001600160a01b031663cd312ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae919061544d565b156117cc5760405163474e764160e01b815260040160405180910390fd5b6114a9816139fa565b60006117ff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000546201000090046001600160a01b03163314611835576040516362e9152760e11b815260040160405180910390fd5b6003546001600160a01b03166119a4577f000000000000000000000000000000000000000000000000000000000000000061191b576000604051611878906148b4565b604051809103906000f080158015611894573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03848116600483015291925090821690634a0687ef90602401600060405180830381600087803b1580156118dc57600080fd5b505af11580156118f0573d6000803e3d6000fd5b5050600380546001600160a01b0319166001600160a01b039490941693909317909255506119379050565b600380546001600160a01b0319166001600160a01b0383161790555b600360009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561198757600080fd5b505af115801561199b573d6000803e3d6000fd5b50505050611a43565b7f0000000000000000000000000000000000000000000000000000000000000000156119e3576040516314f72c9f60e01b815260040160405180910390fd5b6003546040516311a5465560e21b81526001600160a01b03838116600483015290911690634695195490602401600060405180830381600087803b158015611a2a57600080fd5b505af1158015611a3e573d6000803e3d6000fd5b505050505b6003546040516001600160a01b0390911681527fce13a9895a1719ad4493b2ac1a9bfb36070566161abab408e7ecbe586da8d499906020015b60405180910390a150565b33600081815260046020526040902054611ab4576040516302eb3f7160e61b815260040160405180910390fd5b6001600160a01b038216600090815260046020526040902054611aea57604051634b5518af60e11b815260040160405180910390fd5b611af38261215e565b60ff16611aff8261215e565b60ff1611611b2057604051630447252760e41b815260040160405180910390fd5b6001600160a01b039081166000908152600560209081526040808320949093168252929092529020805460ff19166001179055565b600080546201000090046001600160a01b03166380f70cba3083611b7886613c34565b6040518463ffffffff1660e01b8152600401611b969392919061546a565b602060405180830381865afa158015611bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd79190615349565b151592915050565b6060611bea33612099565b611c075760405163619c535960e01b815260040160405180910390fd5b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c4992508391506130a09050565b611c5557611c556153a1565b6000611c9686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b9050838161010001818151611cab919061548e565b905250611cb781613700565b9695505050505050565b611cd3611ccc613cbc565b8383613d24565b5050565b611cd3338383613d24565b6001600160a01b0381166000908152600460205260408120546180001615156112d9565b6000546201000090046001600160a01b03163314611d37576040516362e9152760e11b815260040160405180910390fd5b600054604080516001600160a01b03620100009093048316815291831660208301527f13abda02e63c790d0e2818b251282cfe5cbe0a8abd69c54bf5d2260c0907bd2e910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6060611db933612099565b611dd65760405163619c535960e01b815260040160405180910390fd5b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e1892508391506130a09050565b611e2457611e246153a1565b600080611e9e8a6001898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506130c092505050565b9150915081156112ba57611eb181613212565b15611ed15780806020019051810190611eca91906153fc565b93506112ba565b86611ef25760405163a85ba64f60e01b8152601660048201526024016111c3565b6112ba8a6016613266565b6060611f0833612099565b611f255760405163619c535960e01b815260040160405180910390fd5b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f6792508391506130a09050565b611f7357611f736153a1565b6000611fb489898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b9050611fdb81606001516001600160a01b0316600090815260046020526040902054151590565b8015611fef57506001816000015160ff1610155b156120425760608101516001600160a01b039081166000908152600560209081526040808320938b168352929052205460ff166120425760405163a85ba64f60e01b8152601e60048201526024016111c3565b80518161204e826154b6565b60ff169052506003602082015260c0810186905261010081018590526001600160a01b03808816610120830152841661014082015261208c81613700565b9998505050505050505050565b600080826001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe9190615349565b60008181526002602052604090205490915080158015906114ba57506001600160a01b03841660016121308184615378565b815481106121405761214061538b565b6000918252602090912001546001600160a01b031614949350505050565b6001600160a01b03811660009081526004602052604081205460ff166112d9565b606061218a33612099565b6121a75760405163619c535960e01b815260040160405180910390fd5b60006121e885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b90508281610100018181516121fd919061548e565b90525061220981613700565b95945050505050565b600054610100900460ff16158080156122325750600054600160ff909116105b8061224c5750303b15801561224c575060005460ff166001145b6122685760405162461bcd60e51b81526004016111c3906154d5565b6000805460ff19166001179055801561228b576000805461ff0019166101001790555b80156114a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611a7c565b6000818152600260205260408120548082036122fc57604051630e4f4df560e11b815260040160405180910390fd5b612307600182615378565b6001901b19841691505092915050565b7f00000000000000000000000000000000000000000000000000000000000000001561236157612361604051806040016040528060028152602001616b3160f01b815250326144c0565b6114a93382614569565b60008181526002602052604081205480820361239a57604051630e4f4df560e11b815260040160405180910390fd5b60016123a68183615378565b815481106123b6576123b661538b565b6000918252602090912001546001600160a01b03169392505050565b60606123dd33612099565b6123fa5760405163619c535960e01b815260040160405180910390fd5b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243c92508391506130a09050565b612448576124486153a1565b6124528484613266565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124d792508391506130a09050565b6124f75760405163a85ba64f60e01b8152601460048201526024016111c3565b6001600160a01b03871660009081526004602052604081205488918190036125325760405163163cbe4360e01b815260040160405180910390fd5b61800081161561255457604051628e12d960e21b815260040160405180910390fd5b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506125959150839050614638565b90506001600160e01b031981166330d9c91560e01b14806125c657506001600160e01b0319811663d86ed3e560e01b145b806125e157506001600160e01b03198116630221347d60e61b145b806125fc57506001600160e01b0319811663230dbd2960e01b145b8061261757506001600160e01b03198116635f9e7d7760e01b145b8061263257506001600160e01b031981166353c11f9960e01b145b15612650576040516377a14afb60e11b815260040160405180910390fd5b600061269189898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b6101208101519091506001600160a01b031633146126c2576040516311cfdef560e21b815260040160405180910390fd5b606081018051339091526126d582613700565b975060008061271c8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508f91506138349050565b91509150811561278f578080602001905181019061273a91906153fc565b99506127458a6130a0565b6127655760405163a85ba64f60e01b8152601460048201526024016111c3565b61276e8a6114c2565b6001600160a01b0384166060820152935061278884613700565b9950612798565b612798816138ef565b50505050505050505095945050505050565b6000818152600260205260408120548082036127d957604051630e4f4df560e11b815260040160405180910390fd5b6127e4600182615378565b6001901b841791505092915050565b7f00000000000000000000000000000000000000000000000000000000000000001561285a5761285a82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503292506144c0915050565b6128643384614569565b505050565b60006112d683838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130a092505050565b600054610100900460ff16158080156128ca5750600054600160ff909116105b806128e45750303b1580156128e4575060005460ff166001145b6129005760405162461bcd60e51b81526004016111c3906154d5565b6000805460ff191660011790558015612923576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790558015611cd3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60606000806001805490506001600160401b038111156129b0576129b0614add565b6040519080825280602002602001820160405280156129d9578160200160208202803683370190505b50925060009050600091505b600154821015612a6b576001821b841615612a605760018281548110612a0d57612a0d61538b565b6000918252602090912001546001600160a01b03168382612a2d81615523565b935081518110612a3f57612a3f61538b565b60200260200101906001600160a01b031690816001600160a01b0316815250505b8160010191506129e5565b825250919050565b816001600160a01b03163b600003612a9e5760405163353dacc360e21b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015612ae857612ae8604051806040016040528060028152602001616b3160f01b815250336144c0565b611cd38282614569565b600080600060608060608e8e8e8e8e8e8e8e8e85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815293995096975094959394509192909150859085908190840183828082843760009201919091525050604080516020601f87018190048102820181019092528581529397509495509293919250849184915081908401838280828437600092019190915250999f50979d50959b50939950919750919550505050505099509950995099509950999350505050565b6000606084848481818080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250959b929a509198505050505050505050565b6003546000906001600160a01b0316612c4657612c466153a1565b7f000000000000000000000000000000000000000000000000000000000000000015612c7c57506003546001600160a01b031690565b600360009054906101000a90046001600160a01b03166001600160a01b03166350d75d256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ccf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ff9190615430565b816001600160a01b03163b600003612d1e5760405163353dacc360e21b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015612ae8576000612d4f33614694565b6000805460405163407b865d60e11b81529293509091620100009091046001600160a01b0316906380f70cba90612d8e9030908590879060040161546a565b602060405180830381865afa158015612dab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dcf9190615349565b600114905080612df257604051630b56455f60e41b815260040160405180910390fd5b5050611cd38282614569565b60606000612e7586868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a01819004810282018101909252888152925088915087908190840183828082843760009201919091525061470e92505050565b90506000306001600160a01b031682604051612e91919061553c565b600060405180830381855afa9150503d8060008114612ecc576040519150601f19603f3d011682016040523d82523d6000602084013e612ed1565b606091505b50935090508015612ee35750506114ba565b612eec836138ef565b5050949350505050565b6001600160a01b038116600090815260046020908152604080832081519283019091525480825215801592918291612f3d57805161800081161515935064ff000000001691505b509193909250565b6000546201000090046001600160a01b03163314612f76576040516362e9152760e11b815260040160405180910390fd5b60006001600160a01b03821661300257600360009054906101000a90046001600160a01b03166001600160a01b0316639470a5b26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffd9190615430565b613004565b815b6040516311a5465560e21b81526001600160a01b03808316600483015291925090841690634695195490602401600060405180830381600087803b15801561304b57600080fd5b505af115801561305f573d6000803e3d6000fd5b50506040516001600160a01b038481168252861692507f840acbd291b38534819f47f875839277e502f40e1c7bfea2c5fc2c8017442cd39150602001611490565b600081516000141580156112d95750600654825160208401201492915050565b600060606001600160a01b0387166130da576130da6153a1565b6130e4848461470e565b9350622dc6c060005a9050871561315a57886001600160a01b0316828760405161310e919061553c565b6000604051808303818686fa925050503d806000811461314a576040519150601f19603f3d011682016040523d82523d6000602084013e61314f565b606091505b5090945092506131bd565b886001600160a01b03168287604051613173919061553c565b60006040518083038160008787f1925050503d80600081146131b1576040519150601f19603f3d011682016040523d82523d6000602084013e6131b6565b606091505b5090945092505b83613206576131cb816147c5565b6131ed57866131e2576131dd836138ef565b613206565b6131dd89600a613266565b604051636a7aea4b60e11b815260040160405180910390fd5b50509550959350505050565b600060408251101561322657506000919050565b602082810151906000908214613240575060009392505050565b50604083015161324f816147db565b61325a906040615558565b84511492505050919050565b6001600160a01b038216600090815260046020526040812054618000169003611cd3576001600160a01b038216600081815260046020526040908190208054618000179055517fbe3aa33bd245135e4e26b223d79d14ea479a47bff09f2b03c53838af1edbb14b906132db9084815260200190565b60405180910390a25050565b6006546060901561330e5760405163a85ba64f60e01b8152601560048201526024016111c3565b6001600160a01b03841660009081526004602052604081205485918190036133495760405163163cbe4360e01b815260040160405180910390fd5b61800081161561336b57604051628e12d960e21b815260040160405180910390fd5b83600061337782614638565b90506001600160e01b031981166330d9c91560e01b14806133a857506001600160e01b0319811663d86ed3e560e01b145b806133c357506001600160e01b03198116630221347d60e61b145b806133de57506001600160e01b0319811663230dbd2960e01b145b806133f957506001600160e01b03198116635f9e7d7760e01b145b8061341457506001600160e01b031981166353c11f9960e01b145b15613432576040516377a14afb60e11b815260040160405180910390fd5b60408051610160810182526000808252600260208084019190915242838501526001600160a01b03808e16606085015260808401839052845191820190945281815260a083015260c0820181905260e082018190526101008201819052918a1661012082015261014081018290526134a990613700565b905060006134b98a898b85613834565b97509050801561350757868060200190518101906134d791906153fc565b91506134e2826130a0565b6135025760405163a85ba64f60e01b8152601460048201526024016111c3565b613510565b613510876138ef565b505060006006555092979650505050505050565b6006546060901561354b5760405163a85ba64f60e01b8152601560048201526024016111c3565b8361355581612099565b6135725760405163619c535960e01b815260040160405180910390fd5b600061357d85614638565b60408051610160810182526000808252600160208301529293506136009181014281526020018a6001600160a01b03168152602001846001600160e01b031916815260200187815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815250613700565b905060006136118888600085613834565b955090508061362357613623856138ef565b50506000600655509095945050505050565b61363d6148c1565b60608083806020019051810190613654919061556b565b8151919350915060009061367190840160209081019085016155c4565b60a08901526001600160e01b03191660808801526001600160a01b031660608701526040860152602081811c600f168187015260ff90911685528251600092506136c2919084018101908401615648565b6001600160a01b03908116610140890152166101208701526101008601526001600160801b03811660c086015260801c60e085015250919392505050565b60606001826000015160ff16111561372e5760405163a85ba64f60e01b8152602860048201526024016111c3565b815160208084015160009260ff1664ff000000009190921b161790506000608061375b8560e00151614814565b6001600160801b0316901b6137738560c00151614814565b6001600160801b0316179050818460400151856060015186608001518760a001516040516020016137a8959493929190615693565b60408051601f1981840301815282825261010087015161012088015161014089015160208601879052938501919091526001600160a01b03908116606085015290911660808301529060a00160408051601f19818403018152908290526138129291602001614e25565b60408051601f1981840301815291905280516020820120600655949350505050565b600060606001600160a01b03861661384e5761384e6153a1565b613858858461470e565b9450856001600160a01b03168486604051613873919061553c565b60006040518083038185875af1925050503d80600081146138b0576040519150601f19603f3d011682016040523d82523d6000602084013e6138b5565b606091505b50909250905081156138e65780516000036138e65760405163a85ba64f60e01b8152601660048201526024016111c3565b94509492505050565b6004815110156139415760405162461bcd60e51b815260206004820152601a60248201527f43616c6c5574696c733a2074617267657420726576657274282900000000000060448201526064016111c3565b602081015163b1b7848f60e01b6001600160e01b03198216016139f15760408051808201825260208082527f43616c6c5574696c733a207461726765742070616e69636b65643a2030785f5f90820190815260248501517f43616c6c5574696c733a207461726765742070616e69636b65643a2030780000600482811c600f908116603090810160081b918516011791909117909252925162461bcd60e51b81529192916111c391849101614aca565b81518060208401fd5b6000613a247f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603613a7a5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016111c3565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613adc9190615349565b7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba7414613b565760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016111c3565b6001600160a01b0381163003613bae5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016111c3565b613bd6817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba74604080519182526001600160a01b038416602083015201611a7c565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b600060183610801590613cd35750613cd333611b55565b613d175760405162461bcd60e51b81526020600482015260156024820152742737ba103a393ab9ba32b2103337b93bb0b93232b960591b60448201526064016111c3565b5060131936013560601c90565b6000805b82811015614479576000848483818110613d4457613d4461538b565b9050602002810190613d5691906156df565b613d649060208101906156f5565b905060001963ffffffff821601613e5857600080868685818110613d8a57613d8a61538b565b9050602002810190613d9c91906156df565b613daa90604081019061571b565b810190613db79190615176565b91509150868685818110613dcd57613dcd61538b565b9050602002810190613ddf91906156df565b613df0906040810190602001614931565b6001600160a01b03166362aa52878984846040518463ffffffff1660e01b8152600401613e1f9392919061546a565b600060405180830381600087803b158015613e3957600080fd5b505af1158015613e4d573d6000803e3d6000fd5b505050505050614470565b60011963ffffffff821601613f63576000806000878786818110613e7e57613e7e61538b565b9050602002810190613e9091906156df565b613e9e90604081019061571b565b810190613eab9190615761565b925092509250878786818110613ec357613ec361538b565b9050602002810190613ed591906156df565b613ee6906040810190602001614931565b604051630b682aeb60e11b81526001600160a01b038b81166004830152858116602483015284811660448301526064820184905291909116906316d055d6906084015b600060405180830381600087803b158015613f4357600080fd5b505af1158015613f57573d6000803e3d6000fd5b50505050505050614470565b60021963ffffffff821601614022576000806000878786818110613f8957613f8961538b565b9050602002810190613f9b91906156df565b613fa990604081019061571b565b810190613fb691906157a2565b925092509250878786818110613fce57613fce61538b565b9050602002810190613fe091906156df565b613ff1906040810190602001614931565b6001600160a01b031663ca0c1e7f8a8585856040518563ffffffff1660e01b8152600401613f2994939291906157f0565b60031963ffffffff8216016140db576000808686858181106140465761404661538b565b905060200281019061405891906156df565b61406690604081019061571b565b8101906140739190615176565b915091508686858181106140895761408961538b565b905060200281019061409b91906156df565b6140ac906040810190602001614931565b6001600160a01b0316634b2763b38984846040518463ffffffff1660e01b8152600401613e1f9392919061546a565b60041963ffffffff821601614194576000808686858181106140ff576140ff61538b565b905060200281019061411191906156df565b61411f90604081019061571b565b81019061412c9190615176565b915091508686858181106141425761414261538b565b905060200281019061415491906156df565b614165906040810190602001614931565b6001600160a01b031663c780fd828984846040518463ffffffff1660e01b8152600401613e1f9392919061546a565b60641963ffffffff821601614289578484838181106141b5576141b561538b565b90506020028101906141c791906156df565b6141d8906040810190602001614931565b6001600160a01b031663ca789464878787868181106141f9576141f961538b565b905060200281019061420b91906156df565b61421990604081019061571b565b8101906142269190614fa6565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561426c57600080fd5b505af1158015614280573d6000803e3d6000fd5b50505050614470565b60651963ffffffff8216016142ee578484838181106142aa576142aa61538b565b90506020028101906142bc91906156df565b6142cd906040810190602001614931565b6001600160a01b031663245887fc878787868181106141f9576141f961538b565b60c81963ffffffff82160161438b576000808686858181106143125761431261538b565b905060200281019061432491906156df565b61433290604081019061571b565b81019061433f9190615823565b91509150614383888888878181106143595761435961538b565b905060200281019061436b91906156df565b61437c906040810190602001614931565b8484613524565b505050614470565b60c91963ffffffff8216016144575761444d868686858181106143b0576143b061538b565b90506020028101906143c291906156df565b6143d3906040810190602001614931565b856143de57346143e1565b60005b8888878181106143f3576143f361538b565b905060200281019061440591906156df565b61441390604081019061571b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132e792505050565b5060019250614470565b60405163b477011560e01b815260040160405180910390fd5b50600101613d28565b503415801590614487575080155b156144ba5760405133903480156108fc02916000818181858888f193505050501580156144b8573d6000803e3d6000fd5b505b50505050565b60006144cc8284614881565b6000805460405163407b865d60e11b81529293504292620100009091046001600160a01b0316916380f70cba91614509913091879060040161546a565b602060405180830381865afa158015614526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061454a9190615349565b101561286457604051630b56455f60e41b815260040160405180910390fd5b64ff000080ff198116151580614580575060ff8116155b8061458e5750618000811615155b156145ac57604051633d3200a960e21b815260040160405180910390fd5b6001600160a01b038216600090815260046020526040902054156145e3576040516301b0a93560e01b815260040160405180910390fd5b60408051602080820183528382526001600160a01b038516600081815260049092528382209251909255915190917f0d540ad8f39e07d19909687352b9fa017405d93c91a6760981fbae9cf28bfef791a25050565b600060048251101561468c5760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e76616c69642063616c6c44617461000000000060448201526064016111c3565b506020015190565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c001613c9f565b815180830151606091908015614737576040516367e9985b60e01b815260040160405180910390fd5b50601f198101845282518490848161474e816147db565b6147589190615378565b6001600160401b0381111561476f5761476f614add565b6040519080825280601f01601f191660200182016040528015614799576020820181803683370190505b506040516020016147ad949392919061587c565b60405160208183030381529060405291505092915050565b60006147d26040836158cb565b5a111592915050565b60008082601f16116147ee5760006147f1565b60015b60ff166147ff6020846158cb565b6148099190615558565b6112d99060206158ed565b60006001600160801b0382111561487d5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016111c3565b5090565b60008282604051602001614896929190615904565b60405160208183030381529060405280519060200120905092915050565b61024a8061598a83390190565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b6001600160a01b03811681146114a957600080fd5b60006020828403121561494357600080fd5b813561494e8161491c565b9392505050565b6000806040838503121561496857600080fd5b82356149738161491c565b915060208301356149838161491c565b809150509250929050565b60008083601f8401126149a057600080fd5b5081356001600160401b038111156149b757600080fd5b6020830191508360208285010111156149cf57600080fd5b9250929050565b80151581146114a957600080fd5b600080600080600080608087890312156149fd57600080fd5b8635614a088161491c565b955060208701356001600160401b0380821115614a2457600080fd5b614a308a838b0161498e565b909750955060408901359150614a45826149d6565b90935060608801359080821115614a5b57600080fd5b50614a6889828a0161498e565b979a9699509497509295939492505050565b60005b83811015614a95578181015183820152602001614a7d565b50506000910152565b60008151808452614ab6816020860160208601614a7a565b601f01601f19169290920160200192915050565b6020815260006112d66020830184614a9e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614b1b57614b1b614add565b604052919050565b60006001600160401b03821115614b3c57614b3c614add565b50601f01601f191660200190565b600082601f830112614b5b57600080fd5b8135614b6e614b6982614b23565b614af3565b818152846020838601011115614b8357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614bb357600080fd5b8235614bbe8161491c565b915060208301356001600160401b03811115614bd957600080fd5b614be585828601614b4a565b9150509250929050565b600080600060608486031215614c0457600080fd5b8335614c0f8161491c565b925060208401356001600160401b0380821115614c2b57600080fd5b614c3787838801614b4a565b93506040860135915080821115614c4d57600080fd5b50614c5a86828701614b4a565b9150509250925092565b600060208284031215614c7657600080fd5b81356001600160401b03811115614c8c57600080fd5b6114ba84828501614b4a565b60208152614cac60208201835160ff169052565b60006020830151614cc2604084018260ff169052565b50604083015160608301526060830151614ce760808401826001600160a01b03169052565b5060808301516001600160e01b0319811660a08401525060a08301516101608060c0850152614d1a610180850183614a9e565b915060c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151915050610140614d60818701836001600160a01b03169052565b909501516001600160a01b031693019290925250919050565b60008060008060008060006080888a031215614d9457600080fd5b8735614d9f8161491c565b965060208801356001600160401b0380821115614dbb57600080fd5b614dc78b838c0161498e565b909850965060408a0135915080821115614de057600080fd5b614dec8b838c0161498e565b909650945060608a0135915080821115614e0557600080fd5b50614e128a828b0161498e565b989b979a50959850939692959293505050565b604081526000614e386040830185614a9e565b82810360208401526122098185614a9e565b600080600060408486031215614e5f57600080fd5b83356001600160401b03811115614e7557600080fd5b614e818682870161498e565b909790965060209590950135949350505050565b60008060208385031215614ea857600080fd5b82356001600160401b0380821115614ebf57600080fd5b818501915085601f830112614ed357600080fd5b813581811115614ee257600080fd5b8660208260051b8501011115614ef757600080fd5b60209290920196919550909350505050565b60008060008060008060a08789031215614f2257600080fd5b86356001600160401b03811115614f3857600080fd5b614f4489828a0161498e565b9097509550506020870135614f588161491c565b935060408701359250606087013591506080870135614f768161491c565b809150509295509295509295565b60008060408385031215614f9757600080fd5b50508035926020909101359150565b600060208284031215614fb857600080fd5b5035919050565b60008060008060608587031215614fd557600080fd5b84356001600160401b03811115614feb57600080fd5b614ff78782880161498e565b909550935050602085013561500b8161491c565b9396929550929360400135925050565b60008060008060006060868803121561503357600080fd5b853561503e8161491c565b945060208601356001600160401b038082111561505a57600080fd5b61506689838a0161498e565b9096509450604088013591508082111561507f57600080fd5b5061508c8882890161498e565b969995985093965092949392505050565b6000806000604084860312156150b257600080fd5b8335925060208401356001600160401b038111156150cf57600080fd5b6150db8682870161498e565b9497909650939450505050565b600080602083850312156150fb57600080fd5b82356001600160401b0381111561511157600080fd5b61511d8582860161498e565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561516a5783516001600160a01b031683529284019291840191600101615145565b50909695505050505050565b6000806040838503121561518957600080fd5b82356151948161491c565b946020939093013593505050565b600080600080600080600080600060c08a8c0312156151c057600080fd5b89356151cb8161491c565b985060208a01356151db8161491c565b975060408a0135965060608a01356001600160401b03808211156151fe57600080fd5b61520a8d838e0161498e565b909850965060808c013591508082111561522357600080fd5b61522f8d838e0161498e565b909650945060a08c013591508082111561524857600080fd5b506152558c828d0161498e565b915080935050809150509295985092959850929598565b6001600160a01b038781168252861660208201526040810185905260c06060820181905260009061529f90830186614a9e565b82810360808401526152b18186614a9e565b905082810360a084015261208c8185614a9e565b8281526040602082015260006114ba6040830184614a9e565b600080600080604085870312156152f457600080fd5b84356001600160401b038082111561530b57600080fd5b6153178883890161498e565b9096509450602087013591508082111561533057600080fd5b5061533d8782880161498e565b95989497509550505050565b60006020828403121561535b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112d9576112d9615362565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082601f8301126153c857600080fd5b81516153d6614b6982614b23565b8181528460208386010111156153eb57600080fd5b6114ba826020830160208701614a7a565b60006020828403121561540e57600080fd5b81516001600160401b0381111561542457600080fd5b6114ba848285016153b7565b60006020828403121561544257600080fd5b815161494e8161491c565b60006020828403121561545f57600080fd5b815161494e816149d6565b6001600160a01b039384168152919092166020820152604081019190915260600190565b80820182811260008312801582168215821617156154ae576154ae615362565b505092915050565b600060ff821660ff81036154cc576154cc615362565b60010192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60006001820161553557615535615362565b5060010190565b6000825161554e818460208701614a7a565b9190910192915050565b808201808211156112d9576112d9615362565b6000806040838503121561557e57600080fd5b82516001600160401b038082111561559557600080fd5b6155a1868387016153b7565b935060208501519150808211156155b757600080fd5b50614be5858286016153b7565b600080600080600060a086880312156155dc57600080fd5b855194506020860151935060408601516155f58161491c565b60608701519093506001600160e01b03198116811461561357600080fd5b60808701519092506001600160401b0381111561562f57600080fd5b61563b888289016153b7565b9150509295509295909350565b6000806000806080858703121561565e57600080fd5b845193506020850151925060408501516156778161491c565b60608601519092506156888161491c565b939692955090935050565b858152602081018590526001600160a01b03841660408201526001600160e01b03198316606082015260a0608082018190526000906156d490830184614a9e565b979650505050505050565b60008235605e1983360301811261554e57600080fd5b60006020828403121561570757600080fd5b813563ffffffff8116811461494e57600080fd5b6000808335601e1984360301811261573257600080fd5b8301803591506001600160401b0382111561574c57600080fd5b6020019150368190038213156149cf57600080fd5b60008060006060848603121561577657600080fd5b83356157818161491c565b925060208401356157918161491c565b929592945050506040919091013590565b6000806000606084860312156157b757600080fd5b83356157c28161491c565b92506020840135915060408401356001600160401b038111156157e457600080fd5b614c5a86828701614b4a565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611cb790830184614a9e565b6000806040838503121561583657600080fd5b82356001600160401b038082111561584d57600080fd5b61585986838701614b4a565b9350602085013591508082111561586f57600080fd5b50614be585828601614b4a565b60008551602061588f8285838b01614a7a565b818401915086825285516158a881838501848a01614a7a565b85519201916158bc81838501848901614a7a565b91909101019695505050505050565b6000826158e857634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176112d9576112d9615362565b60608152604160608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e726567697374726174696f6e4b6560a0820152607960f81b60c082015260018060a01b038316602082015260e0604082015260006114ba60e0830184614a9e56fe608060405234801561001057600080fd5b5061022a806100206000396000f3fe6080604052600436106100225760003560e01c80634a0687ef1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f6100543660046101c4565b61006b565b610069610064610171565b6101a0565b565b6001600160a01b0381166100c65760405162461bcd60e51b815260206004820152601760248201527f5555505350726f78793a207a65726f206164647265737300000000000000000060448201526064015b60405180910390fd5b60006100f07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316146101465760405162461bcd60e51b815260206004820152601e60248201527f5555505350726f78793a20616c726561647920696e697469616c697a6564000060448201526064016100bd565b61016e817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50565b600061019b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b3660008037600080366000845af43d6000803e8080156101bf573d6000f35b3d6000fd5b6000602082840312156101d657600080fd5b81356001600160a01b03811681146101ed57600080fd5b939250505056fea26469706673582212206902a7db24b0d3a778c1f364c2041c6224c0ba5a54b2a99ab7f21c6f5b9e285964736f6c63430008170033a26469706673582212206e005aa132317f9ad153f4cff5731058874be59231576f6d47905fc308ac4a9664736f6c63430008170033";
15
+ static readonly bytecode = "0x60c06040523480156200001157600080fd5b5060405162005d0838038062005d0883398101604081905262000034916200005b565b901515608052151560a05262000093565b805180151581146200005657600080fd5b919050565b600080604083850312156200006f57600080fd5b6200007a8362000045565b91506200008a6020840162000045565b90509250929050565b60805160a051615c09620000ff6000396000818161084f01528181612319015281816127f501528181612aa00152612d20015260008181610a9301528181610bf701528181610f180152818161170f01528181611847015281816119a60152612c480152615c096000f3fe6080604052600436106103765760003560e01c80638ca48484116101d1578063bd1c448b11610102578063cd312ec4116100a0578063f37330521161006f578063f373305214610b27578063f539866114610b47578063f9f522f414610b67578063fa6e0cfe14610ba457600080fd5b8063cd312ec414610a81578063e8dccb7d14610ab5578063eb5bf90114610ae4578063f2e55caf14610b1257600080fd5b8063c4d66de8116100dc578063c4d66de8146109e2578063c56a069d14610a02578063c60944a614610a2f578063c6ae797314610a4f57600080fd5b8063bd1c448b1461098d578063bd3252c8146109ad578063bf428734146109c257600080fd5b8063ad3915c81161016f578063ba48b5f811610149578063ba48b5f8146108f1578063bb84cfa114610911578063bbe4fd501461095a578063bced3ddc1461096d57600080fd5b8063ad3915c814610891578063b6d200de146108b1578063b724211e146108d157600080fd5b8063989b0c3e116101ab578063989b0c3e146108085780639903ad38146108285780639d297e301461083d578063a5dbbbcd1461087157600080fd5b80638ca484841461078b5780638ceddd7a146107ab5780639378fa13146107d657600080fd5b8063486ff0cd116102ab578063670e77e3116102495780637283100c116102235780637283100c1461070d578063731aed6e1461072d57806374041e021461074b578063768fabb01461076b57600080fd5b8063670e77e3146106ba5780636ad3ca7d146106da5780636b4f3335146106ed57600080fd5b806354fbc4931161028557806354fbc4931461063a57806357121e0c1461065a578063572b6c051461067a57806359a291411461069a57600080fd5b8063486ff0cd146105bd57806350d75d25146105e857806352d1902d146105fd57600080fd5b806333511863116103185780633ca3ad4e116102f25780633ca3ad4e146104fa5780633f6c923a146105425780634329d2931461056f578063469519541461059d57600080fd5b8063335118631461048b57806333d608f1146104ab57806339255d5b146104da57600080fd5b80631e6d0a84116103545780631e6d0a84146103dd5780631e855cf314610413578063289b3c0d146104335780632f89bf891461046b57600080fd5b806306cecba81461037b5780630c5650751461039d57806315a024e1146103bd575b600080fd5b34801561038757600080fd5b5061039b610396366004614931565b610bc4565b005b3480156103a957600080fd5b5061039b6103b8366004614955565b610d9b565b3480156103c957600080fd5b5061039b6103d8366004614931565b610e2b565b3480156103e957600080fd5b506103fd6103f83660046149e4565b61107b565b60405161040a9190614aca565b60405180910390f35b34801561041f57600080fd5b506103fd61042e366004614ba0565b6112c7565b34801561043f57600080fd5b506000546201000090046001600160a01b03165b6040516001600160a01b03909116815260200161040a565b34801561047757600080fd5b5061039b610486366004614931565b6112df565b34801561049757600080fd5b5061039b6104a6366004614931565b61149d565b3480156104b757600080fd5b506104c2622dc6c081565b6040516001600160401b03909116815260200161040a565b3480156104e657600080fd5b506103fd6104f5366004614bef565b6114ac565b34801561050657600080fd5b50610532610515366004614931565b6001600160a01b0316600090815260046020526040902054151590565b604051901515815260200161040a565b34801561054e57600080fd5b5061056261055d366004614c64565b6114c2565b60405161040a9190614c98565b34801561057b57600080fd5b5061058f61058a366004614d79565b6114d3565b60405161040a929190614e25565b3480156105a957600080fd5b5061039b6105b8366004614931565b6116dc565b3480156105c957600080fd5b50604080518082019091526002815261763160f01b60208201526103fd565b3480156105f457600080fd5b506104536117d5565b34801561060957600080fd5b507fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba745b60405190815260200161040a565b34801561064657600080fd5b5061039b610655366004614931565b611804565b34801561066657600080fd5b5061039b610675366004614931565b611a87565b34801561068657600080fd5b50610532610695366004614931565b611b55565b3480156106a657600080fd5b506103fd6106b5366004614e4a565b611bdf565b3480156106c657600080fd5b5061039b6106d5366004614e95565b611cc1565b61039b6106e8366004614e95565b611cd7565b3480156106f957600080fd5b50610532610708366004614931565b611ce2565b34801561071957600080fd5b5061039b610728366004614931565b611d06565b34801561073957600080fd5b506003546001600160a01b0316610453565b34801561075757600080fd5b506103fd6107663660046149e4565b611dae565b34801561077757600080fd5b506103fd610786366004614f09565b611efd565b34801561079757600080fd5b506105326107a6366004614931565b612099565b3480156107b757600080fd5b506107c161010081565b60405163ffffffff909116815260200161040a565b3480156107e257600080fd5b506107f66107f1366004614931565b61215e565b60405160ff909116815260200161040a565b34801561081457600080fd5b506103fd610823366004614e4a565b61217f565b34801561083457600080fd5b5061039b612212565b34801561084957600080fd5b506105327f000000000000000000000000000000000000000000000000000000000000000081565b34801561087d57600080fd5b5061062c61088c366004614f84565b6122cd565b34801561089d57600080fd5b5061039b6108ac366004614fa6565b612317565b3480156108bd57600080fd5b506104536108cc366004614fa6565b61236b565b3480156108dd57600080fd5b506103fd6108ec366004614fbf565b6123d2565b3480156108fd57600080fd5b506103fd61090c36600461501b565b612493565b34801561091d57600080fd5b5061053261092c366004614955565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b34801561096657600080fd5b504261062c565b34801561097957600080fd5b5061062c610988366004614f84565b6127aa565b34801561099957600080fd5b5061039b6109a836600461509d565b6127f3565b3480156109b957600080fd5b5061062c600181565b3480156109ce57600080fd5b506105326109dd3660046150e8565b612869565b3480156109ee57600080fd5b5061039b6109fd366004614931565b6128aa565b348015610a0e57600080fd5b50610a22610a1d366004614fa6565b61298e565b60405161040a9190615129565b348015610a3b57600080fd5b5061039b610a4a366004615176565b612a73565b348015610a5b57600080fd5b50610a6f610a6a3660046151a2565b612af2565b60405161040a9695949392919061526c565b348015610a8d57600080fd5b506105327f000000000000000000000000000000000000000000000000000000000000000081565b348015610ac157600080fd5b50610532610ad0366004614fa6565b600090815260026020526040902054151590565b348015610af057600080fd5b50610b04610aff36600461509d565b612bdf565b60405161040a9291906152c5565b348015610b1e57600080fd5b50610453612c2b565b348015610b3357600080fd5b5061039b610b42366004615176565b612cf3565b348015610b5357600080fd5b506103fd610b623660046152de565b612dfe565b348015610b7357600080fd5b50610b87610b82366004614931565b612ef6565b60408051931515845291151560208401529082015260600161040a565b348015610bb057600080fd5b5061039b610bbf366004614955565b612f45565b6000546201000090046001600160a01b03163314610bf5576040516362e9152760e11b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015610c34576040516314f72c9f60e01b815260040160405180910390fd5b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c989190615349565b600081815260026020526040812054919250819003610cca57604051630e4f4df560e11b815260040160405180910390fd5b60006001610cd88184615378565b81548110610ce857610ce861538b565b6000918252602090912001546040516311a5465560e21b81526001600160a01b03868116600483015290911691508190634695195490602401600060405180830381600087803b158015610d3b57600080fd5b505af1158015610d4f573d6000803e3d6000fd5b5050604080518681526001600160a01b03881660208201527f9279aa773f2b588996032d8de89911555039f28b13a11a7c17074330bc082d9a935001905060405180910390a150505050565b6000546201000090046001600160a01b03163314610dcc576040516362e9152760e11b815260040160405180910390fd5b6040516308f2839760e41b81526001600160a01b038281166004830152831690638f28397090602401600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b505050505050565b6000546201000090046001600160a01b03163314610e5c576040516362e9152760e11b815260040160405180910390fd5b6000816001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec09190615349565b60008181526002602052604090205490915015610ef057604051631b93bb7560e31b815260040160405180910390fd5b60015461010011610f1457604051630f85034f60e31b815260040160405180910390fd5b60007f0000000000000000000000000000000000000000000000000000000000000000610fce576000604051610f49906148b4565b604051809103906000f080158015610f65573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03868116600483015291925090821690634a0687ef90602401600060405180830381600087803b158015610fad57600080fd5b505af1158015610fc1573d6000803e3d6000fd5b5050505080915050610fd1565b50815b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0384166001600160a01b0319909116179055546000838152600260205260409081902091909155517f878135063a6cfb3bc333e534b1fdc83f4f12221cad6705c31c0567048a8bd3d19061106e90849086909182526001600160a01b0316602082015260400190565b60405180910390a1505050565b606061108633612099565b6110a35760405163619c535960e01b815260040160405180910390fd5b82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110e592508391506130a09050565b6110f1576110f16153a1565b60008061116b8a6000898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506130c092505050565b9150915081156112805761117e81613212565b15611218578080602001905181019061119791906153fc565b93506111a2846130a0565b61121357866111cc5760405163a85ba64f60e01b8152601460048201526024015b60405180910390fd5b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965061121392508c915060149050613266565b6112ba565b866112395760405163a85ba64f60e01b8152601660048201526024016111c3565b85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092965061121392508c915060169050613266565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509296505050505b5050509695505050505050565b60606112d633846000856132e7565b90505b92915050565b6000546201000090046001600160a01b03163314611310576040516362e9152760e11b815260040160405180910390fd5b604051635b69006f60e11b81527fdfd8ece9bfbcb8c5c540edb935641f63d67686490a1ab97f000288759f30a9466004820152600090309063b6d200de90602401602060405180830381865afa15801561136e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113929190615430565b90506000816001600160a01b0316635437dd976040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f89190615430565b604051631b2ce7f360e11b81526001600160a01b03858116600483015291925090821690633659cfe690602401600060405180830381600087803b15801561143f57600080fd5b505af1158015611453573d6000803e3d6000fd5b50506040516001600160a01b038681168252841692507f052cea8931962dd445ef48b0b998d3056bd0705f437087d60fe3c46a3fa09e1f91506020015b60405180910390a2505050565b6114a981611b1e613266565b50565b60606114ba33858585613524565b949350505050565b6114ca6148c1565b6112d982613635565b60608083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061151892508391506130a09050565b6115385760405163a85ba64f60e01b8152601460048201526024016111c3565b8961154281612099565b61155f5760405163619c535960e01b815260040160405180910390fd5b60006115a087878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b6101208101519091506001600160a01b031633146115d15760405163066875e160e11b815260040160405180910390fd5b60608101805133909152604080516020601f8c018190048102820181019092528a8152908b908b908190840183828082843760009201919091525050505060a083015261161d82613700565b955060006116638e8e8e8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508c91506138349050565b9650905080156116c2578580602001905181019061168191906153fc565b965061168c876130a0565b611698576116986153a1565b6116a1876114c2565b6001600160a01b038316606082015292506116bb83613700565b96506116cb565b6116cb866138ef565b505050505097509795505050505050565b6000546201000090046001600160a01b0316331461170d576040516362e9152760e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000001561174c576040516314f72c9f60e01b815260040160405180910390fd5b806001600160a01b031663cd312ec46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561178a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ae919061544d565b156117cc5760405163474e764160e01b815260040160405180910390fd5b6114a9816139fa565b60006117ff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000546201000090046001600160a01b03163314611835576040516362e9152760e11b815260040160405180910390fd5b6003546001600160a01b03166119a4577f000000000000000000000000000000000000000000000000000000000000000061191b576000604051611878906148b4565b604051809103906000f080158015611894573d6000803e3d6000fd5b50604051634a0687ef60e01b81526001600160a01b03848116600483015291925090821690634a0687ef90602401600060405180830381600087803b1580156118dc57600080fd5b505af11580156118f0573d6000803e3d6000fd5b5050600380546001600160a01b0319166001600160a01b039490941693909317909255506119379050565b600380546001600160a01b0319166001600160a01b0383161790555b600360009054906101000a90046001600160a01b03166001600160a01b0316638129fc1c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561198757600080fd5b505af115801561199b573d6000803e3d6000fd5b50505050611a43565b7f0000000000000000000000000000000000000000000000000000000000000000156119e3576040516314f72c9f60e01b815260040160405180910390fd5b6003546040516311a5465560e21b81526001600160a01b03838116600483015290911690634695195490602401600060405180830381600087803b158015611a2a57600080fd5b505af1158015611a3e573d6000803e3d6000fd5b505050505b6003546040516001600160a01b0390911681527fce13a9895a1719ad4493b2ac1a9bfb36070566161abab408e7ecbe586da8d499906020015b60405180910390a150565b33600081815260046020526040902054611ab4576040516302eb3f7160e61b815260040160405180910390fd5b6001600160a01b038216600090815260046020526040902054611aea57604051634b5518af60e11b815260040160405180910390fd5b611af38261215e565b60ff16611aff8261215e565b60ff1611611b2057604051630447252760e41b815260040160405180910390fd5b6001600160a01b039081166000908152600560209081526040808320949093168252929092529020805460ff19166001179055565b600080546201000090046001600160a01b03166380f70cba3083611b7886613c34565b6040518463ffffffff1660e01b8152600401611b969392919061546a565b602060405180830381865afa158015611bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bd79190615349565b151592915050565b6060611bea33612099565b611c075760405163619c535960e01b815260040160405180910390fd5b83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c4992508391506130a09050565b611c5557611c556153a1565b6000611c9686868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b9050838161010001818151611cab919061548e565b905250611cb781613700565b9695505050505050565b611cd3611ccc613cbc565b8383613d24565b5050565b611cd3338383613d24565b6001600160a01b0381166000908152600460205260408120546180001615156112d9565b6000546201000090046001600160a01b03163314611d37576040516362e9152760e11b815260040160405180910390fd5b600054604080516001600160a01b03620100009093048316815291831660208301527f13abda02e63c790d0e2818b251282cfe5cbe0a8abd69c54bf5d2260c0907bd2e910160405180910390a1600080546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6060611db933612099565b611dd65760405163619c535960e01b815260040160405180910390fd5b82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e1892508391506130a09050565b611e2457611e246153a1565b600080611e9e8a6001898c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506130c092505050565b9150915081156112ba57611eb181613212565b15611ed15780806020019051810190611eca91906153fc565b93506112ba565b86611ef25760405163a85ba64f60e01b8152601660048201526024016111c3565b6112ba8a6016613266565b6060611f0833612099565b611f255760405163619c535960e01b815260040160405180910390fd5b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611f6792508391506130a09050565b611f7357611f736153a1565b6000611fb489898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b9050611fdb81606001516001600160a01b0316600090815260046020526040902054151590565b8015611fef57506001816000015160ff1610155b156120425760608101516001600160a01b039081166000908152600560209081526040808320938b168352929052205460ff166120425760405163a85ba64f60e01b8152601e60048201526024016111c3565b80518161204e826154b6565b60ff169052506003602082015260c0810186905261010081018590526001600160a01b03808816610120830152841661014082015261208c81613700565b9998505050505050505050565b600080826001600160a01b0316637730599e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe9190615349565b60008181526002602052604090205490915080158015906114ba57506001600160a01b03841660016121308184615378565b815481106121405761214061538b565b6000918252602090912001546001600160a01b031614949350505050565b6001600160a01b03811660009081526004602052604081205460ff166112d9565b606061218a33612099565b6121a75760405163619c535960e01b815260040160405180910390fd5b60006121e885858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b90508281610100018181516121fd919061548e565b90525061220981613700565b95945050505050565b600054610100900460ff16158080156122325750600054600160ff909116105b8061224c5750303b15801561224c575060005460ff166001145b6122685760405162461bcd60e51b81526004016111c3906154d5565b6000805460ff19166001179055801561228b576000805461ff0019166101001790555b80156114a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001611a7c565b6000818152600260205260408120548082036122fc57604051630e4f4df560e11b815260040160405180910390fd5b612307600182615378565b6001901b19841691505092915050565b7f00000000000000000000000000000000000000000000000000000000000000001561236157612361604051806040016040528060028152602001616b3160f01b815250326144c0565b6114a93382614569565b60008181526002602052604081205480820361239a57604051630e4f4df560e11b815260040160405180910390fd5b60016123a68183615378565b815481106123b6576123b661538b565b6000918252602090912001546001600160a01b03169392505050565b60606123dd33612099565b6123fa5760405163619c535960e01b815260040160405180910390fd5b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061243c92508391506130a09050565b612448576124486153a1565b6124528484613266565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929998505050505050505050565b606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506124d792508391506130a09050565b6124f75760405163a85ba64f60e01b8152601460048201526024016111c3565b6001600160a01b03871660009081526004602052604081205488918190036125325760405163163cbe4360e01b815260040160405180910390fd5b61800081161561255457604051628e12d960e21b815260040160405180910390fd5b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506125959150839050614638565b90506001600160e01b031981166330d9c91560e01b14806125c657506001600160e01b0319811663d86ed3e560e01b145b806125e157506001600160e01b03198116630221347d60e61b145b806125fc57506001600160e01b0319811663230dbd2960e01b145b8061261757506001600160e01b03198116635f9e7d7760e01b145b8061263257506001600160e01b031981166353c11f9960e01b145b15612650576040516377a14afb60e11b815260040160405180910390fd5b600061269189898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506114c292505050565b6101208101519091506001600160a01b031633146126c2576040516311cfdef560e21b815260040160405180910390fd5b606081018051339091526126d582613700565b975060008061271c8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508f91506138349050565b91509150811561278f578080602001905181019061273a91906153fc565b99506127458a6130a0565b6127655760405163a85ba64f60e01b8152601460048201526024016111c3565b61276e8a6114c2565b6001600160a01b0384166060820152935061278884613700565b9950612798565b612798816138ef565b50505050505050505095945050505050565b6000818152600260205260408120548082036127d957604051630e4f4df560e11b815260040160405180910390fd5b6127e4600182615378565b6001901b841791505092915050565b7f00000000000000000000000000000000000000000000000000000000000000001561285a5761285a82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503292506144c0915050565b6128643384614569565b505050565b60006112d683838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506130a092505050565b600054610100900460ff16158080156128ca5750600054600160ff909116105b806128e45750303b1580156128e4575060005460ff166001145b6129005760405162461bcd60e51b81526004016111c3906154d5565b6000805460ff191660011790558015612923576000805461ff0019166101001790555b6000805462010000600160b01b031916620100006001600160a01b038516021790558015611cd3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60606000806001805490506001600160401b038111156129b0576129b0614add565b6040519080825280602002602001820160405280156129d9578160200160208202803683370190505b50925060009050600091505b600154821015612a6b576001821b841615612a605760018281548110612a0d57612a0d61538b565b6000918252602090912001546001600160a01b03168382612a2d81615523565b935081518110612a3f57612a3f61538b565b60200260200101906001600160a01b031690816001600160a01b0316815250505b8160010191506129e5565b825250919050565b816001600160a01b03163b600003612a9e5760405163353dacc360e21b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015612ae857612ae8604051806040016040528060028152602001616b3160f01b815250336144c0565b611cd38282614569565b600080600060608060608e8e8e8e8e8e8e8e8e85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f890181900481028201810190925287815293995096975094959394509192909150859085908190840183828082843760009201919091525050604080516020601f87018190048102820181019092528581529397509495509293919250849184915081908401838280828437600092019190915250999f50979d50959b50939950919750919550505050505099509950995099509950999350505050565b6000606084848481818080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250959b929a509198505050505050505050565b6003546000906001600160a01b0316612c4657612c466153a1565b7f000000000000000000000000000000000000000000000000000000000000000015612c7c57506003546001600160a01b031690565b600360009054906101000a90046001600160a01b03166001600160a01b03166350d75d256040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ccf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ff9190615430565b816001600160a01b03163b600003612d1e5760405163353dacc360e21b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015612ae8576000612d4f33614694565b6000805460405163407b865d60e11b81529293509091620100009091046001600160a01b0316906380f70cba90612d8e9030908590879060040161546a565b602060405180830381865afa158015612dab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dcf9190615349565b600114905080612df257604051630b56455f60e41b815260040160405180910390fd5b5050611cd38282614569565b60606000612e7586868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a01819004810282018101909252888152925088915087908190840183828082843760009201919091525061470e92505050565b90506000306001600160a01b031682604051612e91919061553c565b600060405180830381855afa9150503d8060008114612ecc576040519150601f19603f3d011682016040523d82523d6000602084013e612ed1565b606091505b50935090508015612ee35750506114ba565b612eec836138ef565b5050949350505050565b6001600160a01b038116600090815260046020908152604080832081519283019091525480825215801592918291612f3d57805161800081161515935064ff000000001691505b509193909250565b6000546201000090046001600160a01b03163314612f76576040516362e9152760e11b815260040160405180910390fd5b60006001600160a01b03821661300257600360009054906101000a90046001600160a01b03166001600160a01b0316639470a5b26040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffd9190615430565b613004565b815b6040516311a5465560e21b81526001600160a01b03808316600483015291925090841690634695195490602401600060405180830381600087803b15801561304b57600080fd5b505af115801561305f573d6000803e3d6000fd5b50506040516001600160a01b038481168252861692507f840acbd291b38534819f47f875839277e502f40e1c7bfea2c5fc2c8017442cd39150602001611490565b600081516000141580156112d95750600654825160208401201492915050565b600060606001600160a01b0387166130da576130da6153a1565b6130e4848461470e565b9350622dc6c060005a9050871561315a57886001600160a01b0316828760405161310e919061553c565b6000604051808303818686fa925050503d806000811461314a576040519150601f19603f3d011682016040523d82523d6000602084013e61314f565b606091505b5090945092506131bd565b886001600160a01b03168287604051613173919061553c565b60006040518083038160008787f1925050503d80600081146131b1576040519150601f19603f3d011682016040523d82523d6000602084013e6131b6565b606091505b5090945092505b83613206576131cb816147c5565b6131ed57866131e2576131dd836138ef565b613206565b6131dd89600a613266565b604051636a7aea4b60e11b815260040160405180910390fd5b50509550959350505050565b600060408251101561322657506000919050565b602082810151906000908214613240575060009392505050565b50604083015161324f816147db565b61325a906040615558565b84511492505050919050565b6001600160a01b038216600090815260046020526040812054618000169003611cd3576001600160a01b038216600081815260046020526040908190208054618000179055517fbe3aa33bd245135e4e26b223d79d14ea479a47bff09f2b03c53838af1edbb14b906132db9084815260200190565b60405180910390a25050565b6006546060901561330e5760405163a85ba64f60e01b8152601560048201526024016111c3565b6001600160a01b03841660009081526004602052604081205485918190036133495760405163163cbe4360e01b815260040160405180910390fd5b61800081161561336b57604051628e12d960e21b815260040160405180910390fd5b83600061337782614638565b90506001600160e01b031981166330d9c91560e01b14806133a857506001600160e01b0319811663d86ed3e560e01b145b806133c357506001600160e01b03198116630221347d60e61b145b806133de57506001600160e01b0319811663230dbd2960e01b145b806133f957506001600160e01b03198116635f9e7d7760e01b145b8061341457506001600160e01b031981166353c11f9960e01b145b15613432576040516377a14afb60e11b815260040160405180910390fd5b60408051610160810182526000808252600260208084019190915242838501526001600160a01b03808e16606085015260808401839052845191820190945281815260a083015260c0820181905260e082018190526101008201819052918a1661012082015261014081018290526134a990613700565b905060006134b98a898b85613834565b97509050801561350757868060200190518101906134d791906153fc565b91506134e2826130a0565b6135025760405163a85ba64f60e01b8152601460048201526024016111c3565b613510565b613510876138ef565b505060006006555092979650505050505050565b6006546060901561354b5760405163a85ba64f60e01b8152601560048201526024016111c3565b8361355581612099565b6135725760405163619c535960e01b815260040160405180910390fd5b600061357d85614638565b60408051610160810182526000808252600160208301529293506136009181014281526020018a6001600160a01b03168152602001846001600160e01b031916815260200187815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b0316815250613700565b905060006136118888600085613834565b955090508061362357613623856138ef565b50506000600655509095945050505050565b61363d6148c1565b60608083806020019051810190613654919061556b565b8151919350915060009061367190840160209081019085016155c4565b60a08901526001600160e01b03191660808801526001600160a01b031660608701526040860152602081811c600f168187015260ff90911685528251600092506136c2919084018101908401615648565b6001600160a01b03908116610140890152166101208701526101008601526001600160801b03811660c086015260801c60e085015250919392505050565b60606001826000015160ff16111561372e5760405163a85ba64f60e01b8152602860048201526024016111c3565b815160208084015160009260ff1664ff000000009190921b161790506000608061375b8560e00151614814565b6001600160801b0316901b6137738560c00151614814565b6001600160801b0316179050818460400151856060015186608001518760a001516040516020016137a8959493929190615693565b60408051601f1981840301815282825261010087015161012088015161014089015160208601879052938501919091526001600160a01b03908116606085015290911660808301529060a00160408051601f19818403018152908290526138129291602001614e25565b60408051601f1981840301815291905280516020820120600655949350505050565b600060606001600160a01b03861661384e5761384e6153a1565b613858858461470e565b9450856001600160a01b03168486604051613873919061553c565b60006040518083038185875af1925050503d80600081146138b0576040519150601f19603f3d011682016040523d82523d6000602084013e6138b5565b606091505b50909250905081156138e65780516000036138e65760405163a85ba64f60e01b8152601660048201526024016111c3565b94509492505050565b6004815110156139415760405162461bcd60e51b815260206004820152601a60248201527f43616c6c5574696c733a2074617267657420726576657274282900000000000060448201526064016111c3565b602081015163b1b7848f60e01b6001600160e01b03198216016139f15760408051808201825260208082527f43616c6c5574696c733a207461726765742070616e69636b65643a2030785f5f90820190815260248501517f43616c6c5574696c733a207461726765742070616e69636b65643a2030780000600482811c600f908116603090810160081b918516011791909117909252925162461bcd60e51b81529192916111c391849101614aca565b81518060208401fd5b6000613a247f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603613a7a5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016111c3565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613adc9190615349565b7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba7414613b565760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016111c3565b6001600160a01b0381163003613bae5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016111c3565b613bd6817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7fcd355cae2c435f8c5e0c626c4691d22fd85aa7422a424c6f0bced6e64c7aba74604080519182526001600160a01b038416602083015201611a7c565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b600060183610801590613cd35750613cd333611b55565b613d175760405162461bcd60e51b81526020600482015260156024820152742737ba103a393ab9ba32b2103337b93bb0b93232b960591b60448201526064016111c3565b5060131936013560601c90565b6000805b82811015614479576000848483818110613d4457613d4461538b565b9050602002810190613d5691906156df565b613d649060208101906156f5565b905060001963ffffffff821601613e5857600080868685818110613d8a57613d8a61538b565b9050602002810190613d9c91906156df565b613daa90604081019061571b565b810190613db79190615176565b91509150868685818110613dcd57613dcd61538b565b9050602002810190613ddf91906156df565b613df0906040810190602001614931565b6001600160a01b03166362aa52878984846040518463ffffffff1660e01b8152600401613e1f9392919061546a565b600060405180830381600087803b158015613e3957600080fd5b505af1158015613e4d573d6000803e3d6000fd5b505050505050614470565b60011963ffffffff821601613f63576000806000878786818110613e7e57613e7e61538b565b9050602002810190613e9091906156df565b613e9e90604081019061571b565b810190613eab9190615761565b925092509250878786818110613ec357613ec361538b565b9050602002810190613ed591906156df565b613ee6906040810190602001614931565b604051630b682aeb60e11b81526001600160a01b038b81166004830152858116602483015284811660448301526064820184905291909116906316d055d6906084015b600060405180830381600087803b158015613f4357600080fd5b505af1158015613f57573d6000803e3d6000fd5b50505050505050614470565b60021963ffffffff821601614022576000806000878786818110613f8957613f8961538b565b9050602002810190613f9b91906156df565b613fa990604081019061571b565b810190613fb691906157a2565b925092509250878786818110613fce57613fce61538b565b9050602002810190613fe091906156df565b613ff1906040810190602001614931565b6001600160a01b031663ca0c1e7f8a8585856040518563ffffffff1660e01b8152600401613f2994939291906157f0565b60031963ffffffff8216016140db576000808686858181106140465761404661538b565b905060200281019061405891906156df565b61406690604081019061571b565b8101906140739190615176565b915091508686858181106140895761408961538b565b905060200281019061409b91906156df565b6140ac906040810190602001614931565b6001600160a01b0316634b2763b38984846040518463ffffffff1660e01b8152600401613e1f9392919061546a565b60041963ffffffff821601614194576000808686858181106140ff576140ff61538b565b905060200281019061411191906156df565b61411f90604081019061571b565b81019061412c9190615176565b915091508686858181106141425761414261538b565b905060200281019061415491906156df565b614165906040810190602001614931565b6001600160a01b031663c780fd828984846040518463ffffffff1660e01b8152600401613e1f9392919061546a565b60641963ffffffff821601614289578484838181106141b5576141b561538b565b90506020028101906141c791906156df565b6141d8906040810190602001614931565b6001600160a01b031663ca789464878787868181106141f9576141f961538b565b905060200281019061420b91906156df565b61421990604081019061571b565b8101906142269190614fa6565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561426c57600080fd5b505af1158015614280573d6000803e3d6000fd5b50505050614470565b60651963ffffffff8216016142ee578484838181106142aa576142aa61538b565b90506020028101906142bc91906156df565b6142cd906040810190602001614931565b6001600160a01b031663245887fc878787868181106141f9576141f961538b565b60c81963ffffffff82160161438b576000808686858181106143125761431261538b565b905060200281019061432491906156df565b61433290604081019061571b565b81019061433f9190615823565b91509150614383888888878181106143595761435961538b565b905060200281019061436b91906156df565b61437c906040810190602001614931565b8484613524565b505050614470565b60c91963ffffffff8216016144575761444d868686858181106143b0576143b061538b565b90506020028101906143c291906156df565b6143d3906040810190602001614931565b856143de57346143e1565b60005b8888878181106143f3576143f361538b565b905060200281019061440591906156df565b61441390604081019061571b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132e792505050565b5060019250614470565b60405163b477011560e01b815260040160405180910390fd5b50600101613d28565b503415801590614487575080155b156144ba5760405133903480156108fc02916000818181858888f193505050501580156144b8573d6000803e3d6000fd5b505b50505050565b60006144cc8284614881565b6000805460405163407b865d60e11b81529293504292620100009091046001600160a01b0316916380f70cba91614509913091879060040161546a565b602060405180830381865afa158015614526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061454a9190615349565b101561286457604051630b56455f60e41b815260040160405180910390fd5b64ff000080ff198116151580614580575060ff8116155b8061458e5750618000811615155b156145ac57604051633d3200a960e21b815260040160405180910390fd5b6001600160a01b038216600090815260046020526040902054156145e3576040516301b0a93560e01b815260040160405180910390fd5b60408051602080820183528382526001600160a01b038516600081815260049092528382209251909255915190917f0d540ad8f39e07d19909687352b9fa017405d93c91a6760981fbae9cf28bfef791a25050565b600060048251101561468c5760405162461bcd60e51b815260206004820152601b60248201527f43616c6c5574696c733a20696e76616c69642063616c6c44617461000000000060448201526064016111c3565b506020015190565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c001613c9f565b815180830151606091908015614737576040516367e9985b60e01b815260040160405180910390fd5b50601f198101845282518490848161474e816147db565b6147589190615378565b6001600160401b0381111561476f5761476f614add565b6040519080825280601f01601f191660200182016040528015614799576020820181803683370190505b506040516020016147ad949392919061587c565b60405160208183030381529060405291505092915050565b60006147d26040836158cb565b5a111592915050565b60008082601f16116147ee5760006147f1565b60015b60ff166147ff6020846158cb565b6148099190615558565b6112d99060206158ed565b60006001600160801b0382111561487d5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b60648201526084016111c3565b5090565b60008282604051602001614896929190615904565b60405160208183030381529060405280519060200120905092915050565b61024a8061598a83390190565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e081018290526101008101829052610120810182905261014081019190915290565b6001600160a01b03811681146114a957600080fd5b60006020828403121561494357600080fd5b813561494e8161491c565b9392505050565b6000806040838503121561496857600080fd5b82356149738161491c565b915060208301356149838161491c565b809150509250929050565b60008083601f8401126149a057600080fd5b5081356001600160401b038111156149b757600080fd5b6020830191508360208285010111156149cf57600080fd5b9250929050565b80151581146114a957600080fd5b600080600080600080608087890312156149fd57600080fd5b8635614a088161491c565b955060208701356001600160401b0380821115614a2457600080fd5b614a308a838b0161498e565b909750955060408901359150614a45826149d6565b90935060608801359080821115614a5b57600080fd5b50614a6889828a0161498e565b979a9699509497509295939492505050565b60005b83811015614a95578181015183820152602001614a7d565b50506000910152565b60008151808452614ab6816020860160208601614a7a565b601f01601f19169290920160200192915050565b6020815260006112d66020830184614a9e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614b1b57614b1b614add565b604052919050565b60006001600160401b03821115614b3c57614b3c614add565b50601f01601f191660200190565b600082601f830112614b5b57600080fd5b8135614b6e614b6982614b23565b614af3565b818152846020838601011115614b8357600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614bb357600080fd5b8235614bbe8161491c565b915060208301356001600160401b03811115614bd957600080fd5b614be585828601614b4a565b9150509250929050565b600080600060608486031215614c0457600080fd5b8335614c0f8161491c565b925060208401356001600160401b0380821115614c2b57600080fd5b614c3787838801614b4a565b93506040860135915080821115614c4d57600080fd5b50614c5a86828701614b4a565b9150509250925092565b600060208284031215614c7657600080fd5b81356001600160401b03811115614c8c57600080fd5b6114ba84828501614b4a565b60208152614cac60208201835160ff169052565b60006020830151614cc2604084018260ff169052565b50604083015160608301526060830151614ce760808401826001600160a01b03169052565b5060808301516001600160e01b0319811660a08401525060a08301516101608060c0850152614d1a610180850183614a9e565b915060c085015160e085015260e0850151610100818187015280870151915050610120818187015280870151915050610140614d60818701836001600160a01b03169052565b909501516001600160a01b031693019290925250919050565b60008060008060008060006080888a031215614d9457600080fd5b8735614d9f8161491c565b965060208801356001600160401b0380821115614dbb57600080fd5b614dc78b838c0161498e565b909850965060408a0135915080821115614de057600080fd5b614dec8b838c0161498e565b909650945060608a0135915080821115614e0557600080fd5b50614e128a828b0161498e565b989b979a50959850939692959293505050565b604081526000614e386040830185614a9e565b82810360208401526122098185614a9e565b600080600060408486031215614e5f57600080fd5b83356001600160401b03811115614e7557600080fd5b614e818682870161498e565b909790965060209590950135949350505050565b60008060208385031215614ea857600080fd5b82356001600160401b0380821115614ebf57600080fd5b818501915085601f830112614ed357600080fd5b813581811115614ee257600080fd5b8660208260051b8501011115614ef757600080fd5b60209290920196919550909350505050565b60008060008060008060a08789031215614f2257600080fd5b86356001600160401b03811115614f3857600080fd5b614f4489828a0161498e565b9097509550506020870135614f588161491c565b935060408701359250606087013591506080870135614f768161491c565b809150509295509295509295565b60008060408385031215614f9757600080fd5b50508035926020909101359150565b600060208284031215614fb857600080fd5b5035919050565b60008060008060608587031215614fd557600080fd5b84356001600160401b03811115614feb57600080fd5b614ff78782880161498e565b909550935050602085013561500b8161491c565b9396929550929360400135925050565b60008060008060006060868803121561503357600080fd5b853561503e8161491c565b945060208601356001600160401b038082111561505a57600080fd5b61506689838a0161498e565b9096509450604088013591508082111561507f57600080fd5b5061508c8882890161498e565b969995985093965092949392505050565b6000806000604084860312156150b257600080fd5b8335925060208401356001600160401b038111156150cf57600080fd5b6150db8682870161498e565b9497909650939450505050565b600080602083850312156150fb57600080fd5b82356001600160401b0381111561511157600080fd5b61511d8582860161498e565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b8181101561516a5783516001600160a01b031683529284019291840191600101615145565b50909695505050505050565b6000806040838503121561518957600080fd5b82356151948161491c565b946020939093013593505050565b600080600080600080600080600060c08a8c0312156151c057600080fd5b89356151cb8161491c565b985060208a01356151db8161491c565b975060408a0135965060608a01356001600160401b03808211156151fe57600080fd5b61520a8d838e0161498e565b909850965060808c013591508082111561522357600080fd5b61522f8d838e0161498e565b909650945060a08c013591508082111561524857600080fd5b506152558c828d0161498e565b915080935050809150509295985092959850929598565b6001600160a01b038781168252861660208201526040810185905260c06060820181905260009061529f90830186614a9e565b82810360808401526152b18186614a9e565b905082810360a084015261208c8185614a9e565b8281526040602082015260006114ba6040830184614a9e565b600080600080604085870312156152f457600080fd5b84356001600160401b038082111561530b57600080fd5b6153178883890161498e565b9096509450602087013591508082111561533057600080fd5b5061533d8782880161498e565b95989497509550505050565b60006020828403121561535b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156112d9576112d9615362565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052600160045260246000fd5b600082601f8301126153c857600080fd5b81516153d6614b6982614b23565b8181528460208386010111156153eb57600080fd5b6114ba826020830160208701614a7a565b60006020828403121561540e57600080fd5b81516001600160401b0381111561542457600080fd5b6114ba848285016153b7565b60006020828403121561544257600080fd5b815161494e8161491c565b60006020828403121561545f57600080fd5b815161494e816149d6565b6001600160a01b039384168152919092166020820152604081019190915260600190565b80820182811260008312801582168215821617156154ae576154ae615362565b505092915050565b600060ff821660ff81036154cc576154cc615362565b60010192915050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60006001820161553557615535615362565b5060010190565b6000825161554e818460208701614a7a565b9190910192915050565b808201808211156112d9576112d9615362565b6000806040838503121561557e57600080fd5b82516001600160401b038082111561559557600080fd5b6155a1868387016153b7565b935060208501519150808211156155b757600080fd5b50614be5858286016153b7565b600080600080600060a086880312156155dc57600080fd5b855194506020860151935060408601516155f58161491c565b60608701519093506001600160e01b03198116811461561357600080fd5b60808701519092506001600160401b0381111561562f57600080fd5b61563b888289016153b7565b9150509295509295909350565b6000806000806080858703121561565e57600080fd5b845193506020850151925060408501516156778161491c565b60608601519092506156888161491c565b939692955090935050565b858152602081018590526001600160a01b03841660408201526001600160e01b03198316606082015260a0608082018190526000906156d490830184614a9e565b979650505050505050565b60008235605e1983360301811261554e57600080fd5b60006020828403121561570757600080fd5b813563ffffffff8116811461494e57600080fd5b6000808335601e1984360301811261573257600080fd5b8301803591506001600160401b0382111561574c57600080fd5b6020019150368190038213156149cf57600080fd5b60008060006060848603121561577657600080fd5b83356157818161491c565b925060208401356157918161491c565b929592945050506040919091013590565b6000806000606084860312156157b757600080fd5b83356157c28161491c565b92506020840135915060408401356001600160401b038111156157e457600080fd5b614c5a86828701614b4a565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611cb790830184614a9e565b6000806040838503121561583657600080fd5b82356001600160401b038082111561584d57600080fd5b61585986838701614b4a565b9350602085013591508082111561586f57600080fd5b50614be585828601614b4a565b60008551602061588f8285838b01614a7a565b818401915086825285516158a881838501848a01614a7a565b85519201916158bc81838501848901614a7a565b91909101019695505050505050565b6000826158e857634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176112d9576112d9615362565b60608152604160608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e726567697374726174696f6e4b6560a0820152607960f81b60c082015260018060a01b038316602082015260e0604082015260006114ba60e0830184614a9e56fe608060405234801561001057600080fd5b5061022a806100206000396000f3fe6080604052600436106100225760003560e01c80634a0687ef1461003957610031565b366100315761002f610059565b005b61002f610059565b34801561004557600080fd5b5061002f6100543660046101c4565b61006b565b610069610064610171565b6101a0565b565b6001600160a01b0381166100c65760405162461bcd60e51b815260206004820152601760248201527f5555505350726f78793a207a65726f206164647265737300000000000000000060448201526064015b60405180910390fd5b60006100f07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316146101465760405162461bcd60e51b815260206004820152601e60248201527f5555505350726f78793a20616c726561647920696e697469616c697a6564000060448201526064016100bd565b61016e817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b50565b600061019b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b3660008037600080366000845af43d6000803e8080156101bf573d6000f35b3d6000fd5b6000602082840312156101d657600080fd5b81356001600160a01b03811681146101ed57600080fd5b939250505056fea26469706673582212206902a7db24b0d3a778c1f364c2041c6224c0ba5a54b2a99ab7f21c6f5b9e285964736f6c63430008170033a2646970667358221220437070bbfa0b6d6c65287c32c8990d6be993491b54ea35b2178b7f66efab91b964736f6c63430008170033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "bool";