@superfluid-finance/sdk-core 0.9.1-dev.a5bf3a6.0 → 0.9.1-dev.a996917.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 (366) hide show
  1. package/dist/index.umd.js +264 -61
  2. package/dist/main/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts +17 -1
  3. package/dist/main/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts.map +1 -1
  4. package/dist/main/typechain-types/contracts/interfaces/superfluid/ISuperToken.d.ts +17 -1
  5. package/dist/main/typechain-types/contracts/interfaces/superfluid/ISuperToken.d.ts.map +1 -1
  6. package/dist/main/typechain-types/contracts/interfaces/superfluid/ISuperfluidToken.d.ts +17 -1
  7. package/dist/main/typechain-types/contracts/interfaces/superfluid/ISuperfluidToken.d.ts.map +1 -1
  8. package/dist/main/typechain-types/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken.d.ts +17 -1
  9. package/dist/main/typechain-types/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken.d.ts.map +1 -1
  10. package/dist/main/typechain-types/contracts/interfaces/tokens/ISETH.sol/ISETH.d.ts +17 -1
  11. package/dist/main/typechain-types/contracts/interfaces/tokens/ISETH.sol/ISETH.d.ts.map +1 -1
  12. package/dist/main/typechain-types/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock.d.ts +17 -1
  13. package/dist/main/typechain-types/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock.d.ts.map +1 -1
  14. package/dist/main/typechain-types/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock.d.ts +17 -1
  15. package/dist/main/typechain-types/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock.d.ts.map +1 -1
  16. package/dist/main/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock.d.ts +17 -1
  17. package/dist/main/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock.d.ts.map +1 -1
  18. package/dist/main/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester.d.ts +17 -1
  19. package/dist/main/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester.d.ts.map +1 -1
  20. package/dist/main/typechain-types/contracts/superfluid/SuperToken.d.ts +17 -1
  21. package/dist/main/typechain-types/contracts/superfluid/SuperToken.d.ts.map +1 -1
  22. package/dist/main/typechain-types/contracts/superfluid/SuperfluidToken.d.ts +17 -1
  23. package/dist/main/typechain-types/contracts/superfluid/SuperfluidToken.d.ts.map +1 -1
  24. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts +1 -1
  25. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts.map +1 -1
  26. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js +1 -1
  27. package/dist/main/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js.map +1 -1
  28. package/dist/main/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.d.ts +1 -1
  29. package/dist/main/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.js +1 -1
  30. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts +19 -1
  31. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts.map +1 -1
  32. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js +24 -1
  33. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js.map +1 -1
  34. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.d.ts +1 -1
  35. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.js +1 -1
  36. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts +1 -1
  37. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts.map +1 -1
  38. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js +1 -1
  39. package/dist/main/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js.map +1 -1
  40. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.d.ts +1 -1
  41. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.js +1 -1
  42. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.d.ts +1 -1
  43. package/dist/main/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.js +1 -1
  44. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.d.ts +14 -0
  45. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.d.ts.map +1 -1
  46. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.js +18 -0
  47. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.js.map +1 -1
  48. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.d.ts +14 -0
  49. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.d.ts.map +1 -1
  50. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.js +18 -0
  51. package/dist/main/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.js.map +1 -1
  52. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.d.ts +14 -0
  53. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.d.ts.map +1 -1
  54. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.js +18 -0
  55. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.js.map +1 -1
  56. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.d.ts +14 -0
  57. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.d.ts.map +1 -1
  58. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.js +18 -0
  59. package/dist/main/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.js.map +1 -1
  60. package/dist/main/typechain-types/factories/contracts/libs/SlotsBitmapLibrary__factory.d.ts +1 -1
  61. package/dist/main/typechain-types/factories/contracts/libs/SlotsBitmapLibrary__factory.js +1 -1
  62. package/dist/main/typechain-types/factories/contracts/mocks/AgreementMock.t.sol/AgreementMock__factory.d.ts +1 -1
  63. package/dist/main/typechain-types/factories/contracts/mocks/AgreementMock.t.sol/AgreementMock__factory.js +1 -1
  64. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ClosingOnUpdateFlowTestApp__factory.d.ts +1 -1
  65. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ClosingOnUpdateFlowTestApp__factory.js +1 -1
  66. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ExclusiveInflowTestApp__factory.d.ts +1 -1
  67. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ExclusiveInflowTestApp__factory.js +1 -1
  68. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/FlowExchangeTestApp__factory.d.ts +1 -1
  69. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/FlowExchangeTestApp__factory.js +1 -1
  70. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/NonClosableOutflowTestApp__factory.d.ts +1 -1
  71. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/NonClosableOutflowTestApp__factory.js +1 -1
  72. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/SelfDeletingFlowTestApp__factory.d.ts +1 -1
  73. package/dist/main/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/SelfDeletingFlowTestApp__factory.js +1 -1
  74. package/dist/main/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.d.ts +14 -0
  75. package/dist/main/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.d.ts.map +1 -1
  76. package/dist/main/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.js +18 -0
  77. package/dist/main/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.js.map +1 -1
  78. package/dist/main/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenProxyMock__factory.d.ts +1 -1
  79. package/dist/main/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenProxyMock__factory.js +1 -1
  80. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientDrainingGas__factory.d.ts +1 -1
  81. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientDrainingGas__factory.js +1 -1
  82. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientReverting__factory.d.ts +1 -1
  83. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientReverting__factory.js +1 -1
  84. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777SenderRecipientMock__factory.d.ts +1 -1
  85. package/dist/main/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777SenderRecipientMock__factory.js +1 -1
  86. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester.t.sol/IDASuperAppTester__factory.d.ts +1 -1
  87. package/dist/main/typechain-types/factories/contracts/mocks/IDASuperAppTester.t.sol/IDASuperAppTester__factory.js +1 -1
  88. package/dist/main/typechain-types/factories/contracts/mocks/MockSmartWallet.t.sol/MockSmartWallet__factory.d.ts +1 -1
  89. package/dist/main/typechain-types/factories/contracts/mocks/MockSmartWallet.t.sol/MockSmartWallet__factory.js +1 -1
  90. package/dist/main/typechain-types/factories/contracts/mocks/MultiFlowTesterApp.t.sol/MultiFlowTesterApp__factory.d.ts +1 -1
  91. package/dist/main/typechain-types/factories/contracts/mocks/MultiFlowTesterApp.t.sol/MultiFlowTesterApp__factory.js +1 -1
  92. package/dist/main/typechain-types/factories/contracts/mocks/StreamRedirector.t.sol/StreamRedirector__factory.d.ts +1 -1
  93. package/dist/main/typechain-types/factories/contracts/mocks/StreamRedirector.t.sol/StreamRedirector__factory.js +1 -1
  94. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  95. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppFactoryMock__factory.js +1 -1
  96. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  97. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock2ndLevel__factory.js +1 -1
  98. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockAux__factory.d.ts +1 -1
  99. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockAux__factory.js +1 -1
  100. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  101. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  102. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  103. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  104. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockUsingRegisterApp__factory.d.ts +1 -1
  105. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockUsingRegisterApp__factory.js +1 -1
  106. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  107. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  108. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock__factory.d.ts +1 -1
  109. package/dist/main/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock__factory.js +1 -1
  110. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.d.ts +1 -1
  111. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.js +1 -1
  112. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.d.ts +1 -1
  113. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.js +1 -1
  114. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.d.ts +1 -1
  115. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.js +1 -1
  116. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.d.ts +1 -1
  117. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.js +1 -1
  118. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFAMock__factory.d.ts +1 -1
  119. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFAMock__factory.js +1 -1
  120. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFASuperAppMock__factory.d.ts +1 -1
  121. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFASuperAppMock__factory.js +1 -1
  122. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDAMock__factory.d.ts +1 -1
  123. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDAMock__factory.js +1 -1
  124. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDASuperAppMock__factory.d.ts +1 -1
  125. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDASuperAppMock__factory.js +1 -1
  126. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.d.ts +15 -1
  127. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.d.ts.map +1 -1
  128. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.js +19 -1
  129. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.js.map +1 -1
  130. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.d.ts +15 -1
  131. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.d.ts.map +1 -1
  132. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.js +19 -1
  133. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.js.map +1 -1
  134. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.d.ts +15 -1
  135. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.d.ts.map +1 -1
  136. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.js +19 -1
  137. package/dist/main/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.js.map +1 -1
  138. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.t.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.d.ts +1 -1
  139. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.t.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.js +1 -1
  140. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidMock__factory.d.ts +1 -1
  141. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidMock__factory.js +1 -1
  142. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  143. package/dist/main/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  144. package/dist/main/typechain-types/factories/contracts/superfluid/FullUpgradableSuperTokenProxy__factory.d.ts +1 -1
  145. package/dist/main/typechain-types/factories/contracts/superfluid/FullUpgradableSuperTokenProxy__factory.js +1 -1
  146. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.d.ts +1 -1
  147. package/dist/main/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.js +1 -1
  148. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts +15 -1
  149. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts.map +1 -1
  150. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.js +19 -1
  151. package/dist/main/typechain-types/factories/contracts/superfluid/SuperToken__factory.js.map +1 -1
  152. package/dist/main/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.d.ts +14 -0
  153. package/dist/main/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.d.ts.map +1 -1
  154. package/dist/main/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.js +18 -0
  155. package/dist/main/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.js.map +1 -1
  156. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  157. package/dist/main/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  158. package/dist/main/typechain-types/factories/contracts/tokens/PureSuperToken__factory.d.ts +1 -1
  159. package/dist/main/typechain-types/factories/contracts/tokens/PureSuperToken__factory.js +1 -1
  160. package/dist/main/typechain-types/factories/contracts/tokens/SETH.sol/SETHProxy__factory.d.ts +1 -1
  161. package/dist/main/typechain-types/factories/contracts/tokens/SETH.sol/SETHProxy__factory.js +1 -1
  162. package/dist/main/typechain-types/factories/contracts/utils/BatchLiquidator__factory.d.ts +1 -1
  163. package/dist/main/typechain-types/factories/contracts/utils/BatchLiquidator__factory.js +1 -1
  164. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts +1 -1
  165. package/dist/main/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js +1 -1
  166. package/dist/main/typechain-types/factories/contracts/utils/ERC1820Implementer__factory.d.ts +1 -1
  167. package/dist/main/typechain-types/factories/contracts/utils/ERC1820Implementer__factory.js +1 -1
  168. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts +1 -1
  169. package/dist/main/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js +1 -1
  170. package/dist/main/typechain-types/factories/contracts/utils/MacroForwarder__factory.d.ts +1 -1
  171. package/dist/main/typechain-types/factories/contracts/utils/MacroForwarder__factory.js +1 -1
  172. package/dist/main/typechain-types/factories/contracts/utils/SuperUpgrader__factory.d.ts +1 -1
  173. package/dist/main/typechain-types/factories/contracts/utils/SuperUpgrader__factory.js +1 -1
  174. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer.t.sol/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  175. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer.t.sol/SuperfluidFrameworkDeployer__factory.js +1 -1
  176. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps.t.sol/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  177. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps.t.sol/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  178. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.d.ts +1 -1
  179. package/dist/main/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.js +1 -1
  180. package/dist/main/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.d.ts +1 -1
  181. package/dist/main/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.js +1 -1
  182. package/dist/main/typechain-types/factories/contracts/utils/TestGovernance__factory.d.ts +1 -1
  183. package/dist/main/typechain-types/factories/contracts/utils/TestGovernance__factory.js +1 -1
  184. package/dist/module/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts +17 -1
  185. package/dist/module/typechain-types/contracts/agreements/gdav1/GeneralDistributionAgreementV1.d.ts.map +1 -1
  186. package/dist/module/typechain-types/contracts/interfaces/superfluid/ISuperToken.d.ts +17 -1
  187. package/dist/module/typechain-types/contracts/interfaces/superfluid/ISuperToken.d.ts.map +1 -1
  188. package/dist/module/typechain-types/contracts/interfaces/superfluid/ISuperfluidToken.d.ts +17 -1
  189. package/dist/module/typechain-types/contracts/interfaces/superfluid/ISuperfluidToken.d.ts.map +1 -1
  190. package/dist/module/typechain-types/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken.d.ts +17 -1
  191. package/dist/module/typechain-types/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken.d.ts.map +1 -1
  192. package/dist/module/typechain-types/contracts/interfaces/tokens/ISETH.sol/ISETH.d.ts +17 -1
  193. package/dist/module/typechain-types/contracts/interfaces/tokens/ISETH.sol/ISETH.d.ts.map +1 -1
  194. package/dist/module/typechain-types/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock.d.ts +17 -1
  195. package/dist/module/typechain-types/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock.d.ts.map +1 -1
  196. package/dist/module/typechain-types/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock.d.ts +17 -1
  197. package/dist/module/typechain-types/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock.d.ts.map +1 -1
  198. package/dist/module/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock.d.ts +17 -1
  199. package/dist/module/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock.d.ts.map +1 -1
  200. package/dist/module/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester.d.ts +17 -1
  201. package/dist/module/typechain-types/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester.d.ts.map +1 -1
  202. package/dist/module/typechain-types/contracts/superfluid/SuperToken.d.ts +17 -1
  203. package/dist/module/typechain-types/contracts/superfluid/SuperToken.d.ts.map +1 -1
  204. package/dist/module/typechain-types/contracts/superfluid/SuperfluidToken.d.ts +17 -1
  205. package/dist/module/typechain-types/contracts/superfluid/SuperfluidToken.d.ts.map +1 -1
  206. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts +1 -1
  207. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.d.ts.map +1 -1
  208. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js +1 -1
  209. package/dist/module/typechain-types/factories/contracts/agreements/ConstantFlowAgreementV1__factory.js.map +1 -1
  210. package/dist/module/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.d.ts +1 -1
  211. package/dist/module/typechain-types/factories/contracts/agreements/InstantDistributionAgreementV1__factory.js +1 -1
  212. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts +19 -1
  213. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.d.ts.map +1 -1
  214. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js +24 -1
  215. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/GeneralDistributionAgreementV1__factory.js.map +1 -1
  216. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.d.ts +1 -1
  217. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/PoolAdminNFT__factory.js +1 -1
  218. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts +1 -1
  219. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.d.ts.map +1 -1
  220. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js +1 -1
  221. package/dist/module/typechain-types/factories/contracts/agreements/gdav1/SuperfluidPool__factory.js.map +1 -1
  222. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.d.ts +1 -1
  223. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceIIProxy__factory.js +1 -1
  224. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.d.ts +1 -1
  225. package/dist/module/typechain-types/factories/contracts/gov/SuperfluidGovernanceII.sol/SuperfluidGovernanceII__factory.js +1 -1
  226. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.d.ts +14 -0
  227. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.d.ts.map +1 -1
  228. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.js +18 -0
  229. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperToken__factory.js.map +1 -1
  230. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.d.ts +14 -0
  231. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.d.ts.map +1 -1
  232. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.js +18 -0
  233. package/dist/module/typechain-types/factories/contracts/interfaces/superfluid/ISuperfluidToken__factory.js.map +1 -1
  234. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.d.ts +14 -0
  235. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.d.ts.map +1 -1
  236. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.js +18 -0
  237. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/IPureSuperToken.sol/IPureSuperToken__factory.js.map +1 -1
  238. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.d.ts +14 -0
  239. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.d.ts.map +1 -1
  240. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.js +18 -0
  241. package/dist/module/typechain-types/factories/contracts/interfaces/tokens/ISETH.sol/ISETH__factory.js.map +1 -1
  242. package/dist/module/typechain-types/factories/contracts/libs/SlotsBitmapLibrary__factory.d.ts +1 -1
  243. package/dist/module/typechain-types/factories/contracts/libs/SlotsBitmapLibrary__factory.js +1 -1
  244. package/dist/module/typechain-types/factories/contracts/mocks/AgreementMock.t.sol/AgreementMock__factory.d.ts +1 -1
  245. package/dist/module/typechain-types/factories/contracts/mocks/AgreementMock.t.sol/AgreementMock__factory.js +1 -1
  246. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ClosingOnUpdateFlowTestApp__factory.d.ts +1 -1
  247. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ClosingOnUpdateFlowTestApp__factory.js +1 -1
  248. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ExclusiveInflowTestApp__factory.d.ts +1 -1
  249. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/ExclusiveInflowTestApp__factory.js +1 -1
  250. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/FlowExchangeTestApp__factory.d.ts +1 -1
  251. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/FlowExchangeTestApp__factory.js +1 -1
  252. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/NonClosableOutflowTestApp__factory.d.ts +1 -1
  253. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/NonClosableOutflowTestApp__factory.js +1 -1
  254. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/SelfDeletingFlowTestApp__factory.d.ts +1 -1
  255. package/dist/module/typechain-types/factories/contracts/mocks/CFAAppMocks.t.sol/SelfDeletingFlowTestApp__factory.js +1 -1
  256. package/dist/module/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.d.ts +14 -0
  257. package/dist/module/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.d.ts.map +1 -1
  258. package/dist/module/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.js +18 -0
  259. package/dist/module/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenMock__factory.js.map +1 -1
  260. package/dist/module/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenProxyMock__factory.d.ts +1 -1
  261. package/dist/module/typechain-types/factories/contracts/mocks/CustomSuperTokenMock.t.sol/CustomSuperTokenProxyMock__factory.js +1 -1
  262. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientDrainingGas__factory.d.ts +1 -1
  263. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientDrainingGas__factory.js +1 -1
  264. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientReverting__factory.d.ts +1 -1
  265. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777RecipientReverting__factory.js +1 -1
  266. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777SenderRecipientMock__factory.d.ts +1 -1
  267. package/dist/module/typechain-types/factories/contracts/mocks/ERC777SenderRecipientMock.t.sol/ERC777SenderRecipientMock__factory.js +1 -1
  268. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester.t.sol/IDASuperAppTester__factory.d.ts +1 -1
  269. package/dist/module/typechain-types/factories/contracts/mocks/IDASuperAppTester.t.sol/IDASuperAppTester__factory.js +1 -1
  270. package/dist/module/typechain-types/factories/contracts/mocks/MockSmartWallet.t.sol/MockSmartWallet__factory.d.ts +1 -1
  271. package/dist/module/typechain-types/factories/contracts/mocks/MockSmartWallet.t.sol/MockSmartWallet__factory.js +1 -1
  272. package/dist/module/typechain-types/factories/contracts/mocks/MultiFlowTesterApp.t.sol/MultiFlowTesterApp__factory.d.ts +1 -1
  273. package/dist/module/typechain-types/factories/contracts/mocks/MultiFlowTesterApp.t.sol/MultiFlowTesterApp__factory.js +1 -1
  274. package/dist/module/typechain-types/factories/contracts/mocks/StreamRedirector.t.sol/StreamRedirector__factory.d.ts +1 -1
  275. package/dist/module/typechain-types/factories/contracts/mocks/StreamRedirector.t.sol/StreamRedirector__factory.js +1 -1
  276. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  277. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppFactoryMock__factory.js +1 -1
  278. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  279. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock2ndLevel__factory.js +1 -1
  280. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockAux__factory.d.ts +1 -1
  281. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockAux__factory.js +1 -1
  282. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  283. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  284. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  285. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  286. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockUsingRegisterApp__factory.d.ts +1 -1
  287. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockUsingRegisterApp__factory.js +1 -1
  288. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  289. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  290. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock__factory.d.ts +1 -1
  291. package/dist/module/typechain-types/factories/contracts/mocks/SuperAppMocks.t.sol/SuperAppMock__factory.js +1 -1
  292. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.d.ts +1 -1
  293. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock42__factory.js +1 -1
  294. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.d.ts +1 -1
  295. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryMock__factory.js +1 -1
  296. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.d.ts +1 -1
  297. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryStorageLayoutTester__factory.js +1 -1
  298. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.d.ts +1 -1
  299. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenFactoryMock.t.sol/SuperTokenFactoryUpdateLogicContractsTester__factory.js +1 -1
  300. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFAMock__factory.d.ts +1 -1
  301. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFAMock__factory.js +1 -1
  302. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFASuperAppMock__factory.d.ts +1 -1
  303. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryCFASuperAppMock__factory.js +1 -1
  304. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDAMock__factory.d.ts +1 -1
  305. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDAMock__factory.js +1 -1
  306. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDASuperAppMock__factory.d.ts +1 -1
  307. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenLibraryV1Mock.t.sol/SuperTokenLibraryGDASuperAppMock__factory.js +1 -1
  308. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.d.ts +15 -1
  309. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.d.ts.map +1 -1
  310. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.js +19 -1
  311. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/NoNFTSuperTokenMock__factory.js.map +1 -1
  312. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.d.ts +15 -1
  313. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.d.ts.map +1 -1
  314. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.js +19 -1
  315. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenMock__factory.js.map +1 -1
  316. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.d.ts +15 -1
  317. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.d.ts.map +1 -1
  318. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.js +19 -1
  319. package/dist/module/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.js.map +1 -1
  320. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.t.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.d.ts +1 -1
  321. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidGovernanceIIMock.t.sol/SuperfluidGovernanceIIUpgradabilityTester__factory.js +1 -1
  322. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidMock__factory.d.ts +1 -1
  323. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidMock__factory.js +1 -1
  324. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  325. package/dist/module/typechain-types/factories/contracts/mocks/SuperfluidMock.t.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  326. package/dist/module/typechain-types/factories/contracts/superfluid/FullUpgradableSuperTokenProxy__factory.d.ts +1 -1
  327. package/dist/module/typechain-types/factories/contracts/superfluid/FullUpgradableSuperTokenProxy__factory.js +1 -1
  328. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.d.ts +1 -1
  329. package/dist/module/typechain-types/factories/contracts/superfluid/SuperTokenFactory.sol/SuperTokenFactory__factory.js +1 -1
  330. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts +15 -1
  331. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.d.ts.map +1 -1
  332. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.js +19 -1
  333. package/dist/module/typechain-types/factories/contracts/superfluid/SuperToken__factory.js.map +1 -1
  334. package/dist/module/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.d.ts +14 -0
  335. package/dist/module/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.d.ts.map +1 -1
  336. package/dist/module/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.js +18 -0
  337. package/dist/module/typechain-types/factories/contracts/superfluid/SuperfluidToken__factory.js.map +1 -1
  338. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  339. package/dist/module/typechain-types/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  340. package/dist/module/typechain-types/factories/contracts/tokens/PureSuperToken__factory.d.ts +1 -1
  341. package/dist/module/typechain-types/factories/contracts/tokens/PureSuperToken__factory.js +1 -1
  342. package/dist/module/typechain-types/factories/contracts/tokens/SETH.sol/SETHProxy__factory.d.ts +1 -1
  343. package/dist/module/typechain-types/factories/contracts/tokens/SETH.sol/SETHProxy__factory.js +1 -1
  344. package/dist/module/typechain-types/factories/contracts/utils/BatchLiquidator__factory.d.ts +1 -1
  345. package/dist/module/typechain-types/factories/contracts/utils/BatchLiquidator__factory.js +1 -1
  346. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.d.ts +1 -1
  347. package/dist/module/typechain-types/factories/contracts/utils/CFAv1Forwarder__factory.js +1 -1
  348. package/dist/module/typechain-types/factories/contracts/utils/ERC1820Implementer__factory.d.ts +1 -1
  349. package/dist/module/typechain-types/factories/contracts/utils/ERC1820Implementer__factory.js +1 -1
  350. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.d.ts +1 -1
  351. package/dist/module/typechain-types/factories/contracts/utils/GDAv1Forwarder__factory.js +1 -1
  352. package/dist/module/typechain-types/factories/contracts/utils/MacroForwarder__factory.d.ts +1 -1
  353. package/dist/module/typechain-types/factories/contracts/utils/MacroForwarder__factory.js +1 -1
  354. package/dist/module/typechain-types/factories/contracts/utils/SuperUpgrader__factory.d.ts +1 -1
  355. package/dist/module/typechain-types/factories/contracts/utils/SuperUpgrader__factory.js +1 -1
  356. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer.t.sol/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  357. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeployer.t.sol/SuperfluidFrameworkDeployer__factory.js +1 -1
  358. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps.t.sol/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  359. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps.t.sol/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  360. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.d.ts +1 -1
  361. package/dist/module/typechain-types/factories/contracts/utils/SuperfluidLoader__factory.js +1 -1
  362. package/dist/module/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.d.ts +1 -1
  363. package/dist/module/typechain-types/factories/contracts/utils/TOGA.sol/TOGA__factory.js +1 -1
  364. package/dist/module/typechain-types/factories/contracts/utils/TestGovernance__factory.d.ts +1 -1
  365. package/dist/module/typechain-types/factories/contracts/utils/TestGovernance__factory.js +1 -1
  366. package/package.json +3 -3
