@etherisc/gif-next 0.0.2-ff1bf36-818 → 0.0.2-ff795d8-141

Sign up to get free protection for your applications and to get access to all the features.
Files changed (521) hide show
  1. package/README.md +82 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +658 -259
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1279 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +456 -24
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +507 -206
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +215 -18
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +265 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +473 -17
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +177 -441
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +431 -36
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +96 -325
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +473 -326
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +187 -125
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +90 -167
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +287 -101
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1461 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2018 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1404 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2405 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +505 -65
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +255 -57
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +510 -162
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1010 -334
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +369 -68
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1471 -466
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +272 -231
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +106 -106
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +897 -638
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +129 -317
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +429 -37
  108. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +104 -116
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +105 -269
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +169 -190
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +140 -98
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +145 -309
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +430 -35
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +180 -369
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -134
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +90 -117
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +135 -158
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +318 -306
  133. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  134. package/artifacts/contracts/pool/Pool.sol/Pool.json +133 -308
  135. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +538 -557
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +177 -111
  141. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +206 -163
  143. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +124 -98
  145. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +267 -370
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +430 -35
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +423 -242
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +158 -124
  153. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +131 -9
  155. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +293 -17
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +245 -64
  159. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
  161. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +258 -209
  163. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +86 -6
  165. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +366 -288
  167. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  169. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +152 -122
  171. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.json +242 -332
  173. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -140
  175. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  176. package/artifacts/contracts/product/Product.sol/Product.json +259 -362
  177. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.json +169 -176
  179. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +129 -95
  181. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  183. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +342 -42
  185. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  187. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +548 -103
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +763 -382
  195. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +104 -90
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2140 -0
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +487 -253
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +489 -20
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  212. package/artifacts/contracts/shared/Component.sol/Component.json +81 -227
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +430 -623
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +143 -131
  217. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +680 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +81 -75
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +394 -300
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +104 -116
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  236. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  243. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  246. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  247. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  248. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  249. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +104 -268
  250. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  251. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  264. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +197 -118
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +155 -23
  276. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  277. package/artifacts/contracts/staking/Staking.sol/Staking.json +300 -337
  278. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  279. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  280. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +142 -103
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +41 -73
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +224 -171
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +121 -95
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +205 -150
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  293. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +91 -50
  294. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Amount.sol/AmountLib.json +35 -11
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  300. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  302. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  304. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  306. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  308. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  310. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  312. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  314. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  316. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  318. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  320. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  322. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  324. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  326. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  328. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  330. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  332. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  335. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +73 -36
  337. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  339. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  341. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  342. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -80
  344. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  345. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  346. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  347. package/contracts/accounting/AccountingService.sol +261 -0
  348. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  349. package/contracts/accounting/IAccountingService.sol +45 -0
  350. package/contracts/authorization/AccessAdmin.sol +464 -266
  351. package/contracts/authorization/AccessAdminLib.sol +387 -0
  352. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  353. package/contracts/authorization/Authorization.sol +159 -202
  354. package/contracts/authorization/IAccess.sol +25 -6
  355. package/contracts/authorization/IAccessAdmin.sol +80 -79
  356. package/contracts/authorization/IAuthorization.sol +9 -36
  357. package/contracts/authorization/IServiceAuthorization.sol +57 -17
  358. package/contracts/authorization/ServiceAuthorization.sol +254 -24
  359. package/contracts/distribution/BasicDistribution.sol +20 -17
  360. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  361. package/contracts/distribution/Distribution.sol +39 -89
  362. package/contracts/distribution/DistributionService.sol +235 -115
  363. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  364. package/contracts/distribution/IDistributionComponent.sol +4 -11
  365. package/contracts/distribution/IDistributionService.sol +40 -26
  366. package/contracts/examples/fire/DamageLevel.sol +59 -0
  367. package/contracts/examples/fire/FirePool.sol +86 -0
  368. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  369. package/contracts/examples/fire/FireProduct.sol +433 -0
  370. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  371. package/contracts/examples/fire/FireUSD.sol +26 -0
  372. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  373. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  374. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  375. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  376. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  378. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  379. package/contracts/instance/BundleSet.sol +42 -38
  380. package/contracts/instance/IInstance.sol +96 -17
  381. package/contracts/instance/IInstanceService.sol +49 -31
  382. package/contracts/instance/Instance.sol +181 -69
  383. package/contracts/instance/InstanceAdmin.sol +279 -184
  384. package/contracts/instance/InstanceAuthorizationV3.sol +117 -58
  385. package/contracts/instance/InstanceReader.sol +365 -68
  386. package/contracts/instance/InstanceService.sol +271 -208
  387. package/contracts/instance/InstanceServiceManager.sol +6 -7
  388. package/contracts/instance/InstanceStore.sol +23 -2
  389. package/contracts/instance/RiskSet.sol +118 -0
  390. package/contracts/instance/base/ObjectCounter.sol +1 -2
  391. package/contracts/instance/base/ObjectLifecycle.sol +10 -2
  392. package/contracts/instance/base/ObjectSet.sol +31 -33
  393. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  394. package/contracts/instance/module/IBundle.sol +6 -5
  395. package/contracts/instance/module/IComponents.sol +29 -13
  396. package/contracts/instance/module/IDistribution.sol +21 -8
  397. package/contracts/instance/module/IPolicy.sol +49 -28
  398. package/contracts/instance/module/IRisk.sol +5 -0
  399. package/contracts/oracle/BasicOracle.sol +1 -4
  400. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  401. package/contracts/oracle/IOracle.sol +9 -4
  402. package/contracts/oracle/IOracleService.sol +2 -1
  403. package/contracts/oracle/Oracle.sol +7 -19
  404. package/contracts/oracle/OracleService.sol +117 -85
  405. package/contracts/oracle/OracleServiceManager.sol +6 -6
  406. package/contracts/pool/BasicPool.sol +32 -25
  407. package/contracts/pool/BasicPoolAuthorization.sol +33 -9
  408. package/contracts/pool/BundleService.sol +93 -134
  409. package/contracts/pool/BundleServiceManager.sol +6 -6
  410. package/contracts/pool/IBundleService.sol +15 -34
  411. package/contracts/pool/IPoolComponent.sol +19 -15
  412. package/contracts/pool/IPoolService.sol +73 -71
  413. package/contracts/pool/Pool.sol +139 -124
  414. package/contracts/pool/PoolLib.sol +353 -0
  415. package/contracts/pool/PoolService.sol +332 -286
  416. package/contracts/pool/PoolServiceManager.sol +4 -4
  417. package/contracts/product/ApplicationService.sol +54 -26
  418. package/contracts/product/ApplicationServiceManager.sol +4 -4
  419. package/contracts/product/BasicProduct.sol +10 -13
  420. package/contracts/product/BasicProductAuthorization.sol +30 -12
  421. package/contracts/product/ClaimService.sol +372 -150
  422. package/contracts/product/ClaimServiceManager.sol +4 -4
  423. package/contracts/product/IApplicationService.sol +8 -2
  424. package/contracts/product/IClaimService.sol +43 -8
  425. package/contracts/product/IPolicyService.sol +39 -28
  426. package/contracts/product/IPricingService.sol +11 -10
  427. package/contracts/product/IProductComponent.sol +27 -5
  428. package/contracts/product/IRiskService.sol +7 -7
  429. package/contracts/product/PolicyService.sol +365 -309
  430. package/contracts/product/PolicyServiceLib.sol +139 -0
  431. package/contracts/product/PolicyServiceManager.sol +4 -4
  432. package/contracts/product/PricingService.sol +64 -59
  433. package/contracts/product/PricingServiceManager.sol +4 -4
  434. package/contracts/product/Product.sol +142 -85
  435. package/contracts/product/RiskService.sol +91 -34
  436. package/contracts/product/RiskServiceManager.sol +4 -4
  437. package/contracts/registry/ChainNft.sol +72 -40
  438. package/contracts/registry/IRegistry.sol +64 -28
  439. package/contracts/registry/IRegistryService.sol +5 -12
  440. package/contracts/registry/IRelease.sol +29 -0
  441. package/contracts/registry/ITransferInterceptor.sol +1 -2
  442. package/contracts/registry/Registry.sol +357 -203
  443. package/contracts/registry/RegistryAdmin.sol +110 -296
  444. package/contracts/registry/RegistryAuthorization.sol +277 -0
  445. package/contracts/registry/RegistryService.sol +37 -48
  446. package/contracts/registry/RegistryServiceManager.sol +3 -3
  447. package/contracts/registry/ReleaseAdmin.sol +195 -0
  448. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  449. package/contracts/registry/ReleaseRegistry.sol +275 -240
  450. package/contracts/registry/ServiceAuthorizationV3.sol +200 -57
  451. package/contracts/registry/TokenRegistry.sol +12 -13
  452. package/contracts/shared/Component.sol +66 -124
  453. package/contracts/shared/ComponentService.sol +395 -375
  454. package/contracts/shared/ComponentServiceManager.sol +8 -5
  455. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  456. package/contracts/shared/ContractLib.sol +357 -0
  457. package/contracts/shared/IComponent.sol +5 -17
  458. package/contracts/shared/IComponentService.sol +42 -40
  459. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  460. package/contracts/shared/ILifecycle.sol +3 -1
  461. package/contracts/shared/INftOwnable.sol +2 -0
  462. package/contracts/shared/IPolicyHolder.sol +12 -22
  463. package/contracts/shared/IRegisterable.sol +23 -1
  464. package/contracts/shared/IService.sol +3 -5
  465. package/contracts/shared/InitializableERC165.sol +10 -2
  466. package/contracts/shared/InstanceLinkedComponent.sol +72 -50
  467. package/contracts/shared/KeyValueStore.sol +1 -1
  468. package/contracts/shared/Lifecycle.sol +15 -4
  469. package/contracts/shared/NftOwnable.sol +29 -9
  470. package/contracts/shared/PolicyHolder.sol +15 -52
  471. package/contracts/shared/Registerable.sol +52 -21
  472. package/contracts/shared/RegistryLinked.sol +9 -14
  473. package/contracts/shared/Service.sol +20 -35
  474. package/contracts/shared/TokenHandler.sol +275 -72
  475. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  476. package/contracts/staking/IStaking.sol +25 -13
  477. package/contracts/staking/IStakingService.sol +19 -4
  478. package/contracts/staking/Staking.sol +101 -52
  479. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +96 -21
  480. package/contracts/staking/StakingManager.sol +8 -6
  481. package/contracts/staking/StakingReader.sol +18 -21
  482. package/contracts/staking/StakingService.sol +85 -25
  483. package/contracts/staking/StakingServiceManager.sol +6 -5
  484. package/contracts/staking/StakingStore.sol +2 -1
  485. package/contracts/staking/TargetManagerLib.sol +8 -4
  486. package/contracts/type/Amount.sol +15 -0
  487. package/contracts/type/ClaimId.sol +6 -1
  488. package/contracts/type/Fee.sol +8 -8
  489. package/contracts/type/Key32.sol +2 -2
  490. package/contracts/type/Key32Set.sol +62 -0
  491. package/contracts/type/NftId.sol +7 -0
  492. package/contracts/type/ObjectType.sol +72 -36
  493. package/contracts/type/PayoutId.sol +10 -10
  494. package/contracts/type/RiskId.sol +38 -6
  495. package/contracts/type/RoleId.sol +61 -55
  496. package/contracts/type/Seconds.sol +8 -0
  497. package/contracts/type/Selector.sol +5 -0
  498. package/contracts/type/StateId.sol +15 -1
  499. package/contracts/type/Timestamp.sol +0 -5
  500. package/contracts/type/UFixed.sol +37 -126
  501. package/contracts/type/Version.sol +54 -5
  502. package/contracts/upgradeability/ProxyManager.sol +79 -43
  503. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
  504. package/contracts/upgradeability/Versionable.sol +6 -3
  505. package/package.json +5 -4
  506. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  507. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  508. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  509. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  510. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  511. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  512. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  513. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  514. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  515. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -387
  516. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  517. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  518. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  519. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  520. package/contracts/instance/module/IAccess.sol +0 -46
  521. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -0,0 +1,1279 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "AccessAdminLib",
