@etherisc/gif-next 0.0.2-7f39e38-904 → 0.0.2-7fbee0d-269

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 (632) hide show
  1. package/README.md +136 -317
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1735 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +817 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1400 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +465 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +407 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +652 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +844 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +146 -617
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +767 -301
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +267 -116
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +152 -283
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +553 -77
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +383 -0
  54. package/artifacts/contracts/examples/flight/FlightMessageVerfier.sol/FlightMessageVerifier.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightMessageVerfier.sol/FlightMessageVerifier.json +253 -0
  56. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
  58. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +849 -0
  60. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  62. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  64. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2180 -0
  66. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +844 -0
  68. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  69. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  70. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  71. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  84. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  86. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  87. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +59 -205
  88. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  90. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  92. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  93. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +614 -92
  94. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  95. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +517 -75
  96. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  97. package/artifacts/contracts/instance/Instance.sol/Instance.json +639 -237
  98. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  99. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2400 -0
  100. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  101. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +872 -0
  102. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  103. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1806 -748
  104. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  105. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +509 -224
  106. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +175 -98
  108. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  109. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1482 -1911
  110. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  111. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  112. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  113. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  114. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  115. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  116. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  118. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  120. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  121. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  122. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  123. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  124. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  125. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  126. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  127. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  128. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  129. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  131. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  132. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  133. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  134. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  135. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  136. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +849 -0
  137. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  138. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  139. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  140. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  141. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  142. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  143. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  144. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +863 -0
  145. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  146. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  147. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +830 -0
  149. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  150. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  151. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +844 -0
  153. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  154. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +582 -235
  155. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +257 -94
  157. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  158. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +398 -49
  159. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  160. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +151 -404
  161. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  162. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +770 -365
  163. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  164. package/artifacts/contracts/pool/Pool.sol/Pool.json +148 -692
  165. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  166. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  167. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  168. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +947 -525
  169. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +260 -93
  171. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  172. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +382 -166
  173. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +201 -90
  175. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  176. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  177. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  178. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +844 -0
  179. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  180. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +502 -230
  181. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +229 -110
  183. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  184. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +320 -9
  185. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +369 -18
  187. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +436 -101
  189. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  190. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +202 -80
  191. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  192. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +291 -274
  193. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  194. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +295 -150
  195. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  196. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +564 -292
  197. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  198. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  199. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +239 -96
  201. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  202. package/artifacts/contracts/product/PricingService.sol/PricingService.json +262 -299
  203. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +193 -114
  205. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  206. package/artifacts/contracts/product/Product.sol/Product.json +322 -606
  207. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  208. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  209. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  210. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  211. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  212. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  213. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  214. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +402 -79
  215. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  216. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +125 -146
  217. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  218. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  219. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  220. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  221. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  222. package/artifacts/contracts/registry/Registry.sol/Registry.json +719 -120
  223. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  224. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2255 -0
  225. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  226. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  227. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  228. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +174 -274
  229. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  230. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +180 -92
  231. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  232. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  233. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  234. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  235. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  236. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
  237. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  238. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +705 -0
  239. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  240. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +135 -67
  241. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  242. package/artifacts/contracts/shared/Component.sol/Component.json +92 -287
  243. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  244. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +632 -542
  245. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  246. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +230 -113
  247. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  249. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  250. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  252. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  253. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  254. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  255. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +99 -104
  257. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +549 -228
  259. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +138 -140
  261. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  262. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  263. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +42 -1
  265. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  266. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  267. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  268. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +173 -0
  269. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  270. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  271. package/artifacts/contracts/shared/IService.sol/IService.json +103 -2
  272. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  273. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  274. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  275. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +131 -376
  276. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  277. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  278. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  279. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  280. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  281. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +45 -55
  282. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  283. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  284. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  285. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +148 -98
  286. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  287. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  288. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  289. package/artifacts/contracts/shared/Service.sol/Service.json +96 -102
  290. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  293. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  294. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  295. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  296. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  297. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1558 -246
  298. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  299. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +382 -119
  300. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  301. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  302. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  303. package/artifacts/contracts/staking/Staking.sol/Staking.json +1734 -561
  304. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  305. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  306. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +232 -113
  308. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  309. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +430 -94
  310. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  311. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +442 -305
  312. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  313. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +181 -93
  314. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  315. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2044 -637
  316. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  317. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  318. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  319. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +253 -68
  320. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  321. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  322. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Amount.sol/AmountLib.json +122 -5
  324. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
  326. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  328. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  330. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  332. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  334. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  336. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  337. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  338. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  340. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  341. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  342. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +150 -4
  344. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  346. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  348. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  350. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  351. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  352. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  354. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +121 -23
  356. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +136 -2
  358. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  359. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  360. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  361. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  362. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  364. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  365. package/artifacts/contracts/type/String.sol/StrLib.json +199 -0
  366. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +69 -5
  368. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
  370. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  371. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  372. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  373. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  374. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  375. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  376. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  377. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
  378. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  379. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  380. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  381. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  382. package/contracts/accounting/AccountingService.sol +274 -0
  383. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  384. package/contracts/accounting/IAccountingService.sol +47 -0
  385. package/contracts/authorization/AccessAdmin.sol +679 -0
  386. package/contracts/authorization/AccessAdminLib.sol +678 -0
  387. package/contracts/authorization/AccessManagerCloneable.sol +140 -0
  388. package/contracts/authorization/Authorization.sol +190 -0
  389. package/contracts/authorization/IAccess.sol +66 -0
  390. package/contracts/authorization/IAccessAdmin.sol +142 -0
  391. package/contracts/authorization/IAuthorization.sol +26 -0
  392. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  393. package/contracts/authorization/ServiceAuthorization.sol +300 -0
  394. package/contracts/distribution/BasicDistribution.sol +140 -0
  395. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  396. package/contracts/distribution/Distribution.sol +125 -143
  397. package/contracts/distribution/DistributionService.sol +287 -137
  398. package/contracts/distribution/DistributionServiceManager.sol +8 -23
  399. package/contracts/distribution/IDistributionComponent.sol +21 -42
  400. package/contracts/distribution/IDistributionService.sol +60 -26
  401. package/contracts/examples/fire/DamageLevel.sol +59 -0
  402. package/contracts/examples/fire/FirePool.sol +86 -0
  403. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  404. package/contracts/examples/fire/FireProduct.sol +433 -0
  405. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  406. package/contracts/examples/fire/FireUSD.sol +26 -0
  407. package/contracts/examples/flight/FlightLib.sol +273 -0
  408. package/contracts/examples/flight/FlightMessageVerfier.sol +129 -0
  409. package/contracts/examples/flight/FlightOracle.sol +167 -0
  410. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  411. package/contracts/examples/flight/FlightPool.sol +89 -0
  412. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  413. package/contracts/examples/flight/FlightProduct.sol +464 -0
  414. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  415. package/contracts/examples/flight/FlightUSD.sol +26 -0
  416. package/contracts/examples/flight/originalV1.sol +396 -0
  417. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  418. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  419. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  420. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  421. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  422. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  423. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  424. package/contracts/instance/BaseStore.sol +93 -0
  425. package/contracts/instance/BundleSet.sol +130 -0
  426. package/contracts/instance/IBaseStore.sol +37 -0
  427. package/contracts/instance/IInstance.sol +128 -49
  428. package/contracts/instance/IInstanceService.sol +82 -46
  429. package/contracts/instance/Instance.sol +254 -131
  430. package/contracts/instance/InstanceAdmin.sol +307 -0
  431. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  432. package/contracts/instance/InstanceReader.sol +499 -237
  433. package/contracts/instance/InstanceService.sol +391 -244
  434. package/contracts/instance/InstanceServiceManager.sol +8 -13
  435. package/contracts/instance/InstanceStore.sol +172 -109
  436. package/contracts/instance/ProductStore.sol +290 -0
  437. package/contracts/instance/RiskSet.sol +126 -0
  438. package/contracts/instance/TargetNames.sol +10 -0
  439. package/contracts/instance/base/BalanceStore.sol +15 -12
  440. package/contracts/instance/base/Cloneable.sol +2 -25
  441. package/contracts/instance/base/ObjectCounter.sol +20 -0
  442. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  443. package/contracts/instance/base/ObjectSet.sol +77 -0
  444. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  445. package/contracts/instance/module/IBundle.sol +6 -5
  446. package/contracts/instance/module/IComponents.sol +29 -21
  447. package/contracts/instance/module/IDistribution.sol +21 -9
  448. package/contracts/instance/module/IPolicy.sol +50 -29
  449. package/contracts/instance/module/IRisk.sol +5 -0
  450. package/contracts/mock/Dip.sol +1 -1
  451. package/contracts/oracle/BasicOracle.sol +44 -0
  452. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  453. package/contracts/oracle/IOracle.sol +41 -0
  454. package/contracts/oracle/IOracleComponent.sol +33 -0
  455. package/contracts/oracle/IOracleService.sol +66 -0
  456. package/contracts/oracle/Oracle.sol +152 -0
  457. package/contracts/oracle/OracleService.sol +310 -0
  458. package/contracts/oracle/OracleServiceManager.sol +39 -0
  459. package/contracts/pool/BasicPool.sol +161 -0
  460. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  461. package/contracts/pool/BundleService.sol +225 -135
  462. package/contracts/pool/BundleServiceManager.sol +8 -11
  463. package/contracts/pool/IBundleService.sol +43 -33
  464. package/contracts/pool/IPoolComponent.sol +20 -70
  465. package/contracts/pool/IPoolService.sol +98 -75
  466. package/contracts/pool/Pool.sol +196 -164
  467. package/contracts/pool/PoolLib.sol +341 -0
  468. package/contracts/pool/PoolService.sol +444 -254
  469. package/contracts/pool/PoolServiceManager.sol +6 -9
  470. package/contracts/product/ApplicationService.sol +159 -86
  471. package/contracts/product/ApplicationServiceManager.sol +6 -6
  472. package/contracts/product/BasicProduct.sol +48 -0
  473. package/contracts/product/BasicProductAuthorization.sol +64 -0
  474. package/contracts/product/ClaimService.sol +396 -207
  475. package/contracts/product/ClaimServiceManager.sol +6 -6
  476. package/contracts/product/IApplicationService.sol +29 -3
  477. package/contracts/product/IClaimService.sol +51 -8
  478. package/contracts/product/IPolicyService.sol +61 -37
  479. package/contracts/product/IPricingService.sol +11 -10
  480. package/contracts/product/IProductComponent.sol +29 -9
  481. package/contracts/product/IRiskService.sol +48 -0
  482. package/contracts/product/PolicyService.sol +450 -278
  483. package/contracts/product/PolicyServiceLib.sol +139 -0
  484. package/contracts/product/PolicyServiceManager.sol +6 -9
  485. package/contracts/product/PricingService.sol +95 -90
  486. package/contracts/product/PricingServiceManager.sol +6 -9
  487. package/contracts/product/Product.sol +261 -147
  488. package/contracts/product/RiskService.sol +189 -0
  489. package/contracts/product/RiskServiceManager.sol +39 -0
  490. package/contracts/registry/ChainNft.sol +72 -39
  491. package/contracts/registry/IRegistry.sol +88 -41
  492. package/contracts/registry/IRegistryService.sol +4 -10
  493. package/contracts/registry/IRelease.sol +29 -0
  494. package/contracts/registry/ITransferInterceptor.sol +1 -2
  495. package/contracts/registry/Registry.sol +389 -231
  496. package/contracts/registry/RegistryAdmin.sol +173 -0
  497. package/contracts/registry/RegistryAuthorization.sol +337 -0
  498. package/contracts/registry/RegistryService.sol +50 -75
  499. package/contracts/registry/RegistryServiceManager.sol +5 -24
  500. package/contracts/registry/ReleaseAdmin.sol +199 -0
  501. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  502. package/contracts/registry/ReleaseRegistry.sol +525 -0
  503. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  504. package/contracts/registry/TokenRegistry.sol +73 -110
  505. package/contracts/shared/Component.sol +72 -148
  506. package/contracts/shared/ComponentService.sol +466 -370
  507. package/contracts/shared/ComponentServiceManager.sol +10 -7
  508. package/contracts/shared/ContractLib.sol +312 -0
  509. package/contracts/shared/EcdsaChecker.sol +5 -0
  510. package/contracts/shared/IComponent.sol +7 -23
  511. package/contracts/shared/IComponentService.sol +51 -31
  512. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  513. package/contracts/shared/ILifecycle.sol +3 -2
  514. package/contracts/shared/INftOwnable.sol +5 -1
  515. package/contracts/shared/IPolicyHolder.sol +12 -22
  516. package/contracts/shared/IRegisterable.sol +22 -1
  517. package/contracts/shared/IService.sol +10 -5
  518. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  519. package/contracts/shared/InstanceLinkedComponent.sol +145 -58
  520. package/contracts/shared/Lifecycle.sol +30 -63
  521. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  522. package/contracts/shared/NftOwnable.sol +35 -24
  523. package/contracts/shared/PolicyHolder.sol +19 -57
  524. package/contracts/shared/Registerable.sol +52 -21
  525. package/contracts/shared/RegistryLinked.sol +9 -14
  526. package/contracts/shared/Service.sol +31 -41
  527. package/contracts/shared/TokenHandler.sol +310 -26
  528. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  529. package/contracts/staking/IStaking.sol +284 -70
  530. package/contracts/staking/IStakingService.sol +59 -94
  531. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  532. package/contracts/staking/Staking.sol +558 -263
  533. package/contracts/staking/StakingLib.sol +195 -0
  534. package/contracts/staking/StakingManager.sol +20 -32
  535. package/contracts/staking/StakingReader.sol +84 -60
  536. package/contracts/staking/StakingService.sol +108 -162
  537. package/contracts/staking/StakingServiceManager.sol +10 -8
  538. package/contracts/staking/StakingStore.sol +1222 -183
  539. package/contracts/staking/TargetHandler.sol +132 -0
  540. package/contracts/staking/TargetManagerLib.sol +95 -40
  541. package/contracts/type/Amount.sol +43 -3
  542. package/contracts/type/Blocknumber.sol +24 -23
  543. package/contracts/type/ChainId.sol +101 -0
  544. package/contracts/type/ClaimId.sol +6 -1
  545. package/contracts/type/Fee.sol +8 -8
  546. package/contracts/type/Key32.sol +2 -2
  547. package/contracts/type/Key32Set.sol +62 -0
  548. package/contracts/type/NftId.sol +15 -8
  549. package/contracts/type/ObjectType.sol +174 -65
  550. package/contracts/type/PayoutId.sol +10 -10
  551. package/contracts/type/Referral.sol +7 -0
  552. package/contracts/type/RequestId.sol +75 -0
  553. package/contracts/type/RequestIdSet.sol +62 -0
  554. package/contracts/type/RiskId.sol +38 -6
  555. package/contracts/type/RoleId.sol +121 -84
  556. package/contracts/type/Seconds.sol +54 -1
  557. package/contracts/type/Selector.sol +107 -0
  558. package/contracts/type/StateId.sol +27 -1
  559. package/contracts/type/String.sol +95 -0
  560. package/contracts/type/Timestamp.sol +30 -10
  561. package/contracts/type/UFixed.sol +62 -125
  562. package/contracts/type/Version.sol +57 -6
  563. package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
  564. package/contracts/{shared → upgradeability}/ProxyManager.sol +102 -51
  565. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  566. package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
  567. package/package.json +13 -8
  568. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  569. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  570. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  571. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  572. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  573. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -132
  574. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  575. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  576. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  577. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  578. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  579. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -381
  580. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  581. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -673
  582. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  583. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -675
  584. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  585. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -322
  586. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  587. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1151
  588. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  589. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  590. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  591. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  592. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  593. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  594. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  595. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  596. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  597. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  598. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -581
  599. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  600. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  601. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  602. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -598
  603. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  604. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  605. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  606. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
  607. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
  608. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
  609. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
  610. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  611. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -402
  612. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  613. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  614. package/contracts/instance/BundleManager.sol +0 -126
  615. package/contracts/instance/InstanceAccessManager.sol +0 -543
  616. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
  617. package/contracts/instance/base/ObjectManager.sol +0 -82
  618. package/contracts/instance/module/IAccess.sol +0 -54
  619. package/contracts/product/IProductService.sol +0 -33
  620. package/contracts/product/ProductService.sol +0 -124
  621. package/contracts/product/ProductServiceManager.sol +0 -42
  622. package/contracts/registry/RegistryAccessManager.sol +0 -196
  623. package/contracts/registry/ReleaseManager.sol +0 -563
  624. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  625. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  626. package/contracts/shared/ComponentVerifyingService.sol +0 -111
  627. package/contracts/shared/IKeyValueStore.sol +0 -53
  628. package/contracts/shared/KeyValueStore.sol +0 -130
  629. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  630. package/contracts/staking/IStakingManager.sol +0 -15
  631. package/contracts/staking/IStakingStore.sol +0 -130
  632. package/contracts/staking/StakeManagerLib.sol +0 -156