@@ -12,7 +12,7 @@ export declare class SuperTokenStorageLayoutTester__factory extends ContractFact
12
12
  }): TransactionRequest;
13
13
  attach(address: string): SuperTokenStorageLayoutTester;
14
14
  connect(signer: Signer): SuperTokenStorageLayoutTester__factory;
15
- static readonly bytecode = "0x60e060405234801561000f575f5ffd5b5060405161535338038061535383398101604081905261002e9161008f565b6001600160a01b03808316608052811660c0819052604051839183917feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e6905f90a2505050506100c7565b6001600160a01b038116811461008c575f5ffd5b50565b5f5f604083850312156100a0575f5ffd5b82516100ab81610078565b60208401519092506100bc81610078565b809150509250929050565b60805160a05160c0516151cf6101845f395f61088301525f6109f201525f818161050401528181610cc501528181610d3401528181611047015281816110d4015281816111fe015281816113780152818161157e015281816115d4015281816116470152818161178b0152818161192d01528181611b1d01528181611f2201528181611fe9015281816120ae015281816121150152818161219b01528181612bbf01528181612c5401528181613cb8015261400701526151cf5ff3fe608060405234801561000f575f5ffd5b5060043610610422575f3560e01c80636fed61fc1161022c578063b84cdd4a11610135578063d9d078d6116100bf578063f5a8b4dd11610084578063f5a8b4dd146109ed578063f99a38c41461046c578063fad8b32a14610a14578063fc673c4f14610a27578063fe9d930314610a3a575f5ffd5b8063d9d078d614610950578063dd62ed3e14610963578063eb3537cc1461099b578063ec0d6343146109c9578063ee719bc8146109dc575f5ffd5b8063ca0c1e7f11610105578063ca0c1e7f146108f1578063ca78946414610904578063cf97256d14610917578063d505accf1461092a578063d95b63711461093d575f5ffd5b8063b84cdd4a146108a5578063bb0d196e146108b8578063c68d4283146108cb578063c780fd82146108de575f5ffd5b806395d89b41116101b6578063a1b2bf8b11610186578063a1b2bf8b14610832578063a3a7e7f314610845578063a457c2d714610858578063a9059cbb1461086b578063b20db1ac1461087e575f5ffd5b806395d89b41146107fc5780639903ad38146108045780639bd9bbc61461080c5780639d8767411461081f575f5ffd5b806383ba2525116101fc57806383ba25251461079657806384b0196e146107a95780638f283970146107c457806392081a47146107d7578063959b8c3f146107e9575f5ffd5b80636fed61fc1461074157806370a082311461074857806379359f6f1461075b5780637ecebe001461076e575f5ffd5b8063386fa2211161032e57806350d75d25116102b857806362aa52871161028857806362aa5287146106ed57806362ad1b831461070057806366a12fb6146107135780636c2d9f2f146107265780636e9960c314610739575f5ffd5b806350d75d25146106a557806352d1902d146106ad578063556f0dc7146106d35780635b9d09cc146106da575f5ffd5b806345977d03116102fe57806345977d0314610639578063469519541461064c57806347ba7ad11461065f5780634b2763b3146106725780634b61cc3314610685575f5ffd5b8063386fa221146105ed578063395093511461060057806341b706be1461061357806342fe098014610626575f5ffd5b80631ae88ffc116103af578063270483971161037f5780632704839714610562578063282a050b146105755780632ec8eec71461059d578063313ce567146105d05780633644e515146105e5575f5ffd5b80631ae88ffc146104ef57806320bc44251461050257806323b872dd1461053c578063245887fc1461054f575f5ffd5b806311bcc81e116103f557806311bcc81e1461049157806312a6a3f8146104a457806316d055d6146104b757806318160ddd146104ca5780631863e809146104dc575f5ffd5b806306e485381461042657806306fdde0314610444578063090c415e14610459578063095ea7b31461046e575b5f5ffd5b61042e610a4d565b60405161043b91906140f9565b60405180910390f35b61044c610a5e565b60405161043b9190614187565b61046c6104673660046141f4565b610aee565b005b61048161047c36600461424b565b610b9f565b604051901515815260200161043b565b61046c61049f366004614275565b610bb5565b61046c6104b236600461428c565b610be2565b61046c6104c53660046142d3565b610cc3565b6003545b60405190815260200161043b565b61046c6104ea3660046143dd565b610d1f565b61046c6104fd366004614469565b611045565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161043b565b61048161054a366004614469565b6110bd565b61046c61055d36600461424b565b6110d2565b61046c6105703660046144a7565b611149565b610588610583366004614275565b6111e4565b6040805192835260208301919091520161043b565b6105b06105ab3660046144c7565b6111f8565b60408051948552602085019390935291830152606082015260800161043b565b60125b60405160ff909116815260200161043b565b6104ce611297565b61042e6105fb3660046144c7565b611345565b61048161060e36600461424b565b6113e3565b61046c6106213660046142d3565b61141e565b61046c610634366004614534565b61144a565b61046c610647366004614275565b611524565b61046c61065a3660046144c7565b61154e565b61046c61066d366004614469565b6115d2565b61046c610680366004614469565b611645565b6106986106933660046145c4565b6116c6565b60405161043b9190614607565b61052461170a565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104ce565b60016104ce565b61046c6106e836600461463e565b611733565b61046c6106fb366004614469565b611789565b61046c61070e366004614689565b6117dd565b61046c610721366004614469565b611889565b610698610734366004614724565b6118a9565b6105246118ea565b601f6104ce565b6104ce6107563660046144c7565b611900565b6104816107693660046144c7565b611926565b6104ce61077c3660046144c7565b6001600160a01b03165f9081526016602052604090205490565b61046c6107a436600461424b565b6119ab565b6107b16119d5565b60405161043b9796959493929190614756565b61046c6107d23660046144c7565b611aed565b600e54600160a01b900460ff166105d3565b61046c6107f73660046144c7565b611bdb565b61044c611c2c565b61046c611c3b565b61046c61081a36600461463e565b611cf7565b61046c61082d3660046147ec565b611d4a565b61046c61084036600461428c565b611d8f565b61046c6108533660046144c7565b611e37565b61048161086636600461424b565b611e4b565b61048161087936600461424b565b611ec2565b6105247f000000000000000000000000000000000000000000000000000000000000000081565b6104816108b336600461424b565b611ecf565b6104816108c63660046144c7565b611f1b565b61046c6108d93660046147ec565b611fa0565b61046c6108ec366004614469565b611fe7565b61046c6108ff366004614840565b6120ac565b61046c61091236600461424b565b612113565b61046c61092536600461424b565b612186565b61046c6109383660046148a7565b61226b565b61048161094b3660046148f4565b6123c4565b61048161095e36600461424b565b6123d1565b6104ce6109713660046148f4565b6001600160a01b039182165f90815260116020908152604080832093909416825291909152205490565b6109ae6109a936600461424b565b6123e9565b6040805193845260208401929092529082015260600161043b565b61046c6109d736600461492b565b612516565b600e546001600160a01b0316610524565b6105247f000000000000000000000000000000000000000000000000000000000000000081565b61046c610a223660046144c7565b6125e7565b61046c610a353660046149ce565b612638565b61046c610a48366004614a0f565b6126d7565b6060610a596012612727565b905090565b6060600f8054610a6d90614a49565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9990614a49565b8015610ae45780601f10610abb57610100808354040283529160200191610ae4565b820191905f5260205f20905b815481529060010190602001808311610ac757829003601f168201915b5050505050905090565b5f338585604051602001610b0493929190614a81565b604051602081830303815290604052805190602001209050610b58818484808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061278a92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b5f610bab3384846127c0565b5060015b92915050565b610bdf3333338460405180602001604052805f81525060405180602001604052805f81525061286e565b50565b60405133905f90610bf99083908790602001614aca565b60408051601f1981840301815291905280516020909101209050610c1d8184612a25565b15610c3b5760405163782a90fb60e11b815260040160405180910390fd5b610c77818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061278a92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610cb493929190614b07565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d0c5760405163c51efddd60e01b815260040160405180910390fd5b610d1884848484612a57565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610d81573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da59190614b46565b610dc25760405163327fd99160e21b815260040160405180910390fd5b5f610dcb612bbb565b90506001600160a01b038116610dde5750845b5f85610dea5786610dec565b815b90505f8313610eb657610dfe83614b75565b610e0785612cfb565b14610e1457610e14614b8f565b610e1d84612cfb565b6001600160a01b0382165f9081526002602052604081208054909190610e44908490614ba3565b90915550506001600160a01b0385165f9081526002602052604081208054859290610e70908490614ba3565b92505081905550806001600160a01b0316856001600160a01b03165f51602061517a5f395f51905f5286604051610ea991815260200190565b60405180910390a3610fdd565b8515610ec457610ec4614b8f565b82610ece85612cfb565b610ed89190614ba3565b6001600160a01b0383165f9081526002602052604081208054909190610eff908490614bca565b90915550610f0e905084612cfb565b6001600160a01b0388165f9081526002602052604081208054909190610f35908490614ba3565b90915550506001600160a01b0385165f9081526002602052604081208054859290610f61908490614ba3565b92505081905550866001600160a01b0316826001600160a01b03165f51602061517a5f395f51905f5286604051610f9a91815260200190565b60405180910390a3846001600160a01b0316826001600160a01b03165f51602061517a5f395f51905f5285604051610fd491815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051611032959493929190614be9565b60405180910390a4505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461108e5760405163c51efddd60e01b815260040160405180910390fd5b6110b83384848460405180602001604052805f81525060405180602001604052805f815250612d2b565b505050565b5f6110ca33858585612a57565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461111b5760405163c51efddd60e01b815260040160405180910390fd5b6111453383848460405180602001604052805f81525060405180602001604052805f81525061286e565b5050565b60405133905f906111609083908690602001614aca565b6040516020818303038152906040528051906020012090506111828184612a25565b61119f5760405163dae1880960e01b815260040160405180910390fd5b6111a98184612ed6565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b5f5f6111ef83612eed565b91509150915091565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611258573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127c9190614c26565b905061128885826123e9565b91979096509094509092509050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600f6040516112c89190614c3d565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038181165f908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d906024015f60405180830381865afa1580156113bc573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610baf9190810190614cae565b335f8181526011602090815260408083206001600160a01b03871684529091528120549091610bab918590611419908690614d55565b6127c0565b33301461143e57604051630fff4cc960e31b815260040160405180910390fd5b610d1883858484612a57565b5f54610100900460ff161580801561146857505f54600160ff909116105b806114815750303b15801561148157505f5460ff166001145b6114a65760405162461bcd60e51b815260040161149d90614d68565b60405180910390fd5b5f805460ff1916600117905580156114c7575f805461ff0019166101001790555b6114d68787878787875f612fa8565b801561151b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610bdf3333338460405180602001604052805f81525060405180602001604052805f815250612d2b565b5f6115645f51602061515a5f395f51905f525490565b90505f6001600160a01b0382161561157c578161159e565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b038216146115c957604051630484acab60e01b815260040160405180910390fd5b6110b88361306c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461161b5760405163c51efddd60e01b815260040160405180910390fd5b6110b83384848460405180602001604052805f81525060405180602001604052805f81525061286e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461168e5760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220546110b89084908490611419908590614d55565b60605f8585856040516020016116de93929190614a81565b60405160208183030381529060405280519060200120905061170081846132a3565b9695505050505050565b5f610a597f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6117833333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250612d2b915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146117d25760405163c51efddd60e01b815260040160405180910390fd5b6110b88383836127c0565b336117ea6012828a613328565b6118075760405163f7f0222760e01b815260040160405180910390fd5b61187f8189898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f92019190915250600192506133cd915050565b5050505050505050565b3330146117d257604051630fff4cc960e31b815260040160405180910390fd5b60605f84846040516020016118bf929190614aca565b6040516020818303038152906040528051906020012090506118e181846132a3565b95945050505050565b5f610a595f51602061515a5f395f51905f525490565b5f5f61190b836111f8565b50505090505f811261191d578061191f565b5f5b9392505050565b5f610baf827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611987573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095e9190614c26565b6111453333848460405180602001604052805f81525060405180602001604052805f81525061286e565b5f6060805f5f5f6060600f604051806040016040528060018152602001603160f81b81525046305f5f1b5f6001600160401b03811115611a1757611a17614321565b604051908082528060200260200182016040528015611a40578160200160208202803683370190505b50600f60f81b959493929190858054611a5890614a49565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8490614a49565b8015611acf5780601f10611aa657610100808354040283529160200191611acf565b820191905f5260205f20905b815481529060010190602001808311611ab257829003601f168201915b50505050509550965096509650965096509650965090919293949596565b5f611b035f51602061515a5f395f51905f525490565b90505f6001600160a01b03821615611b1b5781611b3d565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b03821614611b6857604051630484acab60e01b815260040160405180910390fd5b5f611b7e5f51602061515a5f395f51905f525490565b9050611b95845f51602061515a5f395f51905f5255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611be860128284613446565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610a6d90614a49565b5f54610100900460ff1615808015611c5957505f54600160ff909116105b80611c725750303b158015611c7257505f5460ff166001145b611c8e5760405162461bcd60e51b815260040161149d90614d68565b5f805460ff191660011790558015611caf575f805461ff0019166101001790555b8015610bdf575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6117833333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250600191506133cd9050565b333014611d6a57604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f8152602081019091526110b891339186918691901515908690613547565b60405133905f90611da69083908790602001614aca565b604051602081830303815290604052805190602001209050611dfa818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061278a92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610cb493929190614b07565b611145333383611e4633611900565b612a57565b335f9081526011602090815260408083206001600160a01b0386168452909152812054821115611e8d5760405162461bcd60e51b815260040161149d90614db6565b335f8181526011602090815260408083206001600160a01b0388168452909152902054610bab91908590611419908690614e00565b5f61191f33338585612a57565b5f5f5f5f611edd86866123e9565b9250925092505f611f03828411611ef4575f612cfb565b611efe8385614e00565b612cfb565b611f0d9085614ba3565b5f1315979650505050505050565b5f610baf827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f7c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b39190614c26565b333014611fc057604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f8152602081019091526110b8913391869186919015159081908790613611565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146120305760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220548111156120745760405162461bcd60e51b815260040161149d90614db6565b6001600160a01b038084165f908152601160209081526040808320938616835292905220546110b89084908490611419908590614e00565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146120f55760405163c51efddd60e01b815260040160405180910390fd5b611783338585858560405180602001604052805f81525060016133cd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461215c5760405163c51efddd60e01b815260040160405180910390fd5b6111453383848460405180602001604052805f81525060405180602001604052805f815250612d2b565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa1580156121e8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061220c9190614b46565b6122295760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b0382165f9081526002602052604090205461224c908290614ba3565b6001600160a01b039092165f9081526002602052604090209190915550565b8342111561228f57604051636e72b90f60e01b81526004810185905260240161149d565b6001600160a01b0387165f90815260166020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a9190866122db83614e13565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f612338611297565b60405161190160f01b81526002810182905260228101849052604290209091505f612365828888886136dc565b90508a6001600160a01b0316816001600160a01b0316146123ac5760405163b642210560e01b81526001600160a01b0380831660048301528c16602482015260440161149d565b6123b78b8b8b6127c0565b5050505050505050505050565b5f61191f60128484613328565b5f5f6123dd84846123e9565b50505f13949350505050565b6001600160a01b0382165f9081526002602052604081205490808061240d86611345565b90505f5b815181101561250d575f5f5f84848151811061242f5761242f614e2b565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa15801561248c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124b09190614e3f565b919450925090506124c18288614d55565b96506124cd8187614d55565b95506124e98183116124df575f612cfb565b611efe8284614e00565b6124f3848a614ba3565b6124fd9190614bca565b9750505050806001019050612411565b50509250925092565b5f54610100900460ff161580801561253457505f54600160ff909116105b8061254d5750303b15801561254d57505f5460ff166001145b6125695760405162461bcd60e51b815260040161149d90614d68565b5f805460ff19166001179055801561258a575f805461ff0019166101001790555b61259988888888888888612fa8565b801561187f575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336125f460128284613708565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b3361264560128289613328565b6126625760405163f7f0222760e01b815260040160405180910390fd5b61151b8188898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f9201919091525061286e92505050565b6110b83333338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506040805160208101909152908152925061286e915050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561277e57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612760575b50505050509050919050565b5f5b81518110156110b8575f8282815181106127a8576127a8614e2b565b6020908102919091010151848301555060010161278c565b6001600160a01b0383166127e757604051638163862760e01b815260040160405180910390fd5b6001600160a01b03821661280e576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b038381165f8181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b031661289757604051637bce7b2b60e11b815260040160405180910390fd5b5f5f6128a285612eed565b915091506128b888888387515f14158888613547565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156128fe573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129229190614c26565b600e5490915061293c906001600160a01b031688856137fd565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612982573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129a69190614c26565b90505f6129b38284614e00565b90508085146129d557604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d85604051612a1091815260200190565b60405180910390a25050505050505050505050565b5f805b82811015612a4e57838101548015612a4557600192505050610baf565b50600101612a28565b505f9392505050565b5f6001600160a01b038416612a7f5760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b038316612aa65760405163e219bd3960e01b815260040160405180910390fd5b5f339050612ad48186868660405180602001604052805f81525060405180602001604052805f81525061385c565b846001600160a01b0316866001600160a01b031614612baf576001600160a01b038086165f908152601160209081526040808320938a1683529290522054831115612b775760405162461bcd60e51b815260206004820152602d60248201527f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636560448201526c65647320616c6c6f77616e636560981b606482015260840161149d565b6001600160a01b038086165f908152601160209081526040808320938a1683529290522054612baf9086908890611419908790614e00565b50600195945050505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c19573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c3d9190614e6a565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612cd1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cf59190614e6a565b91505090565b5f6001600160ff1b03821115612d275760405163123baf0360e11b81526004810183905260240161149d565b5090565b600e546001600160a01b0316612d5457604051637bce7b2b60e11b815260040160405180910390fd5b5f5f612d5f85612eed565b600e546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612dad573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dd19190614c26565b600e54909150612dec906001600160a01b03168930866138fa565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612e32573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e569190614c26565b90505f612e638383614e00565b9050808514612e8557604051631c7c26d360e31b815260040160405180910390fd5b8651612e9b908c908b9087901515808c8c613611565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df85604051612a1091815260200190565b5f5b818110156110b8575f83820155600101612ed8565b600e545f90819081906012600160a01b90910460ff161015612f4b57600e54612f2190600160a01b900460ff166012614e85565b612f2c90600a614f81565b9050612f388185614f8f565b9250612f448184614fae565b9150612fa2565b600e546012600160a01b90910460ff161115612f9b57600e54612f7a90601290600160a01b900460ff16614e85565b612f8590600a614f81565b9050612f918185614fae565b9250839150612fa2565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612fdd858783615009565b506010612feb838583615009565b50613001815f51602061515a5f395f51905f5255565b61300a30613933565b6040515f8082529081905f51602061517a5f395f51905f529060200160405180910390a36040516001600160a01b038216905f907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b5f6130957f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036130eb5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c65000000604482015260640161149d565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613127573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061314b9190614c26565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146131c55760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b606482015260840161149d565b6001600160a01b038116300361321d5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f7000000000000000604482015260640161149d565b613245817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611cec565b6060816001600160401b038111156132bd576132bd614321565b6040519080825280602002602001820160405280156132e6578160200160208202803683370190505b5090505f5b82811015613321575f8185015490508083838151811061330d5761330d614e2b565b6020908102919091010152506001016132eb565b5092915050565b5f816001600160a01b0316836001600160a01b0316148061339457506001600160a01b0383165f90815260018501602052604090205460ff16801561339457506001600160a01b038083165f90815260038601602090815260408083209387168352929052205460ff16155b806110ca57506001600160a01b038083165f90815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166133f45760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b03851661341b5760405163e219bd3960e01b815260040160405180910390fd5b613429878787878787613a57565b61343787878787878761385c565b61151b87878787878787613b69565b806001600160a01b0316826001600160a01b0316036134bd5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b606482015260840161149d565b6001600160a01b0381165f90815260018401602052604090205460ff1615613511576001600160a01b039182165f90815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b038083165f9081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661356e57604051632e8aac6160e21b815260040160405180910390fd5b82156135825761358286865f878686613a57565b61358c8585613cb1565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a40988685856040516135d3939291906150c2565b60405180910390a36040518481525f906001600160a01b038716905f51602061517a5f395f51905f52906020015b60405180910390a3505050505050565b6001600160a01b03861661363857604051630d24315760e01b815260040160405180910390fd5b6136428686613dbc565b831561365757613657875f8888868689613b69565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d87858560405161369e939291906150c2565b60405180910390a36040518581526001600160a01b038716905f905f51602061517a5f395f51905f529060200160405180910390a350505050505050565b5f5f5f5f6136ec88888888613e14565b9250925092506136fc8282613edc565b50909695505050505050565b336001600160a01b038216036137735760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b606482015260840161149d565b6001600160a01b0381165f90815260018401602052604090205460ff16156137cb576001600160a01b038083165f9081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b039182165f90815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b038381166024830152604482018390526110b891859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613f94565b61386f858561386a86612cfb565b614000565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516138c0939291906150c2565b60405180910390a4836001600160a01b0316856001600160a01b03165f51602061517a5f395f51905f528560405161360191815260200190565b6040516001600160a01b0384811660248301528381166044830152606482018390526117839186918216906323b872dd9060840161382a565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d906064015f604051808303815f87803b1580156139b1575f5ffd5b505af11580156139c3573d5f5f3e3d5ffd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b158015613a45575f5ffd5b505af1158015610d18573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613ad5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613af99190614e6a565b90506001600160a01b0381161561151b57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613b40908a908a908a908a908a908a906004016150ec565b5f604051808303815f87803b158015613b57575f5ffd5b505af11580156123b7573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613be7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c0b9190614e6a565b90506001600160a01b03811615613c82576040516223de2960e01b81526001600160a01b038216906223de2990613c50908b908b908b908b908b908b906004016150ec565b5f604051808303815f87803b158015613c67575f5ffd5b505af1158015613c79573d5f5f3e3d5ffd5b5050505061187f565b811561187f576001600160a01b0386163b1561187f5760405163fe737d0560e01b815260040160405180910390fd5b5f613d36837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d12573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a99190614c26565b50509050613d4382612cfb565b811215613d635760405163043b37d160e21b815260040160405180910390fd5b613d6c82612cfb565b6001600160a01b0384165f90815260026020526040902054613d8e9190614bca565b6001600160a01b0384165f90815260026020526040902055600354613db4908390614e00565b600355505050565b613dc581612cfb565b6001600160a01b0383165f90815260026020526040902054613de79190614ba3565b6001600160a01b0383165f90815260026020526040902055600354613e0d908290614d55565b6003555050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613e4d57505f91506003905082613ed2565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613e9e573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613ec957505f925060019150829050613ed2565b92505f91508190505b9450945094915050565b5f826003811115613eef57613eef615145565b03613ef8575050565b6001826003811115613f0c57613f0c615145565b03613f2a5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115613f3e57613f3e615145565b03613f5f5760405163fce698f760e01b81526004810182905260240161149d565b6003826003811115613f7357613f73615145565b03611145576040516335e2f38360e21b81526004810182905260240161149d565b5f5f60205f8451602086015f885af180613fb3576040513d5f823e3d81fd5b50505f513d91508115613fca578060011415613fd7565b6001600160a01b0384163b155b1561178357604051635274afe760e01b81526001600160a01b038516600482015260240161149d565b5f614061847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d12573d5f5f3e3d5ffd5b505090508181121561408657604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b0384165f908152600260205260409020546140a9908390614bca565b6001600160a01b038086165f9081526002602052604080822093909355908516815220546140d8908390614ba3565b6001600160a01b039093165f90815260026020526040902092909255505050565b602080825282518282018190525f918401906040840190835b818110156141395783516001600160a01b0316835260209384019390920191600101614112565b509095945050505050565b5f81518084525f5b818110156141685760208185018101518683018201520161414c565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61191f6020830184614144565b6001600160a01b0381168114610bdf575f5ffd5b5f5f83601f8401126141bd575f5ffd5b5081356001600160401b038111156141d3575f5ffd5b6020830191508360208260051b85010111156141ed575f5ffd5b9250929050565b5f5f5f5f60608587031215614207575f5ffd5b843561421281614199565b93506020850135925060408501356001600160401b03811115614233575f5ffd5b61423f878288016141ad565b95989497509550505050565b5f5f6040838503121561425c575f5ffd5b823561426781614199565b946020939093013593505050565b5f60208284031215614285575f5ffd5b5035919050565b5f5f5f6040848603121561429e575f5ffd5b8335925060208401356001600160401b038111156142ba575f5ffd5b6142c6868287016141ad565b9497909650939450505050565b5f5f5f5f608085870312156142e6575f5ffd5b84356142f181614199565b9350602085013561430181614199565b9250604085013561431181614199565b9396929550929360600135925050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561435d5761435d614321565b604052919050565b5f82601f830112614374575f5ffd5b81356001600160401b0381111561438d5761438d614321565b6143a0601f8201601f1916602001614335565b8181528460208386010111156143b4575f5ffd5b816020850160208301375f918101602001919091529392505050565b8015158114610bdf575f5ffd5b5f5f5f5f5f5f5f60e0888a0312156143f3575f5ffd5b8735965060208801356001600160401b0381111561440f575f5ffd5b61441b8a828b01614365565b965050604088013561442c81614199565b9450606088013561443c816143d0565b9350608088013561444c81614199565b9699959850939692959460a0840135945060c09093013592915050565b5f5f5f6060848603121561447b575f5ffd5b833561448681614199565b9250602084013561449681614199565b929592945050506040919091013590565b5f5f604083850312156144b8575f5ffd5b50508035926020909101359150565b5f602082840312156144d7575f5ffd5b813561191f81614199565b803560ff811681146144f2575f5ffd5b919050565b5f5f83601f840112614507575f5ffd5b5081356001600160401b0381111561451d575f5ffd5b6020830191508360208285010111156141ed575f5ffd5b5f5f5f5f5f5f60808789031215614549575f5ffd5b863561455481614199565b9550614562602088016144e2565b945060408701356001600160401b0381111561457c575f5ffd5b61458889828a016144f7565b90955093505060608701356001600160401b038111156145a6575f5ffd5b6145b289828a016144f7565b979a9699509497509295939492505050565b5f5f5f5f608085870312156145d7575f5ffd5b84356145e281614199565b935060208501356145f281614199565b93969395505050506040820135916060013590565b602080825282518282018190525f918401906040840190835b81811015614139578351835260209384019390920191600101614620565b5f5f5f5f60608587031215614651575f5ffd5b843561465c81614199565b93506020850135925060408501356001600160401b0381111561467d575f5ffd5b61423f878288016144f7565b5f5f5f5f5f5f5f60a0888a03121561469f575f5ffd5b87356146aa81614199565b965060208801356146ba81614199565b95506040880135945060608801356001600160401b038111156146db575f5ffd5b6146e78a828b016144f7565b90955093505060808801356001600160401b03811115614705575f5ffd5b6147118a828b016144f7565b989b979a50959850939692959293505050565b5f5f5f60608486031215614736575f5ffd5b833561474181614199565b95602085013595506040909401359392505050565b60ff60f81b8816815260e060208201525f61477460e0830189614144565b82810360408401526147868189614144565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b818110156147db5783518352602093840193909201916001016147bd565b50909b9a5050505050505050505050565b5f5f5f606084860312156147fe575f5ffd5b833561480981614199565b92506020840135915060408401356001600160401b0381111561482a575f5ffd5b61483686828701614365565b9150509250925092565b5f5f5f5f60808587031215614853575f5ffd5b843561485e81614199565b9350602085013561486e81614199565b92506040850135915060608501356001600160401b0381111561488f575f5ffd5b61489b87828801614365565b91505092959194509250565b5f5f5f5f5f5f5f60e0888a0312156148bd575f5ffd5b87356148c881614199565b965060208801356148d881614199565b9550604088013594506060880135935061444c608089016144e2565b5f5f60408385031215614905575f5ffd5b823561491081614199565b9150602083013561492081614199565b809150509250929050565b5f5f5f5f5f5f5f60a0888a031215614941575f5ffd5b873561494c81614199565b965061495a602089016144e2565b955060408801356001600160401b03811115614974575f5ffd5b6149808a828b016144f7565b90965094505060608801356001600160401b0381111561499e575f5ffd5b6149aa8a828b016144f7565b90945092505060808801356149be81614199565b8091505092959891949750929550565b5f5f5f5f5f5f608087890312156149e3575f5ffd5b86356149ee81614199565b95506020870135945060408701356001600160401b0381111561457c575f5ffd5b5f5f5f60408486031215614a21575f5ffd5b8335925060208401356001600160401b03811115614a3d575f5ffd5b6142c6868287016144f7565b600181811c90821680614a5d57607f821691505b602082108103614a7b57634e487b7160e01b5f52602260045260245ffd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b83815260406020820181905281018290525f6001600160fb1b03831115614b2c575f5ffd5b8260051b8085606085013791909101606001949350505050565b5f60208284031215614b56575f5ffd5b815161191f816143d0565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201614b8957614b89614b61565b505f0390565b634e487b7160e01b5f52600160045260245ffd5b8082018281125f831280158216821582161715614bc257614bc2614b61565b505092915050565b8181035f83128015838313168383128216171561332157613321614b61565b85815260018060a01b038516602082015283604082015282606082015260a060808201525f614c1b60a0830184614144565b979650505050505050565b5f60208284031215614c36575f5ffd5b5051919050565b5f5f8354614c4a81614a49565b600182168015614c615760018114614c7657614ca3565b60ff1983168652811515820286019350614ca3565b865f5260205f205f5b83811015614c9b57815488820152600190910190602001614c7f565b505081860193505b509195945050505050565b5f60208284031215614cbe575f5ffd5b81516001600160401b03811115614cd3575f5ffd5b8201601f81018413614ce3575f5ffd5b80516001600160401b03811115614cfc57614cfc614321565b8060051b614d0c60208201614335565b91825260208184018101929081019087841115614d27575f5ffd5b6020850194505b83851015614c1b5784519250614d4383614199565b82825260209485019490910190614d2e565b80820180821115610baf57610baf614b61565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602a908201527f5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652060408201526962656c6f77207a65726f60b01b606082015260800190565b81810381811115610baf57610baf614b61565b5f60018201614e2457614e24614b61565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f5f5f60608486031215614e51575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215614e7a575f5ffd5b815161191f81614199565b60ff8281168282160390811115610baf57610baf614b61565b6001815b6001841115614ed957808504811115614ebd57614ebd614b61565b6001841615614ecb57908102905b60019390931c928002614ea2565b935093915050565b5f82614eef57506001610baf565b81614efb57505f610baf565b8160018114614f115760028114614f1b57614f37565b6001915050610baf565b60ff841115614f2c57614f2c614b61565b50506001821b610baf565b5060208310610133831016604e8410600b8410161715614f5a575081810a610baf565b614f665f198484614e9e565b805f1904821115614f7957614f79614b61565b029392505050565b5f61191f60ff841683614ee1565b5f82614fa957634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610baf57610baf614b61565b601f8211156110b857805f5260205f20601f840160051c81016020851015614fea5750805b601f840160051c820191505b81811015610d18575f8155600101614ff6565b6001600160401b0383111561502057615020614321565b6150348361502e8354614a49565b83614fc5565b5f601f841160018114615065575f851561504e5750838201355b5f19600387901b1c1916600186901b178355610d18565b5f83815260208120601f198716915b828110156150945786850135825560209485019460019092019101615074565b50868210156150b0575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201525f6150da6060830185614144565b82810360408401526117008185614144565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190525f9061512690830185614144565b82810360a08401526151388185614144565b9998505050505050505050565b634e487b7160e01b5f52602160045260245ffdfeb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d112e5ae02f21653ce5bb6586d82dac3a41b0839f520588f6649a2745fa9e3c764736f6c634300081e0033";
15
+ static readonly bytecode = "0x60e060405234801561000f575f5ffd5b5060405161548c38038061548c83398101604081905261002e9161008f565b6001600160a01b03808316608052811660c0819052604051839183917feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e6905f90a2505050506100c7565b6001600160a01b038116811461008c575f5ffd5b50565b5f5f604083850312156100a0575f5ffd5b82516100ab81610078565b60208401519092506100bc81610078565b809150509250929050565b60805160a05160c05161530161018b5f395f6108a101525f610a1001525f818161050f01528181610ce301528181610d5201528181611065015281816110f20152818161121c015281816113960152818161159c015281816115f201528181611665015281816117a90152818161194b01528181611b3b01528181611ef501528181612021015281816120e8015281816121ad015281816122140152818161229a01528181612c2301528181612cb801528181613dea015261413901526153015ff3fe608060405234801561000f575f5ffd5b506004361061042d575f3560e01c806370a082311161022c578063b84cdd4a11610135578063d9d078d6116100bf578063f5a8b4dd11610084578063f5a8b4dd14610a0b578063f99a38c414610477578063fad8b32a14610a32578063fc673c4f14610a45578063fe9d930314610a58575f5ffd5b8063d9d078d61461096e578063dd62ed3e14610981578063eb3537cc146109b9578063ec0d6343146109e7578063ee719bc8146109fa575f5ffd5b8063ca0c1e7f11610105578063ca0c1e7f1461090f578063ca78946414610922578063cf97256d14610935578063d505accf14610948578063d95b63711461095b575f5ffd5b8063b84cdd4a146108c3578063bb0d196e146108d6578063c68d4283146108e9578063c780fd82146108fc575f5ffd5b80639903ad38116101b6578063a3a7e7f311610186578063a3a7e7f314610850578063a457c2d714610863578063a854d22f14610876578063a9059cbb14610889578063b20db1ac1461089c575f5ffd5b80639903ad381461080f5780639bd9bbc6146108175780639d8767411461082a578063a1b2bf8b1461083d575f5ffd5b806384b0196e116101fc57806384b0196e146107b45780638f283970146107cf57806392081a47146107e2578063959b8c3f146107f457806395d89b4114610807575f5ffd5b806370a082311461075357806379359f6f146107665780637ecebe001461077957806383ba2525146107a1575f5ffd5b8063386fa2211161033957806350d75d25116102c357806362ad1b831161028857806362ad1b831461070b57806366a12fb61461071e5780636c2d9f2f146107315780636e9960c3146107445780636fed61fc1461074c575f5ffd5b806350d75d25146106b057806352d1902d146106b8578063556f0dc7146106de5780635b9d09cc146106e557806362aa5287146106f8575f5ffd5b806345977d031161030957806345977d0314610644578063469519541461065757806347ba7ad11461066a5780634b2763b31461067d5780634b61cc3314610690575f5ffd5b8063386fa221146105f8578063395093511461060b57806341b706be1461061e57806342fe098014610631575f5ffd5b80631ae88ffc116103ba578063270483971161038a578063270483971461056d578063282a050b146105805780632ec8eec7146105a8578063313ce567146105db5780633644e515146105f0575f5ffd5b80631ae88ffc146104fa57806320bc44251461050d57806323b872dd14610547578063245887fc1461055a575f5ffd5b806311bcc81e1161040057806311bcc81e1461049c57806312a6a3f8146104af57806316d055d6146104c257806318160ddd146104d55780631863e809146104e7575f5ffd5b806306e485381461043157806306fdde031461044f578063090c415e14610464578063095ea7b314610479575b5f5ffd5b610439610a6b565b604051610446919061422b565b60405180910390f35b610457610a7c565b60405161044691906142b9565b610477610472366004614326565b610b0c565b005b61048c61048736600461437d565b610bbd565b6040519015158152602001610446565b6104776104aa3660046143a7565b610bd3565b6104776104bd3660046143be565b610c00565b6104776104d0366004614405565b610ce1565b6003545b604051908152602001610446565b6104776104f536600461450f565b610d3d565b61047761050836600461459b565b611063565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610446565b61048c61055536600461459b565b6110db565b61047761056836600461437d565b6110f0565b61047761057b3660046145d9565b611167565b61059361058e3660046143a7565b611202565b60408051928352602083019190915201610446565b6105bb6105b63660046145f9565b611216565b604080519485526020850193909352918301526060820152608001610446565b60125b60405160ff9091168152602001610446565b6104d96112b5565b6104396106063660046145f9565b611363565b61048c61061936600461437d565b611401565b61047761062c366004614405565b61143c565b61047761063f366004614666565b611468565b6104776106523660046143a7565b611542565b6104776106653660046145f9565b61156c565b61047761067836600461459b565b6115f0565b61047761068b36600461459b565b611663565b6106a361069e3660046146f6565b6116e4565b6040516104469190614739565b61052f611728565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104d9565b60016104d9565b6104776106f3366004614770565b611751565b61047761070636600461459b565b6117a7565b6104776107193660046147bb565b6117fb565b61047761072c36600461459b565b6118a7565b6106a361073f366004614856565b6118c7565b61052f611908565b601f6104d9565b6104d96107613660046145f9565b61191e565b61048c6107743660046145f9565b611944565b6104d96107873660046145f9565b6001600160a01b03165f9081526016602052604090205490565b6104776107af36600461437d565b6119c9565b6107bc6119f3565b6040516104469796959493929190614888565b6104776107dd3660046145f9565b611b0b565b600e54600160a01b900460ff166105de565b6104776108023660046145f9565b611bf9565b610457611c4a565b610477611c59565b610477610825366004614770565b611d15565b61047761083836600461491e565b611d68565b61047761084b3660046143be565b611dad565b61047761085e3660046145f9565b611e55565b61048c61087136600461437d565b611e69565b610477610884366004614972565b611ee0565b61048c61089736600461437d565b611fc1565b61052f7f000000000000000000000000000000000000000000000000000000000000000081565b61048c6108d136600461437d565b611fce565b61048c6108e43660046145f9565b61201a565b6104776108f736600461491e565b61209f565b61047761090a36600461459b565b6120e6565b61047761091d3660046149a9565b6121ab565b61047761093036600461437d565b612212565b61047761094336600461437d565b612285565b610477610956366004614a10565b61236a565b61048c610969366004614972565b6124c3565b61048c61097c36600461437d565b6124d0565b6104d961098f366004614972565b6001600160a01b039182165f90815260116020908152604080832093909416825291909152205490565b6109cc6109c736600461437d565b6124e8565b60408051938452602084019290925290820152606001610446565b6104776109f5366004614a5d565b612615565b600e546001600160a01b031661052f565b61052f7f000000000000000000000000000000000000000000000000000000000000000081565b610477610a403660046145f9565b6126e6565b610477610a53366004614b00565b612737565b610477610a66366004614b41565b6127d6565b6060610a776012612826565b905090565b6060600f8054610a8b90614b7b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab790614b7b565b8015610b025780601f10610ad957610100808354040283529160200191610b02565b820191905f5260205f20905b815481529060010190602001808311610ae557829003601f168201915b5050505050905090565b5f338585604051602001610b2293929190614bb3565b604051602081830303815290604052805190602001209050610b76818484808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061288992505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b5f610bc93384846128bf565b5060015b92915050565b610bfd3333338460405180602001604052805f81525060405180602001604052805f8152506128cc565b50565b60405133905f90610c179083908790602001614bfc565b60408051601f1981840301815291905280516020909101209050610c3b8184612a83565b15610c595760405163782a90fb60e11b815260040160405180910390fd5b610c95818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061288992505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610cd293929190614c39565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d2a5760405163c51efddd60e01b815260040160405180910390fd5b610d3684848484612ab5565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610d9f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc39190614c78565b610de05760405163327fd99160e21b815260040160405180910390fd5b5f610de9612c1f565b90506001600160a01b038116610dfc5750845b5f85610e085786610e0a565b815b90505f8313610ed457610e1c83614ca7565b610e2585612d5f565b14610e3257610e32614cc1565b610e3b84612d5f565b6001600160a01b0382165f9081526002602052604081208054909190610e62908490614cd5565b90915550506001600160a01b0385165f9081526002602052604081208054859290610e8e908490614cd5565b92505081905550806001600160a01b0316856001600160a01b03165f5160206152ac5f395f51905f5286604051610ec791815260200190565b60405180910390a3610ffb565b8515610ee257610ee2614cc1565b82610eec85612d5f565b610ef69190614cd5565b6001600160a01b0383165f9081526002602052604081208054909190610f1d908490614cfc565b90915550610f2c905084612d5f565b6001600160a01b0388165f9081526002602052604081208054909190610f53908490614cd5565b90915550506001600160a01b0385165f9081526002602052604081208054859290610f7f908490614cd5565b92505081905550866001600160a01b0316826001600160a01b03165f5160206152ac5f395f51905f5286604051610fb891815260200190565b60405180910390a3846001600160a01b0316826001600160a01b03165f5160206152ac5f395f51905f5285604051610ff291815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051611050959493929190614d1b565b60405180910390a4505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146110ac5760405163c51efddd60e01b815260040160405180910390fd5b6110d63384848460405180602001604052805f81525060405180602001604052805f815250612d8f565b505050565b5f6110e833858585612ab5565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146111395760405163c51efddd60e01b815260040160405180910390fd5b6111633383848460405180602001604052805f81525060405180602001604052805f8152506128cc565b5050565b60405133905f9061117e9083908690602001614bfc565b6040516020818303038152906040528051906020012090506111a08184612a83565b6111bd5760405163dae1880960e01b815260040160405180910390fd5b6111c78184612f3a565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b5f5f61120d83612f51565b91509150915091565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611276573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129a9190614d58565b90506112a685826124e8565b91979096509094509092509050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600f6040516112e69190614d6f565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038181165f908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d906024015f60405180830381865afa1580156113da573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610bcd9190810190614de0565b335f8181526011602090815260408083206001600160a01b03871684529091528120549091610bc9918590611437908690614e87565b6128bf565b33301461145c57604051630fff4cc960e31b815260040160405180910390fd5b610d3683858484612ab5565b5f54610100900460ff161580801561148657505f54600160ff909116105b8061149f5750303b15801561149f57505f5460ff166001145b6114c45760405162461bcd60e51b81526004016114bb90614e9a565b60405180910390fd5b5f805460ff1916600117905580156114e5575f805461ff0019166101001790555b6114f48787878787875f61300c565b8015611539575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610bfd3333338460405180602001604052805f81525060405180602001604052805f815250612d8f565b5f6115825f51602061528c5f395f51905f525490565b90505f6001600160a01b0382161561159a57816115bc565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b038216146115e757604051630484acab60e01b815260040160405180910390fd5b6110d6836130d0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116395760405163c51efddd60e01b815260040160405180910390fd5b6110d63384848460405180602001604052805f81525060405180602001604052805f8152506128cc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116ac5760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220546110d69084908490611437908590614e87565b60605f8585856040516020016116fc93929190614bb3565b60405160208183030381529060405280519060200120905061171e8184613307565b9695505050505050565b5f610a777f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6117a13333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250612d8f915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146117f05760405163c51efddd60e01b815260040160405180910390fd5b6110d68383836128bf565b336118086012828a61338c565b6118255760405163f7f0222760e01b815260040160405180910390fd5b61189d8189898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f9201919091525060019250613431915050565b5050505050505050565b3330146117f057604051630fff4cc960e31b815260040160405180910390fd5b60605f84846040516020016118dd929190614bfc565b6040516020818303038152906040528051906020012090506118ff8184613307565b95945050505050565b5f610a775f51602061528c5f395f51905f525490565b5f5f61192983611216565b50505090505f811261193b578061193d565b5f5b9392505050565b5f610bcd827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119a5573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097c9190614d58565b6111633333848460405180602001604052805f81525060405180602001604052805f8152506128cc565b5f6060805f5f5f6060600f604051806040016040528060018152602001603160f81b81525046305f5f1b5f6001600160401b03811115611a3557611a35614453565b604051908082528060200260200182016040528015611a5e578160200160208202803683370190505b50600f60f81b959493929190858054611a7690614b7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611aa290614b7b565b8015611aed5780601f10611ac457610100808354040283529160200191611aed565b820191905f5260205f20905b815481529060010190602001808311611ad057829003601f168201915b50505050509550965096509650965096509650965090919293949596565b5f611b215f51602061528c5f395f51905f525490565b90505f6001600160a01b03821615611b395781611b5b565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b03821614611b8657604051630484acab60e01b815260040160405180910390fd5b5f611b9c5f51602061528c5f395f51905f525490565b9050611bb3845f51602061528c5f395f51905f5255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611c06601282846134aa565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610a8b90614b7b565b5f54610100900460ff1615808015611c7757505f54600160ff909116105b80611c905750303b158015611c9057505f5460ff166001145b611cac5760405162461bcd60e51b81526004016114bb90614e9a565b5f805460ff191660011790558015611ccd575f805461ff0019166101001790555b8015610bfd575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6117a13333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250600191506134319050565b333014611d8857604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f8152602081019091526110d6913391869186919015159086906135ab565b60405133905f90611dc49083908790602001614bfc565b604051602081830303815290604052805190602001209050611e18818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061288992505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610cd293929190614c39565b611163333383611e643361191e565b612ab5565b335f9081526011602090815260408083206001600160a01b0386168452909152812054821115611eab5760405162461bcd60e51b81526004016114bb90614ee8565b335f8181526011602090815260408083206001600160a01b0388168452909152902054610bc991908590611437908690614f32565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611f42573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f669190614c78565b611f835760405163327fd99160e21b815260040160405180910390fd5b806001600160a01b0316826001600160a01b03165f5160206152ac5f395f51905f525f604051611fb591815260200190565b60405180910390a35050565b5f61193d33338585612ab5565b5f5f5f5f611fdc86866124e8565b9250925092505f612002828411611ff3575f612d5f565b611ffd8385614f32565b612d5f565b61200c9085614cd5565b5f1315979650505050505050565b5f610bcd827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561207b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d19190614d58565b3330146120bf57604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f8152602081019091526110d6913391869186919015159081908790613675565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461212f5760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220548111156121735760405162461bcd60e51b81526004016114bb90614ee8565b6001600160a01b038084165f908152601160209081526040808320938616835292905220546110d69084908490611437908590614f32565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146121f45760405163c51efddd60e01b815260040160405180910390fd5b6117a1338585858560405180602001604052805f8152506001613431565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461225b5760405163c51efddd60e01b815260040160405180910390fd5b6111633383848460405180602001604052805f81525060405180602001604052805f815250612d8f565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa1580156122e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230b9190614c78565b6123285760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b0382165f9081526002602052604090205461234b908290614cd5565b6001600160a01b039092165f9081526002602052604090209190915550565b8342111561238e57604051636e72b90f60e01b8152600481018590526024016114bb565b6001600160a01b0387165f90815260166020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a9190866123da83614f45565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f6124376112b5565b60405161190160f01b81526002810182905260228101849052604290209091505f61246482888888613740565b90508a6001600160a01b0316816001600160a01b0316146124ab5760405163b642210560e01b81526001600160a01b0380831660048301528c1660248201526044016114bb565b6124b68b8b8b6128bf565b5050505050505050505050565b5f61193d6012848461338c565b5f5f6124dc84846124e8565b50505f13949350505050565b6001600160a01b0382165f9081526002602052604081205490808061250c86611363565b90505f5b815181101561260c575f5f5f84848151811061252e5761252e614f5d565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa15801561258b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125af9190614f71565b919450925090506125c08288614e87565b96506125cc8187614e87565b95506125e88183116125de575f612d5f565b611ffd8284614f32565b6125f2848a614cd5565b6125fc9190614cfc565b9750505050806001019050612510565b50509250925092565b5f54610100900460ff161580801561263357505f54600160ff909116105b8061264c5750303b15801561264c57505f5460ff166001145b6126685760405162461bcd60e51b81526004016114bb90614e9a565b5f805460ff191660011790558015612689575f805461ff0019166101001790555b6126988888888888888861300c565b801561189d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336126f36012828461376c565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b336127446012828961338c565b6127615760405163f7f0222760e01b815260040160405180910390fd5b6115398188898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f920191909152506128cc92505050565b6110d63333338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920182905250604080516020810190915290815292506128cc915050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561287d57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161285f575b50505050509050919050565b5f5b81518110156110d6575f8282815181106128a7576128a7614f5d565b6020908102919091010151848301555060010161288b565b6110d68383836001613861565b600e546001600160a01b03166128f557604051637bce7b2b60e11b815260040160405180910390fd5b5f5f61290085612f51565b9150915061291688888387515f141588886135ab565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa15801561295c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129809190614d58565b600e5490915061299a906001600160a01b0316888561392f565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156129e0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a049190614d58565b90505f612a118284614f32565b9050808514612a3357604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d85604051612a6e91815260200190565b60405180910390a25050505050505050505050565b5f805b82811015612aac57838101548015612aa357600192505050610bcd565b50600101612a86565b505f9392505050565b5f6001600160a01b038416612add5760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b038316612b045760405163e219bd3960e01b815260040160405180910390fd5b5f339050612b328186868660405180602001604052805f81525060405180602001604052805f81525061398e565b846001600160a01b0316866001600160a01b031614612c13576001600160a01b038086165f908152601160209081526040808320938a1683529290522054831115612bd55760405162461bcd60e51b815260206004820152602d60248201527f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636560448201526c65647320616c6c6f77616e636560981b60648201526084016114bb565b6001600160a01b038086165f908152601160209081526040808320938a1683529290522054612c139086908890612c0d908790614f32565b5f613861565b50600195945050505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ca19190614f9c565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612d35573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d599190614f9c565b91505090565b5f6001600160ff1b03821115612d8b5760405163123baf0360e11b8152600481018390526024016114bb565b5090565b600e546001600160a01b0316612db857604051637bce7b2b60e11b815260040160405180910390fd5b5f5f612dc385612f51565b600e546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612e11573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e359190614d58565b600e54909150612e50906001600160a01b0316893086613a2c565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612e96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eba9190614d58565b90505f612ec78383614f32565b9050808514612ee957604051631c7c26d360e31b815260040160405180910390fd5b8651612eff908c908b9087901515808c8c613675565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df85604051612a6e91815260200190565b5f5b818110156110d6575f83820155600101612f3c565b600e545f90819081906012600160a01b90910460ff161015612faf57600e54612f8590600160a01b900460ff166012614fb7565b612f9090600a6150b3565b9050612f9c81856150c1565b9250612fa881846150e0565b9150613006565b600e546012600160a01b90910460ff161115612fff57600e54612fde90601290600160a01b900460ff16614fb7565b612fe990600a6150b3565b9050612ff581856150e0565b9250839150613006565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f61304185878361513b565b50601061304f83858361513b565b50613065815f51602061528c5f395f51905f5255565b61306e30613a65565b6040515f8082529081905f5160206152ac5f395f51905f529060200160405180910390a36040516001600160a01b038216905f907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b5f6130f97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b03160361314f5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016114bb565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131af9190614d58565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146132295760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016114bb565b6001600160a01b03811630036132815760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016114bb565b6132a9817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611d0a565b6060816001600160401b0381111561332157613321614453565b60405190808252806020026020018201604052801561334a578160200160208202803683370190505b5090505f5b82811015613385575f8185015490508083838151811061337157613371614f5d565b60209081029190910101525060010161334f565b5092915050565b5f816001600160a01b0316836001600160a01b031614806133f857506001600160a01b0383165f90815260018501602052604090205460ff1680156133f857506001600160a01b038083165f90815260038601602090815260408083209387168352929052205460ff16155b806110e857506001600160a01b038083165f90815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166134585760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b03851661347f5760405163e219bd3960e01b815260040160405180910390fd5b61348d878787878787613b89565b61349b87878787878761398e565b61153987878787878787613c9b565b806001600160a01b0316826001600160a01b0316036135215760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016114bb565b6001600160a01b0381165f90815260018401602052604090205460ff1615613575576001600160a01b039182165f90815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b038083165f9081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b0385166135d257604051632e8aac6160e21b815260040160405180910390fd5b82156135e6576135e686865f878686613b89565b6135f08585613de3565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098868585604051613637939291906151f4565b60405180910390a36040518481525f906001600160a01b038716905f5160206152ac5f395f51905f52906020015b60405180910390a3505050505050565b6001600160a01b03861661369c57604051630d24315760e01b815260040160405180910390fd5b6136a68686613eee565b83156136bb576136bb875f8888868689613c9b565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d878585604051613702939291906151f4565b60405180910390a36040518581526001600160a01b038716905f905f5160206152ac5f395f51905f529060200160405180910390a350505050505050565b5f5f5f5f61375088888888613f46565b925092509250613760828261400e565b50909695505050505050565b336001600160a01b038216036137d75760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016114bb565b6001600160a01b0381165f90815260018401602052604090205460ff161561382f576001600160a01b038083165f9081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b039182165f90815260029390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b03841661388857604051638163862760e01b815260040160405180910390fd5b6001600160a01b0383166138af576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b038085165f90815260116020908152604080832093871683529290522082905580156117a157826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161392191815260200190565b60405180910390a350505050565b6040516001600160a01b038381166024830152604482018390526110d691859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506140c6565b6139a1858561399c86612d5f565b614132565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516139f2939291906151f4565b60405180910390a4836001600160a01b0316856001600160a01b03165f5160206152ac5f395f51905f528560405161366591815260200190565b6040516001600160a01b0384811660248301528381166044830152606482018390526117a19186918216906323b872dd9060840161395c565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d906064015f604051808303815f87803b158015613ae3575f5ffd5b505af1158015613af5573d5f5f3e3d5ffd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b158015613b77575f5ffd5b505af1158015610d36573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613c07573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c2b9190614f9c565b90506001600160a01b0381161561153957604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613c72908a908a908a908a908a908a9060040161521e565b5f604051808303815f87803b158015613c89575f5ffd5b505af11580156124b6573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613d19573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d3d9190614f9c565b90506001600160a01b03811615613db4576040516223de2960e01b81526001600160a01b038216906223de2990613d82908b908b908b908b908b908b9060040161521e565b5f604051808303815f87803b158015613d99575f5ffd5b505af1158015613dab573d5f5f3e3d5ffd5b5050505061189d565b811561189d576001600160a01b0386163b1561189d5760405163fe737d0560e01b815260040160405180910390fd5b5f613e68837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e44573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c79190614d58565b50509050613e7582612d5f565b811215613e955760405163043b37d160e21b815260040160405180910390fd5b613e9e82612d5f565b6001600160a01b0384165f90815260026020526040902054613ec09190614cfc565b6001600160a01b0384165f90815260026020526040902055600354613ee6908390614f32565b600355505050565b613ef781612d5f565b6001600160a01b0383165f90815260026020526040902054613f199190614cd5565b6001600160a01b0383165f90815260026020526040902055600354613f3f908290614e87565b6003555050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613f7f57505f91506003905082614004565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613fd0573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613ffb57505f925060019150829050614004565b92505f91508190505b9450945094915050565b5f82600381111561402157614021615277565b0361402a575050565b600182600381111561403e5761403e615277565b0361405c5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561407057614070615277565b036140915760405163fce698f760e01b8152600481018290526024016114bb565b60038260038111156140a5576140a5615277565b03611163576040516335e2f38360e21b8152600481018290526024016114bb565b5f5f60205f8451602086015f885af1806140e5576040513d5f823e3d81fd5b50505f513d915081156140fc578060011415614109565b6001600160a01b0384163b155b156117a157604051635274afe760e01b81526001600160a01b03851660048201526024016114bb565b5f614193847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e44573d5f5f3e3d5ffd5b50509050818112156141b857604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b0384165f908152600260205260409020546141db908390614cfc565b6001600160a01b038086165f90815260026020526040808220939093559085168152205461420a908390614cd5565b6001600160a01b039093165f90815260026020526040902092909255505050565b602080825282518282018190525f918401906040840190835b8181101561426b5783516001600160a01b0316835260209384019390920191600101614244565b509095945050505050565b5f81518084525f5b8181101561429a5760208185018101518683018201520161427e565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61193d6020830184614276565b6001600160a01b0381168114610bfd575f5ffd5b5f5f83601f8401126142ef575f5ffd5b5081356001600160401b03811115614305575f5ffd5b6020830191508360208260051b850101111561431f575f5ffd5b9250929050565b5f5f5f5f60608587031215614339575f5ffd5b8435614344816142cb565b93506020850135925060408501356001600160401b03811115614365575f5ffd5b614371878288016142df565b95989497509550505050565b5f5f6040838503121561438e575f5ffd5b8235614399816142cb565b946020939093013593505050565b5f602082840312156143b7575f5ffd5b5035919050565b5f5f5f604084860312156143d0575f5ffd5b8335925060208401356001600160401b038111156143ec575f5ffd5b6143f8868287016142df565b9497909650939450505050565b5f5f5f5f60808587031215614418575f5ffd5b8435614423816142cb565b93506020850135614433816142cb565b92506040850135614443816142cb565b9396929550929360600135925050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561448f5761448f614453565b604052919050565b5f82601f8301126144a6575f5ffd5b81356001600160401b038111156144bf576144bf614453565b6144d2601f8201601f1916602001614467565b8181528460208386010111156144e6575f5ffd5b816020850160208301375f918101602001919091529392505050565b8015158114610bfd575f5ffd5b5f5f5f5f5f5f5f60e0888a031215614525575f5ffd5b8735965060208801356001600160401b03811115614541575f5ffd5b61454d8a828b01614497565b965050604088013561455e816142cb565b9450606088013561456e81614502565b9350608088013561457e816142cb565b9699959850939692959460a0840135945060c09093013592915050565b5f5f5f606084860312156145ad575f5ffd5b83356145b8816142cb565b925060208401356145c8816142cb565b929592945050506040919091013590565b5f5f604083850312156145ea575f5ffd5b50508035926020909101359150565b5f60208284031215614609575f5ffd5b813561193d816142cb565b803560ff81168114614624575f5ffd5b919050565b5f5f83601f840112614639575f5ffd5b5081356001600160401b0381111561464f575f5ffd5b60208301915083602082850101111561431f575f5ffd5b5f5f5f5f5f5f6080878903121561467b575f5ffd5b8635614686816142cb565b955061469460208801614614565b945060408701356001600160401b038111156146ae575f5ffd5b6146ba89828a01614629565b90955093505060608701356001600160401b038111156146d8575f5ffd5b6146e489828a01614629565b979a9699509497509295939492505050565b5f5f5f5f60808587031215614709575f5ffd5b8435614714816142cb565b93506020850135614724816142cb565b93969395505050506040820135916060013590565b602080825282518282018190525f918401906040840190835b8181101561426b578351835260209384019390920191600101614752565b5f5f5f5f60608587031215614783575f5ffd5b843561478e816142cb565b93506020850135925060408501356001600160401b038111156147af575f5ffd5b61437187828801614629565b5f5f5f5f5f5f5f60a0888a0312156147d1575f5ffd5b87356147dc816142cb565b965060208801356147ec816142cb565b95506040880135945060608801356001600160401b0381111561480d575f5ffd5b6148198a828b01614629565b90955093505060808801356001600160401b03811115614837575f5ffd5b6148438a828b01614629565b989b979a50959850939692959293505050565b5f5f5f60608486031215614868575f5ffd5b8335614873816142cb565b95602085013595506040909401359392505050565b60ff60f81b8816815260e060208201525f6148a660e0830189614276565b82810360408401526148b88189614276565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b8181101561490d5783518352602093840193909201916001016148ef565b50909b9a5050505050505050505050565b5f5f5f60608486031215614930575f5ffd5b833561493b816142cb565b92506020840135915060408401356001600160401b0381111561495c575f5ffd5b61496886828701614497565b9150509250925092565b5f5f60408385031215614983575f5ffd5b823561498e816142cb565b9150602083013561499e816142cb565b809150509250929050565b5f5f5f5f608085870312156149bc575f5ffd5b84356149c7816142cb565b935060208501356149d7816142cb565b92506040850135915060608501356001600160401b038111156149f8575f5ffd5b614a0487828801614497565b91505092959194509250565b5f5f5f5f5f5f5f60e0888a031215614a26575f5ffd5b8735614a31816142cb565b96506020880135614a41816142cb565b9550604088013594506060880135935061457e60808901614614565b5f5f5f5f5f5f5f60a0888a031215614a73575f5ffd5b8735614a7e816142cb565b9650614a8c60208901614614565b955060408801356001600160401b03811115614aa6575f5ffd5b614ab28a828b01614629565b90965094505060608801356001600160401b03811115614ad0575f5ffd5b614adc8a828b01614629565b9094509250506080880135614af0816142cb565b8091505092959891949750929550565b5f5f5f5f5f5f60808789031215614b15575f5ffd5b8635614b20816142cb565b95506020870135945060408701356001600160401b038111156146ae575f5ffd5b5f5f5f60408486031215614b53575f5ffd5b8335925060208401356001600160401b03811115614b6f575f5ffd5b6143f886828701614629565b600181811c90821680614b8f57607f821691505b602082108103614bad57634e487b7160e01b5f52602260045260245ffd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b83815260406020820181905281018290525f6001600160fb1b03831115614c5e575f5ffd5b8260051b8085606085013791909101606001949350505050565b5f60208284031215614c88575f5ffd5b815161193d81614502565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201614cbb57614cbb614c93565b505f0390565b634e487b7160e01b5f52600160045260245ffd5b8082018281125f831280158216821582161715614cf457614cf4614c93565b505092915050565b8181035f83128015838313168383128216171561338557613385614c93565b85815260018060a01b038516602082015283604082015282606082015260a060808201525f614d4d60a0830184614276565b979650505050505050565b5f60208284031215614d68575f5ffd5b5051919050565b5f5f8354614d7c81614b7b565b600182168015614d935760018114614da857614dd5565b60ff1983168652811515820286019350614dd5565b865f5260205f205f5b83811015614dcd57815488820152600190910190602001614db1565b505081860193505b509195945050505050565b5f60208284031215614df0575f5ffd5b81516001600160401b03811115614e05575f5ffd5b8201601f81018413614e15575f5ffd5b80516001600160401b03811115614e2e57614e2e614453565b8060051b614e3e60208201614467565b91825260208184018101929081019087841115614e59575f5ffd5b6020850194505b83851015614d4d5784519250614e75836142cb565b82825260209485019490910190614e60565b80820180821115610bcd57610bcd614c93565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602a908201527f5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652060408201526962656c6f77207a65726f60b01b606082015260800190565b81810381811115610bcd57610bcd614c93565b5f60018201614f5657614f56614c93565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f5f5f60608486031215614f83575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215614fac575f5ffd5b815161193d816142cb565b60ff8281168282160390811115610bcd57610bcd614c93565b6001815b600184111561500b57808504811115614fef57614fef614c93565b6001841615614ffd57908102905b60019390931c928002614fd4565b935093915050565b5f8261502157506001610bcd565b8161502d57505f610bcd565b8160018114615043576002811461504d57615069565b6001915050610bcd565b60ff84111561505e5761505e614c93565b50506001821b610bcd565b5060208310610133831016604e8410600b841016171561508c575081810a610bcd565b6150985f198484614fd0565b805f19048211156150ab576150ab614c93565b029392505050565b5f61193d60ff841683615013565b5f826150db57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610bcd57610bcd614c93565b601f8211156110d657805f5260205f20601f840160051c8101602085101561511c5750805b601f840160051c820191505b81811015610d36575f8155600101615128565b6001600160401b0383111561515257615152614453565b615166836151608354614b7b565b836150f7565b5f601f841160018114615197575f85156151805750838201355b5f19600387901b1c1916600186901b178355610d36565b5f83815260208120601f198716915b828110156151c657868501358255602094850194600190920191016151a6565b50868210156151e2575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201525f61520c6060830185614276565b828103604084015261171e8185614276565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190525f9061525890830185614276565b82810360a084015261526a8185614276565b9998505050505050505050565b634e487b7160e01b5f52602160045260245ffdfeb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220254d93cd4f3e55454132be42e8db0681e20ac2e314fdacae19ad393d7e5f800264736f6c634300081e0033";
16
16
  static readonly abi: readonly [{
17
17
  readonly inputs: readonly [{
18
18
  readonly internalType: "contract ISuperfluid";
@@ -846,6 +846,20 @@ export declare class SuperTokenStorageLayoutTester__factory extends ContractFact
846
846
  }];
847
847
  readonly stateMutability: "view";
848
848
  readonly type: "function";
849
+ }, {
850
+ readonly inputs: readonly [{
851
+ readonly internalType: "address";
852
+ readonly name: "from";
853
+ readonly type: "address";
854
+ }, {
855
+ readonly internalType: "address";
856
+ readonly name: "to";
857
+ readonly type: "address";
858
+ }];
859
+ readonly name: "emitPseudoTransfer";
860
+ readonly outputs: readonly [];
861
+ readonly stateMutability: "nonpayable";
862
+ readonly type: "function";
849
863
  }, {
850
864
  readonly inputs: readonly [{
851
865
  readonly internalType: "address";
@@ -1 +1 @@
1
- {"version":3,"file":"SuperTokenStorageLayoutTester__factory.d.ts","sourceRoot":"","sources":["../../../../../../../src/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAmB,eAAe,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EACV,6BAA6B,EAC7B,sCAAsC,EACvC,MAAM,gFAAgF,CAAC;AA2uExF,KAAK,8CAA8C,GAC/C,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,sCAAuC,SAAQ,eAAe;gBAC7D,GAAG,IAAI,EAAE,8CAA8C;IAQ1D,MAAM,CACb,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,6BAA6B,CAAC;IAOhC,oBAAoB,CAC3B,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,kBAAkB;IAGZ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,6BAA6B;IAGtD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,sCAAsC;IAIxE,MAAM,CAAC,QAAQ,CAAC,QAAQ,8qzCAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,sCAAsC;IAGhE,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,6BAA6B;CAOjC"}
1
+ {"version":3,"file":"SuperTokenStorageLayoutTester__factory.d.ts","sourceRoot":"","sources":["../../../../../../../src/typechain-types/factories/contracts/mocks/SuperTokenMock.t.sol/SuperTokenStorageLayoutTester__factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAmB,eAAe,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EACV,6BAA6B,EAC7B,sCAAsC,EACvC,MAAM,gFAAgF,CAAC;AA6vExF,KAAK,8CAA8C,GAC/C,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GACjB,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC;AAMlD,qBAAa,sCAAuC,SAAQ,eAAe;gBAC7D,GAAG,IAAI,EAAE,8CAA8C;IAQ1D,MAAM,CACb,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,6BAA6B,CAAC;IAOhC,oBAAoB,CAC3B,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,SAAS,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,kBAAkB;IAGZ,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,6BAA6B;IAGtD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,sCAAsC;IAIxE,MAAM,CAAC,QAAQ,CAAC,QAAQ,gy0CAAa;IACrC,MAAM,CAAC,QAAQ,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAAQ;IAC3B,MAAM,CAAC,eAAe,IAAI,sCAAsC;IAGhE,MAAM,CAAC,OAAO,CACZ,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAClC,6BAA6B;CAOjC"}
@@ -1061,6 +1061,24 @@ const _abi = [
1061
1061
  stateMutability: "view",
1062
1062
  type: "function",
1063
1063
  },
1064
+ {
1065
+ inputs: [
1066
+ {
1067
+ internalType: "address",
1068
+ name: "from",
1069
+ type: "address",
1070
+ },
1071
+ {
1072
+ internalType: "address",
1073
+ name: "to",
1074
+ type: "address",
1075
+ },
1076
+ ],
1077
+ name: "emitPseudoTransfer",
1078
+ outputs: [],
1079
+ stateMutability: "nonpayable",
1080
+ type: "function",
1081
+ },
1064
1082
  {
1065
1083
  inputs: [
1066
1084
  {
@@ -2279,7 +2297,7 @@ const _abi = [
2279
2297
  type: "function",
2280
2298
  },
2281
2299
  ];
2282
- const _bytecode = "0x60e060405234801561000f575f5ffd5b5060405161535338038061535383398101604081905261002e9161008f565b6001600160a01b03808316608052811660c0819052604051839183917feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e6905f90a2505050506100c7565b6001600160a01b038116811461008c575f5ffd5b50565b5f5f604083850312156100a0575f5ffd5b82516100ab81610078565b60208401519092506100bc81610078565b809150509250929050565b60805160a05160c0516151cf6101845f395f61088301525f6109f201525f818161050401528181610cc501528181610d3401528181611047015281816110d4015281816111fe015281816113780152818161157e015281816115d4015281816116470152818161178b0152818161192d01528181611b1d01528181611f2201528181611fe9015281816120ae015281816121150152818161219b01528181612bbf01528181612c5401528181613cb8015261400701526151cf5ff3fe608060405234801561000f575f5ffd5b5060043610610422575f3560e01c80636fed61fc1161022c578063b84cdd4a11610135578063d9d078d6116100bf578063f5a8b4dd11610084578063f5a8b4dd146109ed578063f99a38c41461046c578063fad8b32a14610a14578063fc673c4f14610a27578063fe9d930314610a3a575f5ffd5b8063d9d078d614610950578063dd62ed3e14610963578063eb3537cc1461099b578063ec0d6343146109c9578063ee719bc8146109dc575f5ffd5b8063ca0c1e7f11610105578063ca0c1e7f146108f1578063ca78946414610904578063cf97256d14610917578063d505accf1461092a578063d95b63711461093d575f5ffd5b8063b84cdd4a146108a5578063bb0d196e146108b8578063c68d4283146108cb578063c780fd82146108de575f5ffd5b806395d89b41116101b6578063a1b2bf8b11610186578063a1b2bf8b14610832578063a3a7e7f314610845578063a457c2d714610858578063a9059cbb1461086b578063b20db1ac1461087e575f5ffd5b806395d89b41146107fc5780639903ad38146108045780639bd9bbc61461080c5780639d8767411461081f575f5ffd5b806383ba2525116101fc57806383ba25251461079657806384b0196e146107a95780638f283970146107c457806392081a47146107d7578063959b8c3f146107e9575f5ffd5b80636fed61fc1461074157806370a082311461074857806379359f6f1461075b5780637ecebe001461076e575f5ffd5b8063386fa2211161032e57806350d75d25116102b857806362aa52871161028857806362aa5287146106ed57806362ad1b831461070057806366a12fb6146107135780636c2d9f2f146107265780636e9960c314610739575f5ffd5b806350d75d25146106a557806352d1902d146106ad578063556f0dc7146106d35780635b9d09cc146106da575f5ffd5b806345977d03116102fe57806345977d0314610639578063469519541461064c57806347ba7ad11461065f5780634b2763b3146106725780634b61cc3314610685575f5ffd5b8063386fa221146105ed578063395093511461060057806341b706be1461061357806342fe098014610626575f5ffd5b80631ae88ffc116103af578063270483971161037f5780632704839714610562578063282a050b146105755780632ec8eec71461059d578063313ce567146105d05780633644e515146105e5575f5ffd5b80631ae88ffc146104ef57806320bc44251461050257806323b872dd1461053c578063245887fc1461054f575f5ffd5b806311bcc81e116103f557806311bcc81e1461049157806312a6a3f8146104a457806316d055d6146104b757806318160ddd146104ca5780631863e809146104dc575f5ffd5b806306e485381461042657806306fdde0314610444578063090c415e14610459578063095ea7b31461046e575b5f5ffd5b61042e610a4d565b60405161043b91906140f9565b60405180910390f35b61044c610a5e565b60405161043b9190614187565b61046c6104673660046141f4565b610aee565b005b61048161047c36600461424b565b610b9f565b604051901515815260200161043b565b61046c61049f366004614275565b610bb5565b61046c6104b236600461428c565b610be2565b61046c6104c53660046142d3565b610cc3565b6003545b60405190815260200161043b565b61046c6104ea3660046143dd565b610d1f565b61046c6104fd366004614469565b611045565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161043b565b61048161054a366004614469565b6110bd565b61046c61055d36600461424b565b6110d2565b61046c6105703660046144a7565b611149565b610588610583366004614275565b6111e4565b6040805192835260208301919091520161043b565b6105b06105ab3660046144c7565b6111f8565b60408051948552602085019390935291830152606082015260800161043b565b60125b60405160ff909116815260200161043b565b6104ce611297565b61042e6105fb3660046144c7565b611345565b61048161060e36600461424b565b6113e3565b61046c6106213660046142d3565b61141e565b61046c610634366004614534565b61144a565b61046c610647366004614275565b611524565b61046c61065a3660046144c7565b61154e565b61046c61066d366004614469565b6115d2565b61046c610680366004614469565b611645565b6106986106933660046145c4565b6116c6565b60405161043b9190614607565b61052461170a565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104ce565b60016104ce565b61046c6106e836600461463e565b611733565b61046c6106fb366004614469565b611789565b61046c61070e366004614689565b6117dd565b61046c610721366004614469565b611889565b610698610734366004614724565b6118a9565b6105246118ea565b601f6104ce565b6104ce6107563660046144c7565b611900565b6104816107693660046144c7565b611926565b6104ce61077c3660046144c7565b6001600160a01b03165f9081526016602052604090205490565b61046c6107a436600461424b565b6119ab565b6107b16119d5565b60405161043b9796959493929190614756565b61046c6107d23660046144c7565b611aed565b600e54600160a01b900460ff166105d3565b61046c6107f73660046144c7565b611bdb565b61044c611c2c565b61046c611c3b565b61046c61081a36600461463e565b611cf7565b61046c61082d3660046147ec565b611d4a565b61046c61084036600461428c565b611d8f565b61046c6108533660046144c7565b611e37565b61048161086636600461424b565b611e4b565b61048161087936600461424b565b611ec2565b6105247f000000000000000000000000000000000000000000000000000000000000000081565b6104816108b336600461424b565b611ecf565b6104816108c63660046144c7565b611f1b565b61046c6108d93660046147ec565b611fa0565b61046c6108ec366004614469565b611fe7565b61046c6108ff366004614840565b6120ac565b61046c61091236600461424b565b612113565b61046c61092536600461424b565b612186565b61046c6109383660046148a7565b61226b565b61048161094b3660046148f4565b6123c4565b61048161095e36600461424b565b6123d1565b6104ce6109713660046148f4565b6001600160a01b039182165f90815260116020908152604080832093909416825291909152205490565b6109ae6109a936600461424b565b6123e9565b6040805193845260208401929092529082015260600161043b565b61046c6109d736600461492b565b612516565b600e546001600160a01b0316610524565b6105247f000000000000000000000000000000000000000000000000000000000000000081565b61046c610a223660046144c7565b6125e7565b61046c610a353660046149ce565b612638565b61046c610a48366004614a0f565b6126d7565b6060610a596012612727565b905090565b6060600f8054610a6d90614a49565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9990614a49565b8015610ae45780601f10610abb57610100808354040283529160200191610ae4565b820191905f5260205f20905b815481529060010190602001808311610ac757829003601f168201915b5050505050905090565b5f338585604051602001610b0493929190614a81565b604051602081830303815290604052805190602001209050610b58818484808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061278a92505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b5f610bab3384846127c0565b5060015b92915050565b610bdf3333338460405180602001604052805f81525060405180602001604052805f81525061286e565b50565b60405133905f90610bf99083908790602001614aca565b60408051601f1981840301815291905280516020909101209050610c1d8184612a25565b15610c3b5760405163782a90fb60e11b815260040160405180910390fd5b610c77818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061278a92505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610cb493929190614b07565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d0c5760405163c51efddd60e01b815260040160405180910390fd5b610d1884848484612a57565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610d81573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da59190614b46565b610dc25760405163327fd99160e21b815260040160405180910390fd5b5f610dcb612bbb565b90506001600160a01b038116610dde5750845b5f85610dea5786610dec565b815b90505f8313610eb657610dfe83614b75565b610e0785612cfb565b14610e1457610e14614b8f565b610e1d84612cfb565b6001600160a01b0382165f9081526002602052604081208054909190610e44908490614ba3565b90915550506001600160a01b0385165f9081526002602052604081208054859290610e70908490614ba3565b92505081905550806001600160a01b0316856001600160a01b03165f51602061517a5f395f51905f5286604051610ea991815260200190565b60405180910390a3610fdd565b8515610ec457610ec4614b8f565b82610ece85612cfb565b610ed89190614ba3565b6001600160a01b0383165f9081526002602052604081208054909190610eff908490614bca565b90915550610f0e905084612cfb565b6001600160a01b0388165f9081526002602052604081208054909190610f35908490614ba3565b90915550506001600160a01b0385165f9081526002602052604081208054859290610f61908490614ba3565b92505081905550866001600160a01b0316826001600160a01b03165f51602061517a5f395f51905f5286604051610f9a91815260200190565b60405180910390a3846001600160a01b0316826001600160a01b03165f51602061517a5f395f51905f5285604051610fd491815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051611032959493929190614be9565b60405180910390a4505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461108e5760405163c51efddd60e01b815260040160405180910390fd5b6110b83384848460405180602001604052805f81525060405180602001604052805f815250612d2b565b505050565b5f6110ca33858585612a57565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461111b5760405163c51efddd60e01b815260040160405180910390fd5b6111453383848460405180602001604052805f81525060405180602001604052805f81525061286e565b5050565b60405133905f906111609083908690602001614aca565b6040516020818303038152906040528051906020012090506111828184612a25565b61119f5760405163dae1880960e01b815260040160405180910390fd5b6111a98184612ed6565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b5f5f6111ef83612eed565b91509150915091565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611258573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061127c9190614c26565b905061128885826123e9565b91979096509094509092509050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600f6040516112c89190614c3d565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038181165f908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d906024015f60405180830381865afa1580156113bc573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610baf9190810190614cae565b335f8181526011602090815260408083206001600160a01b03871684529091528120549091610bab918590611419908690614d55565b6127c0565b33301461143e57604051630fff4cc960e31b815260040160405180910390fd5b610d1883858484612a57565b5f54610100900460ff161580801561146857505f54600160ff909116105b806114815750303b15801561148157505f5460ff166001145b6114a65760405162461bcd60e51b815260040161149d90614d68565b60405180910390fd5b5f805460ff1916600117905580156114c7575f805461ff0019166101001790555b6114d68787878787875f612fa8565b801561151b575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610bdf3333338460405180602001604052805f81525060405180602001604052805f815250612d2b565b5f6115645f51602061515a5f395f51905f525490565b90505f6001600160a01b0382161561157c578161159e565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b038216146115c957604051630484acab60e01b815260040160405180910390fd5b6110b88361306c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461161b5760405163c51efddd60e01b815260040160405180910390fd5b6110b83384848460405180602001604052805f81525060405180602001604052805f81525061286e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461168e5760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220546110b89084908490611419908590614d55565b60605f8585856040516020016116de93929190614a81565b60405160208183030381529060405280519060200120905061170081846132a3565b9695505050505050565b5f610a597f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6117833333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250612d2b915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146117d25760405163c51efddd60e01b815260040160405180910390fd5b6110b88383836127c0565b336117ea6012828a613328565b6118075760405163f7f0222760e01b815260040160405180910390fd5b61187f8189898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f92019190915250600192506133cd915050565b5050505050505050565b3330146117d257604051630fff4cc960e31b815260040160405180910390fd5b60605f84846040516020016118bf929190614aca565b6040516020818303038152906040528051906020012090506118e181846132a3565b95945050505050565b5f610a595f51602061515a5f395f51905f525490565b5f5f61190b836111f8565b50505090505f811261191d578061191f565b5f5b9392505050565b5f610baf827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611987573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061095e9190614c26565b6111453333848460405180602001604052805f81525060405180602001604052805f81525061286e565b5f6060805f5f5f6060600f604051806040016040528060018152602001603160f81b81525046305f5f1b5f6001600160401b03811115611a1757611a17614321565b604051908082528060200260200182016040528015611a40578160200160208202803683370190505b50600f60f81b959493929190858054611a5890614a49565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8490614a49565b8015611acf5780601f10611aa657610100808354040283529160200191611acf565b820191905f5260205f20905b815481529060010190602001808311611ab257829003601f168201915b50505050509550965096509650965096509650965090919293949596565b5f611b035f51602061515a5f395f51905f525490565b90505f6001600160a01b03821615611b1b5781611b3d565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b03821614611b6857604051630484acab60e01b815260040160405180910390fd5b5f611b7e5f51602061515a5f395f51905f525490565b9050611b95845f51602061515a5f395f51905f5255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611be860128284613446565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610a6d90614a49565b5f54610100900460ff1615808015611c5957505f54600160ff909116105b80611c725750303b158015611c7257505f5460ff166001145b611c8e5760405162461bcd60e51b815260040161149d90614d68565b5f805460ff191660011790558015611caf575f805461ff0019166101001790555b8015610bdf575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6117833333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250600191506133cd9050565b333014611d6a57604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f8152602081019091526110b891339186918691901515908690613547565b60405133905f90611da69083908790602001614aca565b604051602081830303815290604052805190602001209050611dfa818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061278a92505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610cb493929190614b07565b611145333383611e4633611900565b612a57565b335f9081526011602090815260408083206001600160a01b0386168452909152812054821115611e8d5760405162461bcd60e51b815260040161149d90614db6565b335f8181526011602090815260408083206001600160a01b0388168452909152902054610bab91908590611419908690614e00565b5f61191f33338585612a57565b5f5f5f5f611edd86866123e9565b9250925092505f611f03828411611ef4575f612cfb565b611efe8385614e00565b612cfb565b611f0d9085614ba3565b5f1315979650505050505050565b5f610baf827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f7c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b39190614c26565b333014611fc057604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f8152602081019091526110b8913391869186919015159081908790613611565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146120305760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220548111156120745760405162461bcd60e51b815260040161149d90614db6565b6001600160a01b038084165f908152601160209081526040808320938616835292905220546110b89084908490611419908590614e00565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146120f55760405163c51efddd60e01b815260040160405180910390fd5b611783338585858560405180602001604052805f81525060016133cd565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461215c5760405163c51efddd60e01b815260040160405180910390fd5b6111453383848460405180602001604052805f81525060405180602001604052805f815250612d2b565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa1580156121e8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061220c9190614b46565b6122295760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b0382165f9081526002602052604090205461224c908290614ba3565b6001600160a01b039092165f9081526002602052604090209190915550565b8342111561228f57604051636e72b90f60e01b81526004810185905260240161149d565b6001600160a01b0387165f90815260166020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a9190866122db83614e13565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f612338611297565b60405161190160f01b81526002810182905260228101849052604290209091505f612365828888886136dc565b90508a6001600160a01b0316816001600160a01b0316146123ac5760405163b642210560e01b81526001600160a01b0380831660048301528c16602482015260440161149d565b6123b78b8b8b6127c0565b5050505050505050505050565b5f61191f60128484613328565b5f5f6123dd84846123e9565b50505f13949350505050565b6001600160a01b0382165f9081526002602052604081205490808061240d86611345565b90505f5b815181101561250d575f5f5f84848151811061242f5761242f614e2b565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa15801561248c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124b09190614e3f565b919450925090506124c18288614d55565b96506124cd8187614d55565b95506124e98183116124df575f612cfb565b611efe8284614e00565b6124f3848a614ba3565b6124fd9190614bca565b9750505050806001019050612411565b50509250925092565b5f54610100900460ff161580801561253457505f54600160ff909116105b8061254d5750303b15801561254d57505f5460ff166001145b6125695760405162461bcd60e51b815260040161149d90614d68565b5f805460ff19166001179055801561258a575f805461ff0019166101001790555b61259988888888888888612fa8565b801561187f575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336125f460128284613708565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b3361264560128289613328565b6126625760405163f7f0222760e01b815260040160405180910390fd5b61151b8188898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f9201919091525061286e92505050565b6110b83333338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506040805160208101909152908152925061286e915050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561277e57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612760575b50505050509050919050565b5f5b81518110156110b8575f8282815181106127a8576127a8614e2b565b6020908102919091010151848301555060010161278c565b6001600160a01b0383166127e757604051638163862760e01b815260040160405180910390fd5b6001600160a01b03821661280e576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b038381165f8181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600e546001600160a01b031661289757604051637bce7b2b60e11b815260040160405180910390fd5b5f5f6128a285612eed565b915091506128b888888387515f14158888613547565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156128fe573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129229190614c26565b600e5490915061293c906001600160a01b031688856137fd565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612982573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129a69190614c26565b90505f6129b38284614e00565b90508085146129d557604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d85604051612a1091815260200190565b60405180910390a25050505050505050505050565b5f805b82811015612a4e57838101548015612a4557600192505050610baf565b50600101612a28565b505f9392505050565b5f6001600160a01b038416612a7f5760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b038316612aa65760405163e219bd3960e01b815260040160405180910390fd5b5f339050612ad48186868660405180602001604052805f81525060405180602001604052805f81525061385c565b846001600160a01b0316866001600160a01b031614612baf576001600160a01b038086165f908152601160209081526040808320938a1683529290522054831115612b775760405162461bcd60e51b815260206004820152602d60248201527f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636560448201526c65647320616c6c6f77616e636560981b606482015260840161149d565b6001600160a01b038086165f908152601160209081526040808320938a1683529290522054612baf9086908890611419908790614e00565b50600195945050505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c19573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c3d9190614e6a565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612cd1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cf59190614e6a565b91505090565b5f6001600160ff1b03821115612d275760405163123baf0360e11b81526004810183905260240161149d565b5090565b600e546001600160a01b0316612d5457604051637bce7b2b60e11b815260040160405180910390fd5b5f5f612d5f85612eed565b600e546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612dad573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dd19190614c26565b600e54909150612dec906001600160a01b03168930866138fa565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612e32573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e569190614c26565b90505f612e638383614e00565b9050808514612e8557604051631c7c26d360e31b815260040160405180910390fd5b8651612e9b908c908b9087901515808c8c613611565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df85604051612a1091815260200190565b5f5b818110156110b8575f83820155600101612ed8565b600e545f90819081906012600160a01b90910460ff161015612f4b57600e54612f2190600160a01b900460ff166012614e85565b612f2c90600a614f81565b9050612f388185614f8f565b9250612f448184614fae565b9150612fa2565b600e546012600160a01b90910460ff161115612f9b57600e54612f7a90601290600160a01b900460ff16614e85565b612f8590600a614f81565b9050612f918185614fae565b9250839150612fa2565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f612fdd858783615009565b506010612feb838583615009565b50613001815f51602061515a5f395f51905f5255565b61300a30613933565b6040515f8082529081905f51602061517a5f395f51905f529060200160405180910390a36040516001600160a01b038216905f907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b5f6130957f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b0316036130eb5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c65000000604482015260640161149d565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613127573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061314b9190614c26565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146131c55760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b606482015260840161149d565b6001600160a01b038116300361321d5760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f7000000000000000604482015260640161149d565b613245817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611cec565b6060816001600160401b038111156132bd576132bd614321565b6040519080825280602002602001820160405280156132e6578160200160208202803683370190505b5090505f5b82811015613321575f8185015490508083838151811061330d5761330d614e2b565b6020908102919091010152506001016132eb565b5092915050565b5f816001600160a01b0316836001600160a01b0316148061339457506001600160a01b0383165f90815260018501602052604090205460ff16801561339457506001600160a01b038083165f90815260038601602090815260408083209387168352929052205460ff16155b806110ca57506001600160a01b038083165f90815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166133f45760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b03851661341b5760405163e219bd3960e01b815260040160405180910390fd5b613429878787878787613a57565b61343787878787878761385c565b61151b87878787878787613b69565b806001600160a01b0316826001600160a01b0316036134bd5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b606482015260840161149d565b6001600160a01b0381165f90815260018401602052604090205460ff1615613511576001600160a01b039182165f90815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b038083165f9081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03851661356e57604051632e8aac6160e21b815260040160405180910390fd5b82156135825761358286865f878686613a57565b61358c8585613cb1565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a40988685856040516135d3939291906150c2565b60405180910390a36040518481525f906001600160a01b038716905f51602061517a5f395f51905f52906020015b60405180910390a3505050505050565b6001600160a01b03861661363857604051630d24315760e01b815260040160405180910390fd5b6136428686613dbc565b831561365757613657875f8888868689613b69565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d87858560405161369e939291906150c2565b60405180910390a36040518581526001600160a01b038716905f905f51602061517a5f395f51905f529060200160405180910390a350505050505050565b5f5f5f5f6136ec88888888613e14565b9250925092506136fc8282613edc565b50909695505050505050565b336001600160a01b038216036137735760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b606482015260840161149d565b6001600160a01b0381165f90815260018401602052604090205460ff16156137cb576001600160a01b038083165f9081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b039182165f90815260029390930160209081526040808520929093168452529020805460ff19169055565b6040516001600160a01b038381166024830152604482018390526110b891859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613f94565b61386f858561386a86612cfb565b614000565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516138c0939291906150c2565b60405180910390a4836001600160a01b0316856001600160a01b03165f51602061517a5f395f51905f528560405161360191815260200190565b6040516001600160a01b0384811660248301528381166044830152606482018390526117839186918216906323b872dd9060840161382a565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d906064015f604051808303815f87803b1580156139b1575f5ffd5b505af11580156139c3573d5f5f3e3d5ffd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b158015613a45575f5ffd5b505af1158015610d18573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613ad5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613af99190614e6a565b90506001600160a01b0381161561151b57604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613b40908a908a908a908a908a908a906004016150ec565b5f604051808303815f87803b158015613b57575f5ffd5b505af11580156123b7573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613be7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c0b9190614e6a565b90506001600160a01b03811615613c82576040516223de2960e01b81526001600160a01b038216906223de2990613c50908b908b908b908b908b908b906004016150ec565b5f604051808303815f87803b158015613c67575f5ffd5b505af1158015613c79573d5f5f3e3d5ffd5b5050505061187f565b811561187f576001600160a01b0386163b1561187f5760405163fe737d0560e01b815260040160405180910390fd5b5f613d36837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d12573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a99190614c26565b50509050613d4382612cfb565b811215613d635760405163043b37d160e21b815260040160405180910390fd5b613d6c82612cfb565b6001600160a01b0384165f90815260026020526040902054613d8e9190614bca565b6001600160a01b0384165f90815260026020526040902055600354613db4908390614e00565b600355505050565b613dc581612cfb565b6001600160a01b0383165f90815260026020526040902054613de79190614ba3565b6001600160a01b0383165f90815260026020526040902055600354613e0d908290614d55565b6003555050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613e4d57505f91506003905082613ed2565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613e9e573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613ec957505f925060019150829050613ed2565b92505f91508190505b9450945094915050565b5f826003811115613eef57613eef615145565b03613ef8575050565b6001826003811115613f0c57613f0c615145565b03613f2a5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115613f3e57613f3e615145565b03613f5f5760405163fce698f760e01b81526004810182905260240161149d565b6003826003811115613f7357613f73615145565b03611145576040516335e2f38360e21b81526004810182905260240161149d565b5f5f60205f8451602086015f885af180613fb3576040513d5f823e3d81fd5b50505f513d91508115613fca578060011415613fd7565b6001600160a01b0384163b155b1561178357604051635274afe760e01b81526001600160a01b038516600482015260240161149d565b5f614061847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d12573d5f5f3e3d5ffd5b505090508181121561408657604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b0384165f908152600260205260409020546140a9908390614bca565b6001600160a01b038086165f9081526002602052604080822093909355908516815220546140d8908390614ba3565b6001600160a01b039093165f90815260026020526040902092909255505050565b602080825282518282018190525f918401906040840190835b818110156141395783516001600160a01b0316835260209384019390920191600101614112565b509095945050505050565b5f81518084525f5b818110156141685760208185018101518683018201520161414c565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61191f6020830184614144565b6001600160a01b0381168114610bdf575f5ffd5b5f5f83601f8401126141bd575f5ffd5b5081356001600160401b038111156141d3575f5ffd5b6020830191508360208260051b85010111156141ed575f5ffd5b9250929050565b5f5f5f5f60608587031215614207575f5ffd5b843561421281614199565b93506020850135925060408501356001600160401b03811115614233575f5ffd5b61423f878288016141ad565b95989497509550505050565b5f5f6040838503121561425c575f5ffd5b823561426781614199565b946020939093013593505050565b5f60208284031215614285575f5ffd5b5035919050565b5f5f5f6040848603121561429e575f5ffd5b8335925060208401356001600160401b038111156142ba575f5ffd5b6142c6868287016141ad565b9497909650939450505050565b5f5f5f5f608085870312156142e6575f5ffd5b84356142f181614199565b9350602085013561430181614199565b9250604085013561431181614199565b9396929550929360600135925050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561435d5761435d614321565b604052919050565b5f82601f830112614374575f5ffd5b81356001600160401b0381111561438d5761438d614321565b6143a0601f8201601f1916602001614335565b8181528460208386010111156143b4575f5ffd5b816020850160208301375f918101602001919091529392505050565b8015158114610bdf575f5ffd5b5f5f5f5f5f5f5f60e0888a0312156143f3575f5ffd5b8735965060208801356001600160401b0381111561440f575f5ffd5b61441b8a828b01614365565b965050604088013561442c81614199565b9450606088013561443c816143d0565b9350608088013561444c81614199565b9699959850939692959460a0840135945060c09093013592915050565b5f5f5f6060848603121561447b575f5ffd5b833561448681614199565b9250602084013561449681614199565b929592945050506040919091013590565b5f5f604083850312156144b8575f5ffd5b50508035926020909101359150565b5f602082840312156144d7575f5ffd5b813561191f81614199565b803560ff811681146144f2575f5ffd5b919050565b5f5f83601f840112614507575f5ffd5b5081356001600160401b0381111561451d575f5ffd5b6020830191508360208285010111156141ed575f5ffd5b5f5f5f5f5f5f60808789031215614549575f5ffd5b863561455481614199565b9550614562602088016144e2565b945060408701356001600160401b0381111561457c575f5ffd5b61458889828a016144f7565b90955093505060608701356001600160401b038111156145a6575f5ffd5b6145b289828a016144f7565b979a9699509497509295939492505050565b5f5f5f5f608085870312156145d7575f5ffd5b84356145e281614199565b935060208501356145f281614199565b93969395505050506040820135916060013590565b602080825282518282018190525f918401906040840190835b81811015614139578351835260209384019390920191600101614620565b5f5f5f5f60608587031215614651575f5ffd5b843561465c81614199565b93506020850135925060408501356001600160401b0381111561467d575f5ffd5b61423f878288016144f7565b5f5f5f5f5f5f5f60a0888a03121561469f575f5ffd5b87356146aa81614199565b965060208801356146ba81614199565b95506040880135945060608801356001600160401b038111156146db575f5ffd5b6146e78a828b016144f7565b90955093505060808801356001600160401b03811115614705575f5ffd5b6147118a828b016144f7565b989b979a50959850939692959293505050565b5f5f5f60608486031215614736575f5ffd5b833561474181614199565b95602085013595506040909401359392505050565b60ff60f81b8816815260e060208201525f61477460e0830189614144565b82810360408401526147868189614144565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b818110156147db5783518352602093840193909201916001016147bd565b50909b9a5050505050505050505050565b5f5f5f606084860312156147fe575f5ffd5b833561480981614199565b92506020840135915060408401356001600160401b0381111561482a575f5ffd5b61483686828701614365565b9150509250925092565b5f5f5f5f60808587031215614853575f5ffd5b843561485e81614199565b9350602085013561486e81614199565b92506040850135915060608501356001600160401b0381111561488f575f5ffd5b61489b87828801614365565b91505092959194509250565b5f5f5f5f5f5f5f60e0888a0312156148bd575f5ffd5b87356148c881614199565b965060208801356148d881614199565b9550604088013594506060880135935061444c608089016144e2565b5f5f60408385031215614905575f5ffd5b823561491081614199565b9150602083013561492081614199565b809150509250929050565b5f5f5f5f5f5f5f60a0888a031215614941575f5ffd5b873561494c81614199565b965061495a602089016144e2565b955060408801356001600160401b03811115614974575f5ffd5b6149808a828b016144f7565b90965094505060608801356001600160401b0381111561499e575f5ffd5b6149aa8a828b016144f7565b90945092505060808801356149be81614199565b8091505092959891949750929550565b5f5f5f5f5f5f608087890312156149e3575f5ffd5b86356149ee81614199565b95506020870135945060408701356001600160401b0381111561457c575f5ffd5b5f5f5f60408486031215614a21575f5ffd5b8335925060208401356001600160401b03811115614a3d575f5ffd5b6142c6868287016144f7565b600181811c90821680614a5d57607f821691505b602082108103614a7b57634e487b7160e01b5f52602260045260245ffd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b83815260406020820181905281018290525f6001600160fb1b03831115614b2c575f5ffd5b8260051b8085606085013791909101606001949350505050565b5f60208284031215614b56575f5ffd5b815161191f816143d0565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201614b8957614b89614b61565b505f0390565b634e487b7160e01b5f52600160045260245ffd5b8082018281125f831280158216821582161715614bc257614bc2614b61565b505092915050565b8181035f83128015838313168383128216171561332157613321614b61565b85815260018060a01b038516602082015283604082015282606082015260a060808201525f614c1b60a0830184614144565b979650505050505050565b5f60208284031215614c36575f5ffd5b5051919050565b5f5f8354614c4a81614a49565b600182168015614c615760018114614c7657614ca3565b60ff1983168652811515820286019350614ca3565b865f5260205f205f5b83811015614c9b57815488820152600190910190602001614c7f565b505081860193505b509195945050505050565b5f60208284031215614cbe575f5ffd5b81516001600160401b03811115614cd3575f5ffd5b8201601f81018413614ce3575f5ffd5b80516001600160401b03811115614cfc57614cfc614321565b8060051b614d0c60208201614335565b91825260208184018101929081019087841115614d27575f5ffd5b6020850194505b83851015614c1b5784519250614d4383614199565b82825260209485019490910190614d2e565b80820180821115610baf57610baf614b61565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602a908201527f5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652060408201526962656c6f77207a65726f60b01b606082015260800190565b81810381811115610baf57610baf614b61565b5f60018201614e2457614e24614b61565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f5f5f60608486031215614e51575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215614e7a575f5ffd5b815161191f81614199565b60ff8281168282160390811115610baf57610baf614b61565b6001815b6001841115614ed957808504811115614ebd57614ebd614b61565b6001841615614ecb57908102905b60019390931c928002614ea2565b935093915050565b5f82614eef57506001610baf565b81614efb57505f610baf565b8160018114614f115760028114614f1b57614f37565b6001915050610baf565b60ff841115614f2c57614f2c614b61565b50506001821b610baf565b5060208310610133831016604e8410600b8410161715614f5a575081810a610baf565b614f665f198484614e9e565b805f1904821115614f7957614f79614b61565b029392505050565b5f61191f60ff841683614ee1565b5f82614fa957634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610baf57610baf614b61565b601f8211156110b857805f5260205f20601f840160051c81016020851015614fea5750805b601f840160051c820191505b81811015610d18575f8155600101614ff6565b6001600160401b0383111561502057615020614321565b6150348361502e8354614a49565b83614fc5565b5f601f841160018114615065575f851561504e5750838201355b5f19600387901b1c1916600186901b178355610d18565b5f83815260208120601f198716915b828110156150945786850135825560209485019460019092019101615074565b50868210156150b0575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201525f6150da6060830185614144565b82810360408401526117008185614144565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190525f9061512690830185614144565b82810360a08401526151388185614144565b9998505050505050505050565b634e487b7160e01b5f52602160045260245ffdfeb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220d112e5ae02f21653ce5bb6586d82dac3a41b0839f520588f6649a2745fa9e3c764736f6c634300081e0033";
2300
+ const _bytecode = "0x60e060405234801561000f575f5ffd5b5060405161548c38038061548c83398101604081905261002e9161008f565b6001600160a01b03808316608052811660c0819052604051839183917feb87fb34067547f3dc0b85096c3da73c99d4fbb08ff41212b8d7c0b5008b42e6905f90a2505050506100c7565b6001600160a01b038116811461008c575f5ffd5b50565b5f5f604083850312156100a0575f5ffd5b82516100ab81610078565b60208401519092506100bc81610078565b809150509250929050565b60805160a05160c05161530161018b5f395f6108a101525f610a1001525f818161050f01528181610ce301528181610d5201528181611065015281816110f20152818161121c015281816113960152818161159c015281816115f201528181611665015281816117a90152818161194b01528181611b3b01528181611ef501528181612021015281816120e8015281816121ad015281816122140152818161229a01528181612c2301528181612cb801528181613dea015261413901526153015ff3fe608060405234801561000f575f5ffd5b506004361061042d575f3560e01c806370a082311161022c578063b84cdd4a11610135578063d9d078d6116100bf578063f5a8b4dd11610084578063f5a8b4dd14610a0b578063f99a38c414610477578063fad8b32a14610a32578063fc673c4f14610a45578063fe9d930314610a58575f5ffd5b8063d9d078d61461096e578063dd62ed3e14610981578063eb3537cc146109b9578063ec0d6343146109e7578063ee719bc8146109fa575f5ffd5b8063ca0c1e7f11610105578063ca0c1e7f1461090f578063ca78946414610922578063cf97256d14610935578063d505accf14610948578063d95b63711461095b575f5ffd5b8063b84cdd4a146108c3578063bb0d196e146108d6578063c68d4283146108e9578063c780fd82146108fc575f5ffd5b80639903ad38116101b6578063a3a7e7f311610186578063a3a7e7f314610850578063a457c2d714610863578063a854d22f14610876578063a9059cbb14610889578063b20db1ac1461089c575f5ffd5b80639903ad381461080f5780639bd9bbc6146108175780639d8767411461082a578063a1b2bf8b1461083d575f5ffd5b806384b0196e116101fc57806384b0196e146107b45780638f283970146107cf57806392081a47146107e2578063959b8c3f146107f457806395d89b4114610807575f5ffd5b806370a082311461075357806379359f6f146107665780637ecebe001461077957806383ba2525146107a1575f5ffd5b8063386fa2211161033957806350d75d25116102c357806362ad1b831161028857806362ad1b831461070b57806366a12fb61461071e5780636c2d9f2f146107315780636e9960c3146107445780636fed61fc1461074c575f5ffd5b806350d75d25146106b057806352d1902d146106b8578063556f0dc7146106de5780635b9d09cc146106e557806362aa5287146106f8575f5ffd5b806345977d031161030957806345977d0314610644578063469519541461065757806347ba7ad11461066a5780634b2763b31461067d5780634b61cc3314610690575f5ffd5b8063386fa221146105f8578063395093511461060b57806341b706be1461061e57806342fe098014610631575f5ffd5b80631ae88ffc116103ba578063270483971161038a578063270483971461056d578063282a050b146105805780632ec8eec7146105a8578063313ce567146105db5780633644e515146105f0575f5ffd5b80631ae88ffc146104fa57806320bc44251461050d57806323b872dd14610547578063245887fc1461055a575f5ffd5b806311bcc81e1161040057806311bcc81e1461049c57806312a6a3f8146104af57806316d055d6146104c257806318160ddd146104d55780631863e809146104e7575f5ffd5b806306e485381461043157806306fdde031461044f578063090c415e14610464578063095ea7b314610479575b5f5ffd5b610439610a6b565b604051610446919061422b565b60405180910390f35b610457610a7c565b60405161044691906142b9565b610477610472366004614326565b610b0c565b005b61048c61048736600461437d565b610bbd565b6040519015158152602001610446565b6104776104aa3660046143a7565b610bd3565b6104776104bd3660046143be565b610c00565b6104776104d0366004614405565b610ce1565b6003545b604051908152602001610446565b6104776104f536600461450f565b610d3d565b61047761050836600461459b565b611063565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610446565b61048c61055536600461459b565b6110db565b61047761056836600461437d565b6110f0565b61047761057b3660046145d9565b611167565b61059361058e3660046143a7565b611202565b60408051928352602083019190915201610446565b6105bb6105b63660046145f9565b611216565b604080519485526020850193909352918301526060820152608001610446565b60125b60405160ff9091168152602001610446565b6104d96112b5565b6104396106063660046145f9565b611363565b61048c61061936600461437d565b611401565b61047761062c366004614405565b61143c565b61047761063f366004614666565b611468565b6104776106523660046143a7565b611542565b6104776106653660046145f9565b61156c565b61047761067836600461459b565b6115f0565b61047761068b36600461459b565b611663565b6106a361069e3660046146f6565b6116e4565b6040516104469190614739565b61052f611728565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb00196104d9565b60016104d9565b6104776106f3366004614770565b611751565b61047761070636600461459b565b6117a7565b6104776107193660046147bb565b6117fb565b61047761072c36600461459b565b6118a7565b6106a361073f366004614856565b6118c7565b61052f611908565b601f6104d9565b6104d96107613660046145f9565b61191e565b61048c6107743660046145f9565b611944565b6104d96107873660046145f9565b6001600160a01b03165f9081526016602052604090205490565b6104776107af36600461437d565b6119c9565b6107bc6119f3565b6040516104469796959493929190614888565b6104776107dd3660046145f9565b611b0b565b600e54600160a01b900460ff166105de565b6104776108023660046145f9565b611bf9565b610457611c4a565b610477611c59565b610477610825366004614770565b611d15565b61047761083836600461491e565b611d68565b61047761084b3660046143be565b611dad565b61047761085e3660046145f9565b611e55565b61048c61087136600461437d565b611e69565b610477610884366004614972565b611ee0565b61048c61089736600461437d565b611fc1565b61052f7f000000000000000000000000000000000000000000000000000000000000000081565b61048c6108d136600461437d565b611fce565b61048c6108e43660046145f9565b61201a565b6104776108f736600461491e565b61209f565b61047761090a36600461459b565b6120e6565b61047761091d3660046149a9565b6121ab565b61047761093036600461437d565b612212565b61047761094336600461437d565b612285565b610477610956366004614a10565b61236a565b61048c610969366004614972565b6124c3565b61048c61097c36600461437d565b6124d0565b6104d961098f366004614972565b6001600160a01b039182165f90815260116020908152604080832093909416825291909152205490565b6109cc6109c736600461437d565b6124e8565b60408051938452602084019290925290820152606001610446565b6104776109f5366004614a5d565b612615565b600e546001600160a01b031661052f565b61052f7f000000000000000000000000000000000000000000000000000000000000000081565b610477610a403660046145f9565b6126e6565b610477610a53366004614b00565b612737565b610477610a66366004614b41565b6127d6565b6060610a776012612826565b905090565b6060600f8054610a8b90614b7b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab790614b7b565b8015610b025780601f10610ad957610100808354040283529160200191610b02565b820191905f5260205f20905b815481529060010190602001808311610ae557829003601f168201915b5050505050905090565b5f338585604051602001610b2293929190614bb3565b604051602081830303815290604052805190602001209050610b76818484808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061288992505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d59859060200160405180910390a35050505050565b5f610bc93384846128bf565b5060015b92915050565b610bfd3333338460405180602001604052805f81525060405180602001604052805f8152506128cc565b50565b60405133905f90610c179083908790602001614bfc565b60408051601f1981840301815291905280516020909101209050610c3b8184612a83565b15610c595760405163782a90fb60e11b815260040160405180910390fd5b610c95818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061288992505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051610cd293929190614c39565b60405180910390a25050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610d2a5760405163c51efddd60e01b815260040160405180910390fd5b610d3684848484612ab5565b5050505050565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015610d9f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc39190614c78565b610de05760405163327fd99160e21b815260040160405180910390fd5b5f610de9612c1f565b90506001600160a01b038116610dfc5750845b5f85610e085786610e0a565b815b90505f8313610ed457610e1c83614ca7565b610e2585612d5f565b14610e3257610e32614cc1565b610e3b84612d5f565b6001600160a01b0382165f9081526002602052604081208054909190610e62908490614cd5565b90915550506001600160a01b0385165f9081526002602052604081208054859290610e8e908490614cd5565b92505081905550806001600160a01b0316856001600160a01b03165f5160206152ac5f395f51905f5286604051610ec791815260200190565b60405180910390a3610ffb565b8515610ee257610ee2614cc1565b82610eec85612d5f565b610ef69190614cd5565b6001600160a01b0383165f9081526002602052604081208054909190610f1d908490614cfc565b90915550610f2c905084612d5f565b6001600160a01b0388165f9081526002602052604081208054909190610f53908490614cd5565b90915550506001600160a01b0385165f9081526002602052604081208054859290610f7f908490614cd5565b92505081905550866001600160a01b0316826001600160a01b03165f5160206152ac5f395f51905f5286604051610fb891815260200190565b60405180910390a3846001600160a01b0316826001600160a01b03165f5160206152ac5f395f51905f5285604051610ff291815260200190565b60405180910390a35b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f604051611050959493929190614d1b565b60405180910390a4505050505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146110ac5760405163c51efddd60e01b815260040160405180910390fd5b6110d63384848460405180602001604052805f81525060405180602001604052805f815250612d8f565b505050565b5f6110e833858585612ab5565b949350505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146111395760405163c51efddd60e01b815260040160405180910390fd5b6111633383848460405180602001604052805f81525060405180602001604052805f8152506128cc565b5050565b60405133905f9061117e9083908690602001614bfc565b6040516020818303038152906040528051906020012090506111a08184612a83565b6111bd5760405163dae1880960e01b815260040160405180910390fd5b6111c78184612f3a565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b5f5f61120d83612f51565b91509150915091565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611276573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129a9190614d58565b90506112a685826124e8565b91979096509094509092509050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600f6040516112e69190614d6f565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038181165f908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d906024015f60405180830381865afa1580156113da573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610bcd9190810190614de0565b335f8181526011602090815260408083206001600160a01b03871684529091528120549091610bc9918590611437908690614e87565b6128bf565b33301461145c57604051630fff4cc960e31b815260040160405180910390fd5b610d3683858484612ab5565b5f54610100900460ff161580801561148657505f54600160ff909116105b8061149f5750303b15801561149f57505f5460ff166001145b6114c45760405162461bcd60e51b81526004016114bb90614e9a565b60405180910390fd5b5f805460ff1916600117905580156114e5575f805461ff0019166101001790555b6114f48787878787875f61300c565b8015611539575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b610bfd3333338460405180602001604052805f81525060405180602001604052805f815250612d8f565b5f6115825f51602061528c5f395f51905f525490565b90505f6001600160a01b0382161561159a57816115bc565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b038216146115e757604051630484acab60e01b815260040160405180910390fd5b6110d6836130d0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116395760405163c51efddd60e01b815260040160405180910390fd5b6110d63384848460405180602001604052805f81525060405180602001604052805f8152506128cc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146116ac5760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220546110d69084908490611437908590614e87565b60605f8585856040516020016116fc93929190614bb3565b60405160208183030381529060405280519060200120905061171e8184613307565b9695505050505050565b5f610a777f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6117a13333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250612d8f915050565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146117f05760405163c51efddd60e01b815260040160405180910390fd5b6110d68383836128bf565b336118086012828a61338c565b6118255760405163f7f0222760e01b815260040160405180910390fd5b61189d8189898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f9201919091525060019250613431915050565b5050505050505050565b3330146117f057604051630fff4cc960e31b815260040160405180910390fd5b60605f84846040516020016118dd929190614bfc565b6040516020818303038152906040528051906020012090506118ff8184613307565b95945050505050565b5f610a775f51602061528c5f395f51905f525490565b5f5f61192983611216565b50505090505f811261193b578061193d565b5f5b9392505050565b5f610bcd827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119a5573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097c9190614d58565b6111633333848460405180602001604052805f81525060405180602001604052805f8152506128cc565b5f6060805f5f5f6060600f604051806040016040528060018152602001603160f81b81525046305f5f1b5f6001600160401b03811115611a3557611a35614453565b604051908082528060200260200182016040528015611a5e578160200160208202803683370190505b50600f60f81b959493929190858054611a7690614b7b565b80601f0160208091040260200160405190810160405280929190818152602001828054611aa290614b7b565b8015611aed5780601f10611ac457610100808354040283529160200191611aed565b820191905f5260205f20905b815481529060010190602001808311611ad057829003601f168201915b50505050509550965096509650965096509650965090919293949596565b5f611b215f51602061528c5f395f51905f525490565b90505f6001600160a01b03821615611b395781611b5b565b7f00000000000000000000000000000000000000000000000000000000000000005b9050336001600160a01b03821614611b8657604051630484acab60e01b815260040160405180910390fd5b5f611b9c5f51602061528c5f395f51905f525490565b9050611bb3845f51602061528c5f395f51905f5255565b836001600160a01b0316816001600160a01b03167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a350505050565b33611c06601282846134aa565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610a8b90614b7b565b5f54610100900460ff1615808015611c7757505f54600160ff909116105b80611c905750303b158015611c9057505f5460ff166001145b611cac5760405162461bcd60e51b81526004016114bb90614e9a565b5f805460ff191660011790558015611ccd575f805461ff0019166101001790555b8015610bfd575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6117a13333868686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060408051602081019091529081529250600191506134319050565b333014611d8857604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f8152602081019091526110d6913391869186919015159086906135ab565b60405133905f90611dc49083908790602001614bfc565b604051602081830303815290604052805190602001209050611e18818585808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061288992505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051610cd293929190614c39565b611163333383611e643361191e565b612ab5565b335f9081526011602090815260408083206001600160a01b0386168452909152812054821115611eab5760405162461bcd60e51b81526004016114bb90614ee8565b335f8181526011602090815260408083206001600160a01b0388168452909152902054610bc991908590611437908690614f32565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa158015611f42573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f669190614c78565b611f835760405163327fd99160e21b815260040160405180910390fd5b806001600160a01b0316826001600160a01b03165f5160206152ac5f395f51905f525f604051611fb591815260200190565b60405180910390a35050565b5f61193d33338585612ab5565b5f5f5f5f611fdc86866124e8565b9250925092505f612002828411611ff3575f612d5f565b611ffd8385614f32565b612d5f565b61200c9085614cd5565b5f1315979650505050505050565b5f610bcd827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561207b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d19190614d58565b3330146120bf57604051630fff4cc960e31b815260040160405180910390fd5b8051604080515f8152602081019091526110d6913391869186919015159081908790613675565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461212f5760405163c51efddd60e01b815260040160405180910390fd5b6001600160a01b038084165f908152601160209081526040808320938616835292905220548111156121735760405162461bcd60e51b81526004016114bb90614ee8565b6001600160a01b038084165f908152601160209081526040808320938616835292905220546110d69084908490611437908590614f32565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146121f45760405163c51efddd60e01b815260040160405180910390fd5b6117a1338585858560405180602001604052805f8152506001613431565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331461225b5760405163c51efddd60e01b815260040160405180910390fd5b6111633383848460405180602001604052805f81525060405180602001604052805f815250612d8f565b604051632329212160e21b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690638ca4848490602401602060405180830381865afa1580156122e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230b9190614c78565b6123285760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b0382165f9081526002602052604090205461234b908290614cd5565b6001600160a01b039092165f9081526002602052604090209190915550565b8342111561238e57604051636e72b90f60e01b8152600481018590526024016114bb565b6001600160a01b0387165f90815260166020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a9190866123da83614f45565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f6124376112b5565b60405161190160f01b81526002810182905260228101849052604290209091505f61246482888888613740565b90508a6001600160a01b0316816001600160a01b0316146124ab5760405163b642210560e01b81526001600160a01b0380831660048301528c1660248201526044016114bb565b6124b68b8b8b6128bf565b5050505050505050505050565b5f61193d6012848461338c565b5f5f6124dc84846124e8565b50505f13949350505050565b6001600160a01b0382165f9081526002602052604081205490808061250c86611363565b90505f5b815181101561260c575f5f5f84848151811061252e5761252e614f5d565b60209081029190910101516040516326cb922f60e21b81523060048201526001600160a01b038c81166024830152604482018c905290911690639b2e48bc90606401606060405180830381865afa15801561258b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125af9190614f71565b919450925090506125c08288614e87565b96506125cc8187614e87565b95506125e88183116125de575f612d5f565b611ffd8284614f32565b6125f2848a614cd5565b6125fc9190614cfc565b9750505050806001019050612510565b50509250925092565b5f54610100900460ff161580801561263357505f54600160ff909116105b8061264c5750303b15801561264c57505f5460ff166001145b6126685760405162461bcd60e51b81526004016114bb90614e9a565b5f805460ff191660011790558015612689575f805461ff0019166101001790555b6126988888888888888861300c565b801561189d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b336126f36012828461376c565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b336127446012828961338c565b6127615760405163f7f0222760e01b815260040160405180910390fd5b6115398188898989898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f920191909152506128cc92505050565b6110d63333338686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920182905250604080516020810190915290815292506128cc915050565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561287d57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831161285f575b50505050509050919050565b5f5b81518110156110d6575f8282815181106128a7576128a7614f5d565b6020908102919091010151848301555060010161288b565b6110d68383836001613861565b600e546001600160a01b03166128f557604051637bce7b2b60e11b815260040160405180910390fd5b5f5f61290085612f51565b9150915061291688888387515f141588886135ab565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa15801561295c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129809190614d58565b600e5490915061299a906001600160a01b0316888561392f565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa1580156129e0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a049190614d58565b90505f612a118284614f32565b9050808514612a3357604051631c7c26d360e31b815260040160405180910390fd5b896001600160a01b03167f3bc27981aebbb57f9247dc00fde9d6cd91e4b230083fec3238fedbcba1f9ab3d85604051612a6e91815260200190565b60405180910390a25050505050505050505050565b5f805b82811015612aac57838101548015612aa357600192505050610bcd565b50600101612a86565b505f9392505050565b5f6001600160a01b038416612add5760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b038316612b045760405163e219bd3960e01b815260040160405180910390fd5b5f339050612b328186868660405180602001604052805f81525060405180602001604052805f81525061398e565b846001600160a01b0316866001600160a01b031614612c13576001600160a01b038086165f908152601160209081526040808320938a1683529290522054831115612bd55760405162461bcd60e51b815260206004820152602d60248201527f5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636560448201526c65647320616c6c6f77616e636560981b60648201526084016114bb565b6001600160a01b038086165f908152601160209081526040808320938a1683529290522054612c139086908890612c0d908790614f32565b5f613861565b50600195945050505050565b5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c7d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ca19190614f9c565b604051638369a0f160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09604483015291925090821690638369a0f190606401602060405180830381865afa158015612d35573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d599190614f9c565b91505090565b5f6001600160ff1b03821115612d8b5760405163123baf0360e11b8152600481018390526024016114bb565b5090565b600e546001600160a01b0316612db857604051637bce7b2b60e11b815260040160405180910390fd5b5f5f612dc385612f51565b600e546040516370a0823160e01b81523060048201529294509092505f916001600160a01b03909116906370a0823190602401602060405180830381865afa158015612e11573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e359190614d58565b600e54909150612e50906001600160a01b0316893086613a2c565b600e546040516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015612e96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eba9190614d58565b90505f612ec78383614f32565b9050808514612ee957604051631c7c26d360e31b815260040160405180910390fd5b8651612eff908c908b9087901515808c8c613675565b886001600160a01b03167f25ca84076773b0455db53621c459ddc84fe40840e4932a62706a032566f399df85604051612a6e91815260200190565b5f5b818110156110d6575f83820155600101612f3c565b600e545f90819081906012600160a01b90910460ff161015612faf57600e54612f8590600160a01b900460ff166012614fb7565b612f9090600a6150b3565b9050612f9c81856150c1565b9250612fa881846150e0565b9150613006565b600e546012600160a01b90910460ff161115612fff57600e54612fde90601290600160a01b900460ff16614fb7565b612fe990600a6150b3565b9050612ff581856150e0565b9250839150613006565b8391508192505b50915091565b600e805460ff8816600160a01b026001600160a81b03199091166001600160a01b038a1617179055600f61304185878361513b565b50601061304f83858361513b565b50613065815f51602061528c5f395f51905f5255565b61306e30613a65565b6040515f8082529081905f5160206152ac5f395f51905f529060200160405180910390a36040516001600160a01b038216905f907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a350505050505050565b5f6130f97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b03160361314f5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c6500000060448201526064016114bb565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561318b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131af9190614d58565b7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019146132295760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b60648201526084016114bb565b6001600160a01b03811630036132815760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f700000000000000060448201526064016114bb565b6132a9817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f6bfbb132610e56cb96575dba244667b9d6dbfeffe22b68a79fa16f2d18eb0019604080519182526001600160a01b038416602083015201611d0a565b6060816001600160401b0381111561332157613321614453565b60405190808252806020026020018201604052801561334a578160200160208202803683370190505b5090505f5b82811015613385575f8185015490508083838151811061337157613371614f5d565b60209081029190910101525060010161334f565b5092915050565b5f816001600160a01b0316836001600160a01b031614806133f857506001600160a01b0383165f90815260018501602052604090205460ff1680156133f857506001600160a01b038083165f90815260038601602090815260408083209387168352929052205460ff16155b806110e857506001600160a01b038083165f90815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166134585760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b03851661347f5760405163e219bd3960e01b815260040160405180910390fd5b61348d878787878787613b89565b61349b87878787878761398e565b61153987878787878787613c9b565b806001600160a01b0316826001600160a01b0316036135215760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b60648201526084016114bb565b6001600160a01b0381165f90815260018401602052604090205460ff1615613575576001600160a01b039182165f90815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b038083165f9081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b0385166135d257604051632e8aac6160e21b815260040160405180910390fd5b82156135e6576135e686865f878686613b89565b6135f08585613de3565b846001600160a01b0316866001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098868585604051613637939291906151f4565b60405180910390a36040518481525f906001600160a01b038716905f5160206152ac5f395f51905f52906020015b60405180910390a3505050505050565b6001600160a01b03861661369c57604051630d24315760e01b815260040160405180910390fd5b6136a68686613eee565b83156136bb576136bb875f8888868689613c9b565b856001600160a01b0316876001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d878585604051613702939291906151f4565b60405180910390a36040518581526001600160a01b038716905f905f5160206152ac5f395f51905f529060200160405180910390a350505050505050565b5f5f5f5f61375088888888613f46565b925092509250613760828261400e565b50909695505050505050565b336001600160a01b038216036137d75760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b60648201526084016114bb565b6001600160a01b0381165f90815260018401602052604090205460ff161561382f576001600160a01b038083165f9081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b039182165f90815260029390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b03841661388857604051638163862760e01b815260040160405180910390fd5b6001600160a01b0383166138af576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b038085165f90815260116020908152604080832093871683529290522082905580156117a157826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161392191815260200190565b60405180910390a350505050565b6040516001600160a01b038381166024830152604482018390526110d691859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506140c6565b6139a1858561399c86612d5f565b614132565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc826146779878686866040516139f2939291906151f4565b60405180910390a4836001600160a01b0316856001600160a01b03165f5160206152ac5f395f51905f528560405161366591815260200190565b6040516001600160a01b0384811660248301528381166044830152606482018390526117a19186918216906323b872dd9060840161395c565b6040516329965a1d60e01b81526001600160a01b03821660048201527fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce21770546024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d906064015f604051808303815f87803b158015613ae3575f5ffd5b505af1158015613af5573d5f5f3e3d5ffd5b50506040516329965a1d60e01b81526001600160a01b03841660048201527faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a6024820152306044820152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506064015f604051808303815f87803b158015613b77575f5ffd5b505af1158015610d36573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89560248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613c07573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c2b9190614f9c565b90506001600160a01b0381161561153957604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613c72908a908a908a908a908a908a9060040161521e565b5f604051808303815f87803b158015613c89575f5ffd5b505af11580156124b6573d5f5f3e3d5ffd5b60405163555ddc6560e11b81526001600160a01b03861660048201527fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b60248201525f90731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90604401602060405180830381865afa158015613d19573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d3d9190614f9c565b90506001600160a01b03811615613db4576040516223de2960e01b81526001600160a01b038216906223de2990613d82908b908b908b908b908b908b9060040161521e565b5f604051808303815f87803b158015613d99575f5ffd5b505af1158015613dab573d5f5f3e3d5ffd5b5050505061189d565b811561189d576001600160a01b0386163b1561189d5760405163fe737d0560e01b815260040160405180910390fd5b5f613e68837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e44573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109c79190614d58565b50509050613e7582612d5f565b811215613e955760405163043b37d160e21b815260040160405180910390fd5b613e9e82612d5f565b6001600160a01b0384165f90815260026020526040902054613ec09190614cfc565b6001600160a01b0384165f90815260026020526040902055600354613ee6908390614f32565b600355505050565b613ef781612d5f565b6001600160a01b0383165f90815260026020526040902054613f199190614cd5565b6001600160a01b0383165f90815260026020526040902055600354613f3f908290614e87565b6003555050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613f7f57505f91506003905082614004565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613fd0573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b038116613ffb57505f925060019150829050614004565b92505f91508190505b9450945094915050565b5f82600381111561402157614021615277565b0361402a575050565b600182600381111561403e5761403e615277565b0361405c5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561407057614070615277565b036140915760405163fce698f760e01b8152600481018290526024016114bb565b60038260038111156140a5576140a5615277565b03611163576040516335e2f38360e21b8152600481018290526024016114bb565b5f5f60205f8451602086015f885af1806140e5576040513d5f823e3d81fd5b50505f513d915081156140fc578060011415614109565b6001600160a01b0384163b155b156117a157604051635274afe760e01b81526001600160a01b03851660048201526024016114bb565b5f614193847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e44573d5f5f3e3d5ffd5b50509050818112156141b857604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b0384165f908152600260205260409020546141db908390614cfc565b6001600160a01b038086165f90815260026020526040808220939093559085168152205461420a908390614cd5565b6001600160a01b039093165f90815260026020526040902092909255505050565b602080825282518282018190525f918401906040840190835b8181101561426b5783516001600160a01b0316835260209384019390920191600101614244565b509095945050505050565b5f81518084525f5b8181101561429a5760208185018101518683018201520161427e565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f61193d6020830184614276565b6001600160a01b0381168114610bfd575f5ffd5b5f5f83601f8401126142ef575f5ffd5b5081356001600160401b03811115614305575f5ffd5b6020830191508360208260051b850101111561431f575f5ffd5b9250929050565b5f5f5f5f60608587031215614339575f5ffd5b8435614344816142cb565b93506020850135925060408501356001600160401b03811115614365575f5ffd5b614371878288016142df565b95989497509550505050565b5f5f6040838503121561438e575f5ffd5b8235614399816142cb565b946020939093013593505050565b5f602082840312156143b7575f5ffd5b5035919050565b5f5f5f604084860312156143d0575f5ffd5b8335925060208401356001600160401b038111156143ec575f5ffd5b6143f8868287016142df565b9497909650939450505050565b5f5f5f5f60808587031215614418575f5ffd5b8435614423816142cb565b93506020850135614433816142cb565b92506040850135614443816142cb565b9396929550929360600135925050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561448f5761448f614453565b604052919050565b5f82601f8301126144a6575f5ffd5b81356001600160401b038111156144bf576144bf614453565b6144d2601f8201601f1916602001614467565b8181528460208386010111156144e6575f5ffd5b816020850160208301375f918101602001919091529392505050565b8015158114610bfd575f5ffd5b5f5f5f5f5f5f5f60e0888a031215614525575f5ffd5b8735965060208801356001600160401b03811115614541575f5ffd5b61454d8a828b01614497565b965050604088013561455e816142cb565b9450606088013561456e81614502565b9350608088013561457e816142cb565b9699959850939692959460a0840135945060c09093013592915050565b5f5f5f606084860312156145ad575f5ffd5b83356145b8816142cb565b925060208401356145c8816142cb565b929592945050506040919091013590565b5f5f604083850312156145ea575f5ffd5b50508035926020909101359150565b5f60208284031215614609575f5ffd5b813561193d816142cb565b803560ff81168114614624575f5ffd5b919050565b5f5f83601f840112614639575f5ffd5b5081356001600160401b0381111561464f575f5ffd5b60208301915083602082850101111561431f575f5ffd5b5f5f5f5f5f5f6080878903121561467b575f5ffd5b8635614686816142cb565b955061469460208801614614565b945060408701356001600160401b038111156146ae575f5ffd5b6146ba89828a01614629565b90955093505060608701356001600160401b038111156146d8575f5ffd5b6146e489828a01614629565b979a9699509497509295939492505050565b5f5f5f5f60808587031215614709575f5ffd5b8435614714816142cb565b93506020850135614724816142cb565b93969395505050506040820135916060013590565b602080825282518282018190525f918401906040840190835b8181101561426b578351835260209384019390920191600101614752565b5f5f5f5f60608587031215614783575f5ffd5b843561478e816142cb565b93506020850135925060408501356001600160401b038111156147af575f5ffd5b61437187828801614629565b5f5f5f5f5f5f5f60a0888a0312156147d1575f5ffd5b87356147dc816142cb565b965060208801356147ec816142cb565b95506040880135945060608801356001600160401b0381111561480d575f5ffd5b6148198a828b01614629565b90955093505060808801356001600160401b03811115614837575f5ffd5b6148438a828b01614629565b989b979a50959850939692959293505050565b5f5f5f60608486031215614868575f5ffd5b8335614873816142cb565b95602085013595506040909401359392505050565b60ff60f81b8816815260e060208201525f6148a660e0830189614276565b82810360408401526148b88189614276565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b8181101561490d5783518352602093840193909201916001016148ef565b50909b9a5050505050505050505050565b5f5f5f60608486031215614930575f5ffd5b833561493b816142cb565b92506020840135915060408401356001600160401b0381111561495c575f5ffd5b61496886828701614497565b9150509250925092565b5f5f60408385031215614983575f5ffd5b823561498e816142cb565b9150602083013561499e816142cb565b809150509250929050565b5f5f5f5f608085870312156149bc575f5ffd5b84356149c7816142cb565b935060208501356149d7816142cb565b92506040850135915060608501356001600160401b038111156149f8575f5ffd5b614a0487828801614497565b91505092959194509250565b5f5f5f5f5f5f5f60e0888a031215614a26575f5ffd5b8735614a31816142cb565b96506020880135614a41816142cb565b9550604088013594506060880135935061457e60808901614614565b5f5f5f5f5f5f5f60a0888a031215614a73575f5ffd5b8735614a7e816142cb565b9650614a8c60208901614614565b955060408801356001600160401b03811115614aa6575f5ffd5b614ab28a828b01614629565b90965094505060608801356001600160401b03811115614ad0575f5ffd5b614adc8a828b01614629565b9094509250506080880135614af0816142cb565b8091505092959891949750929550565b5f5f5f5f5f5f60808789031215614b15575f5ffd5b8635614b20816142cb565b95506020870135945060408701356001600160401b038111156146ae575f5ffd5b5f5f5f60408486031215614b53575f5ffd5b8335925060208401356001600160401b03811115614b6f575f5ffd5b6143f886828701614629565b600181811c90821680614b8f57607f821691505b602082108103614bad57634e487b7160e01b5f52602260045260245ffd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b83815260406020820181905281018290525f6001600160fb1b03831115614c5e575f5ffd5b8260051b8085606085013791909101606001949350505050565b5f60208284031215614c88575f5ffd5b815161193d81614502565b634e487b7160e01b5f52601160045260245ffd5b5f600160ff1b8201614cbb57614cbb614c93565b505f0390565b634e487b7160e01b5f52600160045260245ffd5b8082018281125f831280158216821582161715614cf457614cf4614c93565b505092915050565b8181035f83128015838313168383128216171561338557613385614c93565b85815260018060a01b038516602082015283604082015282606082015260a060808201525f614d4d60a0830184614276565b979650505050505050565b5f60208284031215614d68575f5ffd5b5051919050565b5f5f8354614d7c81614b7b565b600182168015614d935760018114614da857614dd5565b60ff1983168652811515820286019350614dd5565b865f5260205f205f5b83811015614dcd57815488820152600190910190602001614db1565b505081860193505b509195945050505050565b5f60208284031215614df0575f5ffd5b81516001600160401b03811115614e05575f5ffd5b8201601f81018413614e15575f5ffd5b80516001600160401b03811115614e2e57614e2e614453565b8060051b614e3e60208201614467565b91825260208184018101929081019087841115614e59575f5ffd5b6020850194505b83851015614d4d5784519250614e75836142cb565b82825260209485019490910190614e60565b80820180821115610bcd57610bcd614c93565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602a908201527f5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652060408201526962656c6f77207a65726f60b01b606082015260800190565b81810381811115610bcd57610bcd614c93565b5f60018201614f5657614f56614c93565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f5f5f60608486031215614f83575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215614fac575f5ffd5b815161193d816142cb565b60ff8281168282160390811115610bcd57610bcd614c93565b6001815b600184111561500b57808504811115614fef57614fef614c93565b6001841615614ffd57908102905b60019390931c928002614fd4565b935093915050565b5f8261502157506001610bcd565b8161502d57505f610bcd565b8160018114615043576002811461504d57615069565b6001915050610bcd565b60ff84111561505e5761505e614c93565b50506001821b610bcd565b5060208310610133831016604e8410600b841016171561508c575081810a610bcd565b6150985f198484614fd0565b805f19048211156150ab576150ab614c93565b029392505050565b5f61193d60ff841683615013565b5f826150db57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610bcd57610bcd614c93565b601f8211156110d657805f5260205f20601f840160051c8101602085101561511c5750805b601f840160051c820191505b81811015610d36575f8155600101615128565b6001600160401b0383111561515257615152614453565b615166836151608354614b7b565b836150f7565b5f601f841160018114615197575f85156151805750838201355b5f19600387901b1c1916600186901b178355610d36565b5f83815260208120601f198716915b828110156151c657868501358255602094850194600190920191016151a6565b50868210156151e2575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b838152606060208201525f61520c6060830185614276565b828103604084015261171e8185614276565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c0608082018190525f9061525890830185614276565b82810360a084015261526a8185614276565b9998505050505050505050565b634e487b7160e01b5f52602160045260245ffdfeb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220254d93cd4f3e55454132be42e8db0681e20ac2e314fdacae19ad393d7e5f800264736f6c634300081e0033";
2283
2301
  const isSuperArgs = (xs) => xs.length > 1;
2284
2302
  export class SuperTokenStorageLayoutTester__factory extends ContractFactory {
2285
2303
  constructor(...args) {