4
+ "sourceName": "contracts/authorization/AccessAdminLib.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "authorization",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "ErrorAccessAdminAlreadyInitialized",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "authorization",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "internalType": "ObjectType",
26
+ "name": "expectedDomain",
27
+ "type": "uint8"
28
+ },
29
+ {
30
+ "internalType": "ObjectType",
31
+ "name": "actualDomain",
32
+ "type": "uint8"
33
+ }
34
+ ],
35
+ "name": "ErrorAccessAdminDomainMismatch",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [
40
+ {
41
+ "internalType": "address",
42
+ "name": "target",
43
+ "type": "address"
44
+ },
45
+ {
46
+ "internalType": "enum IAccess.TargetType",
47
+ "name": "serviceTargetType",
48
+ "type": "uint8"
49
+ }
50
+ ],
51
+ "name": "ErrorAccessAdminInvalidServiceType",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [
56
+ {
57
+ "internalType": "address",
58
+ "name": "target",
59
+ "type": "address"
60
+ },
61
+ {
62
+ "internalType": "enum IAccess.TargetType",
63
+ "name": "targetType",
64
+ "type": "uint8"
65
+ }
66
+ ],
67
+ "name": "ErrorAccessAdminInvalidTargetType",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "address",
74
+ "name": "authorization",
75
+ "type": "address"
76
+ }
77
+ ],
78
+ "name": "ErrorAccessAdminNotAuthorization",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [
83
+ {
84
+ "internalType": "address",
85
+ "name": "registerable",
86
+ "type": "address"
87
+ }
88
+ ],
89
+ "name": "ErrorAccessAdminNotRegistered",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [
94
+ {
95
+ "internalType": "address",
96
+ "name": "registry",
97
+ "type": "address"
98
+ }
99
+ ],
100
+ "name": "ErrorAccessAdminNotRegistry",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "address",
107
+ "name": "serviceAuthorization",
108
+ "type": "address"
109
+ }
110
+ ],
111
+ "name": "ErrorAccessAdminNotServiceAuthorization",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "inputs": [
116
+ {
117
+ "internalType": "address",
118
+ "name": "authorization",
119
+ "type": "address"
120
+ },
121
+ {
122
+ "internalType": "VersionPart",
123
+ "name": "expectedRelease",
124
+ "type": "uint8"
125
+ },
126
+ {
127
+ "internalType": "VersionPart",
128
+ "name": "actualRelease",
129
+ "type": "uint8"
130
+ }
131
+ ],
132
+ "name": "ErrorAccessAdminReleaseMismatch",
133
+ "type": "error"
134
+ },
135
+ {
136
+ "inputs": [
137
+ {
138
+ "internalType": "RoleId",
139
+ "name": "adminRoleId",
140
+ "type": "uint64"
141
+ }
142
+ ],
143
+ "name": "ErrorAccessAdminRoleAdminNotExisting",
144
+ "type": "error"
145
+ },
146
+ {
147
+ "inputs": [
148
+ {
149
+ "internalType": "RoleId",
150
+ "name": "roleId",
151
+ "type": "uint64"
152
+ },
153
+ {
154
+ "internalType": "string",
155
+ "name": "name",
156
+ "type": "string"
157
+ }
158
+ ],
159
+ "name": "ErrorAccessAdminRoleAlreadyCreated",
160
+ "type": "error"
161
+ },
162
+ {
163
+ "inputs": [
164
+ {
165
+ "internalType": "RoleId",
166
+ "name": "roleId",
167
+ "type": "uint64"
168
+ },
169
+ {
170
+ "internalType": "string",
171
+ "name": "name",
172
+ "type": "string"
173
+ },
174
+ {
175
+ "internalType": "RoleId",
176
+ "name": "existingRoleId",
177
+ "type": "uint64"
178
+ }
179
+ ],
180
+ "name": "ErrorAccessAdminRoleNameAlreadyExists",
181
+ "type": "error"
182
+ },
183
+ {
184
+ "inputs": [
185
+ {
186
+ "internalType": "RoleId",
187
+ "name": "roleId",
188
+ "type": "uint64"
189
+ }
190
+ ],
191
+ "name": "ErrorAccessAdminRoleNameEmpty",
192
+ "type": "error"
193
+ },
194
+ {
195
+ "inputs": [
196
+ {
197
+ "internalType": "address",
198
+ "name": "target",
199
+ "type": "address"
200
+ },
201
+ {
202
+ "internalType": "string",
203
+ "name": "name",
204
+ "type": "string"
205
+ }
206
+ ],
207
+ "name": "ErrorAccessAdminTargetAlreadyCreated",
208
+ "type": "error"
209
+ },
210
+ {
211
+ "inputs": [
212
+ {
213
+ "internalType": "address",
214
+ "name": "expectedAuthority",
215
+ "type": "address"
216
+ },
217
+ {
218
+ "internalType": "address",
219
+ "name": "actualAuthority",
220
+ "type": "address"
221
+ }
222
+ ],
223
+ "name": "ErrorAccessAdminTargetAuthorityMismatch",
224
+ "type": "error"
225
+ },
226
+ {
227
+ "inputs": [
228
+ {
229
+ "internalType": "address",
230
+ "name": "target",
231
+ "type": "address"
232
+ },
233
+ {
234
+ "internalType": "string",
235
+ "name": "name",
236
+ "type": "string"
237
+ },
238
+ {
239
+ "internalType": "address",
240
+ "name": "existingTarget",
241
+ "type": "address"
242
+ }
243
+ ],
244
+ "name": "ErrorAccessAdminTargetNameAlreadyExists",
245
+ "type": "error"
246
+ },
247
+ {
248
+ "inputs": [
249
+ {
250
+ "internalType": "address",
251
+ "name": "target",
252
+ "type": "address"
253
+ }
254
+ ],
255
+ "name": "ErrorAccessAdminTargetNameEmpty",
256
+ "type": "error"
257
+ },
258
+ {
259
+ "inputs": [
260
+ {
261
+ "internalType": "address",
262
+ "name": "target",
263
+ "type": "address"
264
+ }
265
+ ],
266
+ "name": "ErrorAccessAdminTargetNotAccessManaged",
267
+ "type": "error"
268
+ },
269
+ {
270
+ "inputs": [
271
+ {
272
+ "internalType": "address",
273
+ "name": "target",
274
+ "type": "address"
275
+ },
276
+ {
277
+ "internalType": "ObjectType",
278
+ "name": "expectedType",
279
+ "type": "uint8"
280
+ },
281
+ {
282
+ "internalType": "ObjectType",
283
+ "name": "actualType",
284
+ "type": "uint8"
285
+ }
286
+ ],
287
+ "name": "ErrorAccessAdminTargetTypeMismatch",
288
+ "type": "error"
289
+ },
290
+ {
291
+ "inputs": [],
292
+ "name": "COMPONENT_ROLE_FACTOR",
293
+ "outputs": [
294
+ {
295
+ "internalType": "uint64",
296
+ "name": "",
297
+ "type": "uint64"
298
+ }
299
+ ],
300
+ "stateMutability": "view",
301
+ "type": "function"
302
+ },
303
+ {
304
+ "inputs": [],
305
+ "name": "COMPONENT_ROLE_MAX",
306
+ "outputs": [
307
+ {
308
+ "internalType": "uint64",
309
+ "name": "",
310
+ "type": "uint64"
311
+ }
312
+ ],
313
+ "stateMutability": "view",
314
+ "type": "function"
315
+ },
316
+ {
317
+ "inputs": [],
318
+ "name": "COMPONENT_ROLE_MIN",
319
+ "outputs": [
320
+ {
321
+ "internalType": "uint64",
322
+ "name": "",
323
+ "type": "uint64"
324
+ }
325
+ ],
326
+ "stateMutability": "view",
327
+ "type": "function"
328
+ },
329
+ {
330
+ "inputs": [],
331
+ "name": "CORE_ROLE_MIN",
332
+ "outputs": [
333
+ {
334
+ "internalType": "uint64",
335
+ "name": "",
336
+ "type": "uint64"
337
+ }
338
+ ],
339
+ "stateMutability": "view",
340
+ "type": "function"
341
+ },
342
+ {
343
+ "inputs": [],
344
+ "name": "CUSTOM_ROLE_MIN",
345
+ "outputs": [
346
+ {
347
+ "internalType": "uint64",
348
+ "name": "",
349
+ "type": "uint64"
350
+ }
351
+ ],
352
+ "stateMutability": "view",
353
+ "type": "function"
354
+ },
355
+ {
356
+ "inputs": [],
357
+ "name": "INSTANCE_ROLE_MIN",
358
+ "outputs": [
359
+ {
360
+ "internalType": "uint64",
361
+ "name": "",
362
+ "type": "uint64"
363
+ }
364
+ ],
365
+ "stateMutability": "view",
366
+ "type": "function"
367
+ },
368
+ {
369
+ "inputs": [],
370
+ "name": "ROLE_SUFFIX",
371
+ "outputs": [
372
+ {
373
+ "internalType": "string",
374
+ "name": "",
375
+ "type": "string"
376
+ }
377
+ ],
378
+ "stateMutability": "view",
379
+ "type": "function"
380
+ },
381
+ {
382
+ "inputs": [],
383
+ "name": "SERVICE_DOMAIN_ROLE_FACTOR",
384
+ "outputs": [
385
+ {
386
+ "internalType": "uint64",
387
+ "name": "",
388
+ "type": "uint64"
389
+ }
390
+ ],
391
+ "stateMutability": "view",
392
+ "type": "function"
393
+ },
394
+ {
395
+ "inputs": [],
396
+ "name": "SERVICE_ROLE_FACTOR",
397
+ "outputs": [
398
+ {
399
+ "internalType": "uint64",
400
+ "name": "",
401
+ "type": "uint64"
402
+ }
403
+ ],
404
+ "stateMutability": "view",
405
+ "type": "function"
406
+ },
407
+ {
408
+ "inputs": [],
409
+ "name": "SERVICE_ROLE_MIN",
410
+ "outputs": [
411
+ {
412
+ "internalType": "uint64",
413
+ "name": "",
414
+ "type": "uint64"
415
+ }
416
+ ],
417
+ "stateMutability": "view",
418
+ "type": "function"
419
+ },
420
+ {
421
+ "inputs": [],
422
+ "name": "TOKEN_HANDLER_SUFFIX",
423
+ "outputs": [
424
+ {
425
+ "internalType": "string",
426
+ "name": "",
427
+ "type": "string"
428
+ }
429
+ ],
430
+ "stateMutability": "view",
431
+ "type": "function"
432
+ },
433
+ {
434
+ "inputs": [
435
+ {
436
+ "internalType": "address",
437
+ "name": "authorizationOld",
438
+ "type": "address"
439
+ },
440
+ {
441
+ "internalType": "address",
442
+ "name": "authorization",
443
+ "type": "address"
444
+ },
445
+ {
446
+ "internalType": "ObjectType",
447
+ "name": "expectedDomain",
448
+ "type": "uint8"
449
+ },
450
+ {
451
+ "internalType": "VersionPart",
452
+ "name": "expectedRelease",
453
+ "type": "uint8"
454
+ },
455
+ {
456
+ "internalType": "bool",
457
+ "name": "expectServiceAuthorization",
458
+ "type": "bool"
459
+ },
460
+ {
461
+ "internalType": "bool",
462
+ "name": "checkAlreadyInitialized",
463
+ "type": "bool"
464
+ }
465
+ ],
466
+ "name": "checkAuthorization",
467
+ "outputs": [],
468
+ "stateMutability": "view",
469
+ "type": "function"
470
+ },
471
+ {
472
+ "inputs": [
473
+ {
474
+ "internalType": "address",
475
+ "name": "registry",
476
+ "type": "address"
477
+ },
478
+ {
479
+ "internalType": "address",
480
+ "name": "target",
481
+ "type": "address"
482
+ },
483
+ {
484
+ "internalType": "ObjectType",
485
+ "name": "expectedType",
486
+ "type": "uint8"
487
+ }
488
+ ],
489
+ "name": "checkIsRegistered",
490
+ "outputs": [],
491
+ "stateMutability": "view",
492
+ "type": "function"
493
+ },
494
+ {
495
+ "inputs": [
496
+ {
497
+ "internalType": "address",
498
+ "name": "registry",
499
+ "type": "address"
500
+ }
501
+ ],
502
+ "name": "checkRegistry",
503
+ "outputs": [],
504
+ "stateMutability": "view",
505
+ "type": "function"
506
+ },
507
+ {
508
+ "inputs": [
509
+ {
510
+ "internalType": "contract IAccessAdmin",
511
+ "name": "accessAdmin",
512
+ "type": "IAccessAdmin"
513
+ },
514
+ {
515
+ "internalType": "RoleId",
516
+ "name": "roleId",
517
+ "type": "uint64"
518
+ },
519
+ {
520
+ "components": [
521
+ {
522
+ "internalType": "RoleId",
523
+ "name": "adminRoleId",
524
+ "type": "uint64"
525
+ },
526
+ {
527
+ "internalType": "enum IAccess.RoleType",
528
+ "name": "roleType",
529
+ "type": "IAccess.RoleType"
530
+ },
531
+ {
532
+ "internalType": "uint32",
533
+ "name": "maxMemberCount",
534
+ "type": "uint32"
535
+ },
536
+ {
537
+ "internalType": "Timestamp",
538
+ "name": "createdAt",
539
+ "type": "uint40"
540
+ },
541
+ {
542
+ "internalType": "Timestamp",
543
+ "name": "pausedAt",
544
+ "type": "uint40"
545
+ },
546
+ {
547
+ "internalType": "Str",
548
+ "name": "name",
549
+ "type": "bytes32"
550
+ }
551
+ ],
552
+ "internalType": "struct IAccess.RoleInfo",
553
+ "name": "info",
554
+ "type": "tuple"
555
+ }
556
+ ],
557
+ "name": "checkRoleCreation",
558
+ "outputs": [],
559
+ "stateMutability": "view",
560
+ "type": "function"
561
+ },
562
+ {
563
+ "inputs": [
564
+ {
565
+ "internalType": "contract IAccessAdmin",
566
+ "name": "accessAdmin",
567
+ "type": "IAccessAdmin"
568
+ },
569
+ {
570
+ "internalType": "address",
571
+ "name": "target",
572
+ "type": "address"
573
+ },
574
+ {
575
+ "internalType": "string",
576
+ "name": "targetName",
577
+ "type": "string"
578
+ },
579
+ {
580
+ "internalType": "bool",
581
+ "name": "checkAuthority",
582
+ "type": "bool"
583
+ }
584
+ ],
585
+ "name": "checkTargetCreation",
586
+ "outputs": [],
587
+ "stateMutability": "view",
588
+ "type": "function"
589
+ },
590
+ {
591
+ "inputs": [
592
+ {
593
+ "internalType": "uint64",
594
+ "name": "index",
595
+ "type": "uint64"
596
+ }
597
+ ],
598
+ "name": "getCustomRoleId",
599
+ "outputs": [
600
+ {
601
+ "internalType": "RoleId",
602
+ "name": "customRoleId",
603
+ "type": "uint64"
604
+ }
605
+ ],
606
+ "stateMutability": "pure",
607
+ "type": "function"
608
+ },
609
+ {
610
+ "inputs": [
611
+ {
612
+ "internalType": "ObjectType",
613
+ "name": "serviceDomain",
614
+ "type": "uint8"
615
+ }
616
+ ],
617
+ "name": "getGenericServiceRoleId",
618
+ "outputs": [
619
+ {
620
+ "internalType": "RoleId",
621
+ "name": "serviceRoleId",
622
+ "type": "uint64"
623
+ }
624
+ ],
625
+ "stateMutability": "pure",
626
+ "type": "function"
627
+ },
628
+ {
629
+ "inputs": [
630
+ {
631
+ "components": [
632
+ {
633
+ "internalType": "Str",
634
+ "name": "name",
635
+ "type": "bytes32"
636
+ },
637
+ {
638
+ "internalType": "Selector",
639
+ "name": "selector",
640
+ "type": "bytes4"
641
+ },
642
+ {
643
+ "internalType": "Timestamp",
644
+ "name": "createdAt",
645
+ "type": "uint40"
646
+ }
647
+ ],
648
+ "internalType": "struct IAccess.FunctionInfo[]",
649
+ "name": "functions",
650
+ "type": "tuple[]"
651
+ }
652
+ ],
653
+ "name": "getSelectors",
654
+ "outputs": [
655
+ {
656
+ "internalType": "bytes4[]",
657
+ "name": "selectors",
658
+ "type": "bytes4[]"
659
+ }
660
+ ],
661
+ "stateMutability": "pure",
662
+ "type": "function"
663
+ },
664
+ {
665
+ "inputs": [
666
+ {
667
+ "internalType": "address",
668
+ "name": "serviceAddress",
669
+ "type": "address"
670
+ },
671
+ {
672
+ "internalType": "enum IAccess.TargetType",
673
+ "name": "serviceTargetType",
674
+ "type": "IAccess.TargetType"
675
+ }
676
+ ],
677
+ "name": "getServiceRoleId",
678
+ "outputs": [
679
+ {
680
+ "internalType": "RoleId",
681
+ "name": "serviceRoleId",
682
+ "type": "uint64"
683
+ }
684
+ ],
685
+ "stateMutability": "view",
686
+ "type": "function"
687
+ },
688
+ {
689
+ "inputs": [
690
+ {
691
+ "internalType": "address",
692
+ "name": "target",
693
+ "type": "address"
694
+ },
695
+ {
696
+ "internalType": "enum IAccess.TargetType",
697
+ "name": "targetType",
698
+ "type": "IAccess.TargetType"
699
+ },
700
+ {
701
+ "internalType": "uint64",
702
+ "name": "index",
703
+ "type": "uint64"
704
+ }
705
+ ],
706
+ "name": "getTargetRoleId",
707
+ "outputs": [
708
+ {
709
+ "internalType": "RoleId",
710
+ "name": "targetRoleId",
711
+ "type": "uint64"
712
+ }
713
+ ],
714
+ "stateMutability": "view",
715
+ "type": "function"
716
+ },
717
+ {
718
+ "inputs": [
719
+ {
720
+ "internalType": "address",
721
+ "name": "target",
722
+ "type": "address"
723
+ },
724
+ {
725
+ "internalType": "string",
726
+ "name": "targetName",
727
+ "type": "string"
728
+ },
729
+ {
730
+ "internalType": "enum IAccess.TargetType",
731
+ "name": "targetType",
732
+ "type": "IAccess.TargetType"
733
+ }
734
+ ],
735
+ "name": "getTokenHandler",
736
+ "outputs": [
737
+ {
738
+ "internalType": "address",
739
+ "name": "tokenHandler",
740
+ "type": "address"
741
+ },
742
+ {
743
+ "internalType": "string",
744
+ "name": "tokenHandlerName",
745
+ "type": "string"
746
+ }
747
+ ],
748
+ "stateMutability": "view",
749
+ "type": "function"
750
+ },
751
+ {
752
+ "inputs": [
753
+ {
754
+ "internalType": "ObjectType",
755
+ "name": "serviceDomain",
756
+ "type": "uint8"
757
+ },
758
+ {
759
+ "internalType": "VersionPart",
760
+ "name": "release",
761
+ "type": "uint8"
762
+ }
763
+ ],
764
+ "name": "getVersionedServiceRoleId",
765
+ "outputs": [
766
+ {
767
+ "internalType": "RoleId",
768
+ "name": "serviceRoleId",
769
+ "type": "uint64"
770
+ }
771
+ ],
772
+ "stateMutability": "pure",
773
+ "type": "function"
774
+ },
775
+ {
776
+ "inputs": [
777
+ {
778
+ "internalType": "RoleId",
779
+ "name": "roleId",
780
+ "type": "uint64"
781
+ }
782
+ ],
783
+ "name": "isCustomRole",
784
+ "outputs": [
785
+ {
786
+ "internalType": "bool",
787
+ "name": "",
788
+ "type": "bool"
789
+ }
790
+ ],
791
+ "stateMutability": "pure",
792
+ "type": "function"
793
+ },
794
+ {
795
+ "inputs": [
796
+ {
797
+ "internalType": "bytes4",
798
+ "name": "selector",
799
+ "type": "bytes4"
800
+ },
801
+ {
802
+ "internalType": "string",
803
+ "name": "name",
804
+ "type": "string"
805
+ }
806
+ ],
807
+ "name": "toFunction",
808
+ "outputs": [
809
+ {
810
+ "components": [
811
+ {
812
+ "internalType": "Str",
813
+ "name": "name",
814
+ "type": "bytes32"
815
+ },
816
+ {
817
+ "internalType": "Selector",
818
+ "name": "selector",
819
+ "type": "bytes4"
820
+ },
821
+ {
822
+ "internalType": "Timestamp",
823
+ "name": "createdAt",
824
+ "type": "uint40"
825
+ }
826
+ ],
827
+ "internalType": "struct IAccess.FunctionInfo",
828
+ "name": "",
829
+ "type": "tuple"
830
+ }
831
+ ],
832
+ "stateMutability": "view",
833
+ "type": "function"
834
+ },
835
+ {
836
+ "inputs": [
837
+ {
838
+ "internalType": "RoleId",
839
+ "name": "adminRoleId",
840
+ "type": "uint64"
841
+ },
842
+ {
843
+ "internalType": "enum IAccess.RoleType",
844
+ "name": "roleType",
845
+ "type": "IAccess.RoleType"
846
+ },
847
+ {
848
+ "internalType": "uint32",
849
+ "name": "maxMemberCount",
850
+ "type": "uint32"
851
+ },
852
+ {
853
+ "internalType": "string",
854
+ "name": "name",
855
+ "type": "string"
856
+ }
857
+ ],
858
+ "name": "toRole",
859
+ "outputs": [
860
+ {
861
+ "components": [
862
+ {
863
+ "internalType": "RoleId",
864
+ "name": "adminRoleId",
865
+ "type": "uint64"
866
+ },
867
+ {
868
+ "internalType": "enum IAccess.RoleType",
869
+ "name": "roleType",
870
+ "type": "IAccess.RoleType"
871
+ },
872
+ {
873
+ "internalType": "uint32",
874
+ "name": "maxMemberCount",
875
+ "type": "uint32"
876
+ },
877
+ {
878
+ "internalType": "Timestamp",
879
+ "name": "createdAt",
880
+ "type": "uint40"
881
+ },
882
+ {
883
+ "internalType": "Timestamp",
884
+ "name": "pausedAt",
885
+ "type": "uint40"
886
+ },
887
+ {
888
+ "internalType": "Str",
889
+ "name": "name",
890
+ "type": "bytes32"
891
+ }
892
+ ],
893
+ "internalType": "struct IAccess.RoleInfo",
894
+ "name": "",
895
+ "type": "tuple"
896
+ }
897
+ ],
898
+ "stateMutability": "view",
899
+ "type": "function"
900
+ },
901
+ {
902
+ "inputs": [
903
+ {
904
+ "internalType": "string",
905
+ "name": "name",
906
+ "type": "string"
907
+ }
908
+ ],
909
+ "name": "toRoleName",
910
+ "outputs": [
911
+ {
912
+ "internalType": "string",
913
+ "name": "",
914
+ "type": "string"
915
+ }
916
+ ],
917
+ "stateMutability": "pure",
918
+ "type": "function"
919
+ }
920
+ ],
921
+ "bytecode": "0x612fee610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101ac575f3560e01c80635b55eef2116100fe578063b1d4d5c31161009e578063ceaaf86b11610079578063ceaaf86b146103a3578063d27e68a9146103ad578063d4c3026c146103ce578063e03aefc2146103e1575f80fd5b8063b1d4d5c31461036c578063caf3ba4a146102c0578063cdfdf2a814610390575f80fd5b8063915f1dbb116100d9578063915f1dbb146103245780639b7ec44c1461034f578063a43e328114610362578063b05601aa146102c0575f80fd5b80635b55eef2146103115780636126bf441461032457806361890d9b1461032c575f80fd5b806337c339e51161016957806346729cd21161014457806346729cd2146102c05780634924730a146102c95780634eaf40a2146102de5780635a819662146102f1575f80fd5b806337c339e5146102845780634068538c14610297578063448111d7146102a0575f80fd5b806303d6f9be146101b057806304c713a7146101e057806305b81b9f1461020e5780630ccbae511461022157806315fb0abb1461022b578063195746e914610271575b5f80fd5b6101c36101be36600461228c565b6103f4565b6040516001600160401b0390911681526020015b60405180910390f35b610201604051806040016040528060028152602001610a8d60f31b81525081565b6040516101d791906122f1565b6101c361021c366004612303565b61058b565b6101c3620186a081565b61023e61023936600461245b565b610782565b60408051825181526020808401516001600160e01b031916908201529181015164ffffffffff16908201526060016101d7565b6101c361027f3660046124db565b610925565b610201610292366004612523565b610afe565b6101c3614a3881565b6102b36102ae36600461256e565b610b46565b6040516101d7919061265a565b6101c36103e881565b6102dc6102d73660046126b3565b610c6f565b005b6102dc6102ec366004612723565b6111a2565b6103046102ff3660046127be565b61148c565b6040516101d79190612842565b6101c361031f3660046128b2565b611669565b6101c3606481565b61033f61033a3660046128b2565b6116bd565b60405190151581526020016101d7565b6102dc61035d3660046128cd565b61174f565b6101c36201adb081565b610201604051806040016040528060058152602001645f526f6c6560d81b81525081565b6102dc61039e36600461290a565b6118b2565b6101c3620f424081565b6103c06103bb3660046129c5565b611d73565b6040516101d7929190612a19565b6101c36103dc366004612a3c565b611f9e565b6102dc6103ef366004612a68565b6121d9565b604051632b10f60d60e21b815260ff821660048201525f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015610462573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104869190612a83565b604051632b10f60d60e21b815260ff8716600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__9063ac43d83490602401602060405180830381865af41580156104d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fa9190612abe565b610506906103e8612aed565b610512906103e8612b16565b6001600160601b03166105259190612b35565b6040518263ffffffff1660e01b815260040161054391815260200190565b602060405180830381865af415801561055e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105829190612b48565b90505b92915050565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b73__$b659da7d8a6d2d32aa6c1e17da23dc2174$__63fbcaa8ed6040518163ffffffff1660e01b8152600401602060405180830381865af41580156105ed573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106119190612b6e565b604051632b10f60d60e21b815260ff909116600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015610662573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106869190612a83565b604051632b10f60d60e21b815260ff8616600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__9063ac43d83490602401602060405180830381865af41580156106d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fa9190612abe565b610706906103e8612aed565b610712906103e8612b16565b6001600160601b03166107259190612b35565b6040518263ffffffff1660e01b815260040161074391815260200190565b602060405180830381865af415801561075e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105859190612b48565b60408051606080820183525f808352602083018190528284015282519081019283905263cdc23e6960e01b909252908073__$9a094f9b231ed0f5f85a69be8408d93180$__63cdc23e696107d986606485016122f1565b602060405180830381865af41580156107f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108189190612a83565b8152604051636b15ee8b60e01b81526001600160e01b03198616600482015260209091019073__$0904195350e4c23ecb1d51df0a32586dcd$__90636b15ee8b90602401602060405180830381865af4158015610877573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089b9190612b89565b6001600160e01b031916815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156108f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109159190612ba4565b64ffffffffff1690529392505050565b5f600183600681111561093a5761093a61282e565b036109d15773__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b610964846064612bbf565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af41580156109a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ca9190612b48565b9050610af7565b60038360068111156109e5576109e561282e565b1480610a0257506002836006811115610a0057610a0061282e565b145b15610a11576109ca8484611f9e565b6004836006811115610a2557610a2561282e565b03610a515773__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b61096484620186a0612bbf565b6005836006811115610a6557610a6561282e565b03610a915773__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b610964846201adb0612bbf565b6006836006811115610aa557610aa561282e565b03610ad15773__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b61096484620f4240612bbf565b838360405163058666f560e21b8152600401610aee929190612bde565b60405180910390fd5b9392505050565b606081604051806040016040528060058152602001645f526f6c6560d81b815250604051602001610b30929190612c22565b6040516020818303038152906040529050919050565b8051606090806001600160401b03811115610b6357610b63612333565b604051908082528060200260200182016040528015610b8c578160200160208202803683370190505b5091505f5b81811015610c6857838181518110610bab57610bab612c36565b6020908102919091018101510151604051636ea1af2560e11b81526001600160e01b0319909116600482015273__$0904195350e4c23ecb1d51df0a32586dcd$__9063dd435e4a90602401602060405180830381865af4158015610c11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c359190612b89565b838281518110610c4757610c47612c36565b6001600160e01b031990921660209283029190910190910152600101610b91565b5050919050565b60405163302d508560e11b81526001600160a01b03848116600483015285169063605aa10a90602401602060405180830381865afa158015610cb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd79190612c55565b15610dd8576040516312e1ebc560e01b81526001600160a01b0380851660048301528491908616906312e1ebc590602401608060405180830381865afa158015610d23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d479190612c70565b51604051631623433d60e31b8152600481019190915273__$9a094f9b231ed0f5f85a69be8408d93180$__9063b11a19e8906024015f60405180830381865af4158015610d96573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610dbd9190810190612d21565b604051630bf898a560e31b8152600401610aee929190612a19565b60405163cdc23e6960e01b81525f9073__$9a094f9b231ed0f5f85a69be8408d93180$__9063cdc23e6990610e119086906004016122f1565b602060405180830381865af4158015610e2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e509190612a83565b60405163a9dbaf2560e01b81526004810182905290915073__$9a094f9b231ed0f5f85a69be8408d93180$__9063a9dbaf2590602401602060405180830381865af4158015610ea1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec59190612a83565b5f03610eef57604051638a0b84e560e01b81526001600160a01b0385166004820152602401610aee565b604051631a0358a960e11b8152600481018290525f906001600160a01b03871690633406b15290602401602060405180830381865afa158015610f34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f589190612d70565b90506001600160a01b03811615610f885784848260405163375fd50360e11b8152600401610aee93929190612d8b565b6040516303d2026b60e21b81526001600160a01b038616600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90630f4809ac90602401602060405180830381865af4158015610fde573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110029190612c55565b61102a57604051637693f8d560e01b81526001600160a01b0386166004820152602401610aee565b821561119a575f856001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110919190612d70565b9050866001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f39190612d70565b6001600160a01b0316816001600160a01b03161461119857866001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611147573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116b9190612d70565b604051630deaa28d60e31b81526001600160a01b0391821660048201529082166024820152604401610aee565b505b505050505050565b8080156111b757506001600160a01b03861615155b156111e057604051631032fd6b60e01b81526001600160a01b0387166004820152602401610aee565b81156112915760405163d905700760e01b815273__$fb599632d08395912d9d70eb2f0f93b5e2$__9063d90570079061122590889062d1d15b60e11b90600401612dc6565b602060405180830381865af4158015611240573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112649190612c55565b61128c5760405163bea2481f60e01b81526001600160a01b0386166004820152602401610aee565b611338565b60405163d905700760e01b815273__$fb599632d08395912d9d70eb2f0f93b5e2$__9063d9057007906112d1908890635a183bdb60e11b90600401612dc6565b602060405180830381865af41580156112ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113109190612c55565b61133857604051637737699b60e01b81526001600160a01b0386166004820152602401610aee565b5f856001600160a01b031663b68d18096040518163ffffffff1660e01b8152600401602060405180830381865afa158015611375573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113999190612b6e565b905060ff808216908616146113dd5760405163a1eb7bc960e01b81526001600160a01b038716600482015260ff808716602483015282166044820152606401610aee565b5f866001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561141a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143e9190612b6e565b905060ff8082169086161461148257604051630fc1a0bf60e41b81526001600160a01b038816600482015260ff808716602483015282166044820152606401610aee565b5050505050505050565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a08101919091526040518060c00160405280866001600160401b031681526020018560038111156114e9576114e961282e565b81526020018463ffffffff16815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611541573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115659190612ba4565b64ffffffffff16815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156115b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115dc9190612ba4565b64ffffffffff16815260200173__$9a094f9b231ed0f5f85a69be8408d93180$__63cdc23e69856040518263ffffffff1660e01b815260040161161f91906122f1565b602060405180830381865af415801561163a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165e9190612a83565b905295945050505050565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b61169184620f4240612bbf565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401610743565b604051631517388760e21b81526001600160401b03821660048201525f90620f42409073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561171a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173e9190612b48565b6001600160401b0316101592915050565b611758836121d9565b6040516308b09a5f60e41b81526001600160a01b0383811660048301525f9190851690638b09a5f0906024015f60405180830381865afa15801561179e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117c59190810190612e07565b604090810151905163037c8cb160e51b815260ff8216600482015290915073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af415801561181d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118419190612c55565b1561186a57604051633b69638960e11b81526001600160a01b0384166004820152602401610aee565b60ff808216908316146118ac5760405163b1feebfb60e01b81526001600160a01b038416600482015260ff808416602483015282166044820152606401610aee565b50505050565b60405163c6a0017960e01b81526001600160401b03831660048201526001600160a01b0384169063c6a0017990602401602060405180830381865afa1580156118fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119219190612c55565b15611a2b57604051635bfa502760e01b81526001600160401b038316600482015282906001600160a01b03851690635bfa50279060240160c060405180830381865afa158015611973573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119979190612ed7565b60a00151604051631623433d60e31b8152600481019190915273__$9a094f9b231ed0f5f85a69be8408d93180$__9063b11a19e8906024015f60405180830381865af41580156119e9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611a109190810190612d21565b60405163c2f92fd360e01b8152600401610aee929190612f5d565b805160405163c6a0017960e01b81526001600160401b0390911660048201526001600160a01b0384169063c6a0017990602401602060405180830381865afa158015611a79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9d9190612c55565b611ac8578051604051634731add760e11b81526001600160401b039091166004820152602401610aee565b60a081015160405163a9dbaf2560e01b8152600481019190915273__$9a094f9b231ed0f5f85a69be8408d93180$__9063a9dbaf2590602401602060405180830381865af4158015611b1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b409190612a83565b5f03611b6a5760405163ce242fe760e01b81526001600160401b0383166004820152602401610aee565b5f836001600160a01b0316639cad005273__$9a094f9b231ed0f5f85a69be8408d93180$__63b11a19e88560a001516040518263ffffffff1660e01b8152600401611bb791815260200190565b5f60405180830381865af4158015611bd1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611bf89190810190612d21565b6040518263ffffffff1660e01b8152600401611c1491906122f1565b602060405180830381865afa158015611c2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c539190612b48565b60405163a42e52e960e01b81526001600160401b038216600482015290915073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063a42e52e990602401602060405180830381865af4158015611cac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cd09190612c55565b156118ac5760a0820151604051631623433d60e31b8152849173__$9a094f9b231ed0f5f85a69be8408d93180$__9163b11a19e891611d159160040190815260200190565b5f60405180830381865af4158015611d2f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d569190810190612d21565b8260405163ab0b63a360e01b8152600401610aee93929190612f7e565b5f60606005836006811115611d8a57611d8a61282e565b14158015611daa57506001836006811115611da757611da761282e565b14155b15611dc657505060408051602081019091525f80825290611f96565b604051631627905560e01b81526001600160a01b038616600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90631627905590602401602060405180830381865af4158015611e1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e409190612c55565b611e5b57505060408051602081019091525f80825290611f96565b60405163d905700760e01b815273__$fb599632d08395912d9d70eb2f0f93b5e2$__9063d905700790611e9b9088906306e9e5ff60e31b90600401612dc6565b602060405180830381865af4158015611eb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eda9190612c55565b611ef557505060408051602081019091525f80825290611f96565b846001600160a01b03166343d752d36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f559190612d70565b915083604051806040016040528060028152602001610a8d60f31b815250604051602001611f84929190612c22565b60405160208183030381529060405290505b935093915050565b5f826003836006811115611fb457611fb461282e565b036121035773__$1d92393fa9ccd763988368ce8a1cb90d26$__63645ceefe826001600160a01b031663b68d18096040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120339190612b6e565b836001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120939190612b6e565b6040516001600160e01b031960e085901b16815260ff9283166004820152911660248201526044015b602060405180830381865af41580156120d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120fb9190612b48565b915050610585565b60028360068111156121175761211761282e565b036121bc5773__$1d92393fa9ccd763988368ce8a1cb90d26$__63383ff861826001600160a01b031663b68d18096040518163ffffffff1660e01b8152600401602060405180830381865afa158015612172573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121969190612b6e565b6040516001600160e01b031960e084901b16815260ff90911660048201526024016120bc565b838360405163f46de64d60e01b8152600401610aee929190612bde565b604051633334d16b60e01b81526001600160a01b038216600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90633334d16b90602401602060405180830381865af415801561222f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122539190612c55565b61227b5760405163375acd0b60e11b81526001600160a01b0382166004820152602401610aee565b50565b60ff8116811461227b575f80fd5b5f806040838503121561229d575f80fd5b82356122a88161227e565b915060208301356122b88161227e565b809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61058260208301846122c3565b5f60208284031215612313575f80fd5b8135610af78161227e565b6001600160e01b03198116811461227b575f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561236957612369612333565b60405290565b60405160c081016001600160401b038111828210171561236957612369612333565b60405160e081016001600160401b038111828210171561236957612369612333565b604051601f8201601f191681016001600160401b03811182821017156123db576123db612333565b604052919050565b5f6001600160401b038211156123fb576123fb612333565b50601f01601f191660200190565b5f82601f830112612418575f80fd5b813561242b612426826123e3565b6123b3565b81815284602083860101111561243f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f806040838503121561246c575f80fd5b82356124778161231e565b915060208301356001600160401b03811115612491575f80fd5b61249d85828601612409565b9150509250929050565b6001600160a01b038116811461227b575f80fd5b6007811061227b575f80fd5b6001600160401b038116811461227b575f80fd5b5f805f606084860312156124ed575f80fd5b83356124f8816124a7565b92506020840135612508816124bb565b91506040840135612518816124c7565b809150509250925092565b5f60208284031215612533575f80fd5b81356001600160401b03811115612548575f80fd5b61255484828501612409565b949350505050565b64ffffffffff8116811461227b575f80fd5b5f6020828403121561257e575f80fd5b81356001600160401b03811115612593575f80fd5b8201601f810184136125a3575f80fd5b80356001600160401b038111156125bc576125bc612333565b6125cb60208260051b016123b3565b808282526020820191506020606084028501019250868311156125ec575f80fd5b6020840193505b82841015612650576060848803121561260a575f80fd5b612612612347565b8435815260208501356126248161231e565b602082015260408501356126378161255c565b60408201528252606093909301926020909101906125f3565b9695505050505050565b602080825282518282018190525f918401906040840190835b8181101561269b5783516001600160e01b031916835260209384019390920191600101612673565b509095945050505050565b801515811461227b575f80fd5b5f805f80608085870312156126c6575f80fd5b84356126d1816124a7565b935060208501356126e1816124a7565b925060408501356001600160401b038111156126fb575f80fd5b61270787828801612409565b9250506060850135612718816126a6565b939692955090935050565b5f805f805f8060c08789031215612738575f80fd5b8635612743816124a7565b95506020870135612753816124a7565b945060408701356127638161227e565b935060608701356127738161227e565b92506080870135612783816126a6565b915060a0870135612793816126a6565b809150509295509295509295565b6004811061227b575f80fd5b63ffffffff8116811461227b575f80fd5b5f805f80608085870312156127d1575f80fd5b84356127dc816124c7565b935060208501356127ec816127a1565b925060408501356127fc816127ad565b915060608501356001600160401b03811115612816575f80fd5b61282287828801612409565b91505092959194509250565b634e487b7160e01b5f52602160045260245ffd5b81516001600160401b03168152602082015160c0820190600481106128695761286961282e565b8060208401525063ffffffff604084015116604083015264ffffffffff606084015116606083015264ffffffffff608084015116608083015260a083015160a083015292915050565b5f602082840312156128c2575f80fd5b8135610af7816124c7565b5f805f606084860312156128df575f80fd5b83356128ea816124a7565b925060208401356128fa816124a7565b915060408401356125188161227e565b5f805f83850361010081121561291e575f80fd5b8435612929816124a7565b93506020850135612939816124c7565b925060c0603f198201121561294c575f80fd5b5061295561236f565b6040850135612963816124c7565b81526060850135612973816127a1565b60208201526080850135612986816127ad565b604082015260a08501356129998161255c565b606082015260c08501356129ac8161255c565b608082015260e0949094013560a0850152509093909250565b5f805f606084860312156129d7575f80fd5b83356129e2816124a7565b925060208401356001600160401b038111156129fc575f80fd5b612a0886828701612409565b9250506040840135612518816124bb565b6001600160a01b03831681526040602082018190525f90612554908301846122c3565b5f8060408385031215612a4d575f80fd5b8235612a58816124a7565b915060208301356122b8816124bb565b5f60208284031215612a78575f80fd5b8135610af7816124a7565b5f60208284031215612a93575f80fd5b5051919050565b6001600160601b038116811461227b575f80fd5b8051612ab981612a9a565b919050565b5f60208284031215612ace575f80fd5b8151610af781612a9a565b634e487b7160e01b5f52601160045260245ffd5b6001600160601b038181168382160290811690818114612b0f57612b0f612ad9565b5092915050565b6001600160601b03818116838216019081111561058557610585612ad9565b8082018082111561058557610585612ad9565b5f60208284031215612b58575f80fd5b8151610af7816124c7565b8051612ab98161227e565b5f60208284031215612b7e575f80fd5b8151610af78161227e565b5f60208284031215612b99575f80fd5b8151610af78161231e565b5f60208284031215612bb4575f80fd5b8151610af78161255c565b6001600160401b03818116838216019081111561058557610585612ad9565b6001600160a01b03831681526040810160078310612bfe57612bfe61282e565b8260208301529392505050565b5f81518060208401855e5f93019283525090919050565b5f612554612c308386612c0b565b84612c0b565b634e487b7160e01b5f52603260045260245ffd5b8051612ab9816126a6565b5f60208284031215612c65575f80fd5b8151610af7816126a6565b5f6080828403128015612c81575f80fd5b50604051608081016001600160401b0381118282101715612ca457612ca4612333565b604052825181526020830151612cb9816124bb565b60208201526040830151612ccc816124c7565b60408201526060830151612cdf8161255c565b60608201529392505050565b5f612cf8612426846123e3565b9050828152838383011115612d0b575f80fd5b8282602083015e5f602084830101529392505050565b5f60208284031215612d31575f80fd5b81516001600160401b03811115612d46575f80fd5b8201601f81018413612d56575f80fd5b61255484825160208401612ceb565b8051612ab9816124a7565b5f60208284031215612d80575f80fd5b8151610af7816124a7565b6001600160a01b03841681526060602082018190525f90612dae908301856122c3565b905060018060a01b0383166040830152949350505050565b6001600160a01b039290921682526001600160e01b031916602082015260400190565b5f82601f830112612df8575f80fd5b61058283835160208501612ceb565b5f60208284031215612e17575f80fd5b81516001600160401b03811115612e2c575f80fd5b820160e08185031215612e3d575f80fd5b612e45612391565b612e4e82612aae565b8152612e5c60208301612aae565b6020820152612e6d60408301612b63565b6040820152612e7e60608301612c4a565b6060820152612e8f60808301612d65565b6080820152612ea060a08301612d65565b60a082015260c08201516001600160401b03811115612ebd575f80fd5b612ec986828501612de9565b60c083015250949350505050565b5f60c0828403128015612ee8575f80fd5b50612ef161236f565b8251612efc816124c7565b81526020830151612f0c816127a1565b60208201526040830151612f1f816127ad565b60408201526060830151612f328161255c565b60608201526080830151612f458161255c565b608082015260a0928301519281019290925250919050565b6001600160401b0383168152604060208201525f61255460408301846122c3565b6001600160401b0384168152606060208201525f612f9f60608301856122c3565b90506001600160401b038316604083015294935050505056fea26469706673582212206630100eef8105b3f5a9cf6d849582f89cab5a81786a502cc39543f67257223a64736f6c634300081a0033",
922
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106101ac575f3560e01c80635b55eef2116100fe578063b1d4d5c31161009e578063ceaaf86b11610079578063ceaaf86b146103a3578063d27e68a9146103ad578063d4c3026c146103ce578063e03aefc2146103e1575f80fd5b8063b1d4d5c31461036c578063caf3ba4a146102c0578063cdfdf2a814610390575f80fd5b8063915f1dbb116100d9578063915f1dbb146103245780639b7ec44c1461034f578063a43e328114610362578063b05601aa146102c0575f80fd5b80635b55eef2146103115780636126bf441461032457806361890d9b1461032c575f80fd5b806337c339e51161016957806346729cd21161014457806346729cd2146102c05780634924730a146102c95780634eaf40a2146102de5780635a819662146102f1575f80fd5b806337c339e5146102845780634068538c14610297578063448111d7146102a0575f80fd5b806303d6f9be146101b057806304c713a7146101e057806305b81b9f1461020e5780630ccbae511461022157806315fb0abb1461022b578063195746e914610271575b5f80fd5b6101c36101be36600461228c565b6103f4565b6040516001600160401b0390911681526020015b60405180910390f35b610201604051806040016040528060028152602001610a8d60f31b81525081565b6040516101d791906122f1565b6101c361021c366004612303565b61058b565b6101c3620186a081565b61023e61023936600461245b565b610782565b60408051825181526020808401516001600160e01b031916908201529181015164ffffffffff16908201526060016101d7565b6101c361027f3660046124db565b610925565b610201610292366004612523565b610afe565b6101c3614a3881565b6102b36102ae36600461256e565b610b46565b6040516101d7919061265a565b6101c36103e881565b6102dc6102d73660046126b3565b610c6f565b005b6102dc6102ec366004612723565b6111a2565b6103046102ff3660046127be565b61148c565b6040516101d79190612842565b6101c361031f3660046128b2565b611669565b6101c3606481565b61033f61033a3660046128b2565b6116bd565b60405190151581526020016101d7565b6102dc61035d3660046128cd565b61174f565b6101c36201adb081565b610201604051806040016040528060058152602001645f526f6c6560d81b81525081565b6102dc61039e36600461290a565b6118b2565b6101c3620f424081565b6103c06103bb3660046129c5565b611d73565b6040516101d7929190612a19565b6101c36103dc366004612a3c565b611f9e565b6102dc6103ef366004612a68565b6121d9565b604051632b10f60d60e21b815260ff821660048201525f9073__$1d92393fa9ccd763988368ce8a1cb90d26$__906368aebf7b9073__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015610462573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104869190612a83565b604051632b10f60d60e21b815260ff8716600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__9063ac43d83490602401602060405180830381865af41580156104d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104fa9190612abe565b610506906103e8612aed565b610512906103e8612b16565b6001600160601b03166105259190612b35565b6040518263ffffffff1660e01b815260040161054391815260200190565b602060405180830381865af415801561055e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105829190612b48565b90505b92915050565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b73__$b659da7d8a6d2d32aa6c1e17da23dc2174$__63fbcaa8ed6040518163ffffffff1660e01b8152600401602060405180830381865af41580156105ed573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106119190612b6e565b604051632b10f60d60e21b815260ff909116600482015273__$b659da7d8a6d2d32aa6c1e17da23dc2174$__9063ac43d83490602401602060405180830381865af4158015610662573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106869190612a83565b604051632b10f60d60e21b815260ff8616600482015273__$0d958e68cba84670b8f4a3f2f2686b1c6b$__9063ac43d83490602401602060405180830381865af41580156106d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fa9190612abe565b610706906103e8612aed565b610712906103e8612b16565b6001600160601b03166107259190612b35565b6040518263ffffffff1660e01b815260040161074391815260200190565b602060405180830381865af415801561075e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105859190612b48565b60408051606080820183525f808352602083018190528284015282519081019283905263cdc23e6960e01b909252908073__$9a094f9b231ed0f5f85a69be8408d93180$__63cdc23e696107d986606485016122f1565b602060405180830381865af41580156107f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108189190612a83565b8152604051636b15ee8b60e01b81526001600160e01b03198616600482015260209091019073__$0904195350e4c23ecb1d51df0a32586dcd$__90636b15ee8b90602401602060405180830381865af4158015610877573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089b9190612b89565b6001600160e01b031916815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156108f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109159190612ba4565b64ffffffffff1690529392505050565b5f600183600681111561093a5761093a61282e565b036109d15773__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b610964846064612bbf565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af41580156109a6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109ca9190612b48565b9050610af7565b60038360068111156109e5576109e561282e565b1480610a0257506002836006811115610a0057610a0061282e565b145b15610a11576109ca8484611f9e565b6004836006811115610a2557610a2561282e565b03610a515773__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b61096484620186a0612bbf565b6005836006811115610a6557610a6561282e565b03610a915773__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b610964846201adb0612bbf565b6006836006811115610aa557610aa561282e565b03610ad15773__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b61096484620f4240612bbf565b838360405163058666f560e21b8152600401610aee929190612bde565b60405180910390fd5b9392505050565b606081604051806040016040528060058152602001645f526f6c6560d81b815250604051602001610b30929190612c22565b6040516020818303038152906040529050919050565b8051606090806001600160401b03811115610b6357610b63612333565b604051908082528060200260200182016040528015610b8c578160200160208202803683370190505b5091505f5b81811015610c6857838181518110610bab57610bab612c36565b6020908102919091018101510151604051636ea1af2560e11b81526001600160e01b0319909116600482015273__$0904195350e4c23ecb1d51df0a32586dcd$__9063dd435e4a90602401602060405180830381865af4158015610c11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c359190612b89565b838281518110610c4757610c47612c36565b6001600160e01b031990921660209283029190910190910152600101610b91565b5050919050565b60405163302d508560e11b81526001600160a01b03848116600483015285169063605aa10a90602401602060405180830381865afa158015610cb3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd79190612c55565b15610dd8576040516312e1ebc560e01b81526001600160a01b0380851660048301528491908616906312e1ebc590602401608060405180830381865afa158015610d23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d479190612c70565b51604051631623433d60e31b8152600481019190915273__$9a094f9b231ed0f5f85a69be8408d93180$__9063b11a19e8906024015f60405180830381865af4158015610d96573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610dbd9190810190612d21565b604051630bf898a560e31b8152600401610aee929190612a19565b60405163cdc23e6960e01b81525f9073__$9a094f9b231ed0f5f85a69be8408d93180$__9063cdc23e6990610e119086906004016122f1565b602060405180830381865af4158015610e2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e509190612a83565b60405163a9dbaf2560e01b81526004810182905290915073__$9a094f9b231ed0f5f85a69be8408d93180$__9063a9dbaf2590602401602060405180830381865af4158015610ea1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec59190612a83565b5f03610eef57604051638a0b84e560e01b81526001600160a01b0385166004820152602401610aee565b604051631a0358a960e11b8152600481018290525f906001600160a01b03871690633406b15290602401602060405180830381865afa158015610f34573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f589190612d70565b90506001600160a01b03811615610f885784848260405163375fd50360e11b8152600401610aee93929190612d8b565b6040516303d2026b60e21b81526001600160a01b038616600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90630f4809ac90602401602060405180830381865af4158015610fde573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110029190612c55565b61102a57604051637693f8d560e01b81526001600160a01b0386166004820152602401610aee565b821561119a575f856001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561106d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110919190612d70565b9050866001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110cf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f39190612d70565b6001600160a01b0316816001600160a01b03161461119857866001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611147573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116b9190612d70565b604051630deaa28d60e31b81526001600160a01b0391821660048201529082166024820152604401610aee565b505b505050505050565b8080156111b757506001600160a01b03861615155b156111e057604051631032fd6b60e01b81526001600160a01b0387166004820152602401610aee565b81156112915760405163d905700760e01b815273__$fb599632d08395912d9d70eb2f0f93b5e2$__9063d90570079061122590889062d1d15b60e11b90600401612dc6565b602060405180830381865af4158015611240573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112649190612c55565b61128c5760405163bea2481f60e01b81526001600160a01b0386166004820152602401610aee565b611338565b60405163d905700760e01b815273__$fb599632d08395912d9d70eb2f0f93b5e2$__9063d9057007906112d1908890635a183bdb60e11b90600401612dc6565b602060405180830381865af41580156112ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113109190612c55565b61133857604051637737699b60e01b81526001600160a01b0386166004820152602401610aee565b5f856001600160a01b031663b68d18096040518163ffffffff1660e01b8152600401602060405180830381865afa158015611375573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113999190612b6e565b905060ff808216908616146113dd5760405163a1eb7bc960e01b81526001600160a01b038716600482015260ff808716602483015282166044820152606401610aee565b5f866001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561141a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143e9190612b6e565b905060ff8082169086161461148257604051630fc1a0bf60e41b81526001600160a01b038816600482015260ff808716602483015282166044820152606401610aee565b5050505050505050565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a08101919091526040518060c00160405280866001600160401b031681526020018560038111156114e9576114e961282e565b81526020018463ffffffff16815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015611541573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115659190612ba4565b64ffffffffff16815260200173__$91d01b1eccbca8d6f94a5eb2a0acb040e9$__636ac5db196040518163ffffffff1660e01b8152600401602060405180830381865af41580156115b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115dc9190612ba4565b64ffffffffff16815260200173__$9a094f9b231ed0f5f85a69be8408d93180$__63cdc23e69856040518263ffffffff1660e01b815260040161161f91906122f1565b602060405180830381865af415801561163a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061165e9190612a83565b905295945050505050565b5f73__$1d92393fa9ccd763988368ce8a1cb90d26$__6368aebf7b61169184620f4240612bbf565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401610743565b604051631517388760e21b81526001600160401b03821660048201525f90620f42409073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063545ce21c90602401602060405180830381865af415801561171a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061173e9190612b48565b6001600160401b0316101592915050565b611758836121d9565b6040516308b09a5f60e41b81526001600160a01b0383811660048301525f9190851690638b09a5f0906024015f60405180830381865afa15801561179e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526117c59190810190612e07565b604090810151905163037c8cb160e51b815260ff8216600482015290915073__$0d958e68cba84670b8f4a3f2f2686b1c6b$__90636f91962090602401602060405180830381865af415801561181d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118419190612c55565b1561186a57604051633b69638960e11b81526001600160a01b0384166004820152602401610aee565b60ff808216908316146118ac5760405163b1feebfb60e01b81526001600160a01b038416600482015260ff808416602483015282166044820152606401610aee565b50505050565b60405163c6a0017960e01b81526001600160401b03831660048201526001600160a01b0384169063c6a0017990602401602060405180830381865afa1580156118fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119219190612c55565b15611a2b57604051635bfa502760e01b81526001600160401b038316600482015282906001600160a01b03851690635bfa50279060240160c060405180830381865afa158015611973573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119979190612ed7565b60a00151604051631623433d60e31b8152600481019190915273__$9a094f9b231ed0f5f85a69be8408d93180$__9063b11a19e8906024015f60405180830381865af41580156119e9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611a109190810190612d21565b60405163c2f92fd360e01b8152600401610aee929190612f5d565b805160405163c6a0017960e01b81526001600160401b0390911660048201526001600160a01b0384169063c6a0017990602401602060405180830381865afa158015611a79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9d9190612c55565b611ac8578051604051634731add760e11b81526001600160401b039091166004820152602401610aee565b60a081015160405163a9dbaf2560e01b8152600481019190915273__$9a094f9b231ed0f5f85a69be8408d93180$__9063a9dbaf2590602401602060405180830381865af4158015611b1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b409190612a83565b5f03611b6a5760405163ce242fe760e01b81526001600160401b0383166004820152602401610aee565b5f836001600160a01b0316639cad005273__$9a094f9b231ed0f5f85a69be8408d93180$__63b11a19e88560a001516040518263ffffffff1660e01b8152600401611bb791815260200190565b5f60405180830381865af4158015611bd1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611bf89190810190612d21565b6040518263ffffffff1660e01b8152600401611c1491906122f1565b602060405180830381865afa158015611c2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c539190612b48565b60405163a42e52e960e01b81526001600160401b038216600482015290915073__$1d92393fa9ccd763988368ce8a1cb90d26$__9063a42e52e990602401602060405180830381865af4158015611cac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cd09190612c55565b156118ac5760a0820151604051631623433d60e31b8152849173__$9a094f9b231ed0f5f85a69be8408d93180$__9163b11a19e891611d159160040190815260200190565b5f60405180830381865af4158015611d2f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d569190810190612d21565b8260405163ab0b63a360e01b8152600401610aee93929190612f7e565b5f60606005836006811115611d8a57611d8a61282e565b14158015611daa57506001836006811115611da757611da761282e565b14155b15611dc657505060408051602081019091525f80825290611f96565b604051631627905560e01b81526001600160a01b038616600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90631627905590602401602060405180830381865af4158015611e1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e409190612c55565b611e5b57505060408051602081019091525f80825290611f96565b60405163d905700760e01b815273__$fb599632d08395912d9d70eb2f0f93b5e2$__9063d905700790611e9b9088906306e9e5ff60e31b90600401612dc6565b602060405180830381865af4158015611eb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611eda9190612c55565b611ef557505060408051602081019091525f80825290611f96565b846001600160a01b03166343d752d36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f31573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f559190612d70565b915083604051806040016040528060028152602001610a8d60f31b815250604051602001611f84929190612c22565b60405160208183030381529060405290505b935093915050565b5f826003836006811115611fb457611fb461282e565b036121035773__$1d92393fa9ccd763988368ce8a1cb90d26$__63645ceefe826001600160a01b031663b68d18096040518163ffffffff1660e01b8152600401602060405180830381865afa15801561200f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120339190612b6e565b836001600160a01b03166376b707b76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120939190612b6e565b6040516001600160e01b031960e085901b16815260ff9283166004820152911660248201526044015b602060405180830381865af41580156120d7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120fb9190612b48565b915050610585565b60028360068111156121175761211761282e565b036121bc5773__$1d92393fa9ccd763988368ce8a1cb90d26$__63383ff861826001600160a01b031663b68d18096040518163ffffffff1660e01b8152600401602060405180830381865afa158015612172573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121969190612b6e565b6040516001600160e01b031960e084901b16815260ff90911660048201526024016120bc565b838360405163f46de64d60e01b8152600401610aee929190612bde565b604051633334d16b60e01b81526001600160a01b038216600482015273__$fb599632d08395912d9d70eb2f0f93b5e2$__90633334d16b90602401602060405180830381865af415801561222f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122539190612c55565b61227b5760405163375acd0b60e11b81526001600160a01b0382166004820152602401610aee565b50565b60ff8116811461227b575f80fd5b5f806040838503121561229d575f80fd5b82356122a88161227e565b915060208301356122b88161227e565b809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f61058260208301846122c3565b5f60208284031215612313575f80fd5b8135610af78161227e565b6001600160e01b03198116811461227b575f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561236957612369612333565b60405290565b60405160c081016001600160401b038111828210171561236957612369612333565b60405160e081016001600160401b038111828210171561236957612369612333565b604051601f8201601f191681016001600160401b03811182821017156123db576123db612333565b604052919050565b5f6001600160401b038211156123fb576123fb612333565b50601f01601f191660200190565b5f82601f830112612418575f80fd5b813561242b612426826123e3565b6123b3565b81815284602083860101111561243f575f80fd5b816020850160208301375f918101602001919091529392505050565b5f806040838503121561246c575f80fd5b82356124778161231e565b915060208301356001600160401b03811115612491575f80fd5b61249d85828601612409565b9150509250929050565b6001600160a01b038116811461227b575f80fd5b6007811061227b575f80fd5b6001600160401b038116811461227b575f80fd5b5f805f606084860312156124ed575f80fd5b83356124f8816124a7565b92506020840135612508816124bb565b91506040840135612518816124c7565b809150509250925092565b5f60208284031215612533575f80fd5b81356001600160401b03811115612548575f80fd5b61255484828501612409565b949350505050565b64ffffffffff8116811461227b575f80fd5b5f6020828403121561257e575f80fd5b81356001600160401b03811115612593575f80fd5b8201601f810184136125a3575f80fd5b80356001600160401b038111156125bc576125bc612333565b6125cb60208260051b016123b3565b808282526020820191506020606084028501019250868311156125ec575f80fd5b6020840193505b82841015612650576060848803121561260a575f80fd5b612612612347565b8435815260208501356126248161231e565b602082015260408501356126378161255c565b60408201528252606093909301926020909101906125f3565b9695505050505050565b602080825282518282018190525f918401906040840190835b8181101561269b5783516001600160e01b031916835260209384019390920191600101612673565b509095945050505050565b801515811461227b575f80fd5b5f805f80608085870312156126c6575f80fd5b84356126d1816124a7565b935060208501356126e1816124a7565b925060408501356001600160401b038111156126fb575f80fd5b61270787828801612409565b9250506060850135612718816126a6565b939692955090935050565b5f805f805f8060c08789031215612738575f80fd5b8635612743816124a7565b95506020870135612753816124a7565b945060408701356127638161227e565b935060608701356127738161227e565b92506080870135612783816126a6565b915060a0870135612793816126a6565b809150509295509295509295565b6004811061227b575f80fd5b63ffffffff8116811461227b575f80fd5b5f805f80608085870312156127d1575f80fd5b84356127dc816124c7565b935060208501356127ec816127a1565b925060408501356127fc816127ad565b915060608501356001600160401b03811115612816575f80fd5b61282287828801612409565b91505092959194509250565b634e487b7160e01b5f52602160045260245ffd5b81516001600160401b03168152602082015160c0820190600481106128695761286961282e565b8060208401525063ffffffff604084015116604083015264ffffffffff606084015116606083015264ffffffffff608084015116608083015260a083015160a083015292915050565b5f602082840312156128c2575f80fd5b8135610af7816124c7565b5f805f606084860312156128df575f80fd5b83356128ea816124a7565b925060208401356128fa816124a7565b915060408401356125188161227e565b5f805f83850361010081121561291e575f80fd5b8435612929816124a7565b93506020850135612939816124c7565b925060c0603f198201121561294c575f80fd5b5061295561236f565b6040850135612963816124c7565b81526060850135612973816127a1565b60208201526080850135612986816127ad565b604082015260a08501356129998161255c565b606082015260c08501356129ac8161255c565b608082015260e0949094013560a0850152509093909250565b5f805f606084860312156129d7575f80fd5b83356129e2816124a7565b925060208401356001600160401b038111156129fc575f80fd5b612a0886828701612409565b9250506040840135612518816124bb565b6001600160a01b03831681526040602082018190525f90612554908301846122c3565b5f8060408385031215612a4d575f80fd5b8235612a58816124a7565b915060208301356122b8816124bb565b5f60208284031215612a78575f80fd5b8135610af7816124a7565b5f60208284031215612a93575f80fd5b5051919050565b6001600160601b038116811461227b575f80fd5b8051612ab981612a9a565b919050565b5f60208284031215612ace575f80fd5b8151610af781612a9a565b634e487b7160e01b5f52601160045260245ffd5b6001600160601b038181168382160290811690818114612b0f57612b0f612ad9565b5092915050565b6001600160601b03818116838216019081111561058557610585612ad9565b8082018082111561058557610585612ad9565b5f60208284031215612b58575f80fd5b8151610af7816124c7565b8051612ab98161227e565b5f60208284031215612b7e575f80fd5b8151610af78161227e565b5f60208284031215612b99575f80fd5b8151610af78161231e565b5f60208284031215612bb4575f80fd5b8151610af78161255c565b6001600160401b03818116838216019081111561058557610585612ad9565b6001600160a01b03831681526040810160078310612bfe57612bfe61282e565b8260208301529392505050565b5f81518060208401855e5f93019283525090919050565b5f612554612c308386612c0b565b84612c0b565b634e487b7160e01b5f52603260045260245ffd5b8051612ab9816126a6565b5f60208284031215612c65575f80fd5b8151610af7816126a6565b5f6080828403128015612c81575f80fd5b50604051608081016001600160401b0381118282101715612ca457612ca4612333565b604052825181526020830151612cb9816124bb565b60208201526040830151612ccc816124c7565b60408201526060830151612cdf8161255c565b60608201529392505050565b5f612cf8612426846123e3565b9050828152838383011115612d0b575f80fd5b8282602083015e5f602084830101529392505050565b5f60208284031215612d31575f80fd5b81516001600160401b03811115612d46575f80fd5b8201601f81018413612d56575f80fd5b61255484825160208401612ceb565b8051612ab9816124a7565b5f60208284031215612d80575f80fd5b8151610af7816124a7565b6001600160a01b03841681526060602082018190525f90612dae908301856122c3565b905060018060a01b0383166040830152949350505050565b6001600160a01b039290921682526001600160e01b031916602082015260400190565b5f82601f830112612df8575f80fd5b61058283835160208501612ceb565b5f60208284031215612e17575f80fd5b81516001600160401b03811115612e2c575f80fd5b820160e08185031215612e3d575f80fd5b612e45612391565b612e4e82612aae565b8152612e5c60208301612aae565b6020820152612e6d60408301612b63565b6040820152612e7e60608301612c4a565b6060820152612e8f60808301612d65565b6080820152612ea060a08301612d65565b60a082015260c08201516001600160401b03811115612ebd575f80fd5b612ec986828501612de9565b60c083015250949350505050565b5f60c0828403128015612ee8575f80fd5b50612ef161236f565b8251612efc816124c7565b81526020830151612f0c816127a1565b60208201526040830151612f1f816127ad565b60408201526060830151612f328161255c565b60608201526080830151612f458161255c565b608082015260a0928301519281019290925250919050565b6001600160401b0383168152604060208201525f61255460408301846122c3565b6001600160401b0384168152606060208201525f612f9f60608301856122c3565b90506001600160401b038316604083015294935050505056fea26469706673582212206630100eef8105b3f5a9cf6d849582f89cab5a81786a502cc39543f67257223a64736f6c634300081a0033",
923
+ "linkReferences": {
924
+ "contracts/shared/ContractLib.sol": {
925
+ "ContractLib": [
926
+ {
927
+ "length": 20,
928
+ "start": 4058
929
+ },
930
+ {
931
+ "length": 20,
932
+ "start": 4649
933
+ },
934
+ {
935
+ "length": 20,
936
+ "start": 4820
937
+ },
938
+ {
939
+ "length": 20,
940
+ "start": 7704
941
+ },
942
+ {
943
+ "length": 20,
944
+ "start": 7838
945
+ },
946
+ {
947
+ "length": 20,
948
+ "start": 8747
949
+ }
950
+ ]
951
+ },
952
+ "contracts/type/ObjectType.sol": {
953
+ "ObjectTypeLib": [
954
+ {
955
+ "length": 20,
956
+ "start": 1234
957
+ },
958
+ {
959
+ "length": 20,
960
+ "start": 1746
961
+ },
962
+ {
963
+ "length": 20,
964
+ "start": 6169
965
+ }
966
+ ]
967
+ },
968
+ "contracts/type/RoleId.sol": {
969
+ "RoleIdLib": [
970
+ {
971
+ "length": 20,
972
+ "start": 1090
973
+ },
974
+ {
975
+ "length": 20,
976
+ "start": 1474
977
+ },
978
+ {
979
+ "length": 20,
980
+ "start": 2421
981
+ },
982
+ {
983
+ "length": 20,
984
+ "start": 2656
985
+ },
986
+ {
987
+ "length": 20,
988
+ "start": 2720
989
+ },
990
+ {
991
+ "length": 20,
992
+ "start": 2784
993
+ },
994
+ {
995
+ "length": 20,
996
+ "start": 5792
997
+ },
998
+ {
999
+ "length": 20,
1000
+ "start": 5910
1001
+ },
1002
+ {
1003
+ "length": 20,
1004
+ "start": 7336
1005
+ },
1006
+ {
1007
+ "length": 20,
1008
+ "start": 8175
1009
+ },
1010
+ {
1011
+ "length": 20,
1012
+ "start": 8530
1013
+ }
1014
+ ]
1015
+ },
1016
+ "contracts/type/Selector.sol": {
1017
+ "SelectorLib": [
1018
+ {
1019
+ "length": 20,
1020
+ "start": 2163
1021
+ },
1022
+ {
1023
+ "length": 20,
1024
+ "start": 3085
1025
+ }
1026
+ ]
1027
+ },
1028
+ "contracts/type/String.sol": {
1029
+ "StrLib": [
1030
+ {
1031
+ "length": 20,
1032
+ "start": 2024
1033
+ },
1034
+ {
1035
+ "length": 20,
1036
+ "start": 3475
1037
+ },
1038
+ {
1039
+ "length": 20,
1040
+ "start": 3613
1041
+ },
1042
+ {
1043
+ "length": 20,
1044
+ "start": 3741
1045
+ },
1046
+ {
1047
+ "length": 20,
1048
+ "start": 5662
1049
+ },
1050
+ {
1051
+ "length": 20,
1052
+ "start": 6630
1053
+ },
1054
+ {
1055
+ "length": 20,
1056
+ "start": 6936
1057
+ },
1058
+ {
1059
+ "length": 20,
1060
+ "start": 7088
1061
+ },
1062
+ {
1063
+ "length": 20,
1064
+ "start": 7455
1065
+ }
1066
+ ]
1067
+ },
1068
+ "contracts/type/Timestamp.sol": {
1069
+ "TimestampLib": [
1070
+ {
1071
+ "length": 20,
1072
+ "start": 2272
1073
+ },
1074
+ {
1075
+ "length": 20,
1076
+ "start": 5424
1077
+ },
1078
+ {
1079
+ "length": 20,
1080
+ "start": 5543
1081
+ }
1082
+ ]
1083
+ },
1084
+ "contracts/type/Version.sol": {
1085
+ "VersionPartLib": [
1086
+ {
1087
+ "length": 20,
1088
+ "start": 1118
1089
+ },
1090
+ {
1091
+ "length": 20,
1092
+ "start": 1500
1093
+ },
1094
+ {
1095
+ "length": 20,
1096
+ "start": 1630
1097
+ }
1098
+ ]
1099
+ }
1100
+ },
1101
+ "deployedLinkReferences": {
1102
+ "contracts/shared/ContractLib.sol": {
1103
+ "ContractLib": [
1104
+ {
1105
+ "length": 20,
1106
+ "start": 4006
1107
+ },
1108
+ {
1109
+ "length": 20,
1110
+ "start": 4597
1111
+ },
1112
+ {
1113
+ "length": 20,
1114
+ "start": 4768
1115
+ },
1116
+ {
1117
+ "length": 20,
1118
+ "start": 7652
1119
+ },
1120
+ {
1121
+ "length": 20,
1122
+ "start": 7786
1123
+ },
1124
+ {
1125
+ "length": 20,
1126
+ "start": 8695
1127
+ }
1128
+ ]
1129
+ },
1130
+ "contracts/type/ObjectType.sol": {
1131
+ "ObjectTypeLib": [
1132
+ {
1133
+ "length": 20,
1134
+ "start": 1182
1135
+ },
1136
+ {
1137
+ "length": 20,
1138
+ "start": 1694
1139
+ },
1140
+ {
1141
+ "length": 20,
1142
+ "start": 6117
1143
+ }
1144
+ ]
1145
+ },
1146
+ "contracts/type/RoleId.sol": {
1147
+ "RoleIdLib": [
1148
+ {
1149
+ "length": 20,
1150
+ "start": 1038
1151
+ },
1152
+ {
1153
+ "length": 20,
1154
+ "start": 1422
1155
+ },
1156
+ {
1157
+ "length": 20,
1158
+ "start": 2369
1159
+ },
1160
+ {
1161
+ "length": 20,
1162
+ "start": 2604
1163
+ },
1164
+ {
1165
+ "length": 20,
1166
+ "start": 2668
1167
+ },
1168
+ {
1169
+ "length": 20,
1170
+ "start": 2732
1171
+ },
1172
+ {
1173
+ "length": 20,
1174
+ "start": 5740
1175
+ },
1176
+ {
1177
+ "length": 20,
1178
+ "start": 5858
1179
+ },
1180
+ {
1181
+ "length": 20,
1182
+ "start": 7284
1183
+ },
1184
+ {
1185
+ "length": 20,
1186
+ "start": 8123
1187
+ },
1188
+ {
1189
+ "length": 20,
1190
+ "start": 8478
1191
+ }
1192
+ ]
1193
+ },
1194
+ "contracts/type/Selector.sol": {
1195
+ "SelectorLib": [
1196
+ {
1197
+ "length": 20,
1198
+ "start": 2111
1199
+ },
1200
+ {
1201
+ "length": 20,
1202
+ "start": 3033
1203
+ }
1204
+ ]
1205
+ },
1206
+ "contracts/type/String.sol": {
1207
+ "StrLib": [
1208
+ {
1209
+ "length": 20,
1210
+ "start": 1972
1211
+ },
1212
+ {
1213
+ "length": 20,
1214
+ "start": 3423
1215
+ },
1216
+ {
1217
+ "length": 20,
1218
+ "start": 3561
1219
+ },
1220
+ {
1221
+ "length": 20,
1222
+ "start": 3689
1223
+ },
1224
+ {
1225
+ "length": 20,
1226
+ "start": 5610
1227
+ },
1228
+ {
1229
+ "length": 20,
1230
+ "start": 6578
1231
+ },
1232
+ {
1233
+ "length": 20,
1234
+ "start": 6884
1235
+ },
1236
+ {
1237
+ "length": 20,
1238
+ "start": 7036
1239
+ },
1240
+ {
1241
+ "length": 20,
1242
+ "start": 7403
1243
+ }
1244
+ ]
1245
+ },
1246
+ "contracts/type/Timestamp.sol": {
1247
+ "TimestampLib": [
1248
+ {
1249
+ "length": 20,
1250
+ "start": 2220
1251
+ },
1252
+ {
1253
+ "length": 20,
1254
+ "start": 5372
1255
+ },
1256
+ {
1257
+ "length": 20,
1258
+ "start": 5491
1259
+ }
1260
+ ]
1261
+ },
1262
+ "contracts/type/Version.sol": {
1263
+ "VersionPartLib": [
1264
+ {
1265
+ "length": 20,
1266
+ "start": 1066
1267
+ },
1268
+ {
1269
+ "length": 20,
1270
+ "start": 1448
1271
+ },
1272
+ {
1273
+ "length": 20,
1274
+ "start": 1578
1275
+ }
1276
+ ]
1277
+ }
1278
+ }
1279
+ }