@@ -0,0 +1,2180 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "FlightProduct",
4
+ "sourceName": "contracts/examples/flight/FlightProduct.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "registry",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "NftId",
15
+ "name": "instanceNftid",
16
+ "type": "uint96"
17
+ },
18
+ {
19
+ "internalType": "string",
20
+ "name": "componentName",
21
+ "type": "string"
22
+ },
23
+ {
24
+ "internalType": "contract IAuthorization",
25
+ "name": "authorization",
26
+ "type": "address"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable",
30
+ "type": "constructor"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "address",
36
+ "name": "authority",
37
+ "type": "address"
38
+ }
39
+ ],
40
+ "name": "AccessManagedInvalidAuthority",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "address",
47
+ "name": "caller",
48
+ "type": "address"
49
+ },
50
+ {
51
+ "internalType": "uint32",
52
+ "name": "delay",
53
+ "type": "uint32"
54
+ }
55
+ ],
56
+ "name": "AccessManagedRequiredDelay",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "address",
63
+ "name": "caller",
64
+ "type": "address"
65
+ }
66
+ ],
67
+ "name": "AccessManagedUnauthorized",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "address",
74
+ "name": "authority",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "name": "ErrorAuthorityInvalid",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [],
83
+ "name": "ErrorComponentNameLengthZero",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [
88
+ {
89
+ "internalType": "address",
90
+ "name": "caller",
91
+ "type": "address"
92
+ }
93
+ ],
94
+ "name": "ErrorComponentNotChainNft",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "inputs": [],
99
+ "name": "ErrorComponentProductNftIdNonzero",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [],
104
+ "name": "ErrorComponentProductNftIdZero",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "inputs": [],
109
+ "name": "ErrorComponentWalletAddressIsSameAsCurrent",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "inputs": [],
114
+ "name": "ErrorComponentWalletAddressZero",
115
+ "type": "error"
116
+ },
117
+ {
118
+ "inputs": [],
119
+ "name": "ErrorComponentWalletNotComponent",
120
+ "type": "error"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "NftId",
126
+ "name": "nftId",
127
+ "type": "uint96"
128
+ },
129
+ {
130
+ "internalType": "ObjectType",
131
+ "name": "objectType",
132
+ "type": "uint8"
133
+ }
134
+ ],
135
+ "name": "ErrorInstanceLinkedComponentNotProduct",
136
+ "type": "error"
137
+ },
138
+ {
139
+ "inputs": [
140
+ {
141
+ "internalType": "ObjectType",
142
+ "name": "requiredType",
143
+ "type": "uint8"
144
+ },
145
+ {
146
+ "internalType": "ObjectType",
147
+ "name": "objectType",
148
+ "type": "uint8"
149
+ }
150
+ ],
151
+ "name": "ErrorInstanceLinkedComponentTypeMismatch",
152
+ "type": "error"
153
+ },
154
+ {
155
+ "inputs": [
156
+ {
157
+ "internalType": "NftId",
158
+ "name": "nftId",
159
+ "type": "uint96"
160
+ }
161
+ ],
162
+ "name": "ErrorNftOwnableAlreadyLinked",
163
+ "type": "error"
164
+ },
165
+ {
166
+ "inputs": [
167
+ {
168
+ "internalType": "address",
169
+ "name": "contractAddress",
170
+ "type": "address"
171
+ }
172
+ ],
173
+ "name": "ErrorNftOwnableContractNotRegistered",
174
+ "type": "error"
175
+ },
176
+ {
177
+ "inputs": [],
178
+ "name": "ErrorNftOwnableInitialOwnerZero",
179
+ "type": "error"
180
+ },
181
+ {
182
+ "inputs": [
183
+ {
184
+ "internalType": "NftId",
185
+ "name": "nftId",
186
+ "type": "uint96"
187
+ },
188
+ {
189
+ "internalType": "ObjectType",
190
+ "name": "expectedObjectType",
191
+ "type": "uint8"
192
+ }
193
+ ],
194
+ "name": "ErrorNftOwnableInvalidType",
195
+ "type": "error"
196
+ },
197
+ {
198
+ "inputs": [
199
+ {
200
+ "internalType": "address",
201
+ "name": "account",
202
+ "type": "address"
203
+ }
204
+ ],
205
+ "name": "ErrorNftOwnableNotOwner",
206
+ "type": "error"
207
+ },
208
+ {
209
+ "inputs": [
210
+ {
211
+ "internalType": "address",
212
+ "name": "registryAddress",
213
+ "type": "address"
214
+ }
215
+ ],
216
+ "name": "ErrorNotRegistry",
217
+ "type": "error"
218
+ },
219
+ {
220
+ "inputs": [],
221
+ "name": "ErrorRegisterableNotActive",
222
+ "type": "error"
223
+ },
224
+ {
225
+ "inputs": [],
226
+ "name": "InvalidInitialization",
227
+ "type": "error"
228
+ },
229
+ {
230
+ "inputs": [],
231
+ "name": "NotInitializing",
232
+ "type": "error"
233
+ },
234
+ {
235
+ "anonymous": false,
236
+ "inputs": [
237
+ {
238
+ "indexed": false,
239
+ "internalType": "address",
240
+ "name": "authority",
241
+ "type": "address"
242
+ }
243
+ ],
244
+ "name": "AuthorityUpdated",
245
+ "type": "event"
246
+ },
247
+ {
248
+ "anonymous": false,
249
+ "inputs": [
250
+ {
251
+ "indexed": false,
252
+ "internalType": "uint64",
253
+ "name": "version",
254
+ "type": "uint64"
255
+ }
256
+ ],
257
+ "name": "Initialized",
258
+ "type": "event"
259
+ },
260
+ {
261
+ "anonymous": false,
262
+ "inputs": [
263
+ {
264
+ "indexed": false,
265
+ "internalType": "address",
266
+ "name": "tokenHandler",
267
+ "type": "address"
268
+ },
269
+ {
270
+ "indexed": false,
271
+ "internalType": "address",
272
+ "name": "token",
273
+ "type": "address"
274
+ },
275
+ {
276
+ "indexed": false,
277
+ "internalType": "Amount",
278
+ "name": "limit",
279
+ "type": "uint96"
280
+ },
281
+ {
282
+ "indexed": false,
283
+ "internalType": "bool",
284
+ "name": "isMaxAmount",
285
+ "type": "bool"
286
+ }
287
+ ],
288
+ "name": "LogComponentTokenHandlerApproved",
289
+ "type": "event"
290
+ },
291
+ {
292
+ "anonymous": false,
293
+ "inputs": [
294
+ {
295
+ "indexed": false,
296
+ "internalType": "address",
297
+ "name": "oldWallet",
298
+ "type": "address"
299
+ },
300
+ {
301
+ "indexed": false,
302
+ "internalType": "address",
303
+ "name": "newWallet",
304
+ "type": "address"
305
+ }
306
+ ],
307
+ "name": "LogComponentWalletAddressChanged",
308
+ "type": "event"
309
+ },
310
+ {
311
+ "anonymous": false,
312
+ "inputs": [
313
+ {
314
+ "indexed": false,
315
+ "internalType": "address",
316
+ "name": "from",
317
+ "type": "address"
318
+ },
319
+ {
320
+ "indexed": false,
321
+ "internalType": "address",
322
+ "name": "to",
323
+ "type": "address"
324
+ },
325
+ {
326
+ "indexed": false,
327
+ "internalType": "uint256",
328
+ "name": "amount",
329
+ "type": "uint256"
330
+ }
331
+ ],
332
+ "name": "LogComponentWalletTokensTransferred",
333
+ "type": "event"
334
+ },
335
+ {
336
+ "anonymous": false,
337
+ "inputs": [
338
+ {
339
+ "indexed": false,
340
+ "internalType": "string",
341
+ "name": "error",
342
+ "type": "string"
343
+ },
344
+ {
345
+ "indexed": false,
346
+ "internalType": "uint256",
347
+ "name": "index",
348
+ "type": "uint256"
349
+ },
350
+ {
351
+ "indexed": false,
352
+ "internalType": "uint256",
353
+ "name": "stored",
354
+ "type": "uint256"
355
+ },
356
+ {
357
+ "indexed": false,
358
+ "internalType": "uint256",
359
+ "name": "calculated",
360
+ "type": "uint256"
361
+ }
362
+ ],
363
+ "name": "LogError",
364
+ "type": "event"
365
+ },
366
+ {
367
+ "anonymous": false,
368
+ "inputs": [
369
+ {
370
+ "indexed": false,
371
+ "internalType": "RequestId",
372
+ "name": "requestId",
373
+ "type": "uint64"
374
+ },
375
+ {
376
+ "indexed": false,
377
+ "internalType": "RiskId",
378
+ "name": "riskId",
379
+ "type": "bytes8"
380
+ }
381
+ ],
382
+ "name": "LogErrorRiskInvalid",
383
+ "type": "event"
384
+ },
385
+ {
386
+ "anonymous": false,
387
+ "inputs": [
388
+ {
389
+ "indexed": false,
390
+ "internalType": "RequestId",
391
+ "name": "requestId",
392
+ "type": "uint64"
393
+ },
394
+ {
395
+ "indexed": false,
396
+ "internalType": "RiskId",
397
+ "name": "riskId",
398
+ "type": "bytes8"
399
+ },
400
+ {
401
+ "indexed": false,
402
+ "internalType": "bytes1",
403
+ "name": "status",
404
+ "type": "bytes1"
405
+ },
406
+ {
407
+ "indexed": false,
408
+ "internalType": "int256",
409
+ "name": "delayMinutes",
410
+ "type": "int256"
411
+ }
412
+ ],
413
+ "name": "LogErrorUnexpectedStatus",
414
+ "type": "event"
415
+ },
416
+ {
417
+ "anonymous": false,
418
+ "inputs": [
419
+ {
420
+ "indexed": false,
421
+ "internalType": "RequestId",
422
+ "name": "requestId",
423
+ "type": "uint64"
424
+ },
425
+ {
426
+ "indexed": false,
427
+ "internalType": "RiskId",
428
+ "name": "riskId",
429
+ "type": "bytes8"
430
+ },
431
+ {
432
+ "indexed": false,
433
+ "internalType": "bytes1",
434
+ "name": "status",
435
+ "type": "bytes1"
436
+ }
437
+ ],
438
+ "name": "LogErrorUnprocessableStatus",
439
+ "type": "event"
440
+ },
441
+ {
442
+ "anonymous": false,
443
+ "inputs": [
444
+ {
445
+ "indexed": false,
446
+ "internalType": "RequestId",
447
+ "name": "requestId",
448
+ "type": "uint64"
449
+ },
450
+ {
451
+ "indexed": false,
452
+ "internalType": "RiskId",
453
+ "name": "riskId",
454
+ "type": "bytes8"
455
+ },
456
+ {
457
+ "indexed": false,
458
+ "internalType": "bytes1",
459
+ "name": "status",
460
+ "type": "bytes1"
461
+ },
462
+ {
463
+ "indexed": false,
464
+ "internalType": "int256",
465
+ "name": "delayMinutes",
466
+ "type": "int256"
467
+ },
468
+ {
469
+ "indexed": false,
470
+ "internalType": "uint8",
471
+ "name": "payoutOption",
472
+ "type": "uint8"
473
+ }
474
+ ],
475
+ "name": "LogFlightStatusProcessed",
476
+ "type": "event"
477
+ },
478
+ {
479
+ "anonymous": false,
480
+ "inputs": [
481
+ {
482
+ "indexed": false,
483
+ "internalType": "NftId",
484
+ "name": "nftId",
485
+ "type": "uint96"
486
+ },
487
+ {
488
+ "indexed": false,
489
+ "internalType": "address",
490
+ "name": "owner",
491
+ "type": "address"
492
+ }
493
+ ],
494
+ "name": "LogNftOwnableNftLinkedToAddress",
495
+ "type": "event"
496
+ },
497
+ {
498
+ "anonymous": false,
499
+ "inputs": [
500
+ {
501
+ "indexed": false,
502
+ "internalType": "bytes32",
503
+ "name": "bpKey",
504
+ "type": "bytes32"
505
+ },
506
+ {
507
+ "indexed": false,
508
+ "internalType": "uint256",
509
+ "name": "claimId",
510
+ "type": "uint256"
511
+ },
512
+ {
513
+ "indexed": false,
514
+ "internalType": "uint256",
515
+ "name": "payoutId",
516
+ "type": "uint256"
517
+ },
518
+ {
519
+ "indexed": false,
520
+ "internalType": "uint256",
521
+ "name": "amount",
522
+ "type": "uint256"
523
+ }
524
+ ],
525
+ "name": "LogPayoutTransferred",
526
+ "type": "event"
527
+ },
528
+ {
529
+ "anonymous": false,
530
+ "inputs": [
531
+ {
532
+ "indexed": false,
533
+ "internalType": "bytes32",
534
+ "name": "bpKey",
535
+ "type": "bytes32"
536
+ }
537
+ ],
538
+ "name": "LogPolicyExpired",
539
+ "type": "event"
540
+ },
541
+ {
542
+ "anonymous": false,
543
+ "inputs": [
544
+ {
545
+ "indexed": false,
546
+ "internalType": "uint256",
547
+ "name": "requestId",
548
+ "type": "uint256"
549
+ },
550
+ {
551
+ "indexed": false,
552
+ "internalType": "bytes32",
553
+ "name": "carrierFlightNumber",
554
+ "type": "bytes32"
555
+ },
556
+ {
557
+ "indexed": false,
558
+ "internalType": "uint256",
559
+ "name": "departureTime",
560
+ "type": "uint256"
561
+ },
562
+ {
563
+ "indexed": false,
564
+ "internalType": "uint256",
565
+ "name": "arrivalTime",
566
+ "type": "uint256"
567
+ },
568
+ {
569
+ "indexed": false,
570
+ "internalType": "bytes32",
571
+ "name": "riskId",
572
+ "type": "bytes32"
573
+ }
574
+ ],
575
+ "name": "LogRequestFlightRatings",
576
+ "type": "event"
577
+ },
578
+ {
579
+ "anonymous": false,
580
+ "inputs": [
581
+ {
582
+ "indexed": false,
583
+ "internalType": "uint256",
584
+ "name": "requestId",
585
+ "type": "uint256"
586
+ },
587
+ {
588
+ "indexed": false,
589
+ "internalType": "uint256",
590
+ "name": "arrivalTime",
591
+ "type": "uint256"
592
+ },
593
+ {
594
+ "indexed": false,
595
+ "internalType": "bytes32",
596
+ "name": "carrierFlightNumber",
597
+ "type": "bytes32"
598
+ },
599
+ {
600
+ "indexed": false,
601
+ "internalType": "bytes32",
602
+ "name": "departureYearMonthDay",
603
+ "type": "bytes32"
604
+ }
605
+ ],
606
+ "name": "LogRequestFlightStatus",
607
+ "type": "event"
608
+ },
609
+ {
610
+ "inputs": [],
611
+ "name": "CHECK_OFFSET",
612
+ "outputs": [
613
+ {
614
+ "internalType": "Seconds",
615
+ "name": "",
616
+ "type": "uint40"
617
+ }
618
+ ],
619
+ "stateMutability": "view",
620
+ "type": "function"
621
+ },
622
+ {
623
+ "inputs": [],
624
+ "name": "COMPONENT_LOCATION_V1",
625
+ "outputs": [
626
+ {
627
+ "internalType": "bytes32",
628
+ "name": "",
629
+ "type": "bytes32"
630
+ }
631
+ ],
632
+ "stateMutability": "view",
633
+ "type": "function"
634
+ },
635
+ {
636
+ "inputs": [],
637
+ "name": "INSTANCE_LINKED_COMPONENT_LOCATION_V1",
638
+ "outputs": [
639
+ {
640
+ "internalType": "bytes32",
641
+ "name": "",
642
+ "type": "bytes32"
643
+ }
644
+ ],
645
+ "stateMutability": "view",
646
+ "type": "function"
647
+ },
648
+ {
649
+ "inputs": [],
650
+ "name": "LIFETIME",
651
+ "outputs": [
652
+ {
653
+ "internalType": "Seconds",
654
+ "name": "",
655
+ "type": "uint40"
656
+ }
657
+ ],
658
+ "stateMutability": "view",
659
+ "type": "function"
660
+ },
661
+ {
662
+ "inputs": [],
663
+ "name": "MARGIN_PERCENT",
664
+ "outputs": [
665
+ {
666
+ "internalType": "uint256",
667
+ "name": "",
668
+ "type": "uint256"
669
+ }
670
+ ],
671
+ "stateMutability": "view",
672
+ "type": "function"
673
+ },
674
+ {
675
+ "inputs": [],
676
+ "name": "MAX_FLIGHT_DURATION",
677
+ "outputs": [
678
+ {
679
+ "internalType": "Seconds",
680
+ "name": "",
681
+ "type": "uint40"
682
+ }
683
+ ],
684
+ "stateMutability": "view",
685
+ "type": "function"
686
+ },
687
+ {
688
+ "inputs": [],
689
+ "name": "MAX_PAYOUT",
690
+ "outputs": [
691
+ {
692
+ "internalType": "Amount",
693
+ "name": "",
694
+ "type": "uint96"
695
+ }
696
+ ],
697
+ "stateMutability": "view",
698
+ "type": "function"
699
+ },
700
+ {
701
+ "inputs": [],
702
+ "name": "MAX_POLICIES_TO_PROCESS",
703
+ "outputs": [
704
+ {
705
+ "internalType": "uint8",
706
+ "name": "",
707
+ "type": "uint8"
708
+ }
709
+ ],
710
+ "stateMutability": "view",
711
+ "type": "function"
712
+ },
713
+ {
714
+ "inputs": [],
715
+ "name": "MAX_PREMIUM",
716
+ "outputs": [
717
+ {
718
+ "internalType": "Amount",
719
+ "name": "",
720
+ "type": "uint96"
721
+ }
722
+ ],
723
+ "stateMutability": "view",
724
+ "type": "function"
725
+ },
726
+ {
727
+ "inputs": [],
728
+ "name": "MAX_TIME_BEFORE_DEPARTURE",
729
+ "outputs": [
730
+ {
731
+ "internalType": "Seconds",
732
+ "name": "",
733
+ "type": "uint40"
734
+ }
735
+ ],
736
+ "stateMutability": "view",
737
+ "type": "function"
738
+ },
739
+ {
740
+ "inputs": [],
741
+ "name": "MAX_TOTAL_PAYOUT",
742
+ "outputs": [
743
+ {
744
+ "internalType": "Amount",
745
+ "name": "",
746
+ "type": "uint96"
747
+ }
748
+ ],
749
+ "stateMutability": "view",
750
+ "type": "function"
751
+ },
752
+ {
753
+ "inputs": [],
754
+ "name": "MAX_WEIGHT",
755
+ "outputs": [
756
+ {
757
+ "internalType": "uint8",
758
+ "name": "",
759
+ "type": "uint8"
760
+ }
761
+ ],
762
+ "stateMutability": "view",
763
+ "type": "function"
764
+ },
765
+ {
766
+ "inputs": [],
767
+ "name": "MIN_OBSERVATIONS",
768
+ "outputs": [
769
+ {
770
+ "internalType": "uint256",
771
+ "name": "",
772
+ "type": "uint256"
773
+ }
774
+ ],
775
+ "stateMutability": "view",
776
+ "type": "function"
777
+ },
778
+ {
779
+ "inputs": [],
780
+ "name": "MIN_PREMIUM",
781
+ "outputs": [
782
+ {
783
+ "internalType": "Amount",
784
+ "name": "",
785
+ "type": "uint96"
786
+ }
787
+ ],
788
+ "stateMutability": "view",
789
+ "type": "function"
790
+ },
791
+ {
792
+ "inputs": [],
793
+ "name": "MIN_TIME_BEFORE_DEPARTURE",
794
+ "outputs": [
795
+ {
796
+ "internalType": "Seconds",
797
+ "name": "",
798
+ "type": "uint40"
799
+ }
800
+ ],
801
+ "stateMutability": "view",
802
+ "type": "function"
803
+ },
804
+ {
805
+ "inputs": [],
806
+ "name": "NFT_OWNABLE_STORAGE_LOCATION_V1",
807
+ "outputs": [
808
+ {
809
+ "internalType": "bytes32",
810
+ "name": "",
811
+ "type": "bytes32"
812
+ }
813
+ ],
814
+ "stateMutability": "view",
815
+ "type": "function"
816
+ },
817
+ {
818
+ "inputs": [],
819
+ "name": "PRODUCT_STORAGE_LOCATION_V1",
820
+ "outputs": [
821
+ {
822
+ "internalType": "bytes32",
823
+ "name": "",
824
+ "type": "bytes32"
825
+ }
826
+ ],
827
+ "stateMutability": "view",
828
+ "type": "function"
829
+ },
830
+ {
831
+ "inputs": [],
832
+ "name": "REGISTERABLE_LOCATION_V1",
833
+ "outputs": [
834
+ {
835
+ "internalType": "bytes32",
836
+ "name": "",
837
+ "type": "bytes32"
838
+ }
839
+ ],
840
+ "stateMutability": "view",
841
+ "type": "function"
842
+ },
843
+ {
844
+ "inputs": [
845
+ {
846
+ "internalType": "uint256",
847
+ "name": "",
848
+ "type": "uint256"
849
+ }
850
+ ],
851
+ "name": "WEIGHT_PATTERN",
852
+ "outputs": [
853
+ {
854
+ "internalType": "uint8",
855
+ "name": "",
856
+ "type": "uint8"
857
+ }
858
+ ],
859
+ "stateMutability": "view",
860
+ "type": "function"
861
+ },
862
+ {
863
+ "inputs": [
864
+ {
865
+ "internalType": "contract IERC20Metadata",
866
+ "name": "token",
867
+ "type": "address"
868
+ },
869
+ {
870
+ "internalType": "Amount",
871
+ "name": "amount",
872
+ "type": "uint96"
873
+ }
874
+ ],
875
+ "name": "approveTokenHandler",
876
+ "outputs": [],
877
+ "stateMutability": "nonpayable",
878
+ "type": "function"
879
+ },
880
+ {
881
+ "inputs": [],
882
+ "name": "authority",
883
+ "outputs": [
884
+ {
885
+ "internalType": "address",
886
+ "name": "",
887
+ "type": "address"
888
+ }
889
+ ],
890
+ "stateMutability": "view",
891
+ "type": "function"
892
+ },
893
+ {
894
+ "inputs": [
895
+ {
896
+ "internalType": "Amount",
897
+ "name": "",
898
+ "type": "uint96"
899
+ },
900
+ {
901
+ "internalType": "RiskId",
902
+ "name": "",
903
+ "type": "bytes8"
904
+ },
905
+ {
906
+ "internalType": "Seconds",
907
+ "name": "",
908
+ "type": "uint40"
909
+ },
910
+ {
911
+ "internalType": "bytes",
912
+ "name": "applicationData",
913
+ "type": "bytes"
914
+ }
915
+ ],
916
+ "name": "calculateNetPremium",
917
+ "outputs": [
918
+ {
919
+ "internalType": "Amount",
920
+ "name": "netPremiumAmount",
921
+ "type": "uint96"
922
+ }
923
+ ],
924
+ "stateMutability": "view",
925
+ "type": "function"
926
+ },
927
+ {
928
+ "inputs": [
929
+ {
930
+ "internalType": "Amount",
931
+ "name": "sumInsuredAmount",
932
+ "type": "uint96"
933
+ },
934
+ {
935
+ "internalType": "RiskId",
936
+ "name": "riskId",
937
+ "type": "bytes8"
938
+ },
939
+ {
940
+ "internalType": "Seconds",
941
+ "name": "lifetime",
942
+ "type": "uint40"
943
+ },
944
+ {
945
+ "internalType": "bytes",
946
+ "name": "applicationData",
947
+ "type": "bytes"
948
+ },
949
+ {
950
+ "internalType": "NftId",
951
+ "name": "bundleNftId",
952
+ "type": "uint96"
953
+ },
954
+ {
955
+ "internalType": "ReferralId",
956
+ "name": "referralId",
957
+ "type": "bytes8"
958
+ }
959
+ ],
960
+ "name": "calculatePremium",
961
+ "outputs": [
962
+ {
963
+ "internalType": "Amount",
964
+ "name": "premiumAmount",
965
+ "type": "uint96"
966
+ }
967
+ ],
968
+ "stateMutability": "view",
969
+ "type": "function"
970
+ },
971
+ {
972
+ "inputs": [],
973
+ "name": "completeSetup",
974
+ "outputs": [],
975
+ "stateMutability": "nonpayable",
976
+ "type": "function"
977
+ },
978
+ {
979
+ "inputs": [
980
+ {
981
+ "internalType": "address",
982
+ "name": "policyHolder",
983
+ "type": "address"
984
+ },
985
+ {
986
+ "internalType": "Str",
987
+ "name": "flightData",
988
+ "type": "bytes32"
989
+ },
990
+ {
991
+ "internalType": "Timestamp",
992
+ "name": "departureTime",
993
+ "type": "uint40"
994
+ },
995
+ {
996
+ "internalType": "Timestamp",
997
+ "name": "arrivalTime",
998
+ "type": "uint40"
999
+ },
1000
+ {
1001
+ "internalType": "Amount",
1002
+ "name": "premiumAmount",
1003
+ "type": "uint96"
1004
+ },
1005
+ {
1006
+ "internalType": "uint256[6]",
1007
+ "name": "statistics",
1008
+ "type": "uint256[6]"
1009
+ }
1010
+ ],
1011
+ "name": "createPolicy",
1012
+ "outputs": [
1013
+ {
1014
+ "internalType": "NftId",
1015
+ "name": "policyNftId",
1016
+ "type": "uint96"
1017
+ },
1018
+ {
1019
+ "internalType": "Amount[5]",
1020
+ "name": "payoutAmounts",
1021
+ "type": "uint96[5]"
1022
+ }
1023
+ ],
1024
+ "stateMutability": "nonpayable",
1025
+ "type": "function"
1026
+ },
1027
+ {
1028
+ "inputs": [
1029
+ {
1030
+ "internalType": "RequestId",
1031
+ "name": "requestId",
1032
+ "type": "uint64"
1033
+ },
1034
+ {
1035
+ "internalType": "bytes",
1036
+ "name": "responseData",
1037
+ "type": "bytes"
1038
+ }
1039
+ ],
1040
+ "name": "flightStatusCallback",
1041
+ "outputs": [],
1042
+ "stateMutability": "nonpayable",
1043
+ "type": "function"
1044
+ },
1045
+ {
1046
+ "inputs": [],
1047
+ "name": "getAuthorization",
1048
+ "outputs": [
1049
+ {
1050
+ "internalType": "contract IAuthorization",
1051
+ "name": "authorization",
1052
+ "type": "address"
1053
+ }
1054
+ ],
1055
+ "stateMutability": "view",
1056
+ "type": "function"
1057
+ },
1058
+ {
1059
+ "inputs": [],
1060
+ "name": "getComponentInfo",
1061
+ "outputs": [
1062
+ {
1063
+ "components": [
1064
+ {
1065
+ "internalType": "string",
1066
+ "name": "name",
1067
+ "type": "string"
1068
+ },
1069
+ {
1070
+ "internalType": "contract TokenHandler",
1071
+ "name": "tokenHandler",
1072
+ "type": "address"
1073
+ }
1074
+ ],
1075
+ "internalType": "struct IComponents.ComponentInfo",
1076
+ "name": "info",
1077
+ "type": "tuple"
1078
+ }
1079
+ ],
1080
+ "stateMutability": "view",
1081
+ "type": "function"
1082
+ },
1083
+ {
1084
+ "inputs": [],
1085
+ "name": "getInitialComponentInfo",
1086
+ "outputs": [
1087
+ {
1088
+ "components": [
1089
+ {
1090
+ "internalType": "string",
1091
+ "name": "name",
1092
+ "type": "string"
1093
+ },
1094
+ {
1095
+ "internalType": "contract TokenHandler",
1096
+ "name": "tokenHandler",
1097
+ "type": "address"
1098
+ }
1099
+ ],
1100
+ "internalType": "struct IComponents.ComponentInfo",
1101
+ "name": "info",
1102
+ "type": "tuple"
1103
+ }
1104
+ ],
1105
+ "stateMutability": "view",
1106
+ "type": "function"
1107
+ },
1108
+ {
1109
+ "inputs": [],
1110
+ "name": "getInitialFeeInfo",
1111
+ "outputs": [
1112
+ {
1113
+ "components": [
1114
+ {
1115
+ "components": [
1116
+ {
1117
+ "internalType": "UFixed",
1118
+ "name": "fractionalFee",
1119
+ "type": "uint160"
1120
+ },
1121
+ {
1122
+ "internalType": "Amount",
1123
+ "name": "fixedFee",
1124
+ "type": "uint96"
1125
+ }
1126
+ ],
1127
+ "internalType": "struct Fee",
1128
+ "name": "productFee",
1129
+ "type": "tuple"
1130
+ },
1131
+ {
1132
+ "components": [
1133
+ {
1134
+ "internalType": "UFixed",
1135
+ "name": "fractionalFee",
1136
+ "type": "uint160"
1137
+ },
1138
+ {
1139
+ "internalType": "Amount",
1140
+ "name": "fixedFee",
1141
+ "type": "uint96"
1142
+ }
1143
+ ],
1144
+ "internalType": "struct Fee",
1145
+ "name": "processingFee",
1146
+ "type": "tuple"
1147
+ },
1148
+ {
1149
+ "components": [
1150
+ {
1151
+ "internalType": "UFixed",
1152
+ "name": "fractionalFee",
1153
+ "type": "uint160"
1154
+ },
1155
+ {
1156
+ "internalType": "Amount",
1157
+ "name": "fixedFee",
1158
+ "type": "uint96"
1159
+ }
1160
+ ],
1161
+ "internalType": "struct Fee",
1162
+ "name": "distributionFee",
1163
+ "type": "tuple"
1164
+ },
1165
+ {
1166
+ "components": [
1167
+ {
1168
+ "internalType": "UFixed",
1169
+ "name": "fractionalFee",
1170
+ "type": "uint160"
1171
+ },
1172
+ {
1173
+ "internalType": "Amount",
1174
+ "name": "fixedFee",
1175
+ "type": "uint96"
1176
+ }
1177
+ ],
1178
+ "internalType": "struct Fee",
1179
+ "name": "minDistributionOwnerFee",
1180
+ "type": "tuple"
1181
+ },
1182
+ {
1183
+ "components": [
1184
+ {
1185
+ "internalType": "UFixed",
1186
+ "name": "fractionalFee",
1187
+ "type": "uint160"
1188
+ },
1189
+ {
1190
+ "internalType": "Amount",
1191
+ "name": "fixedFee",
1192
+ "type": "uint96"
1193
+ }
1194
+ ],
1195
+ "internalType": "struct Fee",
1196
+ "name": "poolFee",
1197
+ "type": "tuple"
1198
+ },
1199
+ {
1200
+ "components": [
1201
+ {
1202
+ "internalType": "UFixed",
1203
+ "name": "fractionalFee",
1204
+ "type": "uint160"
1205
+ },
1206
+ {
1207
+ "internalType": "Amount",
1208
+ "name": "fixedFee",
1209
+ "type": "uint96"
1210
+ }
1211
+ ],
1212
+ "internalType": "struct Fee",
1213
+ "name": "stakingFee",
1214
+ "type": "tuple"
1215
+ },
1216
+ {
1217
+ "components": [
1218
+ {
1219
+ "internalType": "UFixed",
1220
+ "name": "fractionalFee",
1221
+ "type": "uint160"
1222
+ },
1223
+ {
1224
+ "internalType": "Amount",
1225
+ "name": "fixedFee",
1226
+ "type": "uint96"
1227
+ }
1228
+ ],
1229
+ "internalType": "struct Fee",
1230
+ "name": "performanceFee",
1231
+ "type": "tuple"
1232
+ }
1233
+ ],
1234
+ "internalType": "struct IComponents.FeeInfo",
1235
+ "name": "feeInfo",
1236
+ "type": "tuple"
1237
+ }
1238
+ ],
1239
+ "stateMutability": "view",
1240
+ "type": "function"
1241
+ },
1242
+ {
1243
+ "inputs": [],
1244
+ "name": "getInitialInfo",
1245
+ "outputs": [
1246
+ {
1247
+ "components": [
1248
+ {
1249
+ "internalType": "NftId",
1250
+ "name": "nftId",
1251
+ "type": "uint96"
1252
+ },
1253
+ {
1254
+ "internalType": "NftId",
1255
+ "name": "parentNftId",
1256
+ "type": "uint96"
1257
+ },
1258
+ {
1259
+ "internalType": "ObjectType",
1260
+ "name": "objectType",
1261
+ "type": "uint8"
1262
+ },
1263
+ {
1264
+ "internalType": "bool",
1265
+ "name": "isInterceptor",
1266
+ "type": "bool"
1267
+ },
1268
+ {
1269
+ "internalType": "address",
1270
+ "name": "objectAddress",
1271
+ "type": "address"
1272
+ },
1273
+ {
1274
+ "internalType": "address",
1275
+ "name": "initialOwner",
1276
+ "type": "address"
1277
+ },
1278
+ {
1279
+ "internalType": "bytes",
1280
+ "name": "data",
1281
+ "type": "bytes"
1282
+ }
1283
+ ],
1284
+ "internalType": "struct IRegistry.ObjectInfo",
1285
+ "name": "info",
1286
+ "type": "tuple"
1287
+ }
1288
+ ],
1289
+ "stateMutability": "view",
1290
+ "type": "function"
1291
+ },
1292
+ {
1293
+ "inputs": [],
1294
+ "name": "getInitialProductInfo",
1295
+ "outputs": [
1296
+ {
1297
+ "components": [
1298
+ {
1299
+ "internalType": "bool",
1300
+ "name": "isProcessingFundedClaims",
1301
+ "type": "bool"
1302
+ },
1303
+ {
1304
+ "internalType": "bool",
1305
+ "name": "isInterceptingPolicyTransfers",
1306
+ "type": "bool"
1307
+ },
1308
+ {
1309
+ "internalType": "bool",
1310
+ "name": "hasDistribution",
1311
+ "type": "bool"
1312
+ },
1313
+ {
1314
+ "internalType": "uint8",
1315
+ "name": "expectedNumberOfOracles",
1316
+ "type": "uint8"
1317
+ },
1318
+ {
1319
+ "internalType": "uint8",
1320
+ "name": "numberOfOracles",
1321
+ "type": "uint8"
1322
+ },
1323
+ {
1324
+ "internalType": "NftId",
1325
+ "name": "poolNftId",
1326
+ "type": "uint96"
1327
+ },
1328
+ {
1329
+ "internalType": "NftId",
1330
+ "name": "distributionNftId",
1331
+ "type": "uint96"
1332
+ },
1333
+ {
1334
+ "internalType": "NftId[]",
1335
+ "name": "oracleNftId",
1336
+ "type": "uint96[]"
1337
+ }
1338
+ ],
1339
+ "internalType": "struct IComponents.ProductInfo",
1340
+ "name": "poolInfo",
1341
+ "type": "tuple"
1342
+ }
1343
+ ],
1344
+ "stateMutability": "view",
1345
+ "type": "function"
1346
+ },
1347
+ {
1348
+ "inputs": [],
1349
+ "name": "getInstance",
1350
+ "outputs": [
1351
+ {
1352
+ "internalType": "contract IInstance",
1353
+ "name": "instance",
1354
+ "type": "address"
1355
+ }
1356
+ ],
1357
+ "stateMutability": "view",
1358
+ "type": "function"
1359
+ },
1360
+ {
1361
+ "inputs": [],
1362
+ "name": "getName",
1363
+ "outputs": [
1364
+ {
1365
+ "internalType": "string",
1366
+ "name": "name",
1367
+ "type": "string"
1368
+ }
1369
+ ],
1370
+ "stateMutability": "view",
1371
+ "type": "function"
1372
+ },
1373
+ {
1374
+ "inputs": [],
1375
+ "name": "getNftId",
1376
+ "outputs": [
1377
+ {
1378
+ "internalType": "NftId",
1379
+ "name": "",
1380
+ "type": "uint96"
1381
+ }
1382
+ ],
1383
+ "stateMutability": "view",
1384
+ "type": "function"
1385
+ },
1386
+ {
1387
+ "inputs": [],
1388
+ "name": "getOracleNftId",
1389
+ "outputs": [
1390
+ {
1391
+ "internalType": "NftId",
1392
+ "name": "oracleNftId",
1393
+ "type": "uint96"
1394
+ }
1395
+ ],
1396
+ "stateMutability": "view",
1397
+ "type": "function"
1398
+ },
1399
+ {
1400
+ "inputs": [],
1401
+ "name": "getOwner",
1402
+ "outputs": [
1403
+ {
1404
+ "internalType": "address",
1405
+ "name": "",
1406
+ "type": "address"
1407
+ }
1408
+ ],
1409
+ "stateMutability": "view",
1410
+ "type": "function"
1411
+ },
1412
+ {
1413
+ "inputs": [],
1414
+ "name": "getRegistry",
1415
+ "outputs": [
1416
+ {
1417
+ "internalType": "contract IRegistry",
1418
+ "name": "",
1419
+ "type": "address"
1420
+ }
1421
+ ],
1422
+ "stateMutability": "view",
1423
+ "type": "function"
1424
+ },
1425
+ {
1426
+ "inputs": [],
1427
+ "name": "getRelease",
1428
+ "outputs": [
1429
+ {
1430
+ "internalType": "VersionPart",
1431
+ "name": "release",
1432
+ "type": "uint8"
1433
+ }
1434
+ ],
1435
+ "stateMutability": "view",
1436
+ "type": "function"
1437
+ },
1438
+ {
1439
+ "inputs": [],
1440
+ "name": "getToken",
1441
+ "outputs": [
1442
+ {
1443
+ "internalType": "contract IERC20Metadata",
1444
+ "name": "token",
1445
+ "type": "address"
1446
+ }
1447
+ ],
1448
+ "stateMutability": "view",
1449
+ "type": "function"
1450
+ },
1451
+ {
1452
+ "inputs": [],
1453
+ "name": "getTokenHandler",
1454
+ "outputs": [
1455
+ {
1456
+ "internalType": "contract TokenHandler",
1457
+ "name": "tokenHandler",
1458
+ "type": "address"
1459
+ }
1460
+ ],
1461
+ "stateMutability": "view",
1462
+ "type": "function"
1463
+ },
1464
+ {
1465
+ "inputs": [],
1466
+ "name": "getVersion",
1467
+ "outputs": [
1468
+ {
1469
+ "internalType": "Version",
1470
+ "name": "version",
1471
+ "type": "uint24"
1472
+ }
1473
+ ],
1474
+ "stateMutability": "view",
1475
+ "type": "function"
1476
+ },
1477
+ {
1478
+ "inputs": [],
1479
+ "name": "getWallet",
1480
+ "outputs": [
1481
+ {
1482
+ "internalType": "address",
1483
+ "name": "walletAddress",
1484
+ "type": "address"
1485
+ }
1486
+ ],
1487
+ "stateMutability": "view",
1488
+ "type": "function"
1489
+ },
1490
+ {
1491
+ "inputs": [],
1492
+ "name": "isActive",
1493
+ "outputs": [
1494
+ {
1495
+ "internalType": "bool",
1496
+ "name": "active",
1497
+ "type": "bool"
1498
+ }
1499
+ ],
1500
+ "stateMutability": "view",
1501
+ "type": "function"
1502
+ },
1503
+ {
1504
+ "inputs": [],
1505
+ "name": "isConsumingScheduledOp",
1506
+ "outputs": [
1507
+ {
1508
+ "internalType": "bytes4",
1509
+ "name": "",
1510
+ "type": "bytes4"
1511
+ }
1512
+ ],
1513
+ "stateMutability": "view",
1514
+ "type": "function"
1515
+ },
1516
+ {
1517
+ "inputs": [],
1518
+ "name": "isNftInterceptor",
1519
+ "outputs": [
1520
+ {
1521
+ "internalType": "bool",
1522
+ "name": "isInterceptor",
1523
+ "type": "bool"
1524
+ }
1525
+ ],
1526
+ "stateMutability": "view",
1527
+ "type": "function"
1528
+ },
1529
+ {
1530
+ "inputs": [],
1531
+ "name": "isRegistered",
1532
+ "outputs": [
1533
+ {
1534
+ "internalType": "bool",
1535
+ "name": "",
1536
+ "type": "bool"
1537
+ }
1538
+ ],
1539
+ "stateMutability": "view",
1540
+ "type": "function"
1541
+ },
1542
+ {
1543
+ "inputs": [],
1544
+ "name": "linkToRegisteredNftId",
1545
+ "outputs": [
1546
+ {
1547
+ "internalType": "NftId",
1548
+ "name": "nftId",
1549
+ "type": "uint96"
1550
+ }
1551
+ ],
1552
+ "stateMutability": "nonpayable",
1553
+ "type": "function"
1554
+ },
1555
+ {
1556
+ "inputs": [
1557
+ {
1558
+ "internalType": "address",
1559
+ "name": "from",
1560
+ "type": "address"
1561
+ },
1562
+ {
1563
+ "internalType": "address",
1564
+ "name": "to",
1565
+ "type": "address"
1566
+ },
1567
+ {
1568
+ "internalType": "uint256",
1569
+ "name": "tokenId",
1570
+ "type": "uint256"
1571
+ },
1572
+ {
1573
+ "internalType": "address",
1574
+ "name": "operator",
1575
+ "type": "address"
1576
+ }
1577
+ ],
1578
+ "name": "nftTransferFrom",
1579
+ "outputs": [],
1580
+ "stateMutability": "nonpayable",
1581
+ "type": "function"
1582
+ },
1583
+ {
1584
+ "inputs": [
1585
+ {
1586
+ "internalType": "RequestId",
1587
+ "name": "requestId",
1588
+ "type": "uint64"
1589
+ },
1590
+ {
1591
+ "internalType": "RiskId",
1592
+ "name": "riskId",
1593
+ "type": "bytes8"
1594
+ },
1595
+ {
1596
+ "internalType": "bytes1",
1597
+ "name": "status",
1598
+ "type": "bytes1"
1599
+ },
1600
+ {
1601
+ "internalType": "int256",
1602
+ "name": "delayMinutes",
1603
+ "type": "int256"
1604
+ },
1605
+ {
1606
+ "internalType": "uint8",
1607
+ "name": "maxPoliciesToProcess",
1608
+ "type": "uint8"
1609
+ }
1610
+ ],
1611
+ "name": "processFlightStatus",
1612
+ "outputs": [],
1613
+ "stateMutability": "nonpayable",
1614
+ "type": "function"
1615
+ },
1616
+ {
1617
+ "inputs": [
1618
+ {
1619
+ "internalType": "NftId",
1620
+ "name": "policyNftId",
1621
+ "type": "uint96"
1622
+ },
1623
+ {
1624
+ "internalType": "ClaimId",
1625
+ "name": "claimId",
1626
+ "type": "uint16"
1627
+ },
1628
+ {
1629
+ "internalType": "Amount",
1630
+ "name": "availableAmount",
1631
+ "type": "uint96"
1632
+ }
1633
+ ],
1634
+ "name": "processFundedClaim",
1635
+ "outputs": [],
1636
+ "stateMutability": "nonpayable",
1637
+ "type": "function"
1638
+ },
1639
+ {
1640
+ "inputs": [
1641
+ {
1642
+ "internalType": "address",
1643
+ "name": "component",
1644
+ "type": "address"
1645
+ }
1646
+ ],
1647
+ "name": "registerComponent",
1648
+ "outputs": [
1649
+ {
1650
+ "internalType": "NftId",
1651
+ "name": "componentNftId",
1652
+ "type": "uint96"
1653
+ }
1654
+ ],
1655
+ "stateMutability": "nonpayable",
1656
+ "type": "function"
1657
+ },
1658
+ {
1659
+ "inputs": [
1660
+ {
1661
+ "internalType": "address",
1662
+ "name": "newAuthority",
1663
+ "type": "address"
1664
+ }
1665
+ ],
1666
+ "name": "setAuthority",
1667
+ "outputs": [],
1668
+ "stateMutability": "nonpayable",
1669
+ "type": "function"
1670
+ },
1671
+ {
1672
+ "inputs": [
1673
+ {
1674
+ "internalType": "NftId",
1675
+ "name": "bundleNftId",
1676
+ "type": "uint96"
1677
+ }
1678
+ ],
1679
+ "name": "setDefaultBundle",
1680
+ "outputs": [],
1681
+ "stateMutability": "nonpayable",
1682
+ "type": "function"
1683
+ },
1684
+ {
1685
+ "inputs": [
1686
+ {
1687
+ "components": [
1688
+ {
1689
+ "internalType": "UFixed",
1690
+ "name": "fractionalFee",
1691
+ "type": "uint160"
1692
+ },
1693
+ {
1694
+ "internalType": "Amount",
1695
+ "name": "fixedFee",
1696
+ "type": "uint96"
1697
+ }
1698
+ ],
1699
+ "internalType": "struct Fee",
1700
+ "name": "productFee",
1701
+ "type": "tuple"
1702
+ },
1703
+ {
1704
+ "components": [
1705
+ {
1706
+ "internalType": "UFixed",
1707
+ "name": "fractionalFee",
1708
+ "type": "uint160"
1709
+ },
1710
+ {
1711
+ "internalType": "Amount",
1712
+ "name": "fixedFee",
1713
+ "type": "uint96"
1714
+ }
1715
+ ],
1716
+ "internalType": "struct Fee",
1717
+ "name": "processingFee",
1718
+ "type": "tuple"
1719
+ }
1720
+ ],
1721
+ "name": "setFees",
1722
+ "outputs": [],
1723
+ "stateMutability": "nonpayable",
1724
+ "type": "function"
1725
+ },
1726
+ {
1727
+ "inputs": [
1728
+ {
1729
+ "internalType": "bool",
1730
+ "name": "locked",
1731
+ "type": "bool"
1732
+ }
1733
+ ],
1734
+ "name": "setLocked",
1735
+ "outputs": [],
1736
+ "stateMutability": "nonpayable",
1737
+ "type": "function"
1738
+ },
1739
+ {
1740
+ "inputs": [],
1741
+ "name": "setOracleNftId",
1742
+ "outputs": [],
1743
+ "stateMutability": "nonpayable",
1744
+ "type": "function"
1745
+ },
1746
+ {
1747
+ "inputs": [
1748
+ {
1749
+ "internalType": "address",
1750
+ "name": "newWallet",
1751
+ "type": "address"
1752
+ }
1753
+ ],
1754
+ "name": "setWallet",
1755
+ "outputs": [],
1756
+ "stateMutability": "nonpayable",
1757
+ "type": "function"
1758
+ },
1759
+ {
1760
+ "inputs": [
1761
+ {
1762
+ "internalType": "bytes4",
1763
+ "name": "interfaceId",
1764
+ "type": "bytes4"
1765
+ }
1766
+ ],
1767
+ "name": "supportsInterface",
1768
+ "outputs": [
1769
+ {
1770
+ "internalType": "bool",
1771
+ "name": "",
1772
+ "type": "bool"
1773
+ }
1774
+ ],
1775
+ "stateMutability": "view",
1776
+ "type": "function"
1777
+ },
1778
+ {
1779
+ "inputs": [
1780
+ {
1781
+ "internalType": "Amount",
1782
+ "name": "amount",
1783
+ "type": "uint96"
1784
+ }
1785
+ ],
1786
+ "name": "withdrawFees",
1787
+ "outputs": [
1788
+ {
1789
+ "internalType": "Amount",
1790
+ "name": "withdrawnAmount",
1791
+ "type": "uint96"
1792
+ }
1793
+ ],
1794
+ "stateMutability": "nonpayable",
1795
+ "type": "function"
1796
+ }
1797
+ ],
1798
+ "bytecode": "0x60a06040819052600a6080526209629960e41b9052600e60a45273__$71e292c09eace9601b3e21e68a1278917a$__6296299060c4602060405180830381865af415801561004f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100739190611752565b6001805464ffffffffff92909216600160a01b0264ffffffffff60a01b199092169190911790556040516209629960e41b8152605a600482015273__$71e292c09eace9601b3e21e68a1278917a$__906296299090602401602060405180830381865af41580156100e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061010a9190611752565b6001805464ffffffffff92909216600160c81b0264ffffffffff60c81b199092169190911790556040516209629960e41b81526002600482015273__$71e292c09eace9601b3e21e68a1278917a$__906296299090602401602060405180830381865af415801561017d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a19190611752565b6002805464ffffffffff191664ffffffffff9290921691909117905560405163667d47b760e01b81526001600482015273__$71e292c09eace9601b3e21e68a1278917a$__9063667d47b790602401602060405180830381865af415801561020b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022f9190611752565b6002805464ffffffffff92909216650100000000000264ffffffffff60281b199092169190911790556040516209629960e41b8152601e600482015273__$71e292c09eace9601b3e21e68a1278917a$__906296299090602401602060405180830381865af41580156102a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102c89190611752565b6002805464ffffffffff929092166a01000000000000000000000264ffffffffff60501b19909216919091179055601e60058181556006805460ff191690911781556040805160c0810182525f8082526020820181905291810191909152606081019290925260326080830181905260a08301526103489160079161160b565b50348015610354575f80fd5b5060405161791b38038061791b8339810160408190526103739161186a565b33610381858585858561038b565b5050505050611c0b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff1615906001600160401b03165f811580156103d45750825b90505f826001600160401b031660011480156103ef5750303b155b9050811580156103fd575080155b1561041b5760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b0319166001178555831561044957845460ff60401b1916680100000000000000001785555b6108be8a8a8a6040518061010001604052805f151581526020015f151581526020015f15158152602001600160ff1681526020015f60ff16815260200173__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156104cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f191906118ef565b6001600160601b0316815260200173__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610546573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061056a91906118ef565b6001600160601b031681526020015f6040519080825280602002602001820160405280156105a2578160200160208202803683370190505b508152506040518060e0016040528073__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af41580156105f7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061061b919061190a565b815260200173__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af4158015610666573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068a919061190a565b815260200173__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af41580156106d5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106f9919061190a565b815260200173__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af4158015610744573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610768919061190a565b815260200173__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af41580156107b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107d7919061190a565b815260200173__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af4158015610822573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610846919061190a565b815260200173__$58e11c6004c5796aaa8c56e718245e69a2$__63bc1b392d6040518163ffffffff1660e01b81526004016040805180830381865af4158015610891573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b5919061190a565b90528c8c610910565b831561090457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b610918610930565b61092787878787878787610980565b50505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661097e57604051631afcd79f60e31b815260040160405180910390fd5b565b610988610930565b61099d878787600c6020890151879087610c8d565b5f7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68008551815460208089015160408a015160608b015160808c015160a08d015160c08e015161ffff1990971697151561ff00191697909717610100941515949094029390931763ffff00001916620100009215159290920263ff000000191691909117630100000060ff9283160217600160201b600160881b0319166401000000009190921602600160281b600160881b03191617650100000000006001600160601b039485160217600160881b600160e81b031916600160881b939092169290920217825560e0870151805192935087928492610aa292600185019291019061169b565b5050845180516020918201516001600160601b03908116600160a01b9081026001600160a01b03938416176002870155838901518051908501518316820290841617600387015560408901518051908501518316820290841617600487015560608901518051908501518316820290841617600587015560808901518051908501518316820290841617600687015560a08901518051908501518316820290841617600787015560c0890151805194015190911602911617600883015550610b70610b6b602c90565b610ee8565b600a820180546001600160a01b0319166001600160a01b0392909216919091179055610b9d610b6b601490565b600b820180546001600160a01b0319166001600160a01b0392909216919091179055610bca610b6b601590565b600c820180546001600160a01b0319166001600160a01b0392909216919091179055610bf7610b6b602d90565b600d820180546001600160a01b0319166001600160a01b0392909216919091179055610c24610b6b602a90565b600e820180546001600160a01b0319166001600160a01b0392909216919091179055610c51610b6b600b90565b6009820180546001600160a01b0319166001600160a01b0392909216919091179055610c83630cdf80bd60e31b610f7f565b5050505050505050565b610c95610930565b5f610ca1888887610fb2565b90505f7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f0060405163bf8e179760e01b81526001600160601b03841660048201529091506001600160a01b038a169063bf8e179790602401602060405180830381865afa158015610d13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d379190611968565b81546001600160a01b0319166001600160a01b039190911690811782556040805163bf7e214f60e01b81529051610dd5929163bf7e214f9160048083019260209291908290030181865afa158015610d91573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db59190611968565b8a8a8a8a898960405180602001604052805f81525061105d60201b60201c565b8054604080516302cd307160e01b815290516001600160a01b03909216916302cd3071916004808201926020929091908290030181865afa158015610e1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e409190611968565b6001820180546001600160a01b03199081166001600160a01b0393841617909155600283018054909116918716919091179055610e7e610b6b600b90565b6003820180546001600160a01b0319166001600160a01b0392909216919091179055610eab610b6b600d90565b6004820180546001600160a01b0319166001600160a01b0392909216919091179055610edd63a9c1bc6f60e01b610f7f565b505050505050505050565b5f610efb6001546001600160a01b031690565b6001600160a01b031663d39e604383610f12611126565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015610f55573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f799190611968565b92915050565b610f87610930565b610faf816001600160e01b0319165f908152602081905260409020805460ff19166001179055565b50565b5f60ff8216600c03610fd357610fca8484600a6111bc565b50829050611056565b5f610fe08585600c6111bc565b60405163677d3feb60e11b81526001600160601b03861660048201529091506001600160a01b0382169063cefa7fd690602401602060405180830381865afa15801561102e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105291906118ef565b9150505b9392505050565b611065610930565b84515f036110865760405163591eebf360e11b815260040160405180910390fd5b61109588888887878787611286565b7fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00806110c18782611a07565b5060018101805460ff19168515151790556110dd610b6b600b90565b6001820180546001600160a01b039290921661010002610100600160a81b0319909216919091179055611116634a531f3360e01b610f7f565b610edd6306e9e5ff60e31b610f7f565b5f6111587ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b031690565b6001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611193573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b79190611ada565b905090565b6040516305247a1760e51b81526001600160601b038316600482015283905f906001600160a01b0383169063a48f42e0906024015f60405180830381865afa15801561120a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526112319190810190611b22565b905061124881604001518460ff9081169116141590565b1561127e57604080820151905163b0c1f6eb60e01b815260ff808616600483015290911660248201526044015b60405180910390fd5b509392505050565b61128e610930565b604051632330f24760e01b81526001600160a01b038816600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90632330f24790602401602060405180830381865af41580156112e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113089190611bf2565b6113305760405163cf6935e560e01b81526001600160a01b0388166004820152602401611275565b611339876113d0565b61134386836113e1565b5f7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30080546001600160601b0388166001600160681b0319909116176c0100000000000000000000000060ff8816021760ff60681b19166d0100000000000000000000000000861515021781559050600181016113bf8382611a07565b50610c83634a531f3360e01b610f7f565b6113d8610930565b610faf81611473565b6113e9610930565b6113f1611484565b6113fa826114cc565b6001600160a01b0381166114215760405163f17ef42d60e01b815260040160405180910390fd5b7f07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f0080546001600160601b03166c010000000000000000000000006001600160a01b039093169290920291909117905550565b61147b610930565b610faf81611598565b61148c610930565b61097e6301ffc9a760e01b5f9081526020527f67be87c3ff9960ca1e9cfac5cab2ff4747269cf9ed20c9b7306235ac35a491c5805460ff19166001179055565b6114d4610930565b604051633334d16b60e01b81526001600160a01b038216600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90633334d16b90602401602060405180830381865af415801561152a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061154e9190611bf2565b6115765760405163fdeac91f60e01b81526001600160a01b0382166004820152602401611275565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0080546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b60018301918390821561168b579160200282015f5b8382111561165d57835183826101000a81548160ff021916908360ff16021790555092602001926001016020815f01049283019260010302611620565b80156116895782816101000a81549060ff02191690556001016020815f0104928301926001030261165d565b505b5061169792915061173e565b5090565b828054828255905f5260205f209060010160029004810192821561168b579160200282015f5b8382111561170b57835183826101000a8154816001600160601b0302191690836001600160601b031602179055509260200192600c01602081600b010492830192600103026116c1565b80156116895782816101000a8154906001600160601b030219169055600c01602081600b0104928301926001030261170b565b5b80821115611697575f815560010161173f565b5f60208284031215611762575f80fd5b815164ffffffffff81168114611056575f80fd5b6001600160a01b0381168114610faf575f80fd5b805161179581611776565b919050565b6001600160601b0381168114610faf575f80fd5b80516117958161179a565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b03811182821017156117ef576117ef6117b9565b60405290565b5f806001600160401b0384111561180e5761180e6117b9565b50604051601f19601f85018116603f011681018181106001600160401b038211171561183c5761183c6117b9565b604052838152905080828401851015611853575f80fd5b8383602083015e5f60208583010152509392505050565b5f805f806080858703121561187d575f80fd5b845161188881611776565b60208601519094506118998161179a565b60408601519093506001600160401b038111156118b4575f80fd5b8501601f810187136118c4575f80fd5b6118d3878251602084016117f5565b92505060608501516118e481611776565b939692955090935050565b5f602082840312156118ff575f80fd5b81516110568161179a565b5f604082840312801561191b575f80fd5b50604080519081016001600160401b038111828210171561193e5761193e6117b9565b604052825161194c81611776565b8152602083015161195c8161179a565b60208201529392505050565b5f60208284031215611978575f80fd5b815161105681611776565b600181811c9082168061199757607f821691505b6020821081036119b557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115611a0257805f5260205f20601f840160051c810160208510156119e05750805b601f840160051c820191505b818110156119ff575f81556001016119ec565b50505b505050565b81516001600160401b03811115611a2057611a206117b9565b611a3481611a2e8454611983565b846119bb565b6020601f821160018114611a66575f8315611a4f5750848201515b5f19600385901b1c1916600184901b1784556119ff565b5f84815260208120601f198516915b82811015611a955787850151825560209485019460019092019101611a75565b5084821015611ab257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60ff81168114610faf575f80fd5b805161179581611ac1565b5f60208284031215611aea575f80fd5b815161105681611ac1565b80518015158114611795575f80fd5b5f82601f830112611b13575f80fd5b611056838351602085016117f5565b5f60208284031215611b32575f80fd5b81516001600160401b03811115611b47575f80fd5b820160e08185031215611b58575f80fd5b611b606117cd565b611b69826117ae565b8152611b77602083016117ae565b6020820152611b8860408301611acf565b6040820152611b9960608301611af5565b6060820152611baa6080830161178a565b6080820152611bbb60a0830161178a565b60a082015260c08201516001600160401b03811115611bd8575f80fd5b611be486828501611b04565b60c083015250949350505050565b5f60208284031215611c02575f80fd5b61105682611af5565b608051615cf8611c235f395f61057e0152615cf85ff3fe608060405234801561000f575f80fd5b5060043610610393575f3560e01c80636838b83e116101df578063b7b357ac11610109578063e1f216fa116100a9578063f0107c1511610079578063f0107c1514610868578063f179d06414610880578063f322c70a14610893578063f3e349ae146108a6575f80fd5b8063e1f216fa14610825578063e4a28a5214610838578063e9b2460c14610840578063ea15869f14610854575f80fd5b8063c108bd4c116100e4578063c108bd4c146107b5578063d3c576d8146107ca578063de7b5d14146107e2578063deaa59df14610812575f80fd5b8063b7b357ac1461077b578063be5c8f4414610793578063bf7e214f146107ad575f80fd5b80638b0af5d81161017f578063ad12ad601161014f578063ad12ad6014610739578063ada9652e1461074c578063b277d78014610760578063b423086c14610773575f80fd5b80638b0af5d8146106ea5780638fb36037146106f257806390edbd3514610713578063972e22eb14610728575f80fd5b80637a9e5e4b116101ba5780637a9e5e4b146106b2578063844e0f20146106c5578063893d20e8146106da5780638aea8f71146106e2575f80fd5b80636838b83e146106675780636bd1c0eb1461067a57806376b707b7146106aa575f80fd5b80632eb3e6f4116102c05780634cdabb161161026057806360426af31161023057806360426af3146106215780636078a3b214610634578063608a5f8d14610647578063644c45e01461065f575f80fd5b80634cdabb16146105e25780635349d2a8146105f55780635741e5e9146106085780635ab1bd5314610610575f80fd5b8063419197fe1161029b578063419197fe146105a057806343d752d3146105b35780634b396c4f146105bb5780634b9ddafe146105c8575f80fd5b80632eb3e6f4146105495780632f15ce0d1461057057806339cee40714610579575f80fd5b80631c6b21901161033657806321df0da71161030657806321df0da714610501578063223668441461050957806322f3e2d4146105115780632c41284a14610519575f80fd5b80631c6b21901461047f5780631e6239c6146104925780631eff4b22146104b7578063211e28b6146104ec575f80fd5b806313299604116103715780631329960414610409578063138461e01461042957806317d7de7c14610449578063191c64201461045e575f80fd5b806301ffc9a7146103975780630d8e6e2c146103d85780630fec111c146103f4575b5f80fd5b6103c36103a536600461442c565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6103e06108b9565b60405162ffffff90911681526020016103cf565b6103fc610940565b6040516103cf9190614481565b610411610afa565b6040516001600160a01b0390911681526020016103cf565b610431610b62565b6040516001600160601b0390911681526020016103cf565b610451610b6c565b6040516103cf919061450d565b61047161046c366004614650565b610b7c565b6040516103cf92919061472d565b61043161048d36600461474a565b610f43565b6104a56104a0366004614765565b610f9e565b60405160ff90911681526020016103cf565b6104de7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016103cf565b6104ff6104fa366004614789565b610fc7565b005b61041161100e565b6103c3611052565b6103c3611148565b6002546105339065010000000000900464ffffffffff1681565b60405164ffffffffff90911681526020016103cf565b6104de7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f0081565b6104de60055481565b6104de7f000000000000000000000000000000000000000000000000000000000000000081565b6104ff6105ae3660046147a4565b6111bf565b610411611212565b6006546104a59060ff1681565b60035461043190600160601b90046001600160601b031681565b600354610431906001600160601b031681565b610431610603366004614868565b611224565b6103c36112e6565b6001546001600160a01b0316610411565b6104ff61062f366004614911565b61139c565b61043161064236600461495d565b6113dd565b60015461053390600160c81b900464ffffffffff1681565b6104316114af565b6104ff61067536600461499b565b6114ca565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f02546001600160a01b0316610411565b6104a5611522565b6104ff6106c036600461495d565b61158a565b6106cd611610565b6040516103cf9190614a20565b6104116117e9565b6104ff61191a565b6104ff611ce7565b6106fa611db2565b6040516001600160e01b031990911681526020016103cf565b61071b611de7565b6040516103cf9190614aae565b6002546105339064ffffffffff1681565b6104ff610747366004614aea565b611e18565b6104de5f80516020615c4383398151915281565b6104ff61076e36600461474a565b611ebb565b61071b611f21565b60015461053390600160a01b900464ffffffffff1681565b60025461043190600160781b90046001600160601b031681565b610411611f3d565b6107bd611f58565b6040516103cf9190614b7d565b60025461053390600160501b900464ffffffffff1681565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f00546001600160a01b0316610411565b6104ff61082036600461495d565b6120ac565b6104ff610833366004614c1c565b6120f9565b6104a5603281565b6104de5f80516020615ca383398151915281565b6104de5f80516020615c6383398151915281565b600854600160601b90046001600160601b0316610431565b61043161088e366004614c64565b61210f565b6104ff6108a1366004614d14565b61212e565b600454610431906001600160601b031681565b604051632efe011360e01b8152600160048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610917573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b9190614d47565b905090565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156109ec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a109190614d74565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610a586117e9565b6001600160a01b03168152602001826001018054610a7590614d8f565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa190614d8f565b8015610aec5780601f10610ac357610100808354040283529160200191610aec565b820191905f5260205f20905b815481529060010190602001808311610acf57829003601f168201915b505050505081525091505090565b5f610b03611212565b6001600160a01b031663132996046040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b9190614dd2565b5f61093b3061217c565b6060610b76611de7565b51919050565b5f610b85614336565b610b91335b5f366123cd565b610b9d308787876124cb565b5f805f73__$6efb0c97d21d9331e673f6fcd79a682b24$__6355d166e13089896040518463ffffffff1660e01b8152600401610bdb93929190614ded565b60e060405180830381865af4158015610bf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1a9190614e96565b9250925092505f610c2e8b8b8b8588612b03565b9050610cf28c82848b6002600a9054906101000a900464ffffffffff1660085f9054906101000a90046001600160601b031673__$05887d5853069c88bcd4c0a2107db45f29$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610ca7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccb9190614ed4565b8f8b604051602001610cde92919061472d565b604051602081830303815290604052612cf4565b9550610d698673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610d3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d639190614efa565b8a612d9e565b50610d74868b612e3f565b600854604080516060810182526001600160c01b03198416815260208082018f905264ffffffffff8e16828401529151610f33936001600160601b03600160601b9091041692610df292910181516001600160c01b03191681526020808301519082015260409182015164ffffffffff169181019190915260600190565b60408051601f19818403018152908290526209629960e41b8252601e60048301529073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e9064ffffffffff8f169073__$71e292c09eace9601b3e21e68a1278917a$__906296299090602401602060405180830381865af4158015610e72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e969190614efa565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af4158015610edd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f019190614efa565b60405180604001604052806014815260200173666c6967687453746174757343616c6c6261636b60601b815250612ec9565b5050505050965096945050505050565b5f610f4d33610b8a565b610f556117e9565b6001600160a01b0316336001600160a01b031614610f8d5760405163086391f760e31b81523360048201526024015b60405180910390fd5b610f9682612f67565b90505b919050565b60078160068110610fad575f80fd5b60209182820401919006915054906101000a900460ff1681565b610fcf6117e9565b6001600160a01b0316336001600160a01b0316146110025760405163086391f760e31b8152336004820152602401610f84565b61100b81612fbf565b50565b5f611017611212565b6001600160a01b03166382bfefc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3e573d5f803e3d5ffd5b5f6110656001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa1580156110a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cd9190614d74565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611124573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b9190614f20565b5f611151611f3d565b60405163a166aa8960e01b81523060048201526001600160a01b03919091169063a166aa8990602401602060405180830381865afa158015611195573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b99190614f20565b15905090565b6111c833610b8a565b6111d06117e9565b6001600160a01b0316336001600160a01b0316146112035760405163086391f760e31b8152336004820152602401610f84565b61120d8282613029565b505050565b5f61121b611de7565b60200151905090565b5f82601661123282826131aa565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680e545f906001600160a01b031663f4bfe53a61126c6114af565b8b8d8c8c8c8c6040518863ffffffff1660e01b81526004016112949796959493929190614f3b565b61024060405180830381865afa1580156112b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d49190614fb8565b60a001519a9950505050505050505050565b5f6112ef611052565b15611373576001546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f0906024015f60405180830381865afa158015611343573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261136a9190810190615179565b60600151905090565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f015460ff1690565b6113a533610b8a565b5f818060200190518101906113ba9190615254565b80516020820151604083015160065493945061120d93879392919060ff166132de565b5f6113e733610b8a565b6113ef6117e9565b6001600160a01b0316336001600160a01b0316146114225760405163086391f760e31b8152336004820152602401610f84565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68095460405163303c51d960e11b81526001600160a01b03848116600483015290911690636078a3b2906024015b6020604051808303815f875af115801561148b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f969190614d74565b5f80516020615c43833981519152546001600160601b031690565b6114d333610b8a565b6114db6117e9565b6001600160a01b0316336001600160a01b03161461150e5760405163086391f760e31b8152336004820152602401610f84565b61151b85858585856132de565b5050505050565b5f61152b611f3d565b6001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611566573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b91906152be565b33611593611f3d565b6001600160a01b0316816001600160a01b0316146115ce5760405162d1953b60e31b81526001600160a01b0382166004820152602401610f84565b816001600160a01b03163b5f03611603576040516361798f2f60e11b81526001600160a01b0383166004820152602401610f84565b61160c82613513565b5050565b611618614354565b5060408051610120810182527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6802546001600160a01b0380821660e084019081526001600160601b03600160a01b938490048116610100860152908452845180860186527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6803548084168252849004821660208083019190915280860191909152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680454808516825285900483168183015285870152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68055480851682528590048316818301526060860152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68065480851682528590048316818301526080860152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680754808516825285900483168183015260a086015285518087019096527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680854928316865292909104169083015260c081019190915290565b5f805f80516020615c4383398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118799190614f20565b15611904576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156118da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118fe9190614dd2565b91505090565b54600160601b90046001600160a01b0316919050565b61192333610b8a565b61192b6117e9565b6001600160a01b0316336001600160a01b03161461195e5760405163086391f760e31b8152336004820152602401610f84565b5f61196761100e565b90505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119ca91906152be565b6119d590600a6153d0565b905073__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd966119fc83600f6153de565b6040518263ffffffff1660e01b8152600401611a1a91815260200190565b602060405180830381865af4158015611a35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a599190614d74565b600280546001600160601b0392909216600160781b026bffffffffffffffffffffffff60781b1990921691909117905573__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96611aae8360c86153de565b6040518263ffffffff1660e01b8152600401611acc91815260200190565b602060405180830381865af4158015611ae7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0b9190614d74565b600380546001600160601b0319166001600160601b039290921691909117905573__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96611b51836101f46153de565b6040518263ffffffff1660e01b8152600401611b6f91815260200190565b602060405180830381865af4158015611b8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bae9190614d74565b600380546bffffffffffffffffffffffff60601b1916600160601b6001600160601b039384168102919091179182905560405163046e44af60e11b81529104909116600482015273__$3bac17678db7ae928afa209f2f44deec9c$__90634c41dd969082906308dc895e90602401602060405180830381865af4158015611c37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5b91906153f5565b611c669060036153de565b6040518263ffffffff1660e01b8152600401611c8491815260200190565b602060405180830381865af4158015611c9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cc39190614d74565b600480546001600160601b0319166001600160601b03929092169190911790555050565b611cef613573565b6001600160a01b0316630b5d931c611d056114af565b6040516001600160e01b031960e084901b1681526001600160601b0390911660048201526024015f60405180830381865afa158015611d46573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d6d9190810190615494565b60e001515f81518110611d8257611d82615576565b60200260200101516008600c6101000a8154816001600160601b0302191690836001600160601b03160217905550565b5f80516020615c8383398151915280545f9190600160a01b900460ff16611dd9575f6118fe565b638fb3603760e01b91505090565b60408051808201909152606081525f6020820152611e03611052565b15611e105761093b6135a1565b61093b611f21565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e839190614dd2565b6001600160a01b0316336001600160a01b031614611eb55760405162f0630960e01b8152336004820152602401610f84565b50505050565b611ec433610b8a565b611ecc6117e9565b6001600160a01b0316336001600160a01b031614611eff5760405163086391f760e31b8152336004820152602401610f84565b600880546001600160601b0319166001600160601b0392909216919091179055565b60408051808201909152606081525f602082015261093b6135a1565b5f80516020615c83833981519152546001600160a01b031690565b60408051610100810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c082019290925260e08101919091525f80516020615ca3833981519152604080516101008082018352835460ff808216151584529181048216151560208085019190915262010000820483161515848601526301000000820483166060850152640100000000820490921660808401526001600160601b03650100000000008204811660a0850152600160881b9091041660c083015260018401805484518184028101840190955280855292949360e0860193909283018282801561209e57602002820191905f5260205f20905f905b82829054906101000a90046001600160601b03166001600160601b0316815260200190600c0190602082600b0104928301926001038202915080841161205b5790505b505050505081525050905090565b6120b533610b8a565b6120bd6117e9565b6001600160a01b0316336001600160a01b0316146120f05760405163086391f760e31b8152336004820152602401610f84565b61100b8161375a565b61210233610b8a565b82601561151b82826131aa565b5f81806020019051810190612124919061558a565b5095945050505050565b6121366117e9565b6001600160a01b0316336001600160a01b0316146121695760405163086391f760e31b8152336004820152602401610f84565b61217233610b8a565b61160c82826137cf565b5f805f80516020615c4383398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156121e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061220c9190614f20565b156122385780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610f84565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa15801561228a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ae9190614f20565b6122d65760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610f84565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015612328573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061234c9190614d74565b81546001600160601b0319166001600160601b039190911690811782557f88857b75cbef7f257c9d5a473e28aaf6a91cc28f717f60f2cda3bcf5623d7b54906123936117e9565b604080516001600160601b0390931683526001600160a01b0390911660208301520160405180910390a1546001600160601b031692915050565b5f80516020615c838339815191525f806124056123e8611f3d565b87306123f760045f8a8c6155b5565b612400916155dc565b613820565b91509150816124c35763ffffffff8116156124a057825460ff60a01b1916600160a01b178355612433611f3d565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161246293929190615612565b5f604051808303815f87803b158015612479575f80fd5b505af115801561248b573d5f803e3d5ffd5b5050845460ff60a01b19168555506124c39050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610f84565b505050505050565b61253481856001600160a01b031663be5c8f446040518163ffffffff1660e01b8152600401602060405180830381865afa15801561250b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061252f9190614d74565b613928565b6125805760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4644442d3030313a494e56414c49445f5052454d49554d0000006044820152606401610f84565b6125e981856001600160a01b0316634cdabb166040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e49190614d74565b6139b6565b6126355760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4644442d3030323a494e56414c49445f5052454d49554d0000006044820152606401610f84565b64ffffffffff808416908316116126a25760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4644442d3030333a4152524956414c5f4245464f52455f44455060448201526a4152545552455f54494d4560a81b6064820152608401610f84565b6127a5828464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63a5798b4e9091886001600160a01b031663972e22eb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612706573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272a9190614efa565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af4158015612771573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127959190614efa565b64ffffffffff9081169116111590565b6128065760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4644442d3030343a494e56414c49445f4152524956414c2f444560448201526b504152545552455f54494d4560a01b6064820152608401610f84565b61297373__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612850573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128749190614efa565b8464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__6337cb29fe9091886001600160a01b031663608a5f8d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128f89190614efa565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af415801561293f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129639190614efa565b64ffffffffff9081169116101590565b6129d45760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4644442d3030353a494e56414c49445f4152524956414c2f444560448201526b504152545552455f54494d4560a01b6064820152608401610f84565b612aa273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612a1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a429190614efa565b8464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__6337cb29fe9091886001600160a01b031663b7b357ac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612706573d5f803e3d5ffd5b611eb55760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4644442d3031323a494e56414c49445f4152524956414c2f444560448201526b504152545552455f54494d4560a01b6064820152608401610f84565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a08101829052819073__$6efb0c97d21d9331e673f6fcd79a682b24$__6381def949612b57613573565b612b5f6114af565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b03166024820152604481018b905264ffffffffff808b1660648301528916608482015260a40161010060405180830381865af4158015612bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bf091906156ea565b9194509250905081612c34575f612c0689613a00565b9050612c318183604051602001612c1d9190615731565b604051602081830303815290604052613a31565b50505b612c56612c45826060015187613ac2565b6004546001600160601b03166139b6565b612ca25760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4644442d3030363a434c55535445525f5249534b0000000000006044820152606401610f84565b612cb0816060015186613ac2565b6001600160601b03166060820152604051612ce9908490612cd5908490602001615731565b604051602081830303815290604052613b46565b505095945050505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680b54604051639a83274160e01b81525f916001600160a01b031690639a83274190612d51908c908c908c908c908c908c908c908c90600401615791565b6020604051808303815f875af1158015612d6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d919190614d74565b9998505050505050505050565b5f5f80516020615ca3833981519152600c015460405163d22413e560e01b81526001600160601b03808716600483015264ffffffffff86166024830152841660448201526001600160a01b039091169063d22413e5906064016020604051808303815f875af1158015612e13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e379190614d74565b949350505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680c54604051635dfddfdd60e11b81526001600160601b038416600482015264ffffffffff831660248201526001600160a01b039091169063bbfbbfba906044015b5f604051808303815f87803b158015612eb7575f80fd5b505af11580156124c3573d5f803e3d5ffd5b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f045460405163f684566360e01b81525f916001600160a01b03169063f684566390612f1e908890889088908890600401615807565b6020604051808303815f875af1158015612f3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5e9190615852565b95945050505050565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f03546040516301c6b21960e41b81526001600160601b03831660048201525f916001600160a01b031690631c6b21909060240161146f565b5f80516020615c638339815191526001015460405163108f145b60e11b815282151560048201526101009091046001600160a01b03169063211e28b6906024015b5f604051808303815f87803b158015613017575f80fd5b505af115801561151b573d5f803e3d5ffd5b5f73__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96846001600160a01b031663dd62ed3e61305b611212565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa1580156130a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130c791906153f5565b6040518263ffffffff1660e01b81526004016130e591815260200190565b602060405180830381865af4158015613100573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131249190614d74565b90505f80516020615c63833981519152600101546040516320c8cbff60e11b81526001600160a01b0385811660048301526001600160601b03851660248301526101009092049091169063419197fe906044015f604051808303815f87803b15801561318e575f80fd5b505af11580156131a0573d5f803e3d5ffd5b5050505092915050565b60405163037c8cb160e51b815260ff8216600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af41580156131fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061321e9190614f20565b806132ac57506001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa158015613286573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132aa9190614f20565b155b1561160c5760405163d711af7560e01b81526001600160601b038316600482015260ff82166024820152604401610f84565b5f6132e7613573565b90505f8073__$6efb0c97d21d9331e673f6fcd79a682b24$__6319b9d5ba8461330e6114af565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b031660248201526001600160c01b03198a16604482015260640160e060405180830381865af415801561336e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613392919061586d565b91509150816133ee57604080516001600160401b038a1681526001600160c01b0319891660208201527fdad11192f5a8a0528fe4f5bbec7b626311293b772ab7a328a18b6cc8e384e37b910160405180910390a150505061151b565b604051621600c960ea1b81526001600160401b03891660048201526001600160c01b0319881660248201526001600160f81b031987166044820152606481018690525f9073__$6efb0c97d21d9331e673f6fcd79a682b24$__90635803240090608401602060405180830381865af415801561346c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061349091906152be565b905061349d888287613b97565b604080516001600160401b038b1681526001600160c01b03198a1660208201526001600160f81b03198916818301526060810188905260ff8316608082015290517f6088f5fc3484ec0fdf466ecfcea487e5566da0db0bda62b4dbeb3ed86fd3ef0b9181900360a00190a1505050505050505050565b5f80516020615c8383398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f01546001600160a01b031690565b60408051808201909152606081525f60208201525f6135c86001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa15801561360c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136309190614d74565b6040516330b8415f60e01b81526001600160601b038216600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015613689573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136ad9190614f20565b15613752576136ba613573565b6001600160a01b031663f0ea17c36136d06114af565b6040516001600160e01b031960e084901b1681526001600160601b0390911660048201526024015f60405180830381865afa158015613711573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526137389190810190615898565b60208101519092506001600160a01b031615613752575090565b6118fe613e42565b6137626117e9565b6001600160a01b0316336001600160a01b0316146137955760405163086391f760e31b8152336004820152602401610f84565b61379f600b613f0c565b60405163deaa59df60e01b81526001600160a01b038381166004830152919091169063deaa59df90602401613000565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680954604051634698bf1160e01b81526001600160a01b0390911690634698bf1190612ea0908590859060040161592c565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161388e9190615947565b5f60405180830381855afa9150503d805f81146138c6576040519150601f19603f3d011682016040523d82523d5f602084013e6138cb565b606091505b5091509150811561391d5760408151106138fd57808060200190518101906138f3919061595d565b909450925061391d565b602081511061391d578080602001905181019061391a9190614f20565b93505b505094509492505050565b604051631315996960e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063262b32d2906044015b602060405180830381865af4158015613989573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139ad9190614f20565b90505b92915050565b6040516304d40eb160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906309a81d629060440161396e565b5f81604051602001613a1491815260200190565b604051602081830303815290604052805190602001209050919050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680a5460405163c3fa12bb60e01b81525f916001600160a01b03169063c3fa12bb90613a829086908690600401615992565b6020604051808303815f875af1158015613a9e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139ad9190614ed4565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb3590604401602060405180830381865af4158015613b22573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139ad9190614d74565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680a54604051638f997f6d60e01b81526001600160a01b0390911690638f997f6d90612ea090859085906004016159aa565b5f613ba0613573565b604051631954e65360e21b81526001600160c01b0319861660048201529091505f906001600160a01b03831690636553994c90602401602060405180830381865afa158015613bf1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c1591906153f5565b90508260ff168110613c2a578260ff16613c2c565b805b90505f5b818110156124c3576040516325fb9d0d60e11b81526001600160c01b031987166004820152602481018290525f906001600160a01b03851690634bf73a1a90604401602060405180830381865afa158015613c8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613cb19190614d74565b905060ff8681161015613dbb5760405163bd7d9d8560e01b81526001600160601b03821660048201525f906001600160a01b0386169063bd7d9d85906024015f60405180830381865afa158015613d0a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613d3191908101906159d9565b6101c001519050613db98273__$6efb0c97d21d9331e673f6fcd79a682b24$__638a37ab63848b6040518363ffffffff1660e01b8152600401613d75929190615b6c565b602060405180830381865af4158015613d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613db49190614d74565b613f9d565b505b613e2f8173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613e06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e2a9190614efa565b613ffa565b50613e398161408b565b50600101613c30565b60408051808201909152606081525f60208201525f5f80516020615c6383398151915290506040518060400160405280825f018054613e8090614d8f565b80601f0160208091040260200160405190810160405280929190818152602001828054613eac90614d8f565b8015613ef75780601f10613ece57610100808354040283529160200191613ef7565b820191905f5260205f20905b815481529060010190602001808311613eda57829003601f168201915b50505091835250505f60209091015292915050565b5f613f1f6001546001600160a01b031690565b6001600160a01b031663d39e604383613f36611522565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613f79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f969190614dd2565b5f613fb7838360405180602001604052805f8152506140e3565b9050613fd383828460405180602001604052805f81525061417d565b5f613fee84838560405180602001604052805f815250614205565b90506124c3848261429a565b5f5f80516020615ca3833981519152600c0154604051637baa9a0b60e01b81526001600160601b038516600482015264ffffffffff841660248201526001600160a01b0390911690637baa9a0b906044016020604051808303815f875af1158015614067573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139ad9190614efa565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680c54604051630155751d60e31b81526001600160601b03831660048201526001600160a01b0390911690630aaba8e890602401613000565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680d546040516374b775eb60e01b81525f916001600160a01b0316906374b775eb9061413690879087908790600401615b90565b6020604051808303815f875af1158015614152573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e379190615bc0565b9392505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680d54604051636e2cdce760e01b81526001600160a01b0390911690636e2cdce7906141d2908790879087908790600401615bdb565b5f604051808303815f87803b1580156141e9575f80fd5b505af11580156141fb573d5f803e3d5ffd5b5050505050505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680d54604051631e2992c760e11b81525f916001600160a01b031690633c53258e9061425a908890889088908890600401615bdb565b6020604051808303815f875af1158015614276573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5e9190614efa565b5f805f80516020615ca3833981519152600d015460405163137a92a760e01b81526001600160601b038616600482015264ffffffffff851660248201526001600160a01b039091169063137a92a79060440160408051808303815f875af1158015614307573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061432b9190615c15565b909590945092505050565b6040518060a001604052806005906020820280368337509192915050565b6040805161012081019091525f60e0820181815261010083019190915281908152602001614391604080518082019091525f808252602082015290565b81526020016143af604080518082019091525f808252602082015290565b81526020016143cd604080518082019091525f808252602082015290565b81526020016143eb604080518082019091525f808252602082015290565b8152602001614409604080518082019091525f808252602082015290565b8152602001614427604080518082019091525f808252602082015290565b905290565b5f6020828403121561443c575f80fd5b81356001600160e01b031981168114614176575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f60608301516144c9608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612e37610100840182614453565b602081525f6139ad6020830184614453565b6001600160a01b038116811461100b575f80fd5b64ffffffffff8116811461100b575f80fd5b6001600160601b038116811461100b575f80fd5b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b038111828210171561458f5761458f614559565b60405290565b60405161024081016001600160401b038111828210171561458f5761458f614559565b60405160e081016001600160401b038111828210171561458f5761458f614559565b60405161010081016001600160401b038111828210171561458f5761458f614559565b60405161020081016001600160401b038111828210171561458f5761458f614559565b604051601f8201601f191681016001600160401b038111828210171561464857614648614559565b604052919050565b5f805f805f806101608789031215614666575f80fd5b86356146718161451f565b955060208701359450604087013561468881614533565b9350606087013561469881614533565b925060808701356146a881614545565b915060bf870188136146b8575f80fd5b6146c260c0614620565b8061016089018a8111156146d4575f80fd5b60a08a015b818110156146f15780358452602093840193016146d9565b505080925050509295509295509295565b805f5b6005811015611eb55781516001600160601b0316845260209384019390910190600101614705565b6001600160601b038316815260c081016141766020830184614702565b5f6020828403121561475a575f80fd5b813561417681614545565b5f60208284031215614775575f80fd5b5035919050565b801515811461100b575f80fd5b5f60208284031215614799575f80fd5b81356141768161477c565b5f80604083850312156147b5575f80fd5b82356147c08161451f565b915060208301356147d081614545565b809150509250929050565b6001600160c01b03198116811461100b575f80fd5b5f6001600160401b0382111561480857614808614559565b50601f01601f191660200190565b5f82601f830112614825575f80fd5b8135614838614833826147f0565b614620565b81815284602083860101111561484c575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c0878903121561487d575f80fd5b863561488881614545565b95506020870135614898816147db565b945060408701356148a881614533565b935060608701356001600160401b038111156148c2575f80fd5b6148ce89828a01614816565b93505060808701356148df81614545565b915060a08701356148ef816147db565b809150509295509295509295565b6001600160401b038116811461100b575f80fd5b5f8060408385031215614922575f80fd5b823561492d816148fd565b915060208301356001600160401b03811115614947575f80fd5b61495385828601614816565b9150509250929050565b5f6020828403121561496d575f80fd5b81356141768161451f565b6001600160f81b03198116811461100b575f80fd5b60ff8116811461100b575f80fd5b5f805f805f60a086880312156149af575f80fd5b85356149ba816148fd565b945060208601356149ca816147db565b935060408601356149da81614978565b92506060860135915060808601356149f18161498d565b809150509295509295909350565b80516001600160a01b031682526020908101516001600160601b0316910152565b5f6101c082019050614a338284516149ff565b6020830151614a4560408401826149ff565b506040830151614a5860808401826149ff565b506060830151614a6b60c08401826149ff565b506080830151614a7f6101008401826149ff565b5060a0830151614a936101408401826149ff565b5060c0830151614aa76101808401826149ff565b5092915050565b602081525f825160406020840152614ac96060840182614453565b602094909401516001600160a01b0316604093909301929092525090919050565b5f805f8060808587031215614afd575f80fd5b8435614b088161451f565b93506020850135614b188161451f565b9250604085013591506060850135614b2f8161451f565b939692955090935050565b5f8151808452602084019350602083015f5b82811015614b735781516001600160601b0316865260209586019590910190600101614b4c565b5093949350505050565b602081528151151560208201526020820151151560408201525f6040830151614baa606084018215159052565b50606083015160ff8116608084015250608083015160ff811660a08401525060a08301516001600160601b03811660c08401525060c08301516001600160601b03811660e08401525060e083015161010080840152612e37610120840182614b3a565b61ffff8116811461100b575f80fd5b5f805f60608486031215614c2e575f80fd5b8335614c3981614545565b92506020840135614c4981614c0d565b91506040840135614c5981614545565b809150509250925092565b5f805f8060808587031215614c77575f80fd5b8435614c8281614545565b93506020850135614c92816147db565b92506040850135614ca281614533565b915060608501356001600160401b03811115614cbc575f80fd5b614cc887828801614816565b91505092959194509250565b5f60408284031215614ce4575f80fd5b614cec61456d565b90508135614cf98161451f565b81526020820135614d0981614545565b602082015292915050565b5f8060808385031215614d25575f80fd5b614d2f8484614cd4565b9150614d3e8460408501614cd4565b90509250929050565b5f60208284031215614d57575f80fd5b815162ffffff81168114614176575f80fd5b8051610f9981614545565b5f60208284031215614d84575f80fd5b815161417681614545565b600181811c90821680614da357607f821691505b602082108103614dc157634e487b7160e01b5f52602260045260245ffd5b50919050565b8051610f998161451f565b5f60208284031215614de2575f80fd5b81516141768161451f565b6001600160a01b03841681526001600160601b0383166020820152610100810160408201835f5b6006811015614e33578151835260209283019290910190600101614e14565b505050949350505050565b5f82601f830112614e4d575f80fd5b614e5760a0614620565b8060a0840185811115614e68575f80fd5b845b81811015614e8b578051614e7d81614545565b845260209384019301614e6a565b509095945050505050565b5f805f60e08486031215614ea8575f80fd5b83519250614eb98560208601614e3e565b915060c0840151614c5981614545565b8051610f99816147db565b5f60208284031215614ee4575f80fd5b8151614176816147db565b8051610f9981614533565b5f60208284031215614f0a575f80fd5b815161417681614533565b8051610f998161477c565b5f60208284031215614f30575f80fd5b81516141768161477c565b6001600160601b03881681526001600160401b0360c01b871660208201526001600160601b038616604082015264ffffffffff8516606082015260e060808201525f614f8a60e0830186614453565b6001600160601b039490941660a0830152506001600160c01b03199190911660c09091015295945050505050565b5f610240828403128015614fca575f80fd5b50614fd3614595565b614fdc83614d69565b8152614fea60208401614d69565b6020820152614ffb60408401614d69565b604082015261500c60608401614d69565b606082015261501d60808401614d69565b608082015261502e60a08401614d69565b60a082015261503f60c08401614d69565b60c082015261505060e08401614d69565b60e08201526150626101008401614d69565b6101008201526150756101208401614d69565b6101208201526150886101408401614d69565b61014082015261509b6101608401614d69565b6101608201526150ae6101808401614d69565b6101808201526150c16101a08401614d69565b6101a08201526150d46101c08401614d69565b6101c08201526150e76101e08401614d69565b6101e08201526150fa6102008401614d69565b61020082015261510d6102208401614d69565b6102208201529392505050565b8051610f998161498d565b5f615132614833846147f0565b9050828152838383011115615145575f80fd5b8282602083015e5f602084830101529392505050565b5f82601f83011261516a575f80fd5b6139ad83835160208501615125565b5f60208284031215615189575f80fd5b81516001600160401b0381111561519e575f80fd5b820160e081850312156151af575f80fd5b6151b76145b8565b6151c082614d69565b81526151ce60208301614d69565b60208201526151df6040830161511a565b60408201526151f060608301614f15565b606082015261520160808301614dc7565b608082015261521260a08301614dc7565b60a082015260c08201516001600160401b0381111561522f575f80fd5b61523b8682850161515b565b60c083015250949350505050565b8051610f9981614978565b5f6060828403128015615265575f80fd5b50604051606081016001600160401b038111828210171561528857615288614559565b6040528251615296816147db565b815260208301516152a681614978565b60208201526040928301519281019290925250919050565b5f602082840312156152ce575f80fd5b81516141768161498d565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156153285780850481111561530c5761530c6152d9565b600184161561531a57908102905b60019390931c9280026152f1565b935093915050565b5f8261533e575060016139b0565b8161534a57505f6139b0565b8160018114615360576002811461536a57615386565b60019150506139b0565b60ff84111561537b5761537b6152d9565b50506001821b6139b0565b5060208310610133831016604e8410600b84101617156153a9575081810a6139b0565b6153b55f1984846152ed565b805f19048211156153c8576153c86152d9565b029392505050565b5f6139ad60ff841683615330565b80820281158282048414176139b0576139b06152d9565b5f60208284031215615405575f80fd5b5051919050565b5f82601f83011261541b575f80fd5b81516001600160401b0381111561543457615434614559565b8060051b61544460208201614620565b9182526020818501810192908101908684111561545f575f80fd5b6020860192505b8383101561548a57825161547981614545565b825260209283019290910190615466565b9695505050505050565b5f602082840312156154a4575f80fd5b81516001600160401b038111156154b9575f80fd5b820161010081850312156154cb575f80fd5b6154d36145da565b6154dc82614f15565b81526154ea60208301614f15565b60208201526154fb60408301614f15565b604082015261550c6060830161511a565b606082015261551d6080830161511a565b608082015261552e60a08301614d69565b60a082015261553f60c08301614d69565b60c082015260e08201516001600160401b0381111561555c575f80fd5b6155688682850161540c565b60e083015250949350505050565b634e487b7160e01b5f52603260045260245ffd5b5f8060c0838503121561559b575f80fd5b82516155a681614545565b9150614d3e8460208501614e3e565b5f80858511156155c3575f80fd5b838611156155cf575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015614aa7576001600160e01b031960049490940360031b84901b1690921692915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60c08284031215615661575f80fd5b60405160c081016001600160401b038111828210171561568357615683614559565b806040525080915082518152602083015161569d81614533565b602082015260408301516156b081614533565b604082015260608301516156c381614545565b60608201526156d460808401615249565b608082015260a092830151920191909152919050565b5f805f61010084860312156156fd575f80fd5b8351615708816147db565b60208501519093506157198161477c565b91506157288560408601615651565b90509250925092565b5f60c0820190508251825264ffffffffff602084015116602083015264ffffffffff60408401511660408301526001600160601b03606084015116606083015260ff60f81b608084015116608083015260a083015160a083015292915050565b6001600160a01b03891681526001600160c01b031988811660208301526001600160601b038881166040840152878116606084015264ffffffffff87166080840152851660a0830152831660c082015261010060e082018190525f906157f990830184614453565b9a9950505050505050505050565b6001600160601b0385168152608060208201525f6158286080830186614453565b64ffffffffff8516604084015282810360608401526158478185614453565b979650505050505050565b5f60208284031215615862575f80fd5b8151614176816148fd565b5f8060e0838503121561587e575f80fd5b82516158898161477c565b9150614d3e8460208501615651565b5f602082840312156158a8575f80fd5b81516001600160401b038111156158bd575f80fd5b8201604081850312156158ce575f80fd5b6158d661456d565b81516001600160401b038111156158eb575f80fd5b8201601f810186136158fb575f80fd5b61590a86825160208401615125565b8252506020820151915061591d8261451f565b60208101919091529392505050565b6080810161593a82856149ff565b61417660408301846149ff565b5f82518060208501845e5f920191825250919050565b5f806040838503121561596e575f80fd5b82516159798161477c565b602084015190925063ffffffff811681146147d0575f80fd5b828152604060208201525f612e376040830184614453565b6001600160401b0360c01b83168152604060208201525f612e376040830184614453565b8051610f9981614c0d565b5f602082840312156159e9575f80fd5b81516001600160401b038111156159fe575f80fd5b82016102008185031215615a10575f80fd5b615a186145fd565b615a2182614d69565b8152615a2f60208301614d69565b6020820152615a4060408301614ec9565b6040820152615a5160608301614d69565b6060820152615a6260808301614d69565b6080820152615a7360a08301614ec9565b60a0820152615a8460c083016159ce565b60c0820152615a9560e083016159ce565b60e0820152615aa76101008301614d69565b610100820152615aba6101208301614d69565b610120820152615acd6101408301614eef565b610140820152615ae06101608301614eef565b610160820152615af36101808301614eef565b610180820152615b066101a08301614eef565b6101a08201526101c08201516001600160401b03811115615b25575f80fd5b615b318682850161515b565b6101c0830152506101e08201516001600160401b03811115615b51575f80fd5b615b5d8682850161515b565b6101e083015250949350505050565b604081525f615b7e6040830185614453565b905060ff831660208301529392505050565b6001600160601b03841681526001600160601b0383166020820152606060408201525f612f5e6060830184614453565b5f60208284031215615bd0575f80fd5b815161417681614c0d565b6001600160601b038516815261ffff841660208201526001600160601b0383166040820152608060608201525f61548a6080830184614453565b5f8060408385031215615c26575f80fd5b8251615c3181614545565b60208401519092506147d08161454556fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00ffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a000bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800a2646970667358221220ce806f053b8001d88029170094418cec63d361d30526d015baf8aa51d8b821c064736f6c634300081a0033",
1799
+ "deployedBytecode": "0x608060405234801561000f575f80fd5b5060043610610393575f3560e01c80636838b83e116101df578063b7b357ac11610109578063e1f216fa116100a9578063f0107c1511610079578063f0107c1514610868578063f179d06414610880578063f322c70a14610893578063f3e349ae146108a6575f80fd5b8063e1f216fa14610825578063e4a28a5214610838578063e9b2460c14610840578063ea15869f14610854575f80fd5b8063c108bd4c116100e4578063c108bd4c146107b5578063d3c576d8146107ca578063de7b5d14146107e2578063deaa59df14610812575f80fd5b8063b7b357ac1461077b578063be5c8f4414610793578063bf7e214f146107ad575f80fd5b80638b0af5d81161017f578063ad12ad601161014f578063ad12ad6014610739578063ada9652e1461074c578063b277d78014610760578063b423086c14610773575f80fd5b80638b0af5d8146106ea5780638fb36037146106f257806390edbd3514610713578063972e22eb14610728575f80fd5b80637a9e5e4b116101ba5780637a9e5e4b146106b2578063844e0f20146106c5578063893d20e8146106da5780638aea8f71146106e2575f80fd5b80636838b83e146106675780636bd1c0eb1461067a57806376b707b7146106aa575f80fd5b80632eb3e6f4116102c05780634cdabb161161026057806360426af31161023057806360426af3146106215780636078a3b214610634578063608a5f8d14610647578063644c45e01461065f575f80fd5b80634cdabb16146105e25780635349d2a8146105f55780635741e5e9146106085780635ab1bd5314610610575f80fd5b8063419197fe1161029b578063419197fe146105a057806343d752d3146105b35780634b396c4f146105bb5780634b9ddafe146105c8575f80fd5b80632eb3e6f4146105495780632f15ce0d1461057057806339cee40714610579575f80fd5b80631c6b21901161033657806321df0da71161030657806321df0da714610501578063223668441461050957806322f3e2d4146105115780632c41284a14610519575f80fd5b80631c6b21901461047f5780631e6239c6146104925780631eff4b22146104b7578063211e28b6146104ec575f80fd5b806313299604116103715780631329960414610409578063138461e01461042957806317d7de7c14610449578063191c64201461045e575f80fd5b806301ffc9a7146103975780630d8e6e2c146103d85780630fec111c146103f4575b5f80fd5b6103c36103a536600461442c565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b6103e06108b9565b60405162ffffff90911681526020016103cf565b6103fc610940565b6040516103cf9190614481565b610411610afa565b6040516001600160a01b0390911681526020016103cf565b610431610b62565b6040516001600160601b0390911681526020016103cf565b610451610b6c565b6040516103cf919061450d565b61047161046c366004614650565b610b7c565b6040516103cf92919061472d565b61043161048d36600461474a565b610f43565b6104a56104a0366004614765565b610f9e565b60405160ff90911681526020016103cf565b6104de7f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30081565b6040519081526020016103cf565b6104ff6104fa366004614789565b610fc7565b005b61041161100e565b6103c3611052565b6103c3611148565b6002546105339065010000000000900464ffffffffff1681565b60405164ffffffffff90911681526020016103cf565b6104de7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f0081565b6104de60055481565b6104de7f000000000000000000000000000000000000000000000000000000000000000081565b6104ff6105ae3660046147a4565b6111bf565b610411611212565b6006546104a59060ff1681565b60035461043190600160601b90046001600160601b031681565b600354610431906001600160601b031681565b610431610603366004614868565b611224565b6103c36112e6565b6001546001600160a01b0316610411565b6104ff61062f366004614911565b61139c565b61043161064236600461495d565b6113dd565b60015461053390600160c81b900464ffffffffff1681565b6104316114af565b6104ff61067536600461499b565b6114ca565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f02546001600160a01b0316610411565b6104a5611522565b6104ff6106c036600461495d565b61158a565b6106cd611610565b6040516103cf9190614a20565b6104116117e9565b6104ff61191a565b6104ff611ce7565b6106fa611db2565b6040516001600160e01b031990911681526020016103cf565b61071b611de7565b6040516103cf9190614aae565b6002546105339064ffffffffff1681565b6104ff610747366004614aea565b611e18565b6104de5f80516020615c4383398151915281565b6104ff61076e36600461474a565b611ebb565b61071b611f21565b60015461053390600160a01b900464ffffffffff1681565b60025461043190600160781b90046001600160601b031681565b610411611f3d565b6107bd611f58565b6040516103cf9190614b7d565b60025461053390600160501b900464ffffffffff1681565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f00546001600160a01b0316610411565b6104ff61082036600461495d565b6120ac565b6104ff610833366004614c1c565b6120f9565b6104a5603281565b6104de5f80516020615ca383398151915281565b6104de5f80516020615c6383398151915281565b600854600160601b90046001600160601b0316610431565b61043161088e366004614c64565b61210f565b6104ff6108a1366004614d14565b61212e565b600454610431906001600160601b031681565b604051632efe011360e01b8152600160048201525f60248201819052604482018190529073__$8eede297b65ed5a56eb3f84d8232ae93f5$__90632efe011390606401602060405180830381865af4158015610917573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b9190614d47565b905090565b6040805160e0810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820152907f6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa30090506040518060e0016040528073__$94a2c899be079b00d952d0d84fffaa5c34$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af41580156109ec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a109190614d74565b6001600160601b0390811682528354908116602083015260ff600160601b820481166040840152600160681b909104161515606082015230608082015260a001610a586117e9565b6001600160a01b03168152602001826001018054610a7590614d8f565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa190614d8f565b8015610aec5780601f10610ac357610100808354040283529160200191610aec565b820191905f5260205f20905b815481529060010190602001808311610acf57829003601f168201915b505050505081525091505090565b5f610b03611212565b6001600160a01b031663132996046040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b9190614dd2565b5f61093b3061217c565b6060610b76611de7565b51919050565b5f610b85614336565b610b91335b5f366123cd565b610b9d308787876124cb565b5f805f73__$6efb0c97d21d9331e673f6fcd79a682b24$__6355d166e13089896040518463ffffffff1660e01b8152600401610bdb93929190614ded565b60e060405180830381865af4158015610bf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1a9190614e96565b9250925092505f610c2e8b8b8b8588612b03565b9050610cf28c82848b6002600a9054906101000a900464ffffffffff1660085f9054906101000a90046001600160601b031673__$05887d5853069c88bcd4c0a2107db45f29$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610ca7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccb9190614ed4565b8f8b604051602001610cde92919061472d565b604051602081830303815290604052612cf4565b9550610d698673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63bc1b392d6040518163ffffffff1660e01b8152600401602060405180830381865af4158015610d3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d639190614efa565b8a612d9e565b50610d74868b612e3f565b600854604080516060810182526001600160c01b03198416815260208082018f905264ffffffffff8e16828401529151610f33936001600160601b03600160601b9091041692610df292910181516001600160c01b03191681526020808301519082015260409182015164ffffffffff169181019190915260600190565b60408051601f19818403018152908290526209629960e41b8252601e60048301529073__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__9063a5798b4e9064ffffffffff8f169073__$71e292c09eace9601b3e21e68a1278917a$__906296299090602401602060405180830381865af4158015610e72573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e969190614efa565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af4158015610edd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f019190614efa565b60405180604001604052806014815260200173666c6967687453746174757343616c6c6261636b60601b815250612ec9565b5050505050965096945050505050565b5f610f4d33610b8a565b610f556117e9565b6001600160a01b0316336001600160a01b031614610f8d5760405163086391f760e31b81523360048201526024015b60405180910390fd5b610f9682612f67565b90505b919050565b60078160068110610fad575f80fd5b60209182820401919006915054906101000a900460ff1681565b610fcf6117e9565b6001600160a01b0316336001600160a01b0316146110025760405163086391f760e31b8152336004820152602401610f84565b61100b81612fbf565b50565b5f611017611212565b6001600160a01b03166382bfefc86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b3e573d5f803e3d5ffd5b5f6110656001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa1580156110a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cd9190614d74565b6040516330b8415f60e01b81526001600160601b03909116600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611124573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b9190614f20565b5f611151611f3d565b60405163a166aa8960e01b81523060048201526001600160a01b03919091169063a166aa8990602401602060405180830381865afa158015611195573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111b99190614f20565b15905090565b6111c833610b8a565b6111d06117e9565b6001600160a01b0316336001600160a01b0316146112035760405163086391f760e31b8152336004820152602401610f84565b61120d8282613029565b505050565b5f61121b611de7565b60200151905090565b5f82601661123282826131aa565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680e545f906001600160a01b031663f4bfe53a61126c6114af565b8b8d8c8c8c8c6040518863ffffffff1660e01b81526004016112949796959493929190614f3b565b61024060405180830381865afa1580156112b0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d49190614fb8565b60a001519a9950505050505050505050565b5f6112ef611052565b15611373576001546001600160a01b03166040516308b09a5f60e41b81523060048201526001600160a01b039190911690638b09a5f0906024015f60405180830381865afa158015611343573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261136a9190810190615179565b60600151905090565b507fffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f015460ff1690565b6113a533610b8a565b5f818060200190518101906113ba9190615254565b80516020820151604083015160065493945061120d93879392919060ff166132de565b5f6113e733610b8a565b6113ef6117e9565b6001600160a01b0316336001600160a01b0316146114225760405163086391f760e31b8152336004820152602401610f84565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68095460405163303c51d960e11b81526001600160a01b03848116600483015290911690636078a3b2906024015b6020604051808303815f875af115801561148b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f969190614d74565b5f80516020615c43833981519152546001600160601b031690565b6114d333610b8a565b6114db6117e9565b6001600160a01b0316336001600160a01b03161461150e5760405163086391f760e31b8152336004820152602401610f84565b61151b85858585856132de565b5050505050565b5f61152b611f3d565b6001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611566573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093b91906152be565b33611593611f3d565b6001600160a01b0316816001600160a01b0316146115ce5760405162d1953b60e31b81526001600160a01b0382166004820152602401610f84565b816001600160a01b03163b5f03611603576040516361798f2f60e11b81526001600160a01b0383166004820152602401610f84565b61160c82613513565b5050565b611618614354565b5060408051610120810182527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6802546001600160a01b0380821660e084019081526001600160601b03600160a01b938490048116610100860152908452845180860186527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6803548084168252849004821660208083019190915280860191909152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680454808516825285900483168183015285870152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68055480851682528590048316818301526060860152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d68065480851682528590048316818301526080860152855180870187527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680754808516825285900483168183015260a086015285518087019096527f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680854928316865292909104169083015260c081019190915290565b5f805f80516020615c4383398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015611855573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118799190614f20565b15611904576001546001600160a01b03168154604051631c5da14d60e11b81526001600160601b0390911660048201526001600160a01b0391909116906338bb429a90602401602060405180830381865afa1580156118da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118fe9190614dd2565b91505090565b54600160601b90046001600160a01b0316919050565b61192333610b8a565b61192b6117e9565b6001600160a01b0316336001600160a01b03161461195e5760405163086391f760e31b8152336004820152602401610f84565b5f61196761100e565b90505f816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119ca91906152be565b6119d590600a6153d0565b905073__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd966119fc83600f6153de565b6040518263ffffffff1660e01b8152600401611a1a91815260200190565b602060405180830381865af4158015611a35573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a599190614d74565b600280546001600160601b0392909216600160781b026bffffffffffffffffffffffff60781b1990921691909117905573__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96611aae8360c86153de565b6040518263ffffffff1660e01b8152600401611acc91815260200190565b602060405180830381865af4158015611ae7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0b9190614d74565b600380546001600160601b0319166001600160601b039290921691909117905573__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96611b51836101f46153de565b6040518263ffffffff1660e01b8152600401611b6f91815260200190565b602060405180830381865af4158015611b8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bae9190614d74565b600380546bffffffffffffffffffffffff60601b1916600160601b6001600160601b039384168102919091179182905560405163046e44af60e11b81529104909116600482015273__$3bac17678db7ae928afa209f2f44deec9c$__90634c41dd969082906308dc895e90602401602060405180830381865af4158015611c37573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c5b91906153f5565b611c669060036153de565b6040518263ffffffff1660e01b8152600401611c8491815260200190565b602060405180830381865af4158015611c9f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cc39190614d74565b600480546001600160601b0319166001600160601b03929092169190911790555050565b611cef613573565b6001600160a01b0316630b5d931c611d056114af565b6040516001600160e01b031960e084901b1681526001600160601b0390911660048201526024015f60405180830381865afa158015611d46573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d6d9190810190615494565b60e001515f81518110611d8257611d82615576565b60200260200101516008600c6101000a8154816001600160601b0302191690836001600160601b03160217905550565b5f80516020615c8383398151915280545f9190600160a01b900460ff16611dd9575f6118fe565b638fb3603760e01b91505090565b60408051808201909152606081525f6020820152611e03611052565b15611e105761093b6135a1565b61093b611f21565b6001546001600160a01b03166001600160a01b031663120726c36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e839190614dd2565b6001600160a01b0316336001600160a01b031614611eb55760405162f0630960e01b8152336004820152602401610f84565b50505050565b611ec433610b8a565b611ecc6117e9565b6001600160a01b0316336001600160a01b031614611eff5760405163086391f760e31b8152336004820152602401610f84565b600880546001600160601b0319166001600160601b0392909216919091179055565b60408051808201909152606081525f602082015261093b6135a1565b5f80516020615c83833981519152546001600160a01b031690565b60408051610100810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c082019290925260e08101919091525f80516020615ca3833981519152604080516101008082018352835460ff808216151584529181048216151560208085019190915262010000820483161515848601526301000000820483166060850152640100000000820490921660808401526001600160601b03650100000000008204811660a0850152600160881b9091041660c083015260018401805484518184028101840190955280855292949360e0860193909283018282801561209e57602002820191905f5260205f20905f905b82829054906101000a90046001600160601b03166001600160601b0316815260200190600c0190602082600b0104928301926001038202915080841161205b5790505b505050505081525050905090565b6120b533610b8a565b6120bd6117e9565b6001600160a01b0316336001600160a01b0316146120f05760405163086391f760e31b8152336004820152602401610f84565b61100b8161375a565b61210233610b8a565b82601561151b82826131aa565b5f81806020019051810190612124919061558a565b5095945050505050565b6121366117e9565b6001600160a01b0316336001600160a01b0316146121695760405163086391f760e31b8152336004820152602401610f84565b61217233610b8a565b61160c82826137cf565b5f805f80516020615c4383398151915280546040516330b8415f60e01b81526001600160601b03909116600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af41580156121e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061220c9190614f20565b156122385780546040516301ab8b6760e21b81526001600160601b039091166004820152602401610f84565b6001546001600160a01b031660405163c3c5a54760e01b81526001600160a01b038581166004830152919091169063c3c5a54790602401602060405180830381865afa15801561228a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122ae9190614f20565b6122d65760405163b9304b0d60e01b81526001600160a01b0384166004820152602401610f84565b6001546001600160a01b0316604051632f2a35f760e11b81526001600160a01b0385811660048301529190911690635e546bee90602401602060405180830381865afa158015612328573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061234c9190614d74565b81546001600160601b0319166001600160601b039190911690811782557f88857b75cbef7f257c9d5a473e28aaf6a91cc28f717f60f2cda3bcf5623d7b54906123936117e9565b604080516001600160601b0390931683526001600160a01b0390911660208301520160405180910390a1546001600160601b031692915050565b5f80516020615c838339815191525f806124056123e8611f3d565b87306123f760045f8a8c6155b5565b612400916155dc565b613820565b91509150816124c35763ffffffff8116156124a057825460ff60a01b1916600160a01b178355612433611f3d565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161246293929190615612565b5f604051808303815f87803b158015612479575f80fd5b505af115801561248b573d5f803e3d5ffd5b5050845460ff60a01b19168555506124c39050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610f84565b505050505050565b61253481856001600160a01b031663be5c8f446040518163ffffffff1660e01b8152600401602060405180830381865afa15801561250b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061252f9190614d74565b613928565b6125805760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4644442d3030313a494e56414c49445f5052454d49554d0000006044820152606401610f84565b6125e981856001600160a01b0316634cdabb166040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e49190614d74565b6139b6565b6126355760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4644442d3030323a494e56414c49445f5052454d49554d0000006044820152606401610f84565b64ffffffffff808416908316116126a25760405162461bcd60e51b815260206004820152602b60248201527f4552524f523a4644442d3030333a4152524956414c5f4245464f52455f44455060448201526a4152545552455f54494d4560a81b6064820152608401610f84565b6127a5828464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63a5798b4e9091886001600160a01b031663972e22eb6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612706573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061272a9190614efa565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af4158015612771573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127959190614efa565b64ffffffffff9081169116111590565b6128065760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4644442d3030343a494e56414c49445f4152524956414c2f444560448201526b504152545552455f54494d4560a01b6064820152608401610f84565b61297373__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612850573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128749190614efa565b8464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__6337cb29fe9091886001600160a01b031663608a5f8d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128f89190614efa565b6040516001600160e01b031960e085901b16815264ffffffffff928316600482015291166024820152604401602060405180830381865af415801561293f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129639190614efa565b64ffffffffff9081169116101590565b6129d45760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4644442d3030353a494e56414c49445f4152524956414c2f444560448201526b504152545552455f54494d4560a01b6064820152608401610f84565b612aa273__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015612a1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a429190614efa565b8464ffffffffff1673__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__6337cb29fe9091886001600160a01b031663b7b357ac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612706573d5f803e3d5ffd5b611eb55760405162461bcd60e51b815260206004820152602c60248201527f4552524f523a4644442d3031323a494e56414c49445f4152524956414c2f444560448201526b504152545552455f54494d4560a01b6064820152608401610f84565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a08101829052819073__$6efb0c97d21d9331e673f6fcd79a682b24$__6381def949612b57613573565b612b5f6114af565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b03166024820152604481018b905264ffffffffff808b1660648301528916608482015260a40161010060405180830381865af4158015612bcc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bf091906156ea565b9194509250905081612c34575f612c0689613a00565b9050612c318183604051602001612c1d9190615731565b604051602081830303815290604052613a31565b50505b612c56612c45826060015187613ac2565b6004546001600160601b03166139b6565b612ca25760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4644442d3030363a434c55535445525f5249534b0000000000006044820152606401610f84565b612cb0816060015186613ac2565b6001600160601b03166060820152604051612ce9908490612cd5908490602001615731565b604051602081830303815290604052613b46565b505095945050505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680b54604051639a83274160e01b81525f916001600160a01b031690639a83274190612d51908c908c908c908c908c908c908c908c90600401615791565b6020604051808303815f875af1158015612d6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d919190614d74565b9998505050505050505050565b5f5f80516020615ca3833981519152600c015460405163d22413e560e01b81526001600160601b03808716600483015264ffffffffff86166024830152841660448201526001600160a01b039091169063d22413e5906064016020604051808303815f875af1158015612e13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e379190614d74565b949350505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680c54604051635dfddfdd60e11b81526001600160601b038416600482015264ffffffffff831660248201526001600160a01b039091169063bbfbbfba906044015b5f604051808303815f87803b158015612eb7575f80fd5b505af11580156124c3573d5f803e3d5ffd5b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f045460405163f684566360e01b81525f916001600160a01b03169063f684566390612f1e908890889088908890600401615807565b6020604051808303815f875af1158015612f3a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5e9190615852565b95945050505050565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f03546040516301c6b21960e41b81526001600160601b03831660048201525f916001600160a01b031690631c6b21909060240161146f565b5f80516020615c638339815191526001015460405163108f145b60e11b815282151560048201526101009091046001600160a01b03169063211e28b6906024015b5f604051808303815f87803b158015613017575f80fd5b505af115801561151b573d5f803e3d5ffd5b5f73__$3bac17678db7ae928afa209f2f44deec9c$__634c41dd96846001600160a01b031663dd62ed3e61305b611212565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa1580156130a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130c791906153f5565b6040518263ffffffff1660e01b81526004016130e591815260200190565b602060405180830381865af4158015613100573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131249190614d74565b90505f80516020615c63833981519152600101546040516320c8cbff60e11b81526001600160a01b0385811660048301526001600160601b03851660248301526101009092049091169063419197fe906044015f604051808303815f87803b15801561318e575f80fd5b505af11580156131a0573d5f803e3d5ffd5b5050505092915050565b60405163037c8cb160e51b815260ff8216600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af41580156131fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061321e9190614f20565b806132ac57506001546001600160a01b0316604051635b12715d60e11b81526001600160601b038416600482015260ff831660248201526001600160a01b03919091169063b624e2ba90604401602060405180830381865afa158015613286573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132aa9190614f20565b155b1561160c5760405163d711af7560e01b81526001600160601b038316600482015260ff82166024820152604401610f84565b5f6132e7613573565b90505f8073__$6efb0c97d21d9331e673f6fcd79a682b24$__6319b9d5ba8461330e6114af565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526001600160601b031660248201526001600160c01b03198a16604482015260640160e060405180830381865af415801561336e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613392919061586d565b91509150816133ee57604080516001600160401b038a1681526001600160c01b0319891660208201527fdad11192f5a8a0528fe4f5bbec7b626311293b772ab7a328a18b6cc8e384e37b910160405180910390a150505061151b565b604051621600c960ea1b81526001600160401b03891660048201526001600160c01b0319881660248201526001600160f81b031987166044820152606481018690525f9073__$6efb0c97d21d9331e673f6fcd79a682b24$__90635803240090608401602060405180830381865af415801561346c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061349091906152be565b905061349d888287613b97565b604080516001600160401b038b1681526001600160c01b03198a1660208201526001600160f81b03198916818301526060810188905260ff8316608082015290517f6088f5fc3484ec0fdf466ecfcea487e5566da0db0bda62b4dbeb3ed86fd3ef0b9181900360a00190a1505050505050505050565b5f80516020615c8383398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b7fffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f01546001600160a01b031690565b60408051808201909152606081525f60208201525f6135c86001546001600160a01b031690565b604051632f2a35f760e11b81523060048201526001600160a01b039190911690635e546bee90602401602060405180830381865afa15801561360c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136309190614d74565b6040516330b8415f60e01b81526001600160601b038216600482015290915073__$94a2c899be079b00d952d0d84fffaa5c34$__906330b8415f90602401602060405180830381865af4158015613689573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136ad9190614f20565b15613752576136ba613573565b6001600160a01b031663f0ea17c36136d06114af565b6040516001600160e01b031960e084901b1681526001600160601b0390911660048201526024015f60405180830381865afa158015613711573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526137389190810190615898565b60208101519092506001600160a01b031615613752575090565b6118fe613e42565b6137626117e9565b6001600160a01b0316336001600160a01b0316146137955760405163086391f760e31b8152336004820152602401610f84565b61379f600b613f0c565b60405163deaa59df60e01b81526001600160a01b038381166004830152919091169063deaa59df90602401613000565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680954604051634698bf1160e01b81526001600160a01b0390911690634698bf1190612ea0908590859060040161592c565b6040516001600160a01b03848116602483015283811660448301526001600160e01b0319831660648301525f9182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b1790525161388e9190615947565b5f60405180830381855afa9150503d805f81146138c6576040519150601f19603f3d011682016040523d82523d5f602084013e6138cb565b606091505b5091509150811561391d5760408151106138fd57808060200190518101906138f3919061595d565b909450925061391d565b602081511061391d578080602001905181019061391a9190614f20565b93505b505094509492505050565b604051631315996960e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063262b32d2906044015b602060405180830381865af4158015613989573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139ad9190614f20565b90505b92915050565b6040516304d40eb160e11b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__906309a81d629060440161396e565b5f81604051602001613a1491815260200190565b604051602081830303815290604052805190602001209050919050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680a5460405163c3fa12bb60e01b81525f916001600160a01b03169063c3fa12bb90613a829086908690600401615992565b6020604051808303815f875af1158015613a9e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139ad9190614ed4565b60405163274acb3560e01b81526001600160601b038084166004830152821660248201525f9073__$3bac17678db7ae928afa209f2f44deec9c$__9063274acb3590604401602060405180830381865af4158015613b22573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139ad9190614d74565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680a54604051638f997f6d60e01b81526001600160a01b0390911690638f997f6d90612ea090859085906004016159aa565b5f613ba0613573565b604051631954e65360e21b81526001600160c01b0319861660048201529091505f906001600160a01b03831690636553994c90602401602060405180830381865afa158015613bf1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c1591906153f5565b90508260ff168110613c2a578260ff16613c2c565b805b90505f5b818110156124c3576040516325fb9d0d60e11b81526001600160c01b031987166004820152602481018290525f906001600160a01b03851690634bf73a1a90604401602060405180830381865afa158015613c8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613cb19190614d74565b905060ff8681161015613dbb5760405163bd7d9d8560e01b81526001600160601b03821660048201525f906001600160a01b0386169063bd7d9d85906024015f60405180830381865afa158015613d0a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052613d3191908101906159d9565b6101c001519050613db98273__$6efb0c97d21d9331e673f6fcd79a682b24$__638a37ab63848b6040518363ffffffff1660e01b8152600401613d75929190615b6c565b602060405180830381865af4158015613d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613db49190614d74565b613f9d565b505b613e2f8173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__639fa6a6e36040518163ffffffff1660e01b8152600401602060405180830381865af4158015613e06573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e2a9190614efa565b613ffa565b50613e398161408b565b50600101613c30565b60408051808201909152606081525f60208201525f5f80516020615c6383398151915290506040518060400160405280825f018054613e8090614d8f565b80601f0160208091040260200160405190810160405280929190818152602001828054613eac90614d8f565b8015613ef75780601f10613ece57610100808354040283529160200191613ef7565b820191905f5260205f20905b815481529060010190602001808311613eda57829003601f168201915b50505091835250505f60209091015292915050565b5f613f1f6001546001600160a01b031690565b6001600160a01b031663d39e604383613f36611522565b6040516001600160e01b031960e085901b16815260ff928316600482015291166024820152604401602060405180830381865afa158015613f79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f969190614dd2565b5f613fb7838360405180602001604052805f8152506140e3565b9050613fd383828460405180602001604052805f81525061417d565b5f613fee84838560405180602001604052805f815250614205565b90506124c3848261429a565b5f5f80516020615ca3833981519152600c0154604051637baa9a0b60e01b81526001600160601b038516600482015264ffffffffff841660248201526001600160a01b0390911690637baa9a0b906044016020604051808303815f875af1158015614067573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139ad9190614efa565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680c54604051630155751d60e31b81526001600160601b03831660048201526001600160a01b0390911690630aaba8e890602401613000565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680d546040516374b775eb60e01b81525f916001600160a01b0316906374b775eb9061413690879087908790600401615b90565b6020604051808303815f875af1158015614152573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e379190615bc0565b9392505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680d54604051636e2cdce760e01b81526001600160a01b0390911690636e2cdce7906141d2908790879087908790600401615bdb565b5f604051808303815f87803b1580156141e9575f80fd5b505af11580156141fb573d5f803e3d5ffd5b5050505050505050565b7f0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d680d54604051631e2992c760e11b81525f916001600160a01b031690633c53258e9061425a908890889088908890600401615bdb565b6020604051808303815f875af1158015614276573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f5e9190614efa565b5f805f80516020615ca3833981519152600d015460405163137a92a760e01b81526001600160601b038616600482015264ffffffffff851660248201526001600160a01b039091169063137a92a79060440160408051808303815f875af1158015614307573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061432b9190615c15565b909590945092505050565b6040518060a001604052806005906020820280368337509192915050565b6040805161012081019091525f60e0820181815261010083019190915281908152602001614391604080518082019091525f808252602082015290565b81526020016143af604080518082019091525f808252602082015290565b81526020016143cd604080518082019091525f808252602082015290565b81526020016143eb604080518082019091525f808252602082015290565b8152602001614409604080518082019091525f808252602082015290565b8152602001614427604080518082019091525f808252602082015290565b905290565b5f6020828403121561443c575f80fd5b81356001600160e01b031981168114614176575f80fd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081526001600160601b0382511660208201526001600160601b03602083015116604082015260ff60408301511660608201525f60608301516144c9608084018215159052565b5060808301516001600160a01b03811660a08401525060a08301516001600160a01b03811660c08401525060c083015160e080840152612e37610100840182614453565b602081525f6139ad6020830184614453565b6001600160a01b038116811461100b575f80fd5b64ffffffffff8116811461100b575f80fd5b6001600160601b038116811461100b575f80fd5b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b038111828210171561458f5761458f614559565b60405290565b60405161024081016001600160401b038111828210171561458f5761458f614559565b60405160e081016001600160401b038111828210171561458f5761458f614559565b60405161010081016001600160401b038111828210171561458f5761458f614559565b60405161020081016001600160401b038111828210171561458f5761458f614559565b604051601f8201601f191681016001600160401b038111828210171561464857614648614559565b604052919050565b5f805f805f806101608789031215614666575f80fd5b86356146718161451f565b955060208701359450604087013561468881614533565b9350606087013561469881614533565b925060808701356146a881614545565b915060bf870188136146b8575f80fd5b6146c260c0614620565b8061016089018a8111156146d4575f80fd5b60a08a015b818110156146f15780358452602093840193016146d9565b505080925050509295509295509295565b805f5b6005811015611eb55781516001600160601b0316845260209384019390910190600101614705565b6001600160601b038316815260c081016141766020830184614702565b5f6020828403121561475a575f80fd5b813561417681614545565b5f60208284031215614775575f80fd5b5035919050565b801515811461100b575f80fd5b5f60208284031215614799575f80fd5b81356141768161477c565b5f80604083850312156147b5575f80fd5b82356147c08161451f565b915060208301356147d081614545565b809150509250929050565b6001600160c01b03198116811461100b575f80fd5b5f6001600160401b0382111561480857614808614559565b50601f01601f191660200190565b5f82601f830112614825575f80fd5b8135614838614833826147f0565b614620565b81815284602083860101111561484c575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f8060c0878903121561487d575f80fd5b863561488881614545565b95506020870135614898816147db565b945060408701356148a881614533565b935060608701356001600160401b038111156148c2575f80fd5b6148ce89828a01614816565b93505060808701356148df81614545565b915060a08701356148ef816147db565b809150509295509295509295565b6001600160401b038116811461100b575f80fd5b5f8060408385031215614922575f80fd5b823561492d816148fd565b915060208301356001600160401b03811115614947575f80fd5b61495385828601614816565b9150509250929050565b5f6020828403121561496d575f80fd5b81356141768161451f565b6001600160f81b03198116811461100b575f80fd5b60ff8116811461100b575f80fd5b5f805f805f60a086880312156149af575f80fd5b85356149ba816148fd565b945060208601356149ca816147db565b935060408601356149da81614978565b92506060860135915060808601356149f18161498d565b809150509295509295909350565b80516001600160a01b031682526020908101516001600160601b0316910152565b5f6101c082019050614a338284516149ff565b6020830151614a4560408401826149ff565b506040830151614a5860808401826149ff565b506060830151614a6b60c08401826149ff565b506080830151614a7f6101008401826149ff565b5060a0830151614a936101408401826149ff565b5060c0830151614aa76101808401826149ff565b5092915050565b602081525f825160406020840152614ac96060840182614453565b602094909401516001600160a01b0316604093909301929092525090919050565b5f805f8060808587031215614afd575f80fd5b8435614b088161451f565b93506020850135614b188161451f565b9250604085013591506060850135614b2f8161451f565b939692955090935050565b5f8151808452602084019350602083015f5b82811015614b735781516001600160601b0316865260209586019590910190600101614b4c565b5093949350505050565b602081528151151560208201526020820151151560408201525f6040830151614baa606084018215159052565b50606083015160ff8116608084015250608083015160ff811660a08401525060a08301516001600160601b03811660c08401525060c08301516001600160601b03811660e08401525060e083015161010080840152612e37610120840182614b3a565b61ffff8116811461100b575f80fd5b5f805f60608486031215614c2e575f80fd5b8335614c3981614545565b92506020840135614c4981614c0d565b91506040840135614c5981614545565b809150509250925092565b5f805f8060808587031215614c77575f80fd5b8435614c8281614545565b93506020850135614c92816147db565b92506040850135614ca281614533565b915060608501356001600160401b03811115614cbc575f80fd5b614cc887828801614816565b91505092959194509250565b5f60408284031215614ce4575f80fd5b614cec61456d565b90508135614cf98161451f565b81526020820135614d0981614545565b602082015292915050565b5f8060808385031215614d25575f80fd5b614d2f8484614cd4565b9150614d3e8460408501614cd4565b90509250929050565b5f60208284031215614d57575f80fd5b815162ffffff81168114614176575f80fd5b8051610f9981614545565b5f60208284031215614d84575f80fd5b815161417681614545565b600181811c90821680614da357607f821691505b602082108103614dc157634e487b7160e01b5f52602260045260245ffd5b50919050565b8051610f998161451f565b5f60208284031215614de2575f80fd5b81516141768161451f565b6001600160a01b03841681526001600160601b0383166020820152610100810160408201835f5b6006811015614e33578151835260209283019290910190600101614e14565b505050949350505050565b5f82601f830112614e4d575f80fd5b614e5760a0614620565b8060a0840185811115614e68575f80fd5b845b81811015614e8b578051614e7d81614545565b845260209384019301614e6a565b509095945050505050565b5f805f60e08486031215614ea8575f80fd5b83519250614eb98560208601614e3e565b915060c0840151614c5981614545565b8051610f99816147db565b5f60208284031215614ee4575f80fd5b8151614176816147db565b8051610f9981614533565b5f60208284031215614f0a575f80fd5b815161417681614533565b8051610f998161477c565b5f60208284031215614f30575f80fd5b81516141768161477c565b6001600160601b03881681526001600160401b0360c01b871660208201526001600160601b038616604082015264ffffffffff8516606082015260e060808201525f614f8a60e0830186614453565b6001600160601b039490941660a0830152506001600160c01b03199190911660c09091015295945050505050565b5f610240828403128015614fca575f80fd5b50614fd3614595565b614fdc83614d69565b8152614fea60208401614d69565b6020820152614ffb60408401614d69565b604082015261500c60608401614d69565b606082015261501d60808401614d69565b608082015261502e60a08401614d69565b60a082015261503f60c08401614d69565b60c082015261505060e08401614d69565b60e08201526150626101008401614d69565b6101008201526150756101208401614d69565b6101208201526150886101408401614d69565b61014082015261509b6101608401614d69565b6101608201526150ae6101808401614d69565b6101808201526150c16101a08401614d69565b6101a08201526150d46101c08401614d69565b6101c08201526150e76101e08401614d69565b6101e08201526150fa6102008401614d69565b61020082015261510d6102208401614d69565b6102208201529392505050565b8051610f998161498d565b5f615132614833846147f0565b9050828152838383011115615145575f80fd5b8282602083015e5f602084830101529392505050565b5f82601f83011261516a575f80fd5b6139ad83835160208501615125565b5f60208284031215615189575f80fd5b81516001600160401b0381111561519e575f80fd5b820160e081850312156151af575f80fd5b6151b76145b8565b6151c082614d69565b81526151ce60208301614d69565b60208201526151df6040830161511a565b60408201526151f060608301614f15565b606082015261520160808301614dc7565b608082015261521260a08301614dc7565b60a082015260c08201516001600160401b0381111561522f575f80fd5b61523b8682850161515b565b60c083015250949350505050565b8051610f9981614978565b5f6060828403128015615265575f80fd5b50604051606081016001600160401b038111828210171561528857615288614559565b6040528251615296816147db565b815260208301516152a681614978565b60208201526040928301519281019290925250919050565b5f602082840312156152ce575f80fd5b81516141768161498d565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156153285780850481111561530c5761530c6152d9565b600184161561531a57908102905b60019390931c9280026152f1565b935093915050565b5f8261533e575060016139b0565b8161534a57505f6139b0565b8160018114615360576002811461536a57615386565b60019150506139b0565b60ff84111561537b5761537b6152d9565b50506001821b6139b0565b5060208310610133831016604e8410600b84101617156153a9575081810a6139b0565b6153b55f1984846152ed565b805f19048211156153c8576153c86152d9565b029392505050565b5f6139ad60ff841683615330565b80820281158282048414176139b0576139b06152d9565b5f60208284031215615405575f80fd5b5051919050565b5f82601f83011261541b575f80fd5b81516001600160401b0381111561543457615434614559565b8060051b61544460208201614620565b9182526020818501810192908101908684111561545f575f80fd5b6020860192505b8383101561548a57825161547981614545565b825260209283019290910190615466565b9695505050505050565b5f602082840312156154a4575f80fd5b81516001600160401b038111156154b9575f80fd5b820161010081850312156154cb575f80fd5b6154d36145da565b6154dc82614f15565b81526154ea60208301614f15565b60208201526154fb60408301614f15565b604082015261550c6060830161511a565b606082015261551d6080830161511a565b608082015261552e60a08301614d69565b60a082015261553f60c08301614d69565b60c082015260e08201516001600160401b0381111561555c575f80fd5b6155688682850161540c565b60e083015250949350505050565b634e487b7160e01b5f52603260045260245ffd5b5f8060c0838503121561559b575f80fd5b82516155a681614545565b9150614d3e8460208501614e3e565b5f80858511156155c3575f80fd5b838611156155cf575f80fd5b5050820193919092039150565b80356001600160e01b03198116906004841015614aa7576001600160e01b031960049490940360031b84901b1690921692915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b5f60c08284031215615661575f80fd5b60405160c081016001600160401b038111828210171561568357615683614559565b806040525080915082518152602083015161569d81614533565b602082015260408301516156b081614533565b604082015260608301516156c381614545565b60608201526156d460808401615249565b608082015260a092830151920191909152919050565b5f805f61010084860312156156fd575f80fd5b8351615708816147db565b60208501519093506157198161477c565b91506157288560408601615651565b90509250925092565b5f60c0820190508251825264ffffffffff602084015116602083015264ffffffffff60408401511660408301526001600160601b03606084015116606083015260ff60f81b608084015116608083015260a083015160a083015292915050565b6001600160a01b03891681526001600160c01b031988811660208301526001600160601b038881166040840152878116606084015264ffffffffff87166080840152851660a0830152831660c082015261010060e082018190525f906157f990830184614453565b9a9950505050505050505050565b6001600160601b0385168152608060208201525f6158286080830186614453565b64ffffffffff8516604084015282810360608401526158478185614453565b979650505050505050565b5f60208284031215615862575f80fd5b8151614176816148fd565b5f8060e0838503121561587e575f80fd5b82516158898161477c565b9150614d3e8460208501615651565b5f602082840312156158a8575f80fd5b81516001600160401b038111156158bd575f80fd5b8201604081850312156158ce575f80fd5b6158d661456d565b81516001600160401b038111156158eb575f80fd5b8201601f810186136158fb575f80fd5b61590a86825160208401615125565b8252506020820151915061591d8261451f565b60208101919091529392505050565b6080810161593a82856149ff565b61417660408301846149ff565b5f82518060208501845e5f920191825250919050565b5f806040838503121561596e575f80fd5b82516159798161477c565b602084015190925063ffffffff811681146147d0575f80fd5b828152604060208201525f612e376040830184614453565b6001600160401b0360c01b83168152604060208201525f612e376040830184614453565b8051610f9981614c0d565b5f602082840312156159e9575f80fd5b81516001600160401b038111156159fe575f80fd5b82016102008185031215615a10575f80fd5b615a186145fd565b615a2182614d69565b8152615a2f60208301614d69565b6020820152615a4060408301614ec9565b6040820152615a5160608301614d69565b6060820152615a6260808301614d69565b6080820152615a7360a08301614ec9565b60a0820152615a8460c083016159ce565b60c0820152615a9560e083016159ce565b60e0820152615aa76101008301614d69565b610100820152615aba6101208301614d69565b610120820152615acd6101408301614eef565b610140820152615ae06101608301614eef565b610160820152615af36101808301614eef565b610180820152615b066101a08301614eef565b6101a08201526101c08201516001600160401b03811115615b25575f80fd5b615b318682850161515b565b6101c0830152506101e08201516001600160401b03811115615b51575f80fd5b615b5d8682850161515b565b6101e083015250949350505050565b604081525f615b7e6040830185614453565b905060ff831660208301529392505050565b6001600160601b03841681526001600160601b0383166020820152606060408201525f612f5e6060830184614453565b5f60208284031215615bd0575f80fd5b815161417681614c0d565b6001600160601b038516815261ffff841660208201526001600160601b0383166040820152608060608201525f61548a6080830184614453565b5f8060408385031215615c26575f80fd5b8251615c3181614545565b60208401519092506147d08161454556fe07ebcf49758b6ed3af50fa146bec0abe157c0218fe65dc0874c286e9d5da4f00ffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00f3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a000bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800a2646970667358221220ce806f053b8001d88029170094418cec63d361d30526d015baf8aa51d8b821c064736f6c634300081a0033",
1800
+ "linkReferences": {
1801
+ "contracts/examples/flight/FlightLib.sol": {
1802
+ "FlightLib": [
1803
+ {
1804
+ "length": 20,
1805
+ "start": 10181
1806
+ },
1807
+ {
1808
+ "length": 20,
1809
+ "start": 18266
1810
+ },
1811
+ {
1812
+ "length": 20,
1813
+ "start": 20240
1814
+ },
1815
+ {
1816
+ "length": 20,
1817
+ "start": 20567
1818
+ },
1819
+ {
1820
+ "length": 20,
1821
+ "start": 22881
1822
+ }
1823
+ ]
1824
+ },
1825
+ "contracts/shared/ContractLib.sol": {
1826
+ "ContractLib": [
1827
+ {
1828
+ "length": 20,
1829
+ "start": 4780
1830
+ },
1831
+ {
1832
+ "length": 20,
1833
+ "start": 5362
1834
+ }
1835
+ ]
1836
+ },
1837
+ "contracts/type/Amount.sol": {
1838
+ "AmountLib": [
1839
+ {
1840
+ "length": 20,
1841
+ "start": 13820
1842
+ },
1843
+ {
1844
+ "length": 20,
1845
+ "start": 13998
1846
+ },
1847
+ {
1848
+ "length": 20,
1849
+ "start": 14160
1850
+ },
1851
+ {
1852
+ "length": 20,
1853
+ "start": 14362
1854
+ },
1855
+ {
1856
+ "length": 20,
1857
+ "start": 19535
1858
+ },
1859
+ {
1860
+ "length": 20,
1861
+ "start": 21875
1862
+ },
1863
+ {
1864
+ "length": 20,
1865
+ "start": 22017
1866
+ },
1867
+ {
1868
+ "length": 20,
1869
+ "start": 22285
1870
+ }
1871
+ ]
1872
+ },
1873
+ "contracts/type/Fee.sol": {
1874
+ "FeeLib": [
1875
+ {
1876
+ "length": 20,
1877
+ "start": 1459
1878
+ },
1879
+ {
1880
+ "length": 20,
1881
+ "start": 1570
1882
+ },
1883
+ {
1884
+ "length": 20,
1885
+ "start": 1681
1886
+ },
1887
+ {
1888
+ "length": 20,
1889
+ "start": 1792
1890
+ },
1891
+ {
1892
+ "length": 20,
1893
+ "start": 1903
1894
+ },
1895
+ {
1896
+ "length": 20,
1897
+ "start": 2014
1898
+ },
1899
+ {
1900
+ "length": 20,
1901
+ "start": 2125
1902
+ }
1903
+ ]
1904
+ },
1905
+ "contracts/type/NftId.sol": {
1906
+ "NftIdLib": [
1907
+ {
1908
+ "length": 20,
1909
+ "start": 1160
1910
+ },
1911
+ {
1912
+ "length": 20,
1913
+ "start": 1281
1914
+ },
1915
+ {
1916
+ "length": 20,
1917
+ "start": 9674
1918
+ },
1919
+ {
1920
+ "length": 20,
1921
+ "start": 11535
1922
+ },
1923
+ {
1924
+ "length": 20,
1925
+ "start": 13376
1926
+ },
1927
+ {
1928
+ "length": 20,
1929
+ "start": 15827
1930
+ },
1931
+ {
1932
+ "length": 20,
1933
+ "start": 21108
1934
+ }
1935
+ ]
1936
+ },
1937
+ "contracts/type/ObjectType.sol": {
1938
+ "ObjectTypeLib": [
1939
+ {
1940
+ "length": 20,
1941
+ "start": 19941
1942
+ }
1943
+ ]
1944
+ },
1945
+ "contracts/type/Referral.sol": {
1946
+ "ReferralLib": [
1947
+ {
1948
+ "length": 20,
1949
+ "start": 10373
1950
+ }
1951
+ ]
1952
+ },
1953
+ "contracts/type/Seconds.sol": {
1954
+ "SecondsLib": [
1955
+ {
1956
+ "length": 20,
1957
+ "start": 27
1958
+ },
1959
+ {
1960
+ "length": 20,
1961
+ "start": 175
1962
+ },
1963
+ {
1964
+ "length": 20,
1965
+ "start": 326
1966
+ },
1967
+ {
1968
+ "length": 20,
1969
+ "start": 467
1970
+ },
1971
+ {
1972
+ "length": 20,
1973
+ "start": 621
1974
+ },
1975
+ {
1976
+ "length": 20,
1977
+ "start": 10846
1978
+ }
1979
+ ]
1980
+ },
1981
+ "contracts/type/Timestamp.sol": {
1982
+ "TimestampLib": [
1983
+ {
1984
+ "length": 20,
1985
+ "start": 10525
1986
+ },
1987
+ {
1988
+ "length": 20,
1989
+ "start": 10809
1990
+ },
1991
+ {
1992
+ "length": 20,
1993
+ "start": 17107
1994
+ },
1995
+ {
1996
+ "length": 20,
1997
+ "start": 17454
1998
+ },
1999
+ {
2000
+ "length": 20,
2001
+ "start": 17569
2002
+ },
2003
+ {
2004
+ "length": 20,
2005
+ "start": 17916
2006
+ },
2007
+ {
2008
+ "length": 20,
2009
+ "start": 18031
2010
+ },
2011
+ {
2012
+ "length": 20,
2013
+ "start": 23012
2014
+ }
2015
+ ]
2016
+ },
2017
+ "contracts/type/Version.sol": {
2018
+ "VersionLib": [
2019
+ {
2020
+ "length": 20,
2021
+ "start": 9474
2022
+ }
2023
+ ]
2024
+ }
2025
+ },
2026
+ "deployedLinkReferences": {
2027
+ "contracts/examples/flight/FlightLib.sol": {
2028
+ "FlightLib": [
2029
+ {
2030
+ "length": 20,
2031
+ "start": 2978
2032
+ },
2033
+ {
2034
+ "length": 20,
2035
+ "start": 11063
2036
+ },
2037
+ {
2038
+ "length": 20,
2039
+ "start": 13037
2040
+ },
2041
+ {
2042
+ "length": 20,
2043
+ "start": 13364
2044
+ },
2045
+ {
2046
+ "length": 20,
2047
+ "start": 15678
2048
+ }
2049
+ ]
2050
+ },
2051
+ "contracts/type/Amount.sol": {
2052
+ "AmountLib": [
2053
+ {
2054
+ "length": 20,
2055
+ "start": 6617
2056
+ },
2057
+ {
2058
+ "length": 20,
2059
+ "start": 6795
2060
+ },
2061
+ {
2062
+ "length": 20,
2063
+ "start": 6957
2064
+ },
2065
+ {
2066
+ "length": 20,
2067
+ "start": 7159
2068
+ },
2069
+ {
2070
+ "length": 20,
2071
+ "start": 12332
2072
+ },
2073
+ {
2074
+ "length": 20,
2075
+ "start": 14672
2076
+ },
2077
+ {
2078
+ "length": 20,
2079
+ "start": 14814
2080
+ },
2081
+ {
2082
+ "length": 20,
2083
+ "start": 15082
2084
+ }
2085
+ ]
2086
+ },
2087
+ "contracts/type/NftId.sol": {
2088
+ "NftIdLib": [
2089
+ {
2090
+ "length": 20,
2091
+ "start": 2471
2092
+ },
2093
+ {
2094
+ "length": 20,
2095
+ "start": 4332
2096
+ },
2097
+ {
2098
+ "length": 20,
2099
+ "start": 6173
2100
+ },
2101
+ {
2102
+ "length": 20,
2103
+ "start": 8624
2104
+ },
2105
+ {
2106
+ "length": 20,
2107
+ "start": 13905
2108
+ }
2109
+ ]
2110
+ },
2111
+ "contracts/type/ObjectType.sol": {
2112
+ "ObjectTypeLib": [
2113
+ {
2114
+ "length": 20,
2115
+ "start": 12738
2116
+ }
2117
+ ]
2118
+ },
2119
+ "contracts/type/Referral.sol": {
2120
+ "ReferralLib": [
2121
+ {
2122
+ "length": 20,
2123
+ "start": 3170
2124
+ }
2125
+ ]
2126
+ },
2127
+ "contracts/type/Seconds.sol": {
2128
+ "SecondsLib": [
2129
+ {
2130
+ "length": 20,
2131
+ "start": 3643
2132
+ }
2133
+ ]
2134
+ },
2135
+ "contracts/type/Timestamp.sol": {
2136
+ "TimestampLib": [
2137
+ {
2138
+ "length": 20,
2139
+ "start": 3322
2140
+ },
2141
+ {
2142
+ "length": 20,
2143
+ "start": 3606
2144
+ },
2145
+ {
2146
+ "length": 20,
2147
+ "start": 9904
2148
+ },
2149
+ {
2150
+ "length": 20,
2151
+ "start": 10251
2152
+ },
2153
+ {
2154
+ "length": 20,
2155
+ "start": 10366
2156
+ },
2157
+ {
2158
+ "length": 20,
2159
+ "start": 10713
2160
+ },
2161
+ {
2162
+ "length": 20,
2163
+ "start": 10828
2164
+ },
2165
+ {
2166
+ "length": 20,
2167
+ "start": 15809
2168
+ }
2169
+ ]
2170
+ },
2171
+ "contracts/type/Version.sol": {
2172
+ "VersionLib": [
2173
+ {
2174
+ "length": 20,
2175
+ "start": 2271
2176
+ }
2177
+ ]
2178
+ }
2179
+ }
2180
+ }