@etherisc/gif-next 0.0.2-f30e0eb-805 → 0.0.2-f398177-971

Sign up to get free protection for your applications and to get access to all the features.
Files changed (266) hide show
  1. package/README.md +6 -83
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
  3. package/artifacts/contracts/components/Component.sol/Component.json +47 -6
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +70 -13
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IComponent.sol/IComponent.json +137 -6
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +144 -13
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +161 -20
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +151 -20
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +71 -20
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +62 -21
  18. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  19. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
  20. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
  21. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  22. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +310 -2004
  23. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  24. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +101 -52
  25. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  26. package/artifacts/contracts/instance/Instance.sol/Instance.json +425 -2757
  27. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  28. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +95 -58
  29. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  30. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  31. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  32. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +348 -58
  33. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  34. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +153 -207
  35. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  36. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +38 -83
  37. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  38. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2788 -0
  39. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  40. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +2 -2
  41. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
  42. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +113 -34
  43. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  44. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  46. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +8 -8
  47. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  48. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +6 -6
  49. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  50. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +6 -6
  51. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  52. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  53. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  54. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  55. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  56. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  57. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  58. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +186 -236
  60. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +38 -55
  62. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
  63. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +377 -182
  64. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  65. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +74 -39
  66. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +1 -1
  67. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +713 -83
  68. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  69. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +147 -32
  70. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +266 -442
  72. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +82 -107
  74. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +111 -174
  76. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
  77. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +233 -128
  78. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +385 -51
  80. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +109 -282
  82. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +210 -99
  84. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +682 -33
  86. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +4 -0
  87. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.json +510 -0
  88. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  89. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +85 -27
  90. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
  91. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +420 -160
  92. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  93. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +104 -53
  94. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +880 -82
  96. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +90 -39
  98. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +4 -0
  99. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +1004 -0
  100. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +688 -0
  102. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +144 -57
  104. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +28 -37
  106. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  107. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  108. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  109. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +5 -37
  110. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  111. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  113. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
  114. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +2 -2
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  116. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +22 -49
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +21 -34
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  120. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +23 -11
  121. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +10 -23
  123. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  124. package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
  125. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  126. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  127. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  128. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
  129. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  130. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
  131. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  132. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
  133. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  134. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  135. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  136. package/artifacts/contracts/shared/IService.sol/IService.json +85 -27
  137. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  138. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  139. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -19
  140. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  141. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
  142. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  143. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +14 -27
  144. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  145. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +6 -19
  146. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  147. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  148. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  149. package/artifacts/contracts/shared/Service.sol/Service.json +91 -28
  150. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  151. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
  152. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  153. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  154. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  156. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  157. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +6 -19
  158. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  159. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  160. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  161. package/artifacts/contracts/test/TestService.sol/TestService.json +106 -39
  162. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  163. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  164. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  165. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  166. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  167. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
  168. package/artifacts/contracts/types/Amount.sol/AmountLib.json +281 -0
  169. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  170. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  172. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +83 -4
  173. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  174. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
  175. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/Fee.sol/FeeLib.json +74 -19
  177. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  178. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  179. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  180. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  181. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  182. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  183. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  184. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  185. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  186. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  187. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +116 -7
  188. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  189. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
  190. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  191. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  192. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  194. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  196. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  197. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  198. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +17 -4
  199. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  200. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  201. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  202. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  203. package/contracts/components/Component.sol +25 -4
  204. package/contracts/components/Distribution.sol +11 -6
  205. package/contracts/components/IComponent.sol +19 -3
  206. package/contracts/components/IPoolComponent.sol +8 -7
  207. package/contracts/components/IProductComponent.sol +5 -4
  208. package/contracts/components/Pool.sol +17 -14
  209. package/contracts/components/Product.sol +144 -62
  210. package/contracts/instance/BundleManager.sol +3 -4
  211. package/contracts/instance/IInstance.sol +32 -53
  212. package/contracts/instance/IInstanceService.sol +15 -14
  213. package/contracts/instance/Instance.sol +107 -205
  214. package/contracts/instance/InstanceAccessManager.sol +44 -25
  215. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  216. package/contracts/instance/InstanceReader.sol +85 -7
  217. package/contracts/instance/InstanceService.sol +102 -289
  218. package/contracts/instance/InstanceStore.sol +212 -0
  219. package/contracts/instance/ObjectManager.sol +1 -1
  220. package/contracts/instance/base/ComponentService.sol +53 -39
  221. package/contracts/instance/base/KeyValueStore.sol +8 -34
  222. package/contracts/instance/base/Lifecycle.sol +15 -4
  223. package/contracts/instance/module/IAccess.sol +2 -2
  224. package/contracts/instance/module/IBundle.sol +6 -4
  225. package/contracts/instance/module/IComponents.sol +7 -1
  226. package/contracts/instance/module/IDistribution.sol +3 -2
  227. package/contracts/instance/module/IPolicy.sol +13 -8
  228. package/contracts/instance/service/ApplicationService.sol +62 -226
  229. package/contracts/instance/service/BundleService.sol +172 -126
  230. package/contracts/instance/service/ClaimService.sol +318 -32
  231. package/contracts/instance/service/DistributionService.sol +71 -190
  232. package/contracts/instance/service/IApplicationService.sol +8 -28
  233. package/contracts/instance/service/IBundleService.sol +82 -26
  234. package/contracts/instance/service/IClaimService.sol +52 -23
  235. package/contracts/instance/service/IDistributionService.sol +11 -22
  236. package/contracts/instance/service/IPolicyService.sol +24 -16
  237. package/contracts/instance/service/IPoolService.sol +82 -3
  238. package/contracts/instance/service/IPricingService.sol +37 -0
  239. package/contracts/instance/service/PolicyService.sol +152 -179
  240. package/contracts/instance/service/PoolService.sol +239 -56
  241. package/contracts/instance/service/PricingService.sol +275 -0
  242. package/contracts/instance/service/PricingServiceManager.sol +51 -0
  243. package/contracts/instance/service/ProductService.sol +27 -58
  244. package/contracts/registry/IRegistryService.sol +2 -3
  245. package/contracts/registry/RegistryService.sol +24 -21
  246. package/contracts/registry/ReleaseManager.sol +20 -18
  247. package/contracts/shared/IPolicyHolder.sol +23 -9
  248. package/contracts/shared/IRegistryLinked.sol +0 -1
  249. package/contracts/shared/IService.sol +6 -6
  250. package/contracts/shared/NftOwnable.sol +0 -2
  251. package/contracts/shared/PolicyHolder.sol +30 -17
  252. package/contracts/shared/Registerable.sol +10 -9
  253. package/contracts/shared/RegistryLinked.sol +0 -5
  254. package/contracts/shared/Service.sol +21 -7
  255. package/contracts/shared/TokenHandler.sol +4 -2
  256. package/contracts/test/TestService.sol +1 -1
  257. package/contracts/types/Amount.sol +109 -0
  258. package/contracts/types/ClaimId.sol +25 -2
  259. package/contracts/types/Fee.sol +16 -8
  260. package/contracts/types/ObjectType.sol +9 -5
  261. package/contracts/types/PayoutId.sol +33 -5
  262. package/contracts/types/StateId.sol +6 -2
  263. package/contracts/types/Timestamp.sol +5 -0
  264. package/package.json +1 -1
  265. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  266. /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
@@ -0,0 +1,2788 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "InstanceStore",
4
+ "sourceName": "contracts/instance/InstanceStore.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "authority",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "AccessManagedInvalidAuthority",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "caller",
22
+ "type": "address"
23
+ },
24
+ {
25
+ "internalType": "uint32",
26
+ "name": "delay",
27
+ "type": "uint32"
28
+ }
29
+ ],
30
+ "name": "AccessManagedRequiredDelay",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "caller",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "AccessManagedUnauthorized",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "ObjectType",
48
+ "name": "objectType",
49
+ "type": "uint8"
50
+ },
51
+ {
52
+ "internalType": "StateId",
53
+ "name": "fromStateId",
54
+ "type": "uint8"
55
+ },
56
+ {
57
+ "internalType": "StateId",
58
+ "name": "toStateId",
59
+ "type": "uint8"
60
+ }
61
+ ],
62
+ "name": "ErrorInvalidStateTransition",
63
+ "type": "error"
64
+ },
65
+ {
66
+ "inputs": [
67
+ {
68
+ "internalType": "NftId",
69
+ "name": "nftId",
70
+ "type": "uint96"
71
+ },
72
+ {
73
+ "internalType": "ObjectType",
74
+ "name": "objectType",
75
+ "type": "uint8"
76
+ }
77
+ ],
78
+ "name": "ErrorNoLifecycle",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [],
83
+ "name": "InvalidInitialization",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [],
88
+ "name": "NotInitializing",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "anonymous": false,
93
+ "inputs": [
94
+ {
95
+ "indexed": false,
96
+ "internalType": "address",
97
+ "name": "authority",
98
+ "type": "address"
99
+ }
100
+ ],
101
+ "name": "AuthorityUpdated",
102
+ "type": "event"
103
+ },
104
+ {
105
+ "anonymous": false,
106
+ "inputs": [
107
+ {
108
+ "indexed": false,
109
+ "internalType": "uint64",
110
+ "name": "version",
111
+ "type": "uint64"
112
+ }
113
+ ],
114
+ "name": "Initialized",
115
+ "type": "event"
116
+ },
117
+ {
118
+ "anonymous": false,
119
+ "inputs": [
120
+ {
121
+ "indexed": false,
122
+ "internalType": "ObjectType",
123
+ "name": "objectType",
124
+ "type": "uint8"
125
+ },
126
+ {
127
+ "indexed": false,
128
+ "internalType": "KeyId",
129
+ "name": "keyId",
130
+ "type": "bytes31"
131
+ },
132
+ {
133
+ "indexed": false,
134
+ "internalType": "StateId",
135
+ "name": "state",
136
+ "type": "uint8"
137
+ },
138
+ {
139
+ "indexed": false,
140
+ "internalType": "address",
141
+ "name": "createdBy",
142
+ "type": "address"
143
+ },
144
+ {
145
+ "indexed": false,
146
+ "internalType": "address",
147
+ "name": "txOrigin",
148
+ "type": "address"
149
+ }
150
+ ],
151
+ "name": "LogInfoCreated",
152
+ "type": "event"
153
+ },
154
+ {
155
+ "anonymous": false,
156
+ "inputs": [
157
+ {
158
+ "indexed": false,
159
+ "internalType": "ObjectType",
160
+ "name": "objectType",
161
+ "type": "uint8"
162
+ },
163
+ {
164
+ "indexed": false,
165
+ "internalType": "KeyId",
166
+ "name": "keyId",
167
+ "type": "bytes31"
168
+ },
169
+ {
170
+ "indexed": false,
171
+ "internalType": "StateId",
172
+ "name": "state",
173
+ "type": "uint8"
174
+ },
175
+ {
176
+ "indexed": false,
177
+ "internalType": "address",
178
+ "name": "updatedBy",
179
+ "type": "address"
180
+ },
181
+ {
182
+ "indexed": false,
183
+ "internalType": "address",
184
+ "name": "txOrigin",
185
+ "type": "address"
186
+ },
187
+ {
188
+ "indexed": false,
189
+ "internalType": "Blocknumber",
190
+ "name": "lastUpdatedIn",
191
+ "type": "uint32"
192
+ }
193
+ ],
194
+ "name": "LogInfoUpdated",
195
+ "type": "event"
196
+ },
197
+ {
198
+ "anonymous": false,
199
+ "inputs": [
200
+ {
201
+ "indexed": false,
202
+ "internalType": "ObjectType",
203
+ "name": "objectType",
204
+ "type": "uint8"
205
+ },
206
+ {
207
+ "indexed": false,
208
+ "internalType": "KeyId",
209
+ "name": "keyId",
210
+ "type": "bytes31"
211
+ },
212
+ {
213
+ "indexed": false,
214
+ "internalType": "StateId",
215
+ "name": "stateOld",
216
+ "type": "uint8"
217
+ },
218
+ {
219
+ "indexed": false,
220
+ "internalType": "StateId",
221
+ "name": "stateNew",
222
+ "type": "uint8"
223
+ },
224
+ {
225
+ "indexed": false,
226
+ "internalType": "address",
227
+ "name": "updatedBy",
228
+ "type": "address"
229
+ },
230
+ {
231
+ "indexed": false,
232
+ "internalType": "address",
233
+ "name": "txOrigin",
234
+ "type": "address"
235
+ },
236
+ {
237
+ "indexed": false,
238
+ "internalType": "Blocknumber",
239
+ "name": "lastUpdatedIn",
240
+ "type": "uint32"
241
+ }
242
+ ],
243
+ "name": "LogStateUpdated",
244
+ "type": "event"
245
+ },
246
+ {
247
+ "inputs": [],
248
+ "name": "authority",
249
+ "outputs": [
250
+ {
251
+ "internalType": "address",
252
+ "name": "",
253
+ "type": "address"
254
+ }
255
+ ],
256
+ "stateMutability": "view",
257
+ "type": "function"
258
+ },
259
+ {
260
+ "inputs": [
261
+ {
262
+ "internalType": "ObjectType",
263
+ "name": "objectType",
264
+ "type": "uint8"
265
+ },
266
+ {
267
+ "internalType": "StateId",
268
+ "name": "fromId",
269
+ "type": "uint8"
270
+ },
271
+ {
272
+ "internalType": "StateId",
273
+ "name": "toId",
274
+ "type": "uint8"
275
+ }
276
+ ],
277
+ "name": "checkTransition",
278
+ "outputs": [],
279
+ "stateMutability": "view",
280
+ "type": "function"
281
+ },
282
+ {
283
+ "inputs": [
284
+ {
285
+ "internalType": "NftId",
286
+ "name": "applicationNftId",
287
+ "type": "uint96"
288
+ },
289
+ {
290
+ "components": [
291
+ {
292
+ "internalType": "NftId",
293
+ "name": "productNftId",
294
+ "type": "uint96"
295
+ },
296
+ {
297
+ "internalType": "NftId",
298
+ "name": "bundleNftId",
299
+ "type": "uint96"
300
+ },
301
+ {
302
+ "internalType": "ReferralId",
303
+ "name": "referralId",
304
+ "type": "bytes8"
305
+ },
306
+ {
307
+ "internalType": "RiskId",
308
+ "name": "riskId",
309
+ "type": "bytes8"
310
+ },
311
+ {
312
+ "internalType": "Amount",
313
+ "name": "sumInsuredAmount",
314
+ "type": "uint96"
315
+ },
316
+ {
317
+ "internalType": "Amount",
318
+ "name": "premiumAmount",
319
+ "type": "uint96"
320
+ },
321
+ {
322
+ "internalType": "Amount",
323
+ "name": "premiumPaidAmount",
324
+ "type": "uint96"
325
+ },
326
+ {
327
+ "internalType": "Seconds",
328
+ "name": "lifetime",
329
+ "type": "uint40"
330
+ },
331
+ {
332
+ "internalType": "bytes",
333
+ "name": "applicationData",
334
+ "type": "bytes"
335
+ },
336
+ {
337
+ "internalType": "bytes",
338
+ "name": "policyData",
339
+ "type": "bytes"
340
+ },
341
+ {
342
+ "internalType": "uint16",
343
+ "name": "claimsCount",
344
+ "type": "uint16"
345
+ },
346
+ {
347
+ "internalType": "uint16",
348
+ "name": "openClaimsCount",
349
+ "type": "uint16"
350
+ },
351
+ {
352
+ "internalType": "Amount",
353
+ "name": "claimAmount",
354
+ "type": "uint96"
355
+ },
356
+ {
357
+ "internalType": "Amount",
358
+ "name": "payoutAmount",
359
+ "type": "uint96"
360
+ },
361
+ {
362
+ "internalType": "Timestamp",
363
+ "name": "activatedAt",
364
+ "type": "uint40"
365
+ },
366
+ {
367
+ "internalType": "Timestamp",
368
+ "name": "expiredAt",
369
+ "type": "uint40"
370
+ },
371
+ {
372
+ "internalType": "Timestamp",
373
+ "name": "closedAt",
374
+ "type": "uint40"
375
+ }
376
+ ],
377
+ "internalType": "struct IPolicy.PolicyInfo",
378
+ "name": "policy",
379
+ "type": "tuple"
380
+ }
381
+ ],
382
+ "name": "createApplication",
383
+ "outputs": [],
384
+ "stateMutability": "nonpayable",
385
+ "type": "function"
386
+ },
387
+ {
388
+ "inputs": [
389
+ {
390
+ "internalType": "NftId",
391
+ "name": "bundleNftId",
392
+ "type": "uint96"
393
+ },
394
+ {
395
+ "components": [
396
+ {
397
+ "internalType": "NftId",
398
+ "name": "poolNftId",
399
+ "type": "uint96"
400
+ },
401
+ {
402
+ "components": [
403
+ {
404
+ "internalType": "UFixed",
405
+ "name": "fractionalFee",
406
+ "type": "uint256"
407
+ },
408
+ {
409
+ "internalType": "uint256",
410
+ "name": "fixedFee",
411
+ "type": "uint256"
412
+ }
413
+ ],
414
+ "internalType": "struct Fee",
415
+ "name": "fee",
416
+ "type": "tuple"
417
+ },
418
+ {
419
+ "internalType": "bytes",
420
+ "name": "filter",
421
+ "type": "bytes"
422
+ },
423
+ {
424
+ "internalType": "Amount",
425
+ "name": "capitalAmount",
426
+ "type": "uint96"
427
+ },
428
+ {
429
+ "internalType": "Amount",
430
+ "name": "lockedAmount",
431
+ "type": "uint96"
432
+ },
433
+ {
434
+ "internalType": "Amount",
435
+ "name": "feeAmount",
436
+ "type": "uint96"
437
+ },
438
+ {
439
+ "internalType": "Seconds",
440
+ "name": "lifetime",
441
+ "type": "uint40"
442
+ },
443
+ {
444
+ "internalType": "Timestamp",
445
+ "name": "expiredAt",
446
+ "type": "uint40"
447
+ },
448
+ {
449
+ "internalType": "Timestamp",
450
+ "name": "closedAt",
451
+ "type": "uint40"
452
+ }
453
+ ],
454
+ "internalType": "struct IBundle.BundleInfo",
455
+ "name": "bundle",
456
+ "type": "tuple"
457
+ }
458
+ ],
459
+ "name": "createBundle",
460
+ "outputs": [],
461
+ "stateMutability": "nonpayable",
462
+ "type": "function"
463
+ },
464
+ {
465
+ "inputs": [
466
+ {
467
+ "internalType": "NftId",
468
+ "name": "policyNftId",
469
+ "type": "uint96"
470
+ },
471
+ {
472
+ "internalType": "ClaimId",
473
+ "name": "claimId",
474
+ "type": "uint16"
475
+ },
476
+ {
477
+ "components": [
478
+ {
479
+ "internalType": "Amount",
480
+ "name": "claimAmount",
481
+ "type": "uint96"
482
+ },
483
+ {
484
+ "internalType": "Amount",
485
+ "name": "paidAmount",
486
+ "type": "uint96"
487
+ },
488
+ {
489
+ "internalType": "uint8",
490
+ "name": "payoutsCount",
491
+ "type": "uint8"
492
+ },
493
+ {
494
+ "internalType": "uint8",
495
+ "name": "openPayoutsCount",
496
+ "type": "uint8"
497
+ },
498
+ {
499
+ "internalType": "bytes",
500
+ "name": "data",
501
+ "type": "bytes"
502
+ },
503
+ {
504
+ "internalType": "Timestamp",
505
+ "name": "closedAt",
506
+ "type": "uint40"
507
+ }
508
+ ],
509
+ "internalType": "struct IPolicy.ClaimInfo",
510
+ "name": "claim",
511
+ "type": "tuple"
512
+ }
513
+ ],
514
+ "name": "createClaim",
515
+ "outputs": [],
516
+ "stateMutability": "nonpayable",
517
+ "type": "function"
518
+ },
519
+ {
520
+ "inputs": [
521
+ {
522
+ "internalType": "NftId",
523
+ "name": "distributionNftId",
524
+ "type": "uint96"
525
+ },
526
+ {
527
+ "components": [
528
+ {
529
+ "internalType": "NftId",
530
+ "name": "productNftId",
531
+ "type": "uint96"
532
+ },
533
+ {
534
+ "internalType": "contract TokenHandler",
535
+ "name": "tokenHandler",
536
+ "type": "address"
537
+ },
538
+ {
539
+ "components": [
540
+ {
541
+ "internalType": "UFixed",
542
+ "name": "fractionalFee",
543
+ "type": "uint256"
544
+ },
545
+ {
546
+ "internalType": "uint256",
547
+ "name": "fixedFee",
548
+ "type": "uint256"
549
+ }
550
+ ],
551
+ "internalType": "struct Fee",
552
+ "name": "minDistributionOwnerFee",
553
+ "type": "tuple"
554
+ },
555
+ {
556
+ "components": [
557
+ {
558
+ "internalType": "UFixed",
559
+ "name": "fractionalFee",
560
+ "type": "uint256"
561
+ },
562
+ {
563
+ "internalType": "uint256",
564
+ "name": "fixedFee",
565
+ "type": "uint256"
566
+ }
567
+ ],
568
+ "internalType": "struct Fee",
569
+ "name": "distributionFee",
570
+ "type": "tuple"
571
+ },
572
+ {
573
+ "internalType": "address",
574
+ "name": "wallet",
575
+ "type": "address"
576
+ },
577
+ {
578
+ "internalType": "uint256",
579
+ "name": "sumDistributionOwnerFees",
580
+ "type": "uint256"
581
+ }
582
+ ],
583
+ "internalType": "struct ISetup.DistributionSetupInfo",
584
+ "name": "setup",
585
+ "type": "tuple"
586
+ }
587
+ ],
588
+ "name": "createDistributionSetup",
589
+ "outputs": [],
590
+ "stateMutability": "nonpayable",
591
+ "type": "function"
592
+ },
593
+ {
594
+ "inputs": [
595
+ {
596
+ "internalType": "NftId",
597
+ "name": "distributorNftId",
598
+ "type": "uint96"
599
+ },
600
+ {
601
+ "components": [
602
+ {
603
+ "internalType": "DistributorType",
604
+ "name": "distributorType",
605
+ "type": "bytes8"
606
+ },
607
+ {
608
+ "internalType": "bool",
609
+ "name": "active",
610
+ "type": "bool"
611
+ },
612
+ {
613
+ "internalType": "bytes",
614
+ "name": "data",
615
+ "type": "bytes"
616
+ },
617
+ {
618
+ "internalType": "Amount",
619
+ "name": "commissionAmount",
620
+ "type": "uint96"
621
+ },
622
+ {
623
+ "internalType": "uint32",
624
+ "name": "numPoliciesSold",
625
+ "type": "uint32"
626
+ }
627
+ ],
628
+ "internalType": "struct IDistribution.DistributorInfo",
629
+ "name": "info",
630
+ "type": "tuple"
631
+ }
632
+ ],
633
+ "name": "createDistributor",
634
+ "outputs": [],
635
+ "stateMutability": "nonpayable",
636
+ "type": "function"
637
+ },
638
+ {
639
+ "inputs": [
640
+ {
641
+ "internalType": "DistributorType",
642
+ "name": "distributorType",
643
+ "type": "bytes8"
644
+ },
645
+ {
646
+ "components": [
647
+ {
648
+ "internalType": "string",
649
+ "name": "name",
650
+ "type": "string"
651
+ },
652
+ {
653
+ "internalType": "UFixed",
654
+ "name": "minDiscountPercentage",
655
+ "type": "uint256"
656
+ },
657
+ {
658
+ "internalType": "UFixed",
659
+ "name": "maxDiscountPercentage",
660
+ "type": "uint256"
661
+ },
662
+ {
663
+ "internalType": "UFixed",
664
+ "name": "commissionPercentage",
665
+ "type": "uint256"
666
+ },
667
+ {
668
+ "internalType": "uint32",
669
+ "name": "maxReferralCount",
670
+ "type": "uint32"
671
+ },
672
+ {
673
+ "internalType": "uint32",
674
+ "name": "maxReferralLifetime",
675
+ "type": "uint32"
676
+ },
677
+ {
678
+ "internalType": "bool",
679
+ "name": "allowSelfReferrals",
680
+ "type": "bool"
681
+ },
682
+ {
683
+ "internalType": "bool",
684
+ "name": "allowRenewals",
685
+ "type": "bool"
686
+ },
687
+ {
688
+ "internalType": "bytes",
689
+ "name": "data",
690
+ "type": "bytes"
691
+ }
692
+ ],
693
+ "internalType": "struct IDistribution.DistributorTypeInfo",
694
+ "name": "info",
695
+ "type": "tuple"
696
+ }
697
+ ],
698
+ "name": "createDistributorType",
699
+ "outputs": [],
700
+ "stateMutability": "nonpayable",
701
+ "type": "function"
702
+ },
703
+ {
704
+ "inputs": [
705
+ {
706
+ "internalType": "NftId",
707
+ "name": "policyNftId",
708
+ "type": "uint96"
709
+ },
710
+ {
711
+ "internalType": "PayoutId",
712
+ "name": "payoutId",
713
+ "type": "uint24"
714
+ },
715
+ {
716
+ "components": [
717
+ {
718
+ "internalType": "ClaimId",
719
+ "name": "claimId",
720
+ "type": "uint16"
721
+ },
722
+ {
723
+ "internalType": "Amount",
724
+ "name": "amount",
725
+ "type": "uint96"
726
+ },
727
+ {
728
+ "internalType": "bytes",
729
+ "name": "data",
730
+ "type": "bytes"
731
+ },
732
+ {
733
+ "internalType": "Timestamp",
734
+ "name": "paidAt",
735
+ "type": "uint40"
736
+ }
737
+ ],
738
+ "internalType": "struct IPolicy.PayoutInfo",
739
+ "name": "payout",
740
+ "type": "tuple"
741
+ }
742
+ ],
743
+ "name": "createPayout",
744
+ "outputs": [],
745
+ "stateMutability": "nonpayable",
746
+ "type": "function"
747
+ },
748
+ {
749
+ "inputs": [
750
+ {
751
+ "internalType": "NftId",
752
+ "name": "poolNftId",
753
+ "type": "uint96"
754
+ },
755
+ {
756
+ "components": [
757
+ {
758
+ "internalType": "string",
759
+ "name": "name",
760
+ "type": "string"
761
+ },
762
+ {
763
+ "internalType": "contract IERC20Metadata",
764
+ "name": "token",
765
+ "type": "address"
766
+ },
767
+ {
768
+ "internalType": "contract TokenHandler",
769
+ "name": "tokenHandler",
770
+ "type": "address"
771
+ },
772
+ {
773
+ "internalType": "address",
774
+ "name": "wallet",
775
+ "type": "address"
776
+ },
777
+ {
778
+ "internalType": "Amount",
779
+ "name": "balanceAmount",
780
+ "type": "uint96"
781
+ },
782
+ {
783
+ "internalType": "Amount",
784
+ "name": "feeAmount",
785
+ "type": "uint96"
786
+ },
787
+ {
788
+ "internalType": "bytes",
789
+ "name": "data",
790
+ "type": "bytes"
791
+ }
792
+ ],
793
+ "internalType": "struct IComponents.ComponentInfo",
794
+ "name": "info",
795
+ "type": "tuple"
796
+ }
797
+ ],
798
+ "name": "createPoolSetup",
799
+ "outputs": [],
800
+ "stateMutability": "nonpayable",
801
+ "type": "function"
802
+ },
803
+ {
804
+ "inputs": [
805
+ {
806
+ "internalType": "NftId",
807
+ "name": "productNftId",
808
+ "type": "uint96"
809
+ },
810
+ {
811
+ "components": [
812
+ {
813
+ "internalType": "contract IERC20Metadata",
814
+ "name": "token",
815
+ "type": "address"
816
+ },
817
+ {
818
+ "internalType": "contract TokenHandler",
819
+ "name": "tokenHandler",
820
+ "type": "address"
821
+ },
822
+ {
823
+ "internalType": "NftId",
824
+ "name": "distributionNftId",
825
+ "type": "uint96"
826
+ },
827
+ {
828
+ "internalType": "NftId",
829
+ "name": "poolNftId",
830
+ "type": "uint96"
831
+ },
832
+ {
833
+ "components": [
834
+ {
835
+ "internalType": "UFixed",
836
+ "name": "fractionalFee",
837
+ "type": "uint256"
838
+ },
839
+ {
840
+ "internalType": "uint256",
841
+ "name": "fixedFee",
842
+ "type": "uint256"
843
+ }
844
+ ],
845
+ "internalType": "struct Fee",
846
+ "name": "productFee",
847
+ "type": "tuple"
848
+ },
849
+ {
850
+ "components": [
851
+ {
852
+ "internalType": "UFixed",
853
+ "name": "fractionalFee",
854
+ "type": "uint256"
855
+ },
856
+ {
857
+ "internalType": "uint256",
858
+ "name": "fixedFee",
859
+ "type": "uint256"
860
+ }
861
+ ],
862
+ "internalType": "struct Fee",
863
+ "name": "processingFee",
864
+ "type": "tuple"
865
+ },
866
+ {
867
+ "internalType": "bool",
868
+ "name": "isIntercepting",
869
+ "type": "bool"
870
+ },
871
+ {
872
+ "internalType": "address",
873
+ "name": "wallet",
874
+ "type": "address"
875
+ }
876
+ ],
877
+ "internalType": "struct ISetup.ProductSetupInfo",
878
+ "name": "setup",
879
+ "type": "tuple"
880
+ }
881
+ ],
882
+ "name": "createProductSetup",
883
+ "outputs": [],
884
+ "stateMutability": "nonpayable",
885
+ "type": "function"
886
+ },
887
+ {
888
+ "inputs": [
889
+ {
890
+ "internalType": "ReferralId",
891
+ "name": "referralId",
892
+ "type": "bytes8"
893
+ },
894
+ {
895
+ "components": [
896
+ {
897
+ "internalType": "NftId",
898
+ "name": "distributorNftId",
899
+ "type": "uint96"
900
+ },
901
+ {
902
+ "internalType": "string",
903
+ "name": "referralCode",
904
+ "type": "string"
905
+ },
906
+ {
907
+ "internalType": "UFixed",
908
+ "name": "discountPercentage",
909
+ "type": "uint256"
910
+ },
911
+ {
912
+ "internalType": "uint32",
913
+ "name": "maxReferrals",
914
+ "type": "uint32"
915
+ },
916
+ {
917
+ "internalType": "uint32",
918
+ "name": "usedReferrals",
919
+ "type": "uint32"
920
+ },
921
+ {
922
+ "internalType": "Timestamp",
923
+ "name": "expiryAt",
924
+ "type": "uint40"
925
+ },
926
+ {
927
+ "internalType": "bytes",
928
+ "name": "data",
929
+ "type": "bytes"
930
+ }
931
+ ],
932
+ "internalType": "struct IDistribution.ReferralInfo",
933
+ "name": "referralInfo",
934
+ "type": "tuple"
935
+ }
936
+ ],
937
+ "name": "createReferral",
938
+ "outputs": [],
939
+ "stateMutability": "nonpayable",
940
+ "type": "function"
941
+ },
942
+ {
943
+ "inputs": [
944
+ {
945
+ "internalType": "RiskId",
946
+ "name": "riskId",
947
+ "type": "bytes8"
948
+ },
949
+ {
950
+ "components": [
951
+ {
952
+ "internalType": "NftId",
953
+ "name": "productNftId",
954
+ "type": "uint96"
955
+ },
956
+ {
957
+ "internalType": "bytes",
958
+ "name": "data",
959
+ "type": "bytes"
960
+ }
961
+ ],
962
+ "internalType": "struct IRisk.RiskInfo",
963
+ "name": "risk",
964
+ "type": "tuple"
965
+ }
966
+ ],
967
+ "name": "createRisk",
968
+ "outputs": [],
969
+ "stateMutability": "nonpayable",
970
+ "type": "function"
971
+ },
972
+ {
973
+ "inputs": [
974
+ {
975
+ "internalType": "Key32",
976
+ "name": "key32",
977
+ "type": "bytes32"
978
+ }
979
+ ],
980
+ "name": "exists",
981
+ "outputs": [
982
+ {
983
+ "internalType": "bool",
984
+ "name": "",
985
+ "type": "bool"
986
+ }
987
+ ],
988
+ "stateMutability": "view",
989
+ "type": "function"
990
+ },
991
+ {
992
+ "inputs": [
993
+ {
994
+ "internalType": "Key32",
995
+ "name": "key32",
996
+ "type": "bytes32"
997
+ }
998
+ ],
999
+ "name": "get",
1000
+ "outputs": [
1001
+ {
1002
+ "components": [
1003
+ {
1004
+ "components": [
1005
+ {
1006
+ "internalType": "ObjectType",
1007
+ "name": "objectType",
1008
+ "type": "uint8"
1009
+ },
1010
+ {
1011
+ "internalType": "StateId",
1012
+ "name": "state",
1013
+ "type": "uint8"
1014
+ },
1015
+ {
1016
+ "internalType": "address",
1017
+ "name": "updatedBy",
1018
+ "type": "address"
1019
+ },
1020
+ {
1021
+ "internalType": "Blocknumber",
1022
+ "name": "updatedIn",
1023
+ "type": "uint32"
1024
+ },
1025
+ {
1026
+ "internalType": "Blocknumber",
1027
+ "name": "createdIn",
1028
+ "type": "uint32"
1029
+ }
1030
+ ],
1031
+ "internalType": "struct IKeyValueStore.Metadata",
1032
+ "name": "metadata",
1033
+ "type": "tuple"
1034
+ },
1035
+ {
1036
+ "internalType": "bytes",
1037
+ "name": "data",
1038
+ "type": "bytes"
1039
+ }
1040
+ ],
1041
+ "internalType": "struct IKeyValueStore.Value",
1042
+ "name": "value",
1043
+ "type": "tuple"
1044
+ }
1045
+ ],
1046
+ "stateMutability": "view",
1047
+ "type": "function"
1048
+ },
1049
+ {
1050
+ "inputs": [
1051
+ {
1052
+ "internalType": "Key32",
1053
+ "name": "key32",
1054
+ "type": "bytes32"
1055
+ }
1056
+ ],
1057
+ "name": "getData",
1058
+ "outputs": [
1059
+ {
1060
+ "internalType": "bytes",
1061
+ "name": "data",
1062
+ "type": "bytes"
1063
+ }
1064
+ ],
1065
+ "stateMutability": "view",
1066
+ "type": "function"
1067
+ },
1068
+ {
1069
+ "inputs": [
1070
+ {
1071
+ "internalType": "ObjectType",
1072
+ "name": "objectType",
1073
+ "type": "uint8"
1074
+ }
1075
+ ],
1076
+ "name": "getInitialState",
1077
+ "outputs": [
1078
+ {
1079
+ "internalType": "StateId",
1080
+ "name": "",
1081
+ "type": "uint8"
1082
+ }
1083
+ ],
1084
+ "stateMutability": "view",
1085
+ "type": "function"
1086
+ },
1087
+ {
1088
+ "inputs": [
1089
+ {
1090
+ "internalType": "Key32",
1091
+ "name": "key32",
1092
+ "type": "bytes32"
1093
+ }
1094
+ ],
1095
+ "name": "getMetadata",
1096
+ "outputs": [
1097
+ {
1098
+ "components": [
1099
+ {
1100
+ "internalType": "ObjectType",
1101
+ "name": "objectType",
1102
+ "type": "uint8"
1103
+ },
1104
+ {
1105
+ "internalType": "StateId",
1106
+ "name": "state",
1107
+ "type": "uint8"
1108
+ },
1109
+ {
1110
+ "internalType": "address",
1111
+ "name": "updatedBy",
1112
+ "type": "address"
1113
+ },
1114
+ {
1115
+ "internalType": "Blocknumber",
1116
+ "name": "updatedIn",
1117
+ "type": "uint32"
1118
+ },
1119
+ {
1120
+ "internalType": "Blocknumber",
1121
+ "name": "createdIn",
1122
+ "type": "uint32"
1123
+ }
1124
+ ],
1125
+ "internalType": "struct IKeyValueStore.Metadata",
1126
+ "name": "metadata",
1127
+ "type": "tuple"
1128
+ }
1129
+ ],
1130
+ "stateMutability": "view",
1131
+ "type": "function"
1132
+ },
1133
+ {
1134
+ "inputs": [
1135
+ {
1136
+ "internalType": "Key32",
1137
+ "name": "key32",
1138
+ "type": "bytes32"
1139
+ }
1140
+ ],
1141
+ "name": "getState",
1142
+ "outputs": [
1143
+ {
1144
+ "internalType": "StateId",
1145
+ "name": "state",
1146
+ "type": "uint8"
1147
+ }
1148
+ ],
1149
+ "stateMutability": "view",
1150
+ "type": "function"
1151
+ },
1152
+ {
1153
+ "inputs": [
1154
+ {
1155
+ "internalType": "ObjectType",
1156
+ "name": "objectType",
1157
+ "type": "uint8"
1158
+ }
1159
+ ],
1160
+ "name": "hasLifecycle",
1161
+ "outputs": [
1162
+ {
1163
+ "internalType": "bool",
1164
+ "name": "",
1165
+ "type": "bool"
1166
+ }
1167
+ ],
1168
+ "stateMutability": "view",
1169
+ "type": "function"
1170
+ },
1171
+ {
1172
+ "inputs": [
1173
+ {
1174
+ "internalType": "address",
1175
+ "name": "instance",
1176
+ "type": "address"
1177
+ }
1178
+ ],
1179
+ "name": "initialize",
1180
+ "outputs": [],
1181
+ "stateMutability": "nonpayable",
1182
+ "type": "function"
1183
+ },
1184
+ {
1185
+ "inputs": [],
1186
+ "name": "initializeLifecycle",
1187
+ "outputs": [],
1188
+ "stateMutability": "nonpayable",
1189
+ "type": "function"
1190
+ },
1191
+ {
1192
+ "inputs": [],
1193
+ "name": "isConsumingScheduledOp",
1194
+ "outputs": [
1195
+ {
1196
+ "internalType": "bytes4",
1197
+ "name": "",
1198
+ "type": "bytes4"
1199
+ }
1200
+ ],
1201
+ "stateMutability": "view",
1202
+ "type": "function"
1203
+ },
1204
+ {
1205
+ "inputs": [
1206
+ {
1207
+ "internalType": "ObjectType",
1208
+ "name": "objectType",
1209
+ "type": "uint8"
1210
+ },
1211
+ {
1212
+ "internalType": "StateId",
1213
+ "name": "fromId",
1214
+ "type": "uint8"
1215
+ },
1216
+ {
1217
+ "internalType": "StateId",
1218
+ "name": "toId",
1219
+ "type": "uint8"
1220
+ }
1221
+ ],
1222
+ "name": "isValidTransition",
1223
+ "outputs": [
1224
+ {
1225
+ "internalType": "bool",
1226
+ "name": "",
1227
+ "type": "bool"
1228
+ }
1229
+ ],
1230
+ "stateMutability": "view",
1231
+ "type": "function"
1232
+ },
1233
+ {
1234
+ "inputs": [
1235
+ {
1236
+ "internalType": "address",
1237
+ "name": "newAuthority",
1238
+ "type": "address"
1239
+ }
1240
+ ],
1241
+ "name": "setAuthority",
1242
+ "outputs": [],
1243
+ "stateMutability": "nonpayable",
1244
+ "type": "function"
1245
+ },
1246
+ {
1247
+ "inputs": [
1248
+ {
1249
+ "internalType": "ObjectType",
1250
+ "name": "objectType",
1251
+ "type": "uint8"
1252
+ },
1253
+ {
1254
+ "internalType": "KeyId",
1255
+ "name": "id",
1256
+ "type": "bytes31"
1257
+ }
1258
+ ],
1259
+ "name": "toKey32",
1260
+ "outputs": [
1261
+ {
1262
+ "internalType": "Key32",
1263
+ "name": "",
1264
+ "type": "bytes32"
1265
+ }
1266
+ ],
1267
+ "stateMutability": "pure",
1268
+ "type": "function"
1269
+ },
1270
+ {
1271
+ "inputs": [
1272
+ {
1273
+ "internalType": "NftId",
1274
+ "name": "applicationNftId",
1275
+ "type": "uint96"
1276
+ },
1277
+ {
1278
+ "components": [
1279
+ {
1280
+ "internalType": "NftId",
1281
+ "name": "productNftId",
1282
+ "type": "uint96"
1283
+ },
1284
+ {
1285
+ "internalType": "NftId",
1286
+ "name": "bundleNftId",
1287
+ "type": "uint96"
1288
+ },
1289
+ {
1290
+ "internalType": "ReferralId",
1291
+ "name": "referralId",
1292
+ "type": "bytes8"
1293
+ },
1294
+ {
1295
+ "internalType": "RiskId",
1296
+ "name": "riskId",
1297
+ "type": "bytes8"
1298
+ },
1299
+ {
1300
+ "internalType": "Amount",
1301
+ "name": "sumInsuredAmount",
1302
+ "type": "uint96"
1303
+ },
1304
+ {
1305
+ "internalType": "Amount",
1306
+ "name": "premiumAmount",
1307
+ "type": "uint96"
1308
+ },
1309
+ {
1310
+ "internalType": "Amount",
1311
+ "name": "premiumPaidAmount",
1312
+ "type": "uint96"
1313
+ },
1314
+ {
1315
+ "internalType": "Seconds",
1316
+ "name": "lifetime",
1317
+ "type": "uint40"
1318
+ },
1319
+ {
1320
+ "internalType": "bytes",
1321
+ "name": "applicationData",
1322
+ "type": "bytes"
1323
+ },
1324
+ {
1325
+ "internalType": "bytes",
1326
+ "name": "policyData",
1327
+ "type": "bytes"
1328
+ },
1329
+ {
1330
+ "internalType": "uint16",
1331
+ "name": "claimsCount",
1332
+ "type": "uint16"
1333
+ },
1334
+ {
1335
+ "internalType": "uint16",
1336
+ "name": "openClaimsCount",
1337
+ "type": "uint16"
1338
+ },
1339
+ {
1340
+ "internalType": "Amount",
1341
+ "name": "claimAmount",
1342
+ "type": "uint96"
1343
+ },
1344
+ {
1345
+ "internalType": "Amount",
1346
+ "name": "payoutAmount",
1347
+ "type": "uint96"
1348
+ },
1349
+ {
1350
+ "internalType": "Timestamp",
1351
+ "name": "activatedAt",
1352
+ "type": "uint40"
1353
+ },
1354
+ {
1355
+ "internalType": "Timestamp",
1356
+ "name": "expiredAt",
1357
+ "type": "uint40"
1358
+ },
1359
+ {
1360
+ "internalType": "Timestamp",
1361
+ "name": "closedAt",
1362
+ "type": "uint40"
1363
+ }
1364
+ ],
1365
+ "internalType": "struct IPolicy.PolicyInfo",
1366
+ "name": "policy",
1367
+ "type": "tuple"
1368
+ },
1369
+ {
1370
+ "internalType": "StateId",
1371
+ "name": "newState",
1372
+ "type": "uint8"
1373
+ }
1374
+ ],
1375
+ "name": "updateApplication",
1376
+ "outputs": [],
1377
+ "stateMutability": "nonpayable",
1378
+ "type": "function"
1379
+ },
1380
+ {
1381
+ "inputs": [
1382
+ {
1383
+ "internalType": "NftId",
1384
+ "name": "applicationNftId",
1385
+ "type": "uint96"
1386
+ },
1387
+ {
1388
+ "internalType": "StateId",
1389
+ "name": "newState",
1390
+ "type": "uint8"
1391
+ }
1392
+ ],
1393
+ "name": "updateApplicationState",
1394
+ "outputs": [],
1395
+ "stateMutability": "nonpayable",
1396
+ "type": "function"
1397
+ },
1398
+ {
1399
+ "inputs": [
1400
+ {
1401
+ "internalType": "NftId",
1402
+ "name": "bundleNftId",
1403
+ "type": "uint96"
1404
+ },
1405
+ {
1406
+ "components": [
1407
+ {
1408
+ "internalType": "NftId",
1409
+ "name": "poolNftId",
1410
+ "type": "uint96"
1411
+ },
1412
+ {
1413
+ "components": [
1414
+ {
1415
+ "internalType": "UFixed",
1416
+ "name": "fractionalFee",
1417
+ "type": "uint256"
1418
+ },
1419
+ {
1420
+ "internalType": "uint256",
1421
+ "name": "fixedFee",
1422
+ "type": "uint256"
1423
+ }
1424
+ ],
1425
+ "internalType": "struct Fee",
1426
+ "name": "fee",
1427
+ "type": "tuple"
1428
+ },
1429
+ {
1430
+ "internalType": "bytes",
1431
+ "name": "filter",
1432
+ "type": "bytes"
1433
+ },
1434
+ {
1435
+ "internalType": "Amount",
1436
+ "name": "capitalAmount",
1437
+ "type": "uint96"
1438
+ },
1439
+ {
1440
+ "internalType": "Amount",
1441
+ "name": "lockedAmount",
1442
+ "type": "uint96"
1443
+ },
1444
+ {
1445
+ "internalType": "Amount",
1446
+ "name": "feeAmount",
1447
+ "type": "uint96"
1448
+ },
1449
+ {
1450
+ "internalType": "Seconds",
1451
+ "name": "lifetime",
1452
+ "type": "uint40"
1453
+ },
1454
+ {
1455
+ "internalType": "Timestamp",
1456
+ "name": "expiredAt",
1457
+ "type": "uint40"
1458
+ },
1459
+ {
1460
+ "internalType": "Timestamp",
1461
+ "name": "closedAt",
1462
+ "type": "uint40"
1463
+ }
1464
+ ],
1465
+ "internalType": "struct IBundle.BundleInfo",
1466
+ "name": "bundle",
1467
+ "type": "tuple"
1468
+ },
1469
+ {
1470
+ "internalType": "StateId",
1471
+ "name": "newState",
1472
+ "type": "uint8"
1473
+ }
1474
+ ],
1475
+ "name": "updateBundle",
1476
+ "outputs": [],
1477
+ "stateMutability": "nonpayable",
1478
+ "type": "function"
1479
+ },
1480
+ {
1481
+ "inputs": [
1482
+ {
1483
+ "internalType": "NftId",
1484
+ "name": "bundleNftId",
1485
+ "type": "uint96"
1486
+ },
1487
+ {
1488
+ "internalType": "StateId",
1489
+ "name": "newState",
1490
+ "type": "uint8"
1491
+ }
1492
+ ],
1493
+ "name": "updateBundleState",
1494
+ "outputs": [],
1495
+ "stateMutability": "nonpayable",
1496
+ "type": "function"
1497
+ },
1498
+ {
1499
+ "inputs": [
1500
+ {
1501
+ "internalType": "NftId",
1502
+ "name": "policyNftId",
1503
+ "type": "uint96"
1504
+ },
1505
+ {
1506
+ "internalType": "ClaimId",
1507
+ "name": "claimId",
1508
+ "type": "uint16"
1509
+ },
1510
+ {
1511
+ "components": [
1512
+ {
1513
+ "internalType": "Amount",
1514
+ "name": "claimAmount",
1515
+ "type": "uint96"
1516
+ },
1517
+ {
1518
+ "internalType": "Amount",
1519
+ "name": "paidAmount",
1520
+ "type": "uint96"
1521
+ },
1522
+ {
1523
+ "internalType": "uint8",
1524
+ "name": "payoutsCount",
1525
+ "type": "uint8"
1526
+ },
1527
+ {
1528
+ "internalType": "uint8",
1529
+ "name": "openPayoutsCount",
1530
+ "type": "uint8"
1531
+ },
1532
+ {
1533
+ "internalType": "bytes",
1534
+ "name": "data",
1535
+ "type": "bytes"
1536
+ },
1537
+ {
1538
+ "internalType": "Timestamp",
1539
+ "name": "closedAt",
1540
+ "type": "uint40"
1541
+ }
1542
+ ],
1543
+ "internalType": "struct IPolicy.ClaimInfo",
1544
+ "name": "claim",
1545
+ "type": "tuple"
1546
+ },
1547
+ {
1548
+ "internalType": "StateId",
1549
+ "name": "newState",
1550
+ "type": "uint8"
1551
+ }
1552
+ ],
1553
+ "name": "updateClaim",
1554
+ "outputs": [],
1555
+ "stateMutability": "nonpayable",
1556
+ "type": "function"
1557
+ },
1558
+ {
1559
+ "inputs": [
1560
+ {
1561
+ "internalType": "NftId",
1562
+ "name": "policyNftId",
1563
+ "type": "uint96"
1564
+ },
1565
+ {
1566
+ "internalType": "ClaimId",
1567
+ "name": "claimId",
1568
+ "type": "uint16"
1569
+ },
1570
+ {
1571
+ "internalType": "StateId",
1572
+ "name": "newState",
1573
+ "type": "uint8"
1574
+ }
1575
+ ],
1576
+ "name": "updateClaimState",
1577
+ "outputs": [],
1578
+ "stateMutability": "nonpayable",
1579
+ "type": "function"
1580
+ },
1581
+ {
1582
+ "inputs": [
1583
+ {
1584
+ "internalType": "NftId",
1585
+ "name": "distributionNftId",
1586
+ "type": "uint96"
1587
+ },
1588
+ {
1589
+ "components": [
1590
+ {
1591
+ "internalType": "NftId",
1592
+ "name": "productNftId",
1593
+ "type": "uint96"
1594
+ },
1595
+ {
1596
+ "internalType": "contract TokenHandler",
1597
+ "name": "tokenHandler",
1598
+ "type": "address"
1599
+ },
1600
+ {
1601
+ "components": [
1602
+ {
1603
+ "internalType": "UFixed",
1604
+ "name": "fractionalFee",
1605
+ "type": "uint256"
1606
+ },
1607
+ {
1608
+ "internalType": "uint256",
1609
+ "name": "fixedFee",
1610
+ "type": "uint256"
1611
+ }
1612
+ ],
1613
+ "internalType": "struct Fee",
1614
+ "name": "minDistributionOwnerFee",
1615
+ "type": "tuple"
1616
+ },
1617
+ {
1618
+ "components": [
1619
+ {
1620
+ "internalType": "UFixed",
1621
+ "name": "fractionalFee",
1622
+ "type": "uint256"
1623
+ },
1624
+ {
1625
+ "internalType": "uint256",
1626
+ "name": "fixedFee",
1627
+ "type": "uint256"
1628
+ }
1629
+ ],
1630
+ "internalType": "struct Fee",
1631
+ "name": "distributionFee",
1632
+ "type": "tuple"
1633
+ },
1634
+ {
1635
+ "internalType": "address",
1636
+ "name": "wallet",
1637
+ "type": "address"
1638
+ },
1639
+ {
1640
+ "internalType": "uint256",
1641
+ "name": "sumDistributionOwnerFees",
1642
+ "type": "uint256"
1643
+ }
1644
+ ],
1645
+ "internalType": "struct ISetup.DistributionSetupInfo",
1646
+ "name": "setup",
1647
+ "type": "tuple"
1648
+ },
1649
+ {
1650
+ "internalType": "StateId",
1651
+ "name": "newState",
1652
+ "type": "uint8"
1653
+ }
1654
+ ],
1655
+ "name": "updateDistributionSetup",
1656
+ "outputs": [],
1657
+ "stateMutability": "nonpayable",
1658
+ "type": "function"
1659
+ },
1660
+ {
1661
+ "inputs": [
1662
+ {
1663
+ "internalType": "NftId",
1664
+ "name": "distributionNftId",
1665
+ "type": "uint96"
1666
+ },
1667
+ {
1668
+ "internalType": "StateId",
1669
+ "name": "newState",
1670
+ "type": "uint8"
1671
+ }
1672
+ ],
1673
+ "name": "updateDistributionSetupState",
1674
+ "outputs": [],
1675
+ "stateMutability": "nonpayable",
1676
+ "type": "function"
1677
+ },
1678
+ {
1679
+ "inputs": [
1680
+ {
1681
+ "internalType": "NftId",
1682
+ "name": "distributorNftId",
1683
+ "type": "uint96"
1684
+ },
1685
+ {
1686
+ "components": [
1687
+ {
1688
+ "internalType": "DistributorType",
1689
+ "name": "distributorType",
1690
+ "type": "bytes8"
1691
+ },
1692
+ {
1693
+ "internalType": "bool",
1694
+ "name": "active",
1695
+ "type": "bool"
1696
+ },
1697
+ {
1698
+ "internalType": "bytes",
1699
+ "name": "data",
1700
+ "type": "bytes"
1701
+ },
1702
+ {
1703
+ "internalType": "Amount",
1704
+ "name": "commissionAmount",
1705
+ "type": "uint96"
1706
+ },
1707
+ {
1708
+ "internalType": "uint32",
1709
+ "name": "numPoliciesSold",
1710
+ "type": "uint32"
1711
+ }
1712
+ ],
1713
+ "internalType": "struct IDistribution.DistributorInfo",
1714
+ "name": "info",
1715
+ "type": "tuple"
1716
+ },
1717
+ {
1718
+ "internalType": "StateId",
1719
+ "name": "newState",
1720
+ "type": "uint8"
1721
+ }
1722
+ ],
1723
+ "name": "updateDistributor",
1724
+ "outputs": [],
1725
+ "stateMutability": "nonpayable",
1726
+ "type": "function"
1727
+ },
1728
+ {
1729
+ "inputs": [
1730
+ {
1731
+ "internalType": "NftId",
1732
+ "name": "distributorNftId",
1733
+ "type": "uint96"
1734
+ },
1735
+ {
1736
+ "internalType": "StateId",
1737
+ "name": "newState",
1738
+ "type": "uint8"
1739
+ }
1740
+ ],
1741
+ "name": "updateDistributorState",
1742
+ "outputs": [],
1743
+ "stateMutability": "nonpayable",
1744
+ "type": "function"
1745
+ },
1746
+ {
1747
+ "inputs": [
1748
+ {
1749
+ "internalType": "DistributorType",
1750
+ "name": "distributorType",
1751
+ "type": "bytes8"
1752
+ },
1753
+ {
1754
+ "components": [
1755
+ {
1756
+ "internalType": "string",
1757
+ "name": "name",
1758
+ "type": "string"
1759
+ },
1760
+ {
1761
+ "internalType": "UFixed",
1762
+ "name": "minDiscountPercentage",
1763
+ "type": "uint256"
1764
+ },
1765
+ {
1766
+ "internalType": "UFixed",
1767
+ "name": "maxDiscountPercentage",
1768
+ "type": "uint256"
1769
+ },
1770
+ {
1771
+ "internalType": "UFixed",
1772
+ "name": "commissionPercentage",
1773
+ "type": "uint256"
1774
+ },
1775
+ {
1776
+ "internalType": "uint32",
1777
+ "name": "maxReferralCount",
1778
+ "type": "uint32"
1779
+ },
1780
+ {
1781
+ "internalType": "uint32",
1782
+ "name": "maxReferralLifetime",
1783
+ "type": "uint32"
1784
+ },
1785
+ {
1786
+ "internalType": "bool",
1787
+ "name": "allowSelfReferrals",
1788
+ "type": "bool"
1789
+ },
1790
+ {
1791
+ "internalType": "bool",
1792
+ "name": "allowRenewals",
1793
+ "type": "bool"
1794
+ },
1795
+ {
1796
+ "internalType": "bytes",
1797
+ "name": "data",
1798
+ "type": "bytes"
1799
+ }
1800
+ ],
1801
+ "internalType": "struct IDistribution.DistributorTypeInfo",
1802
+ "name": "info",
1803
+ "type": "tuple"
1804
+ },
1805
+ {
1806
+ "internalType": "StateId",
1807
+ "name": "newState",
1808
+ "type": "uint8"
1809
+ }
1810
+ ],
1811
+ "name": "updateDistributorType",
1812
+ "outputs": [],
1813
+ "stateMutability": "nonpayable",
1814
+ "type": "function"
1815
+ },
1816
+ {
1817
+ "inputs": [
1818
+ {
1819
+ "internalType": "DistributorType",
1820
+ "name": "distributorType",
1821
+ "type": "bytes8"
1822
+ },
1823
+ {
1824
+ "internalType": "StateId",
1825
+ "name": "newState",
1826
+ "type": "uint8"
1827
+ }
1828
+ ],
1829
+ "name": "updateDistributorTypeState",
1830
+ "outputs": [],
1831
+ "stateMutability": "nonpayable",
1832
+ "type": "function"
1833
+ },
1834
+ {
1835
+ "inputs": [
1836
+ {
1837
+ "internalType": "NftId",
1838
+ "name": "policyNftId",
1839
+ "type": "uint96"
1840
+ },
1841
+ {
1842
+ "internalType": "PayoutId",
1843
+ "name": "payoutId",
1844
+ "type": "uint24"
1845
+ },
1846
+ {
1847
+ "components": [
1848
+ {
1849
+ "internalType": "ClaimId",
1850
+ "name": "claimId",
1851
+ "type": "uint16"
1852
+ },
1853
+ {
1854
+ "internalType": "Amount",
1855
+ "name": "amount",
1856
+ "type": "uint96"
1857
+ },
1858
+ {
1859
+ "internalType": "bytes",
1860
+ "name": "data",
1861
+ "type": "bytes"
1862
+ },
1863
+ {
1864
+ "internalType": "Timestamp",
1865
+ "name": "paidAt",
1866
+ "type": "uint40"
1867
+ }
1868
+ ],
1869
+ "internalType": "struct IPolicy.PayoutInfo",
1870
+ "name": "payout",
1871
+ "type": "tuple"
1872
+ },
1873
+ {
1874
+ "internalType": "StateId",
1875
+ "name": "newState",
1876
+ "type": "uint8"
1877
+ }
1878
+ ],
1879
+ "name": "updatePayout",
1880
+ "outputs": [],
1881
+ "stateMutability": "nonpayable",
1882
+ "type": "function"
1883
+ },
1884
+ {
1885
+ "inputs": [
1886
+ {
1887
+ "internalType": "NftId",
1888
+ "name": "policyNftId",
1889
+ "type": "uint96"
1890
+ },
1891
+ {
1892
+ "internalType": "PayoutId",
1893
+ "name": "payoutId",
1894
+ "type": "uint24"
1895
+ },
1896
+ {
1897
+ "internalType": "StateId",
1898
+ "name": "newState",
1899
+ "type": "uint8"
1900
+ }
1901
+ ],
1902
+ "name": "updatePayoutState",
1903
+ "outputs": [],
1904
+ "stateMutability": "nonpayable",
1905
+ "type": "function"
1906
+ },
1907
+ {
1908
+ "inputs": [
1909
+ {
1910
+ "internalType": "NftId",
1911
+ "name": "policyNftId",
1912
+ "type": "uint96"
1913
+ },
1914
+ {
1915
+ "components": [
1916
+ {
1917
+ "internalType": "NftId",
1918
+ "name": "productNftId",
1919
+ "type": "uint96"
1920
+ },
1921
+ {
1922
+ "internalType": "NftId",
1923
+ "name": "bundleNftId",
1924
+ "type": "uint96"
1925
+ },
1926
+ {
1927
+ "internalType": "ReferralId",
1928
+ "name": "referralId",
1929
+ "type": "bytes8"
1930
+ },
1931
+ {
1932
+ "internalType": "RiskId",
1933
+ "name": "riskId",
1934
+ "type": "bytes8"
1935
+ },
1936
+ {
1937
+ "internalType": "Amount",
1938
+ "name": "sumInsuredAmount",
1939
+ "type": "uint96"
1940
+ },
1941
+ {
1942
+ "internalType": "Amount",
1943
+ "name": "premiumAmount",
1944
+ "type": "uint96"
1945
+ },
1946
+ {
1947
+ "internalType": "Amount",
1948
+ "name": "premiumPaidAmount",
1949
+ "type": "uint96"
1950
+ },
1951
+ {
1952
+ "internalType": "Seconds",
1953
+ "name": "lifetime",
1954
+ "type": "uint40"
1955
+ },
1956
+ {
1957
+ "internalType": "bytes",
1958
+ "name": "applicationData",
1959
+ "type": "bytes"
1960
+ },
1961
+ {
1962
+ "internalType": "bytes",
1963
+ "name": "policyData",
1964
+ "type": "bytes"
1965
+ },
1966
+ {
1967
+ "internalType": "uint16",
1968
+ "name": "claimsCount",
1969
+ "type": "uint16"
1970
+ },
1971
+ {
1972
+ "internalType": "uint16",
1973
+ "name": "openClaimsCount",
1974
+ "type": "uint16"
1975
+ },
1976
+ {
1977
+ "internalType": "Amount",
1978
+ "name": "claimAmount",
1979
+ "type": "uint96"
1980
+ },
1981
+ {
1982
+ "internalType": "Amount",
1983
+ "name": "payoutAmount",
1984
+ "type": "uint96"
1985
+ },
1986
+ {
1987
+ "internalType": "Timestamp",
1988
+ "name": "activatedAt",
1989
+ "type": "uint40"
1990
+ },
1991
+ {
1992
+ "internalType": "Timestamp",
1993
+ "name": "expiredAt",
1994
+ "type": "uint40"
1995
+ },
1996
+ {
1997
+ "internalType": "Timestamp",
1998
+ "name": "closedAt",
1999
+ "type": "uint40"
2000
+ }
2001
+ ],
2002
+ "internalType": "struct IPolicy.PolicyInfo",
2003
+ "name": "policy",
2004
+ "type": "tuple"
2005
+ },
2006
+ {
2007
+ "internalType": "StateId",
2008
+ "name": "newState",
2009
+ "type": "uint8"
2010
+ }
2011
+ ],
2012
+ "name": "updatePolicy",
2013
+ "outputs": [],
2014
+ "stateMutability": "nonpayable",
2015
+ "type": "function"
2016
+ },
2017
+ {
2018
+ "inputs": [
2019
+ {
2020
+ "internalType": "NftId",
2021
+ "name": "policyNftId",
2022
+ "type": "uint96"
2023
+ },
2024
+ {
2025
+ "components": [
2026
+ {
2027
+ "internalType": "NftId",
2028
+ "name": "productNftId",
2029
+ "type": "uint96"
2030
+ },
2031
+ {
2032
+ "internalType": "NftId",
2033
+ "name": "bundleNftId",
2034
+ "type": "uint96"
2035
+ },
2036
+ {
2037
+ "internalType": "ReferralId",
2038
+ "name": "referralId",
2039
+ "type": "bytes8"
2040
+ },
2041
+ {
2042
+ "internalType": "RiskId",
2043
+ "name": "riskId",
2044
+ "type": "bytes8"
2045
+ },
2046
+ {
2047
+ "internalType": "Amount",
2048
+ "name": "sumInsuredAmount",
2049
+ "type": "uint96"
2050
+ },
2051
+ {
2052
+ "internalType": "Amount",
2053
+ "name": "premiumAmount",
2054
+ "type": "uint96"
2055
+ },
2056
+ {
2057
+ "internalType": "Amount",
2058
+ "name": "premiumPaidAmount",
2059
+ "type": "uint96"
2060
+ },
2061
+ {
2062
+ "internalType": "Seconds",
2063
+ "name": "lifetime",
2064
+ "type": "uint40"
2065
+ },
2066
+ {
2067
+ "internalType": "bytes",
2068
+ "name": "applicationData",
2069
+ "type": "bytes"
2070
+ },
2071
+ {
2072
+ "internalType": "bytes",
2073
+ "name": "policyData",
2074
+ "type": "bytes"
2075
+ },
2076
+ {
2077
+ "internalType": "uint16",
2078
+ "name": "claimsCount",
2079
+ "type": "uint16"
2080
+ },
2081
+ {
2082
+ "internalType": "uint16",
2083
+ "name": "openClaimsCount",
2084
+ "type": "uint16"
2085
+ },
2086
+ {
2087
+ "internalType": "Amount",
2088
+ "name": "claimAmount",
2089
+ "type": "uint96"
2090
+ },
2091
+ {
2092
+ "internalType": "Amount",
2093
+ "name": "payoutAmount",
2094
+ "type": "uint96"
2095
+ },
2096
+ {
2097
+ "internalType": "Timestamp",
2098
+ "name": "activatedAt",
2099
+ "type": "uint40"
2100
+ },
2101
+ {
2102
+ "internalType": "Timestamp",
2103
+ "name": "expiredAt",
2104
+ "type": "uint40"
2105
+ },
2106
+ {
2107
+ "internalType": "Timestamp",
2108
+ "name": "closedAt",
2109
+ "type": "uint40"
2110
+ }
2111
+ ],
2112
+ "internalType": "struct IPolicy.PolicyInfo",
2113
+ "name": "policy",
2114
+ "type": "tuple"
2115
+ },
2116
+ {
2117
+ "internalType": "StateId",
2118
+ "name": "newState",
2119
+ "type": "uint8"
2120
+ }
2121
+ ],
2122
+ "name": "updatePolicyClaims",
2123
+ "outputs": [],
2124
+ "stateMutability": "nonpayable",
2125
+ "type": "function"
2126
+ },
2127
+ {
2128
+ "inputs": [
2129
+ {
2130
+ "internalType": "NftId",
2131
+ "name": "policyNftId",
2132
+ "type": "uint96"
2133
+ },
2134
+ {
2135
+ "internalType": "StateId",
2136
+ "name": "newState",
2137
+ "type": "uint8"
2138
+ }
2139
+ ],
2140
+ "name": "updatePolicyState",
2141
+ "outputs": [],
2142
+ "stateMutability": "nonpayable",
2143
+ "type": "function"
2144
+ },
2145
+ {
2146
+ "inputs": [
2147
+ {
2148
+ "internalType": "NftId",
2149
+ "name": "poolNftId",
2150
+ "type": "uint96"
2151
+ },
2152
+ {
2153
+ "components": [
2154
+ {
2155
+ "internalType": "string",
2156
+ "name": "name",
2157
+ "type": "string"
2158
+ },
2159
+ {
2160
+ "internalType": "contract IERC20Metadata",
2161
+ "name": "token",
2162
+ "type": "address"
2163
+ },
2164
+ {
2165
+ "internalType": "contract TokenHandler",
2166
+ "name": "tokenHandler",
2167
+ "type": "address"
2168
+ },
2169
+ {
2170
+ "internalType": "address",
2171
+ "name": "wallet",
2172
+ "type": "address"
2173
+ },
2174
+ {
2175
+ "internalType": "Amount",
2176
+ "name": "balanceAmount",
2177
+ "type": "uint96"
2178
+ },
2179
+ {
2180
+ "internalType": "Amount",
2181
+ "name": "feeAmount",
2182
+ "type": "uint96"
2183
+ },
2184
+ {
2185
+ "internalType": "bytes",
2186
+ "name": "data",
2187
+ "type": "bytes"
2188
+ }
2189
+ ],
2190
+ "internalType": "struct IComponents.ComponentInfo",
2191
+ "name": "info",
2192
+ "type": "tuple"
2193
+ },
2194
+ {
2195
+ "internalType": "StateId",
2196
+ "name": "newState",
2197
+ "type": "uint8"
2198
+ }
2199
+ ],
2200
+ "name": "updatePoolSetup",
2201
+ "outputs": [],
2202
+ "stateMutability": "nonpayable",
2203
+ "type": "function"
2204
+ },
2205
+ {
2206
+ "inputs": [
2207
+ {
2208
+ "internalType": "NftId",
2209
+ "name": "poolNftId",
2210
+ "type": "uint96"
2211
+ },
2212
+ {
2213
+ "internalType": "StateId",
2214
+ "name": "newState",
2215
+ "type": "uint8"
2216
+ }
2217
+ ],
2218
+ "name": "updatePoolSetupState",
2219
+ "outputs": [],
2220
+ "stateMutability": "nonpayable",
2221
+ "type": "function"
2222
+ },
2223
+ {
2224
+ "inputs": [
2225
+ {
2226
+ "internalType": "NftId",
2227
+ "name": "productNftId",
2228
+ "type": "uint96"
2229
+ },
2230
+ {
2231
+ "components": [
2232
+ {
2233
+ "internalType": "contract IERC20Metadata",
2234
+ "name": "token",
2235
+ "type": "address"
2236
+ },
2237
+ {
2238
+ "internalType": "contract TokenHandler",
2239
+ "name": "tokenHandler",
2240
+ "type": "address"
2241
+ },
2242
+ {
2243
+ "internalType": "NftId",
2244
+ "name": "distributionNftId",
2245
+ "type": "uint96"
2246
+ },
2247
+ {
2248
+ "internalType": "NftId",
2249
+ "name": "poolNftId",
2250
+ "type": "uint96"
2251
+ },
2252
+ {
2253
+ "components": [
2254
+ {
2255
+ "internalType": "UFixed",
2256
+ "name": "fractionalFee",
2257
+ "type": "uint256"
2258
+ },
2259
+ {
2260
+ "internalType": "uint256",
2261
+ "name": "fixedFee",
2262
+ "type": "uint256"
2263
+ }
2264
+ ],
2265
+ "internalType": "struct Fee",
2266
+ "name": "productFee",
2267
+ "type": "tuple"
2268
+ },
2269
+ {
2270
+ "components": [
2271
+ {
2272
+ "internalType": "UFixed",
2273
+ "name": "fractionalFee",
2274
+ "type": "uint256"
2275
+ },
2276
+ {
2277
+ "internalType": "uint256",
2278
+ "name": "fixedFee",
2279
+ "type": "uint256"
2280
+ }
2281
+ ],
2282
+ "internalType": "struct Fee",
2283
+ "name": "processingFee",
2284
+ "type": "tuple"
2285
+ },
2286
+ {
2287
+ "internalType": "bool",
2288
+ "name": "isIntercepting",
2289
+ "type": "bool"
2290
+ },
2291
+ {
2292
+ "internalType": "address",
2293
+ "name": "wallet",
2294
+ "type": "address"
2295
+ }
2296
+ ],
2297
+ "internalType": "struct ISetup.ProductSetupInfo",
2298
+ "name": "setup",
2299
+ "type": "tuple"
2300
+ },
2301
+ {
2302
+ "internalType": "StateId",
2303
+ "name": "newState",
2304
+ "type": "uint8"
2305
+ }
2306
+ ],
2307
+ "name": "updateProductSetup",
2308
+ "outputs": [],
2309
+ "stateMutability": "nonpayable",
2310
+ "type": "function"
2311
+ },
2312
+ {
2313
+ "inputs": [
2314
+ {
2315
+ "internalType": "NftId",
2316
+ "name": "productNftId",
2317
+ "type": "uint96"
2318
+ },
2319
+ {
2320
+ "internalType": "StateId",
2321
+ "name": "newState",
2322
+ "type": "uint8"
2323
+ }
2324
+ ],
2325
+ "name": "updateProductSetupState",
2326
+ "outputs": [],
2327
+ "stateMutability": "nonpayable",
2328
+ "type": "function"
2329
+ },
2330
+ {
2331
+ "inputs": [
2332
+ {
2333
+ "internalType": "ReferralId",
2334
+ "name": "referralId",
2335
+ "type": "bytes8"
2336
+ },
2337
+ {
2338
+ "components": [
2339
+ {
2340
+ "internalType": "NftId",
2341
+ "name": "distributorNftId",
2342
+ "type": "uint96"
2343
+ },
2344
+ {
2345
+ "internalType": "string",
2346
+ "name": "referralCode",
2347
+ "type": "string"
2348
+ },
2349
+ {
2350
+ "internalType": "UFixed",
2351
+ "name": "discountPercentage",
2352
+ "type": "uint256"
2353
+ },
2354
+ {
2355
+ "internalType": "uint32",
2356
+ "name": "maxReferrals",
2357
+ "type": "uint32"
2358
+ },
2359
+ {
2360
+ "internalType": "uint32",
2361
+ "name": "usedReferrals",
2362
+ "type": "uint32"
2363
+ },
2364
+ {
2365
+ "internalType": "Timestamp",
2366
+ "name": "expiryAt",
2367
+ "type": "uint40"
2368
+ },
2369
+ {
2370
+ "internalType": "bytes",
2371
+ "name": "data",
2372
+ "type": "bytes"
2373
+ }
2374
+ ],
2375
+ "internalType": "struct IDistribution.ReferralInfo",
2376
+ "name": "referralInfo",
2377
+ "type": "tuple"
2378
+ },
2379
+ {
2380
+ "internalType": "StateId",
2381
+ "name": "newState",
2382
+ "type": "uint8"
2383
+ }
2384
+ ],
2385
+ "name": "updateReferral",
2386
+ "outputs": [],
2387
+ "stateMutability": "nonpayable",
2388
+ "type": "function"
2389
+ },
2390
+ {
2391
+ "inputs": [
2392
+ {
2393
+ "internalType": "ReferralId",
2394
+ "name": "referralId",
2395
+ "type": "bytes8"
2396
+ },
2397
+ {
2398
+ "internalType": "StateId",
2399
+ "name": "newState",
2400
+ "type": "uint8"
2401
+ }
2402
+ ],
2403
+ "name": "updateReferralState",
2404
+ "outputs": [],
2405
+ "stateMutability": "nonpayable",
2406
+ "type": "function"
2407
+ },
2408
+ {
2409
+ "inputs": [
2410
+ {
2411
+ "internalType": "RiskId",
2412
+ "name": "riskId",
2413
+ "type": "bytes8"
2414
+ },
2415
+ {
2416
+ "components": [
2417
+ {
2418
+ "internalType": "NftId",
2419
+ "name": "productNftId",
2420
+ "type": "uint96"
2421
+ },
2422
+ {
2423
+ "internalType": "bytes",
2424
+ "name": "data",
2425
+ "type": "bytes"
2426
+ }
2427
+ ],
2428
+ "internalType": "struct IRisk.RiskInfo",
2429
+ "name": "risk",
2430
+ "type": "tuple"
2431
+ },
2432
+ {
2433
+ "internalType": "StateId",
2434
+ "name": "newState",
2435
+ "type": "uint8"
2436
+ }
2437
+ ],
2438
+ "name": "updateRisk",
2439
+ "outputs": [],
2440
+ "stateMutability": "nonpayable",
2441
+ "type": "function"
2442
+ },
2443
+ {
2444
+ "inputs": [
2445
+ {
2446
+ "internalType": "RiskId",
2447
+ "name": "riskId",
2448
+ "type": "bytes8"
2449
+ },
2450
+ {
2451
+ "internalType": "StateId",
2452
+ "name": "newState",
2453
+ "type": "uint8"
2454
+ }
2455
+ ],
2456
+ "name": "updateRiskState",
2457
+ "outputs": [],
2458
+ "stateMutability": "nonpayable",
2459
+ "type": "function"
2460
+ }
2461
+ ],
2462
+ "bytecode": "0x608060405234801561001057600080fd5b5061496c806100206000396000f3fe608060405234801561001057600080fd5b50600436106102f15760003560e01c80638fb360371161019d578063bf1db3f9116100e9578063dee32623116100a2578063f5884fc51161007c578063f5884fc514610552578063f7b442d11461079f578063fbc1a3a0146107b2578063fe1f18d6146107c557600080fd5b8063dee326231461072d578063e9e96c7014610740578063f48016ce1461077e57600080fd5b8063bf1db3f9146106ae578063bf7e214f146106c1578063c4d66de8146106e1578063ca0e7f08146106f4578063d2f21a2914610707578063d5c9d77d1461071a57600080fd5b8063a284222911610156578063a76ee01811610130578063a76ee01814610662578063a898967514610675578063af90250014610688578063b6d7cd621461069b57600080fd5b8063a28422291461058b578063a4eeee591461059e578063a5961b4c146105b157600080fd5b80638fb360371461051e57806397affbf51461053f578063985aeba7146105525780639e90178c14610565578063a1ef60e914610578578063a1fc10041461055257600080fd5b806338a699a41161025c5780635d4345cc116102155780637cca1124116101ef5780637cca1124146104c55780637cef4842146104d857806381c2b282146104eb5780638eaa6ac0146104fe57600080fd5b80635d4345cc1461039657806361105e0e1461049f5780637a9e5e4b146104b257600080fd5b806338a699a41461041b57806340529b0f1461043e578063468bce061461045157806354f6127f1461045957806359852426146104795780635a8416b01461048c57600080fd5b80631e40b363116102ae5780631e40b363146103a957806329e63f62146103bc5780632a8ea7ac146103cf5780632f61088a146103e257806330a130ba146103f55780633870a7701461040857600080fd5b806309648a9d146102f65780630cbc6b89146103355780630d3581811461034a5780630f526f7d146103705780630f6c29ef146103835780630fad0eb114610396575b600080fd5b61031e610304366004612bc8565b600090815260026020526040902054610100900460ff1690565b60405160ff90911681526020015b60405180910390f35b610348610343366004612e12565b6107d8565b005b61031e610358366004612e5e565b60ff9081166000908152602081905260409020541690565b61034861037e366004612e7b565b61081e565b61034861039136600461302f565b61083f565b6103486103a4366004612e7b565b61086c565b6103486103b7366004613195565b610883565b6103486103ca366004613293565b6108ab565b6103486103dd366004613465565b6108d2565b6103486103f036600461350e565b61090e565b610348610403366004613626565b6109ae565b61034861041636600461366b565b610a4e565b61042e610429366004612bc8565b610a64565b604051901515815260200161032c565b61034861044c366004612e7b565b610af5565b610348610b0c565b61046c610467366004612bc8565b610b3e565b60405161032c91906136f9565b6103486104873660046137d5565b610be3565b61034861049a36600461381c565b610c0b565b6103486104ad36600461391f565b610cab565b6103486104c0366004613966565b610d4b565b6103486104d3366004613983565b610dd3565b6103486104e63660046139c8565b610dfb565b6103486104f93660046139e6565b610e8a565b61051161050c366004612bc8565b610eb1565b60405161032c9190613a8f565b610526610ff2565b6040516001600160e01b0319909116815260200161032c565b61034861054d366004613ac3565b61102b565b610348610560366004613b08565b611053565b610348610573366004613bd4565b61107b565b610348610586366004613c0b565b6110a3565b6103486105993660046139c8565b6110ca565b6103486105ac366004613cf3565b611118565b6106556105bf366004612bc8565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260026020908152604091829020825160a081018452905460ff8082168352610100820416928201929092526001600160a01b03620100008304169281019290925263ffffffff600160b01b820481166060840152600160d01b90910416608082015290565b60405161032c9190613d3a565b610348610670366004613d48565b611140565b610348610683366004613d8f565b6111e0565b6103486106963660046139c8565b6112d1565b6103486106a9366004613dbf565b61131f565b61042e6106bc366004612e5e565b611335565b6106c9611382565b6040516001600160a01b03909116815260200161032c565b6103486106ef366004613966565b61139e565b610348610702366004613def565b61151c565b610348610715366004612e7b565b6115bc565b610348610728366004613e34565b6115d3565b61034861073b366004612e7b565b6115fb565b61042e61074e366004613d8f565b60ff9283166000908152600160209081526040808320948616835293815283822092851682529190915220541690565b61079161078c366004613e89565b611612565b60405190815260200161032c565b6103486107ad366004613eb7565b61169d565b6103486107c0366004613ef8565b6116c5565b6103486107d3366004612e7b565b6116ed565b6107e5335b600036611704565b6108196107f384606e611802565b836040516020016108049190613f26565b6040516020818303038152906040528361184e565b505050565b610827336107dd565b61083b61083583608c611802565b82611cff565b5050565b610848336107dd565b6108666108558585612033565b836040516020016108049190613fd5565b50505050565b610875336107dd565b61083b6108358360d3611802565b61088c336107dd565b61081961089a84607a611802565b83604051602001610804919061402f565b6108b4336107dd565b6108666108c18585612081565b83604051602001610804919061409c565b6108db336107dd565b61083b6108e98360d3611802565b826040516020016108fa9190614110565b6040516020818303038152906040526120ce565b610917336107dd565b6040516355ee627560e01b815261083b9073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee62759061095c906001600160c01b03198716906004016142c1565b602060405180830381865af4158015610979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099d91906142d6565b826040516020016108fa91906142ef565b6109b7336107dd565b6040516355ee627560e01b815261083b9073__$5906aa3f06c54ee09b434647963e1d1ed0$__906355ee6275906109fc906001600160c01b03198716906004016142c1565b602060405180830381865af4158015610a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3d91906142d6565b826040516020016108fa919061431d565b610a57336107dd565b6108196108358484612033565b60008181526002602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024015b602060405180830381865af4158015610acb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aef91906143cd565b92915050565b610afe336107dd565b61083b61083583607a611802565b610b146124e3565b610b1c61252c565b610b2461264f565b610b2c612741565b610b3461284f565b610b3c61297b565b565b6000818152600260205260409020600101805460609190610b5e906143ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8a906143ea565b8015610bd75780601f10610bac57610100808354040283529160200191610bd7565b820191906000526020600020905b815481529060010190602001808311610bba57829003601f168201915b50505050509050919050565b610bec336107dd565b610819610bfa8460dc611802565b836040516020016108049190614424565b610c14336107dd565b6040516355ee627560e01b81526108199073__$5906aa3f06c54ee09b434647963e1d1ed0$__906355ee627590610c59906001600160c01b03198816906004016142c1565b602060405180830381865af4158015610c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9a91906142d6565b83604051602001610804919061431d565b610cb4336107dd565b6040516355ee627560e01b81526108199073__$9f290d768183857d0249ab5bb54619c5ab$__906355ee627590610cf9906001600160c01b03198816906004016142c1565b602060405180830381865af4158015610d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3a91906142d6565b8360405160200161080491906144f4565b33610d54611382565b6001600160a01b0316816001600160a01b031614610d945760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b600003610dca576040516361798f2f60e11b81526001600160a01b0383166004820152602401610d8b565b61083b82612a36565b610ddc336107dd565b61083b610dea83607a611802565b826040516020016108fa919061402f565b610e04336107dd565b6040516355ee627560e01b815261083b9073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590610e49906001600160c01b03198716906004016142c1565b602060405180830381865af4158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083591906142d6565b610e93336107dd565b610819610ea08484612033565b826040516020016108fa9190613fd5565b6040805160e081018252600091810182815260608083018490526080830184905260a0830184905260c083019390935281526020810191909152600082815260026020908152604091829020825160e081018452815460ff80821695830195865261010082041660608301526001600160a01b0362010000820416608083015263ffffffff600160b01b8204811660a0840152600160d01b9091041660c08201529283526001810180549192840191610f69906143ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610f95906143ea565b8015610fe25780601f10610fb757610100808354040283529160200191610fe2565b820191906000526020600020905b815481529060010190602001808311610fc557829003601f168201915b5050505050815250509050919050565b600080516020614917833981519152805460009190600160a01b900460ff1661101c576000611025565b638fb3603760e01b5b91505090565b611034336107dd565b61083b6110428360dc611802565b826040516020016108fa9190614424565b61105c336107dd565b61081961106a8460d3611802565b836040516020016108049190614110565b611084336107dd565b61083b611092836078611802565b826040516020016108fa9190614590565b6110ac336107dd565b6108196110b98484612081565b826040516020016108fa919061409c565b6110d3336107dd565b6040516355ee627560e01b815261083b9073__$5906aa3f06c54ee09b434647963e1d1ed0$__906355ee627590610e49906001600160c01b03198716906004016142c1565b611121336107dd565b61081961112f84608c611802565b836040516020016108049190614604565b611149336107dd565b6040516355ee627560e01b81526108199073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee62759061118e906001600160c01b03198816906004016142c1565b602060405180830381865af41580156111ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cf91906142d6565b8360405160200161080491906142ef565b60ff8381166000908152602081905260409081902054905163037c8cb160e51b81529116600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015611245573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126991906143cd565b1561127357505050565b60ff80841660009081526001602090815260408083208685168452825280832085851684529091529020541661081957604051636bb20ea760e01b815260ff8085166004830152808416602483015282166044820152606401610d8b565b6112da336107dd565b6040516355ee627560e01b815261083b9073__$9f290d768183857d0249ab5bb54619c5ab$__906355ee627590610e49906001600160c01b03198716906004016142c1565b611328336107dd565b6108196108358484612081565b60ff81811660009081526020819052604080822054905163b2466acf60e01b8152921660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401610aae565b600080516020614917833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156113e35750825b90506000826001600160401b031660011480156113ff5750303b155b90508115801561140d575080155b1561142b5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561145557845460ff60401b1916600160401b1785555b6000866001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b99190614685565b90506114c481612a97565b6114cc610b0c565b50831561151457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b505050505050565b611525336107dd565b6040516355ee627560e01b815261083b9073__$9f290d768183857d0249ab5bb54619c5ab$__906355ee62759061156a906001600160c01b03198716906004016142c1565b602060405180830381865af4158015611587573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ab91906142d6565b826040516020016108fa91906144f4565b6115c5336107dd565b61083b610835836078611802565b6115dc336107dd565b61083b6115ea83608c611802565b826040516020016108fa9190614604565b611604336107dd565b61083b61083583606e611802565b604051637a400b6760e11b815260ff8316600482015260ff198216602482015260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063f48016ce906044015b602060405180830381865af4158015611672573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169691906142d6565b9392505050565b6116a6336107dd565b6108196116b4846078611802565b836040516020016108049190614590565b6116ce336107dd565b61083b6116dc83606e611802565b826040516020016108fa9190613f26565b6116f6336107dd565b61083b6108358360dc611802565b60008051602061491783398151915260008061173f611721611382565b8730611731600460008a8c6146a2565b61173a916146cc565b612aab565b91509150816115145763ffffffff8116156117df57825460ff60a01b1916600160a01b17835561176d611382565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161179c939291906146fc565b600060405180830381600087803b1580156117b657600080fd5b505af11580156117ca573d6000803e3d6000fd5b5050845460ff60a01b19168555506115149050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610d8b565b604051630711349960e31b81526001600160601b038316600482015260ff8216602482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401611655565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af41580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c491906143cd565b6119105760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3032303a53544154455f554e444546494e45440000006044820152606401610d8b565b600083815260026020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af415801561197c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a091906143cd565b6119ec5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3032313a4e4f545f4558495354494e470000000000006044820152606401610d8b565b6000858152600260205260409020600101611a078582614782565b5060ff80841614611a2557815461ff00191661010060ff8516021782555b8154620100003390810262010000600160b01b031983161784559063ffffffff600160b01b90910416611a554390565b845463ffffffff91909116600160b01b0263ffffffff60b01b19909116178455604051634b00e98f60e11b8152600481018890527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015611ae7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0b9190614841565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015611b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7f919061485e565b8588863287604051611b97979695949392919061487b565b60405180910390a1604051634b00e98f60e11b8152600481018890527f7bd0ab7f1746bd20a814d6705a46876c84f1aa2d35c80d8c173e268bd6d4b26c9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c359190614841565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015611c85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca9919061485e565b6040805160ff938416815260ff199092166020830152918816918101919091526001600160a01b038416606082015232608082015263ffffffff831660a082015260c0015b60405180910390a150505050505050565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015611d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7591906143cd565b611dc15760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3034303a53544154455f554e444546494e45440000006044820152606401610d8b565b600082815260026020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015611e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5191906143cd565b611e9d5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3034313a4e4f545f4558495354494e470000000000006044820152606401610d8b565b8154611ead9060ff1682856111e0565b8154620100003390810262010000600160b01b031960ff87166101000216610100600160b01b03198416171784559063ffffffff600160b01b90910416611ef14390565b845463ffffffff91909116600160b01b0263ffffffff60b01b19909116178455604051634b00e98f60e11b8152600481018790527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015611f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa79190614841565b604051630713cfad60e31b81526004810189905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015611ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201b919061485e565b858886328760405161150b979695949392919061487b565b604051635927341160e01b815262ffffff821660048201526001600160601b038316602482015260009073__$e1d43d4fb5c0494c5b7331f52c1ee41012$__90635927341190604401611655565b604051637d56159160e11b815261ffff821660048201526001600160601b038316602482015260009073__$0e0c503522f35343ef1955427c5075b143$__9063faac2b2290604401611655565b604051634b00e98f60e11b81526004810183905260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015612121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121459190614841565b60405163b2466acf60e01b815260ff8216600482015290915073__$fb4566b39bd2075cb32f600f6f40bfaef2$__9063b2466acf90602401602060405180830381865af415801561219a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121be91906143cd565b61220a5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4b56532d3031303a545950455f554e444546494e4544000000006044820152606401610d8b565b600083815260026020526040908190208054915163037c8cb160e51b815261010090920460ff1660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015612273573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229791906143cd565b6122e35760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3031323a414c52454144595f435245415445440000006044820152606401610d8b565b334360006122f085611335565b6122fb576064612311565b60ff808616600090815260208190526040902054165b845460ff87811661ffff1990921691909117610100918316919091021762010000600160d01b031916620100006001600160a01b0386160263ffffffff60b01b191617600160b01b63ffffffff85169081029190911763ffffffff60d01b1916600160d01b91909102178555600088815260026020526040902090915060010161239b8782614782565b50604051634b00e98f60e11b8152600481018890527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af415801561240e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124329190614841565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015612482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a6919061485e565b6040805160ff938416815260ff199092166020830152918416918101919091526001600160a01b038516606082015232608082015260a001611cee565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610b3c57604051631afcd79f60e31b815260040160405180910390fd5b7f5bd290414b404036f9d63146803dd83b59a8e1905062a5bfed8b0154d20a390d8054606460ff19918216179091557f1578fb1f3721b6c33cae7dfcd025f5660361b090d8a17dcf8a744763f22d32ff8054821660019081179091557f47ebb928e225b2cdc8d8e0079f8da9b87d2bc15cc37a8c27842a5c925baa8b1e80548316821790557ffe60dc71e2c842ec11550e74a003d6f707c74c3b19b04c1b0700bc0fd9efd9508054909216811790915560dc600090815260208290527f81c2bf9f7c6e8ac9bd8bcd9d323e94b867d2f5054aff8759d884773c680ec1ec90606e5b60ff1660ff168152602001908152602001600020600061262b60c890565b60ff1681526020810191909152604001600020805460ff1916911515919091179055565b7f9db7038e59677010ca8f72fa448bad1b4f3c53346b666689163ccac31db467728054606460ff1991821681179092557f1a3062e9a24818c8281fcfb58ec4f3083a2f9a1314ac63f80d8d646661fdc50980548216600190811790915560008381527fc884cae9155e1829c27543e26ecbb72f79fe3a85ba4df2c4a97ad5806356754d6020527f2916767ac794614810c43d6c0837244e8b2c8d3f3c02376a214f465d6841db5680549093168217909255918291905b60ff1660ff1681526020019081526020016000206000612723606e90565b60ff1660ff168152602001908152602001600020600061262b60d290565b7fa57aae0b1e878b4cf2d1f237d2c6d245fa2af12f527cffc45e0a81d7b3c46abe8054600a60ff19918216179091557f10d8f68d28031156bb5a2007a6e7fc1ff769776115bd307e1d3f2901ec220eef8054821660019081179091557f71e0ce7e96b0b9ecf53c20706f5891c8e9bb320060393406400136d7ab1db61e80548316821790557f3aa5c1a82b8afaca3213d4302f465dcc339ab680e61c71830f7d9c441c63328380548316821790557f59d2febd485ffaba948645e520694e9996f0c229c4a10430d07956b599b172538054909216811790915560d3600090815260208290527f7415b658af57d740454b01d91722f71a360db8fdd5ec2a068a92c37e2bc3b1d690606461260d565b7f41d63e1348ead7043feb8677b52ff813a7a3d573fdf99c917846a69e8e7b7e60805460ff199081166032179091557f378c5573ee3453f5c9f5c7aa83b807835ecb097b5151d641746b59340336b67d8054821660019081179091557f7f4fc20c9070f9c8378783c3022311e08af436d0fea4b913fe0bbde88023d12680548316821790557ff6e14778b29b20f68b5cc5186c105c44b748bec78fd85e0b2ec52bc8586d6a6b80548316821790557fb9ec96904d3ea9e7b01f30f8b9a841d70b77145e37a183ebdbba2b0733adc0ec8054603c93168317905560009182527f77835ececcc7e965708390fdc28b7c7141b063a8a849f3954f1d294d07730184602052907f5e9b6496c2ea16de03007cb0b49643b7231addd52c0cee66d8556b1dd66622a19060dc61262b565b7fc5f2c791ab4e0b1a0b6c600884b07e98575b00ebd7c3166c4272a53bebf714038054606460ff1991821681179092557f66482ac56acdda5113badf732cc46c284136d9d6378a671ac129cd298ff5f96780548216600190811790915560009283527f47d871bf8fdbdfc3d809d1454103f6ff238aad0f5cefde0353363b9e415ef6a76020527ff2de5750d5c9f412b7907640f68a5258fe3f903dfd0cd25c2ea235b23cc926958054909216811790915590819060c8612705565b60008051602061491783398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b612a9f6124e3565b612aa881612bb7565b50565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251612b1a91906148cb565b600060405180830381855afa9150503d8060008114612b55576040519150601f19603f3d011682016040523d82523d6000602084013e612b5a565b606091505b50915091508115612bac576040815110612b8c5780806020019051810190612b8291906148e7565b9094509250612bac565b6020815110612bac5780806020019051810190612ba991906143cd565b93505b505094509492505050565b612bbf6124e3565b612aa881612a36565b600060208284031215612bda57600080fd5b5035919050565b6001600160601b0381168114612aa857600080fd5b8035612c0181612be1565b919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612c3e57612c3e612c06565b60405290565b60405161010081016001600160401b0381118282101715612c3e57612c3e612c06565b60405160c081016001600160401b0381118282101715612c3e57612c3e612c06565b60405161022081016001600160401b0381118282101715612c3e57612c3e612c06565b60405161012081016001600160401b0381118282101715612c3e57612c3e612c06565b60405160e081016001600160401b0381118282101715612c3e57612c3e612c06565b6001600160a01b0381168114612aa857600080fd5b8035612c0181612cf1565b600060408284031215612d2357600080fd5b612d2b612c1c565b9050813581526020820135602082015292915050565b8015158114612aa857600080fd5b8035612c0181612d41565b60006101408284031215612d6d57600080fd5b612d75612c44565b9050612d8082612d06565b8152612d8e60208301612d06565b6020820152612d9f60408301612bf6565b6040820152612db060608301612bf6565b6060820152612dc28360808401612d11565b6080820152612dd48360c08401612d11565b60a0820152612de66101008301612d4f565b60c0820152612df86101208301612d06565b60e082015292915050565b60ff81168114612aa857600080fd5b60008060006101808486031215612e2857600080fd5b8335612e3381612be1565b9250612e428560208601612d5a565b9150610160840135612e5381612e03565b809150509250925092565b600060208284031215612e7057600080fd5b813561169681612e03565b60008060408385031215612e8e57600080fd5b8235612e9981612be1565b91506020830135612ea981612e03565b809150509250929050565b803562ffffff81168114612c0157600080fd5b61ffff81168114612aa857600080fd5b8035612c0181612ec7565b600082601f830112612ef357600080fd5b81356001600160401b0380821115612f0d57612f0d612c06565b604051601f8301601f19908116603f01168101908282118183101715612f3557612f35612c06565b81604052838152866020858801011115612f4e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b64ffffffffff81168114612aa857600080fd5b8035612c0181612f6e565b600060808284031215612f9e57600080fd5b604051608081016001600160401b038282108183111715612fc157612fc1612c06565b8160405282935084359150612fd582612ec7565b908252602084013590612fe782612be1565b816020840152604085013591508082111561300157600080fd5b5061300e85828601612ee2565b604083015250606083013561302281612f6e565b6060919091015292915050565b6000806000806080858703121561304557600080fd5b843561305081612be1565b935061305e60208601612eb4565b925060408501356001600160401b0381111561307957600080fd5b61308587828801612f8c565b925050606085013561309681612e03565b939692955090935050565b6001600160c01b031981168114612aa857600080fd5b8035612c01816130a1565b63ffffffff81168114612aa857600080fd5b8035612c01816130c2565b600060a082840312156130f157600080fd5b60405160a081016001600160401b03828210818311171561311457613114612c06565b8160405282935084359150613128826130a1565b90825260208401359061313a82612d41565b816020840152604085013591508082111561315457600080fd5b5061316185828601612ee2565b604083015250606083013561317581612be1565b60608201526080830135613188816130c2565b6080919091015292915050565b6000806000606084860312156131aa57600080fd5b83356131b581612be1565b925060208401356001600160401b038111156131d057600080fd5b6131dc868287016130df565b9250506040840135612e5381612e03565b600060c082840312156131ff57600080fd5b613207612c67565b9050813561321481612be1565b8152602082013561322481612be1565b6020820152604082013561323781612e03565b6040820152606082013561324a81612e03565b606082015260808201356001600160401b0381111561326857600080fd5b61327484828501612ee2565b60808301525060a082013561328881612f6e565b60a082015292915050565b600080600080608085870312156132a957600080fd5b84356132b481612be1565b935060208501356132c481612ec7565b925060408501356001600160401b038111156132df57600080fd5b613085878288016131ed565b600061022082840312156132fe57600080fd5b613306612c89565b905061331182612bf6565b815261331f60208301612bf6565b6020820152613330604083016130b7565b6040820152613341606083016130b7565b606082015261335260808301612bf6565b608082015261336360a08301612bf6565b60a082015261337460c08301612bf6565b60c082015261338560e08301612f81565b60e0820152610100808301356001600160401b03808211156133a657600080fd5b6133b286838701612ee2565b838501526101209250828501359150808211156133ce57600080fd5b506133db85828601612ee2565b8284015250506101406133ef818401612ed7565b90820152610160613401838201612ed7565b90820152610180613413838201612bf6565b908201526101a0613425838201612bf6565b908201526101c0613437838201612f81565b908201526101e0613449838201612f81565b9082015261020061345b838201612f81565b9082015292915050565b6000806040838503121561347857600080fd5b823561348381612be1565b915060208301356001600160401b0381111561349e57600080fd5b6134aa858286016132eb565b9150509250929050565b6000604082840312156134c657600080fd5b6134ce612c1c565b905081356134db81612be1565b815260208201356001600160401b038111156134f657600080fd5b61350284828501612ee2565b60208301525092915050565b6000806040838503121561352157600080fd5b823561352c816130a1565b915060208301356001600160401b0381111561354757600080fd5b6134aa858286016134b4565b6000610120828403121561356657600080fd5b61356e612cac565b905081356001600160401b038082111561358757600080fd5b61359385838601612ee2565b83526020840135602084015260408401356040840152606084013560608401526135bf608085016130d4565b60808401526135d060a085016130d4565b60a08401526135e160c08501612d4f565b60c08401526135f260e08501612d4f565b60e08401526101009150818401358181111561360d57600080fd5b61361986828701612ee2565b8385015250505092915050565b6000806040838503121561363957600080fd5b8235613644816130a1565b915060208301356001600160401b0381111561365f57600080fd5b6134aa85828601613553565b60008060006060848603121561368057600080fd5b833561368b81612be1565b925061369960208501612eb4565b91506040840135612e5381612e03565b60005b838110156136c45781810151838201526020016136ac565b50506000910152565b600081518084526136e58160208601602086016136a9565b601f01601f19169290920160200192915050565b60208152600061169660208301846136cd565b6000610140828403121561371f57600080fd5b613727612cac565b905061373282612bf6565b81526137418360208401612d11565b602082015260608201356001600160401b0381111561375f57600080fd5b61376b84828501612ee2565b60408301525061377d60808301612bf6565b606082015261378e60a08301612bf6565b608082015261379f60c08301612bf6565b60a08201526137b060e08301612f81565b60c08201526101006137c3818401612f81565b60e083015261345b6101208401612f81565b6000806000606084860312156137ea57600080fd5b83356137f581612be1565b925060208401356001600160401b0381111561381057600080fd5b6131dc8682870161370c565b60008060006060848603121561383157600080fd5b833561383c816130a1565b925060208401356001600160401b0381111561385757600080fd5b6131dc86828701613553565b600060e0828403121561387557600080fd5b61387d612ccf565b905061388882612bf6565b815260208201356001600160401b03808211156138a457600080fd5b6138b085838601612ee2565b6020840152604084013560408401526138cb606085016130d4565b60608401526138dc608085016130d4565b60808401526138ed60a08501612f81565b60a084015260c084013591508082111561390657600080fd5b5061391384828501612ee2565b60c08301525092915050565b60008060006060848603121561393457600080fd5b833561393f816130a1565b925060208401356001600160401b0381111561395a57600080fd5b6131dc86828701613863565b60006020828403121561397857600080fd5b813561169681612cf1565b6000806040838503121561399657600080fd5b82356139a181612be1565b915060208301356001600160401b038111156139bc57600080fd5b6134aa858286016130df565b600080604083850312156139db57600080fd5b8235612e99816130a1565b6000806000606084860312156139fb57600080fd5b8335613a0681612be1565b9250613a1460208501612eb4565b915060408401356001600160401b03811115613a2f57600080fd5b613a3b86828701612f8c565b9150509250925092565b60ff815116825260ff602082015116602083015260018060a01b036040820151166040830152606081015163ffffffff808216606085015280608084015116608085015250505050565b60208152613aa1602082018351613a45565b6000602083015160c080840152613abb60e08401826136cd565b949350505050565b60008060408385031215613ad657600080fd5b8235613ae181612be1565b915060208301356001600160401b03811115613afc57600080fd5b6134aa8582860161370c565b600080600060608486031215613b1d57600080fd5b8335613b2881612be1565b925060208401356001600160401b03811115613b4357600080fd5b6131dc868287016132eb565b60006101008284031215613b6257600080fd5b613b6a612c67565b90508135613b7781612be1565b81526020820135613b8781612cf1565b6020820152613b998360408401612d11565b6040820152613bab8360808401612d11565b606082015260c0820135613bbe81612cf1565b608082015260e0919091013560a0820152919050565b6000806101208385031215613be857600080fd5b8235613bf381612be1565b9150613c028460208501613b4f565b90509250929050565b600080600060608486031215613c2057600080fd5b8335613c2b81612be1565b92506020840135613c3b81612ec7565b915060408401356001600160401b03811115613c5657600080fd5b613a3b868287016131ed565b600060e08284031215613c7457600080fd5b613c7c612ccf565b905081356001600160401b0380821115613c9557600080fd5b613ca185838601612ee2565b8352613caf60208501612d06565b6020840152613cc060408501612d06565b6040840152613cd160608501612d06565b6060840152613ce260808501612bf6565b60808401526138ed60a08501612bf6565b600080600060608486031215613d0857600080fd5b8335613d1381612be1565b925060208401356001600160401b03811115613d2e57600080fd5b6131dc86828701613c62565b60a08101610aef8284613a45565b600080600060608486031215613d5d57600080fd5b8335613d68816130a1565b925060208401356001600160401b03811115613d8357600080fd5b6131dc868287016134b4565b600080600060608486031215613da457600080fd5b8335613daf81612e03565b9250602084013561369981612e03565b600080600060608486031215613dd457600080fd5b8335613ddf81612be1565b9250602084013561369981612ec7565b60008060408385031215613e0257600080fd5b8235613e0d816130a1565b915060208301356001600160401b03811115613e2857600080fd5b6134aa85828601613863565b60008060408385031215613e4757600080fd5b8235613e5281612be1565b915060208301356001600160401b03811115613e6d57600080fd5b6134aa85828601613c62565b60ff1981168114612aa857600080fd5b60008060408385031215613e9c57600080fd5b8235613ea781612e03565b91506020830135612ea981613e79565b60008060006101408486031215613ecd57600080fd5b8335613ed881612be1565b9250613ee78560208601613b4f565b9150610120840135612e5381612e03565b6000806101608385031215613f0c57600080fd5b8235613f1781612be1565b9150613c028460208501612d5a565b81516001600160a01b039081168252602080840151909116908201526040808301516001600160601b031690820152606080830151610140830191613f75908401826001600160601b03169052565b506080830151613f92608084018280518252602090810151910152565b5060a0830151805160c0840152602081015160e08401525060c08301518015156101008401525060e08301516001600160a01b0381166101208401525092915050565b6020815261ffff82511660208201526001600160601b036020830151166040820152600060408301516080606084015261401260a08401826136cd565b905064ffffffffff60608501511660808401528091505092915050565b602081526001600160401b0360c01b82511660208201526020820151151560408201526000604083015160a0606084015261406d60c08401826136cd565b90506001600160601b03606085015116608084015263ffffffff60808501511660a08401528091505092915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260ff6060840151166080830152608083015160c060a08401526140f360e08401826136cd565b905064ffffffffff60a08501511660c08401528091505092915050565b6020815261412a6020820183516001600160601b03169052565b6000602083015161414660408401826001600160601b03169052565b5060408301516001600160c01b0319811660608401525060608301516001600160c01b0319811660808401525060808301516001600160601b03811660a08401525060a08301516001600160601b03811660c08401525060c08301516001600160601b03811660e08401525060e08301516101006141cc8185018364ffffffffff169052565b8085015191505061022061012081818601526141ec6102408601846136cd565b9250808601519050610140601f19868503018187015261420c84836136cd565b9350808701519150506101606142278187018361ffff169052565b860151905061018061423e8682018361ffff169052565b86015190506101a061425a868201836001600160601b03169052565b86015190506101c0614276868201836001600160601b03169052565b86015190506101e06142908682018364ffffffffff169052565b86015190506102006142aa8682018364ffffffffff169052565b9095015164ffffffffff1693019290925250919050565b6001600160c01b031991909116815260200190565b6000602082840312156142e857600080fd5b5051919050565b602081526001600160601b03825116602082015260006020830151604080840152613abb60608401826136cd565b602081526000825161012080602085015261433c6101408501836136cd565b9150602085015160408501526040850151606085015260608501516080850152608085015161437360a086018263ffffffff169052565b5060a085015163ffffffff811660c08601525060c085015180151560e08601525060e08501516101006143a98187018315159052565b860151858403601f19018387015290506143c383826136cd565b9695505050505050565b6000602082840312156143df57600080fd5b815161169681612d41565b600181811c908216806143fe57607f821691505b60208210810361441e57634e487b7160e01b600052602260045260246000fd5b50919050565b6020815261443e6020820183516001600160601b03169052565b6000602083015161445c604084018280518252602090810151910152565b5060408301516101408060808501526144796101608501836136cd565b9150606085015161449560a08601826001600160601b03169052565b5060808501516001600160601b03811660c08601525060a08501516001600160601b03811660e08601525060c08501516101006144da8187018364ffffffffff169052565b60e087015164ffffffffff811661012088015291506142aa565b602081526001600160601b0382511660208201526000602083015160e060408401526145246101008401826136cd565b90506040840151606084015263ffffffff6060850151166080840152608084015161455760a085018263ffffffff169052565b5060a084015164ffffffffff811660c08501525b5060c0840151838203601f190160e085015261458782826136cd565b95945050505050565b81516001600160601b031681526020808301516001600160a01b039081168284015260408085015180519185019190915291820151606084015261010083019190606085015180516080860152602081015160a0860152915060808501511660c08401525060a09092015160e09091015290565b602081526000825160e060208401526146216101008401826136cd565b9050602084015160018060a01b0380821660408601528060408701511660608601528060608701511660808601525050608084015161466b60a08501826001600160601b03169052565b5060a08401516001600160601b03811660c085015261456b565b60006020828403121561469757600080fd5b815161169681612cf1565b600080858511156146b257600080fd5b838611156146bf57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156146f45780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b601f82111561081957600081815260208120601f850160051c810160208610156147635750805b601f850160051c820191505b818110156115145782815560010161476f565b81516001600160401b0381111561479b5761479b612c06565b6147af816147a984546143ea565b8461473c565b602080601f8311600181146147e457600084156147cc5750858301515b600019600386901b1c1916600185901b178555611514565b600085815260208120601f198616915b82811015614813578886015182559484019460019091019084016147f4565b50858210156148315787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561485357600080fd5b815161169681612e03565b60006020828403121561487057600080fd5b815161169681613e79565b60ff978816815260ff1996909616602087015293861660408601529190941660608401526001600160a01b03938416608084015290921660a082015263ffffffff9190911660c082015260e00190565b600082516148dd8184602087016136a9565b9190910192915050565b600080604083850312156148fa57600080fd5b825161490581612d41565b6020840151909250612ea9816130c256fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a26469706673582212205d2aab53e1d8af854c490903dc56c4bfb64487fddb1d4306aa667d862645a82164736f6c63430008140033",
2463
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102f15760003560e01c80638fb360371161019d578063bf1db3f9116100e9578063dee32623116100a2578063f5884fc51161007c578063f5884fc514610552578063f7b442d11461079f578063fbc1a3a0146107b2578063fe1f18d6146107c557600080fd5b8063dee326231461072d578063e9e96c7014610740578063f48016ce1461077e57600080fd5b8063bf1db3f9146106ae578063bf7e214f146106c1578063c4d66de8146106e1578063ca0e7f08146106f4578063d2f21a2914610707578063d5c9d77d1461071a57600080fd5b8063a284222911610156578063a76ee01811610130578063a76ee01814610662578063a898967514610675578063af90250014610688578063b6d7cd621461069b57600080fd5b8063a28422291461058b578063a4eeee591461059e578063a5961b4c146105b157600080fd5b80638fb360371461051e57806397affbf51461053f578063985aeba7146105525780639e90178c14610565578063a1ef60e914610578578063a1fc10041461055257600080fd5b806338a699a41161025c5780635d4345cc116102155780637cca1124116101ef5780637cca1124146104c55780637cef4842146104d857806381c2b282146104eb5780638eaa6ac0146104fe57600080fd5b80635d4345cc1461039657806361105e0e1461049f5780637a9e5e4b146104b257600080fd5b806338a699a41461041b57806340529b0f1461043e578063468bce061461045157806354f6127f1461045957806359852426146104795780635a8416b01461048c57600080fd5b80631e40b363116102ae5780631e40b363146103a957806329e63f62146103bc5780632a8ea7ac146103cf5780632f61088a146103e257806330a130ba146103f55780633870a7701461040857600080fd5b806309648a9d146102f65780630cbc6b89146103355780630d3581811461034a5780630f526f7d146103705780630f6c29ef146103835780630fad0eb114610396575b600080fd5b61031e610304366004612bc8565b600090815260026020526040902054610100900460ff1690565b60405160ff90911681526020015b60405180910390f35b610348610343366004612e12565b6107d8565b005b61031e610358366004612e5e565b60ff9081166000908152602081905260409020541690565b61034861037e366004612e7b565b61081e565b61034861039136600461302f565b61083f565b6103486103a4366004612e7b565b61086c565b6103486103b7366004613195565b610883565b6103486103ca366004613293565b6108ab565b6103486103dd366004613465565b6108d2565b6103486103f036600461350e565b61090e565b610348610403366004613626565b6109ae565b61034861041636600461366b565b610a4e565b61042e610429366004612bc8565b610a64565b604051901515815260200161032c565b61034861044c366004612e7b565b610af5565b610348610b0c565b61046c610467366004612bc8565b610b3e565b60405161032c91906136f9565b6103486104873660046137d5565b610be3565b61034861049a36600461381c565b610c0b565b6103486104ad36600461391f565b610cab565b6103486104c0366004613966565b610d4b565b6103486104d3366004613983565b610dd3565b6103486104e63660046139c8565b610dfb565b6103486104f93660046139e6565b610e8a565b61051161050c366004612bc8565b610eb1565b60405161032c9190613a8f565b610526610ff2565b6040516001600160e01b0319909116815260200161032c565b61034861054d366004613ac3565b61102b565b610348610560366004613b08565b611053565b610348610573366004613bd4565b61107b565b610348610586366004613c0b565b6110a3565b6103486105993660046139c8565b6110ca565b6103486105ac366004613cf3565b611118565b6106556105bf366004612bc8565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260026020908152604091829020825160a081018452905460ff8082168352610100820416928201929092526001600160a01b03620100008304169281019290925263ffffffff600160b01b820481166060840152600160d01b90910416608082015290565b60405161032c9190613d3a565b610348610670366004613d48565b611140565b610348610683366004613d8f565b6111e0565b6103486106963660046139c8565b6112d1565b6103486106a9366004613dbf565b61131f565b61042e6106bc366004612e5e565b611335565b6106c9611382565b6040516001600160a01b03909116815260200161032c565b6103486106ef366004613966565b61139e565b610348610702366004613def565b61151c565b610348610715366004612e7b565b6115bc565b610348610728366004613e34565b6115d3565b61034861073b366004612e7b565b6115fb565b61042e61074e366004613d8f565b60ff9283166000908152600160209081526040808320948616835293815283822092851682529190915220541690565b61079161078c366004613e89565b611612565b60405190815260200161032c565b6103486107ad366004613eb7565b61169d565b6103486107c0366004613ef8565b6116c5565b6103486107d3366004612e7b565b6116ed565b6107e5335b600036611704565b6108196107f384606e611802565b836040516020016108049190613f26565b6040516020818303038152906040528361184e565b505050565b610827336107dd565b61083b61083583608c611802565b82611cff565b5050565b610848336107dd565b6108666108558585612033565b836040516020016108049190613fd5565b50505050565b610875336107dd565b61083b6108358360d3611802565b61088c336107dd565b61081961089a84607a611802565b83604051602001610804919061402f565b6108b4336107dd565b6108666108c18585612081565b83604051602001610804919061409c565b6108db336107dd565b61083b6108e98360d3611802565b826040516020016108fa9190614110565b6040516020818303038152906040526120ce565b610917336107dd565b6040516355ee627560e01b815261083b9073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee62759061095c906001600160c01b03198716906004016142c1565b602060405180830381865af4158015610979573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099d91906142d6565b826040516020016108fa91906142ef565b6109b7336107dd565b6040516355ee627560e01b815261083b9073__$5906aa3f06c54ee09b434647963e1d1ed0$__906355ee6275906109fc906001600160c01b03198716906004016142c1565b602060405180830381865af4158015610a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3d91906142d6565b826040516020016108fa919061431d565b610a57336107dd565b6108196108358484612033565b60008181526002602052604080822054905163b2466acf60e01b815261010090910460ff16600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf906024015b602060405180830381865af4158015610acb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aef91906143cd565b92915050565b610afe336107dd565b61083b61083583607a611802565b610b146124e3565b610b1c61252c565b610b2461264f565b610b2c612741565b610b3461284f565b610b3c61297b565b565b6000818152600260205260409020600101805460609190610b5e906143ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8a906143ea565b8015610bd75780601f10610bac57610100808354040283529160200191610bd7565b820191906000526020600020905b815481529060010190602001808311610bba57829003601f168201915b50505050509050919050565b610bec336107dd565b610819610bfa8460dc611802565b836040516020016108049190614424565b610c14336107dd565b6040516355ee627560e01b81526108199073__$5906aa3f06c54ee09b434647963e1d1ed0$__906355ee627590610c59906001600160c01b03198816906004016142c1565b602060405180830381865af4158015610c76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9a91906142d6565b83604051602001610804919061431d565b610cb4336107dd565b6040516355ee627560e01b81526108199073__$9f290d768183857d0249ab5bb54619c5ab$__906355ee627590610cf9906001600160c01b03198816906004016142c1565b602060405180830381865af4158015610d16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3a91906142d6565b8360405160200161080491906144f4565b33610d54611382565b6001600160a01b0316816001600160a01b031614610d945760405162d1953b60e31b81526001600160a01b03821660048201526024015b60405180910390fd5b816001600160a01b03163b600003610dca576040516361798f2f60e11b81526001600160a01b0383166004820152602401610d8b565b61083b82612a36565b610ddc336107dd565b61083b610dea83607a611802565b826040516020016108fa919061402f565b610e04336107dd565b6040516355ee627560e01b815261083b9073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee627590610e49906001600160c01b03198716906004016142c1565b602060405180830381865af4158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083591906142d6565b610e93336107dd565b610819610ea08484612033565b826040516020016108fa9190613fd5565b6040805160e081018252600091810182815260608083018490526080830184905260a0830184905260c083019390935281526020810191909152600082815260026020908152604091829020825160e081018452815460ff80821695830195865261010082041660608301526001600160a01b0362010000820416608083015263ffffffff600160b01b8204811660a0840152600160d01b9091041660c08201529283526001810180549192840191610f69906143ea565b80601f0160208091040260200160405190810160405280929190818152602001828054610f95906143ea565b8015610fe25780601f10610fb757610100808354040283529160200191610fe2565b820191906000526020600020905b815481529060010190602001808311610fc557829003601f168201915b5050505050815250509050919050565b600080516020614917833981519152805460009190600160a01b900460ff1661101c576000611025565b638fb3603760e01b5b91505090565b611034336107dd565b61083b6110428360dc611802565b826040516020016108fa9190614424565b61105c336107dd565b61081961106a8460d3611802565b836040516020016108049190614110565b611084336107dd565b61083b611092836078611802565b826040516020016108fa9190614590565b6110ac336107dd565b6108196110b98484612081565b826040516020016108fa919061409c565b6110d3336107dd565b6040516355ee627560e01b815261083b9073__$5906aa3f06c54ee09b434647963e1d1ed0$__906355ee627590610e49906001600160c01b03198716906004016142c1565b611121336107dd565b61081961112f84608c611802565b836040516020016108049190614604565b611149336107dd565b6040516355ee627560e01b81526108199073__$19a201e37be2e25dc57bd4aa563a0edb25$__906355ee62759061118e906001600160c01b03198816906004016142c1565b602060405180830381865af41580156111ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cf91906142d6565b8360405160200161080491906142ef565b60ff8381166000908152602081905260409081902054905163037c8cb160e51b81529116600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015611245573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126991906143cd565b1561127357505050565b60ff80841660009081526001602090815260408083208685168452825280832085851684529091529020541661081957604051636bb20ea760e01b815260ff8085166004830152808416602483015282166044820152606401610d8b565b6112da336107dd565b6040516355ee627560e01b815261083b9073__$9f290d768183857d0249ab5bb54619c5ab$__906355ee627590610e49906001600160c01b03198716906004016142c1565b611328336107dd565b6108196108358484612081565b60ff81811660009081526020819052604080822054905163b2466acf60e01b8152921660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401610aae565b600080516020614917833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156113e35750825b90506000826001600160401b031660011480156113ff5750303b155b90508115801561140d575080155b1561142b5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561145557845460ff60401b1916600160401b1785555b6000866001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611495573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b99190614685565b90506114c481612a97565b6114cc610b0c565b50831561151457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b505050505050565b611525336107dd565b6040516355ee627560e01b815261083b9073__$9f290d768183857d0249ab5bb54619c5ab$__906355ee62759061156a906001600160c01b03198716906004016142c1565b602060405180830381865af4158015611587573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ab91906142d6565b826040516020016108fa91906144f4565b6115c5336107dd565b61083b610835836078611802565b6115dc336107dd565b61083b6115ea83608c611802565b826040516020016108fa9190614604565b611604336107dd565b61083b61083583606e611802565b604051637a400b6760e11b815260ff8316600482015260ff198216602482015260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__9063f48016ce906044015b602060405180830381865af4158015611672573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169691906142d6565b9392505050565b6116a6336107dd565b6108196116b4846078611802565b836040516020016108049190614590565b6116ce336107dd565b61083b6116dc83606e611802565b826040516020016108fa9190613f26565b6116f6336107dd565b61083b6108358360dc611802565b60008051602061491783398151915260008061173f611721611382565b8730611731600460008a8c6146a2565b61173a916146cc565b612aab565b91509150816115145763ffffffff8116156117df57825460ff60a01b1916600160a01b17835561176d611382565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b815260040161179c939291906146fc565b600060405180830381600087803b1580156117b657600080fd5b505af11580156117ca573d6000803e3d6000fd5b5050845460ff60a01b19168555506115149050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610d8b565b604051630711349960e31b81526001600160601b038316600482015260ff8216602482015260009073__$6facc32ab6029a5f5de2a1d5e55ea9da0e$__90633889a4c890604401611655565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af41580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c491906143cd565b6119105760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3032303a53544154455f554e444546494e45440000006044820152606401610d8b565b600083815260026020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af415801561197c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a091906143cd565b6119ec5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3032313a4e4f545f4558495354494e470000000000006044820152606401610d8b565b6000858152600260205260409020600101611a078582614782565b5060ff80841614611a2557815461ff00191661010060ff8516021782555b8154620100003390810262010000600160b01b031983161784559063ffffffff600160b01b90910416611a554390565b845463ffffffff91909116600160b01b0263ffffffff60b01b19909116178455604051634b00e98f60e11b8152600481018890527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015611ae7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0b9190614841565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015611b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7f919061485e565b8588863287604051611b97979695949392919061487b565b60405180910390a1604051634b00e98f60e11b8152600481018890527f7bd0ab7f1746bd20a814d6705a46876c84f1aa2d35c80d8c173e268bd6d4b26c9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015611c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c359190614841565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015611c85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca9919061485e565b6040805160ff938416815260ff199092166020830152918816918101919091526001600160a01b038416606082015232608082015263ffffffff831660a082015260c0015b60405180910390a150505050505050565b60405163b2466acf60e01b815260ff8216600482015273__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015611d51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7591906143cd565b611dc15760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3034303a53544154455f554e444546494e45440000006044820152606401610d8b565b600082815260026020526040908190208054915163b2466acf60e01b815261010090920460ff1660048301819052909173__$2a12cf1a40369f689f3a67e70f4b31dadc$__9063b2466acf90602401602060405180830381865af4158015611e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5191906143cd565b611e9d5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4b56532d3034313a4e4f545f4558495354494e470000000000006044820152606401610d8b565b8154611ead9060ff1682856111e0565b8154620100003390810262010000600160b01b031960ff87166101000216610100600160b01b03198416171784559063ffffffff600160b01b90910416611ef14390565b845463ffffffff91909116600160b01b0263ffffffff60b01b19909116178455604051634b00e98f60e11b8152600481018790527fe41a93c15e024a0b2371127599959a8e543dd6a8d820238e906c93a3004248fa9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015611f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa79190614841565b604051630713cfad60e31b81526004810189905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015611ff7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061201b919061485e565b858886328760405161150b979695949392919061487b565b604051635927341160e01b815262ffffff821660048201526001600160601b038316602482015260009073__$e1d43d4fb5c0494c5b7331f52c1ee41012$__90635927341190604401611655565b604051637d56159160e11b815261ffff821660048201526001600160601b038316602482015260009073__$0e0c503522f35343ef1955427c5075b143$__9063faac2b2290604401611655565b604051634b00e98f60e11b81526004810183905260009073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af4158015612121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121459190614841565b60405163b2466acf60e01b815260ff8216600482015290915073__$fb4566b39bd2075cb32f600f6f40bfaef2$__9063b2466acf90602401602060405180830381865af415801561219a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121be91906143cd565b61220a5760405162461bcd60e51b815260206004820152601c60248201527f4552524f523a4b56532d3031303a545950455f554e444546494e4544000000006044820152606401610d8b565b600083815260026020526040908190208054915163037c8cb160e51b815261010090920460ff1660048301529073__$2a12cf1a40369f689f3a67e70f4b31dadc$__90636f91962090602401602060405180830381865af4158015612273573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229791906143cd565b6122e35760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a4b56532d3031323a414c52454144595f435245415445440000006044820152606401610d8b565b334360006122f085611335565b6122fb576064612311565b60ff808616600090815260208190526040902054165b845460ff87811661ffff1990921691909117610100918316919091021762010000600160d01b031916620100006001600160a01b0386160263ffffffff60b01b191617600160b01b63ffffffff85169081029190911763ffffffff60d01b1916600160d01b91909102178555600088815260026020526040902090915060010161239b8782614782565b50604051634b00e98f60e11b8152600481018890527ffcb75eb7b317145f986c763e1a3eab5f9b4dbaf7955504f70f986d799c3ab39d9073__$c8f743efd2b4f0c9300f2558c784479d3e$__90639601d31e90602401602060405180830381865af415801561240e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124329190614841565b604051630713cfad60e31b8152600481018a905273__$c8f743efd2b4f0c9300f2558c784479d3e$__9063389e7d6890602401602060405180830381865af4158015612482573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a6919061485e565b6040805160ff938416815260ff199092166020830152918416918101919091526001600160a01b038516606082015232608082015260a001611cee565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610b3c57604051631afcd79f60e31b815260040160405180910390fd5b7f5bd290414b404036f9d63146803dd83b59a8e1905062a5bfed8b0154d20a390d8054606460ff19918216179091557f1578fb1f3721b6c33cae7dfcd025f5660361b090d8a17dcf8a744763f22d32ff8054821660019081179091557f47ebb928e225b2cdc8d8e0079f8da9b87d2bc15cc37a8c27842a5c925baa8b1e80548316821790557ffe60dc71e2c842ec11550e74a003d6f707c74c3b19b04c1b0700bc0fd9efd9508054909216811790915560dc600090815260208290527f81c2bf9f7c6e8ac9bd8bcd9d323e94b867d2f5054aff8759d884773c680ec1ec90606e5b60ff1660ff168152602001908152602001600020600061262b60c890565b60ff1681526020810191909152604001600020805460ff1916911515919091179055565b7f9db7038e59677010ca8f72fa448bad1b4f3c53346b666689163ccac31db467728054606460ff1991821681179092557f1a3062e9a24818c8281fcfb58ec4f3083a2f9a1314ac63f80d8d646661fdc50980548216600190811790915560008381527fc884cae9155e1829c27543e26ecbb72f79fe3a85ba4df2c4a97ad5806356754d6020527f2916767ac794614810c43d6c0837244e8b2c8d3f3c02376a214f465d6841db5680549093168217909255918291905b60ff1660ff1681526020019081526020016000206000612723606e90565b60ff1660ff168152602001908152602001600020600061262b60d290565b7fa57aae0b1e878b4cf2d1f237d2c6d245fa2af12f527cffc45e0a81d7b3c46abe8054600a60ff19918216179091557f10d8f68d28031156bb5a2007a6e7fc1ff769776115bd307e1d3f2901ec220eef8054821660019081179091557f71e0ce7e96b0b9ecf53c20706f5891c8e9bb320060393406400136d7ab1db61e80548316821790557f3aa5c1a82b8afaca3213d4302f465dcc339ab680e61c71830f7d9c441c63328380548316821790557f59d2febd485ffaba948645e520694e9996f0c229c4a10430d07956b599b172538054909216811790915560d3600090815260208290527f7415b658af57d740454b01d91722f71a360db8fdd5ec2a068a92c37e2bc3b1d690606461260d565b7f41d63e1348ead7043feb8677b52ff813a7a3d573fdf99c917846a69e8e7b7e60805460ff199081166032179091557f378c5573ee3453f5c9f5c7aa83b807835ecb097b5151d641746b59340336b67d8054821660019081179091557f7f4fc20c9070f9c8378783c3022311e08af436d0fea4b913fe0bbde88023d12680548316821790557ff6e14778b29b20f68b5cc5186c105c44b748bec78fd85e0b2ec52bc8586d6a6b80548316821790557fb9ec96904d3ea9e7b01f30f8b9a841d70b77145e37a183ebdbba2b0733adc0ec8054603c93168317905560009182527f77835ececcc7e965708390fdc28b7c7141b063a8a849f3954f1d294d07730184602052907f5e9b6496c2ea16de03007cb0b49643b7231addd52c0cee66d8556b1dd66622a19060dc61262b565b7fc5f2c791ab4e0b1a0b6c600884b07e98575b00ebd7c3166c4272a53bebf714038054606460ff1991821681179092557f66482ac56acdda5113badf732cc46c284136d9d6378a671ac129cd298ff5f96780548216600190811790915560009283527f47d871bf8fdbdfc3d809d1454103f6ff238aad0f5cefde0353363b9e415ef6a76020527ff2de5750d5c9f412b7907640f68a5258fe3f903dfd0cd25c2ea235b23cc926958054909216811790915590819060c8612705565b60008051602061491783398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b612a9f6124e3565b612aa881612bb7565b50565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251612b1a91906148cb565b600060405180830381855afa9150503d8060008114612b55576040519150601f19603f3d011682016040523d82523d6000602084013e612b5a565b606091505b50915091508115612bac576040815110612b8c5780806020019051810190612b8291906148e7565b9094509250612bac565b6020815110612bac5780806020019051810190612ba991906143cd565b93505b505094509492505050565b612bbf6124e3565b612aa881612a36565b600060208284031215612bda57600080fd5b5035919050565b6001600160601b0381168114612aa857600080fd5b8035612c0181612be1565b919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715612c3e57612c3e612c06565b60405290565b60405161010081016001600160401b0381118282101715612c3e57612c3e612c06565b60405160c081016001600160401b0381118282101715612c3e57612c3e612c06565b60405161022081016001600160401b0381118282101715612c3e57612c3e612c06565b60405161012081016001600160401b0381118282101715612c3e57612c3e612c06565b60405160e081016001600160401b0381118282101715612c3e57612c3e612c06565b6001600160a01b0381168114612aa857600080fd5b8035612c0181612cf1565b600060408284031215612d2357600080fd5b612d2b612c1c565b9050813581526020820135602082015292915050565b8015158114612aa857600080fd5b8035612c0181612d41565b60006101408284031215612d6d57600080fd5b612d75612c44565b9050612d8082612d06565b8152612d8e60208301612d06565b6020820152612d9f60408301612bf6565b6040820152612db060608301612bf6565b6060820152612dc28360808401612d11565b6080820152612dd48360c08401612d11565b60a0820152612de66101008301612d4f565b60c0820152612df86101208301612d06565b60e082015292915050565b60ff81168114612aa857600080fd5b60008060006101808486031215612e2857600080fd5b8335612e3381612be1565b9250612e428560208601612d5a565b9150610160840135612e5381612e03565b809150509250925092565b600060208284031215612e7057600080fd5b813561169681612e03565b60008060408385031215612e8e57600080fd5b8235612e9981612be1565b91506020830135612ea981612e03565b809150509250929050565b803562ffffff81168114612c0157600080fd5b61ffff81168114612aa857600080fd5b8035612c0181612ec7565b600082601f830112612ef357600080fd5b81356001600160401b0380821115612f0d57612f0d612c06565b604051601f8301601f19908116603f01168101908282118183101715612f3557612f35612c06565b81604052838152866020858801011115612f4e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b64ffffffffff81168114612aa857600080fd5b8035612c0181612f6e565b600060808284031215612f9e57600080fd5b604051608081016001600160401b038282108183111715612fc157612fc1612c06565b8160405282935084359150612fd582612ec7565b908252602084013590612fe782612be1565b816020840152604085013591508082111561300157600080fd5b5061300e85828601612ee2565b604083015250606083013561302281612f6e565b6060919091015292915050565b6000806000806080858703121561304557600080fd5b843561305081612be1565b935061305e60208601612eb4565b925060408501356001600160401b0381111561307957600080fd5b61308587828801612f8c565b925050606085013561309681612e03565b939692955090935050565b6001600160c01b031981168114612aa857600080fd5b8035612c01816130a1565b63ffffffff81168114612aa857600080fd5b8035612c01816130c2565b600060a082840312156130f157600080fd5b60405160a081016001600160401b03828210818311171561311457613114612c06565b8160405282935084359150613128826130a1565b90825260208401359061313a82612d41565b816020840152604085013591508082111561315457600080fd5b5061316185828601612ee2565b604083015250606083013561317581612be1565b60608201526080830135613188816130c2565b6080919091015292915050565b6000806000606084860312156131aa57600080fd5b83356131b581612be1565b925060208401356001600160401b038111156131d057600080fd5b6131dc868287016130df565b9250506040840135612e5381612e03565b600060c082840312156131ff57600080fd5b613207612c67565b9050813561321481612be1565b8152602082013561322481612be1565b6020820152604082013561323781612e03565b6040820152606082013561324a81612e03565b606082015260808201356001600160401b0381111561326857600080fd5b61327484828501612ee2565b60808301525060a082013561328881612f6e565b60a082015292915050565b600080600080608085870312156132a957600080fd5b84356132b481612be1565b935060208501356132c481612ec7565b925060408501356001600160401b038111156132df57600080fd5b613085878288016131ed565b600061022082840312156132fe57600080fd5b613306612c89565b905061331182612bf6565b815261331f60208301612bf6565b6020820152613330604083016130b7565b6040820152613341606083016130b7565b606082015261335260808301612bf6565b608082015261336360a08301612bf6565b60a082015261337460c08301612bf6565b60c082015261338560e08301612f81565b60e0820152610100808301356001600160401b03808211156133a657600080fd5b6133b286838701612ee2565b838501526101209250828501359150808211156133ce57600080fd5b506133db85828601612ee2565b8284015250506101406133ef818401612ed7565b90820152610160613401838201612ed7565b90820152610180613413838201612bf6565b908201526101a0613425838201612bf6565b908201526101c0613437838201612f81565b908201526101e0613449838201612f81565b9082015261020061345b838201612f81565b9082015292915050565b6000806040838503121561347857600080fd5b823561348381612be1565b915060208301356001600160401b0381111561349e57600080fd5b6134aa858286016132eb565b9150509250929050565b6000604082840312156134c657600080fd5b6134ce612c1c565b905081356134db81612be1565b815260208201356001600160401b038111156134f657600080fd5b61350284828501612ee2565b60208301525092915050565b6000806040838503121561352157600080fd5b823561352c816130a1565b915060208301356001600160401b0381111561354757600080fd5b6134aa858286016134b4565b6000610120828403121561356657600080fd5b61356e612cac565b905081356001600160401b038082111561358757600080fd5b61359385838601612ee2565b83526020840135602084015260408401356040840152606084013560608401526135bf608085016130d4565b60808401526135d060a085016130d4565b60a08401526135e160c08501612d4f565b60c08401526135f260e08501612d4f565b60e08401526101009150818401358181111561360d57600080fd5b61361986828701612ee2565b8385015250505092915050565b6000806040838503121561363957600080fd5b8235613644816130a1565b915060208301356001600160401b0381111561365f57600080fd5b6134aa85828601613553565b60008060006060848603121561368057600080fd5b833561368b81612be1565b925061369960208501612eb4565b91506040840135612e5381612e03565b60005b838110156136c45781810151838201526020016136ac565b50506000910152565b600081518084526136e58160208601602086016136a9565b601f01601f19169290920160200192915050565b60208152600061169660208301846136cd565b6000610140828403121561371f57600080fd5b613727612cac565b905061373282612bf6565b81526137418360208401612d11565b602082015260608201356001600160401b0381111561375f57600080fd5b61376b84828501612ee2565b60408301525061377d60808301612bf6565b606082015261378e60a08301612bf6565b608082015261379f60c08301612bf6565b60a08201526137b060e08301612f81565b60c08201526101006137c3818401612f81565b60e083015261345b6101208401612f81565b6000806000606084860312156137ea57600080fd5b83356137f581612be1565b925060208401356001600160401b0381111561381057600080fd5b6131dc8682870161370c565b60008060006060848603121561383157600080fd5b833561383c816130a1565b925060208401356001600160401b0381111561385757600080fd5b6131dc86828701613553565b600060e0828403121561387557600080fd5b61387d612ccf565b905061388882612bf6565b815260208201356001600160401b03808211156138a457600080fd5b6138b085838601612ee2565b6020840152604084013560408401526138cb606085016130d4565b60608401526138dc608085016130d4565b60808401526138ed60a08501612f81565b60a084015260c084013591508082111561390657600080fd5b5061391384828501612ee2565b60c08301525092915050565b60008060006060848603121561393457600080fd5b833561393f816130a1565b925060208401356001600160401b0381111561395a57600080fd5b6131dc86828701613863565b60006020828403121561397857600080fd5b813561169681612cf1565b6000806040838503121561399657600080fd5b82356139a181612be1565b915060208301356001600160401b038111156139bc57600080fd5b6134aa858286016130df565b600080604083850312156139db57600080fd5b8235612e99816130a1565b6000806000606084860312156139fb57600080fd5b8335613a0681612be1565b9250613a1460208501612eb4565b915060408401356001600160401b03811115613a2f57600080fd5b613a3b86828701612f8c565b9150509250925092565b60ff815116825260ff602082015116602083015260018060a01b036040820151166040830152606081015163ffffffff808216606085015280608084015116608085015250505050565b60208152613aa1602082018351613a45565b6000602083015160c080840152613abb60e08401826136cd565b949350505050565b60008060408385031215613ad657600080fd5b8235613ae181612be1565b915060208301356001600160401b03811115613afc57600080fd5b6134aa8582860161370c565b600080600060608486031215613b1d57600080fd5b8335613b2881612be1565b925060208401356001600160401b03811115613b4357600080fd5b6131dc868287016132eb565b60006101008284031215613b6257600080fd5b613b6a612c67565b90508135613b7781612be1565b81526020820135613b8781612cf1565b6020820152613b998360408401612d11565b6040820152613bab8360808401612d11565b606082015260c0820135613bbe81612cf1565b608082015260e0919091013560a0820152919050565b6000806101208385031215613be857600080fd5b8235613bf381612be1565b9150613c028460208501613b4f565b90509250929050565b600080600060608486031215613c2057600080fd5b8335613c2b81612be1565b92506020840135613c3b81612ec7565b915060408401356001600160401b03811115613c5657600080fd5b613a3b868287016131ed565b600060e08284031215613c7457600080fd5b613c7c612ccf565b905081356001600160401b0380821115613c9557600080fd5b613ca185838601612ee2565b8352613caf60208501612d06565b6020840152613cc060408501612d06565b6040840152613cd160608501612d06565b6060840152613ce260808501612bf6565b60808401526138ed60a08501612bf6565b600080600060608486031215613d0857600080fd5b8335613d1381612be1565b925060208401356001600160401b03811115613d2e57600080fd5b6131dc86828701613c62565b60a08101610aef8284613a45565b600080600060608486031215613d5d57600080fd5b8335613d68816130a1565b925060208401356001600160401b03811115613d8357600080fd5b6131dc868287016134b4565b600080600060608486031215613da457600080fd5b8335613daf81612e03565b9250602084013561369981612e03565b600080600060608486031215613dd457600080fd5b8335613ddf81612be1565b9250602084013561369981612ec7565b60008060408385031215613e0257600080fd5b8235613e0d816130a1565b915060208301356001600160401b03811115613e2857600080fd5b6134aa85828601613863565b60008060408385031215613e4757600080fd5b8235613e5281612be1565b915060208301356001600160401b03811115613e6d57600080fd5b6134aa85828601613c62565b60ff1981168114612aa857600080fd5b60008060408385031215613e9c57600080fd5b8235613ea781612e03565b91506020830135612ea981613e79565b60008060006101408486031215613ecd57600080fd5b8335613ed881612be1565b9250613ee78560208601613b4f565b9150610120840135612e5381612e03565b6000806101608385031215613f0c57600080fd5b8235613f1781612be1565b9150613c028460208501612d5a565b81516001600160a01b039081168252602080840151909116908201526040808301516001600160601b031690820152606080830151610140830191613f75908401826001600160601b03169052565b506080830151613f92608084018280518252602090810151910152565b5060a0830151805160c0840152602081015160e08401525060c08301518015156101008401525060e08301516001600160a01b0381166101208401525092915050565b6020815261ffff82511660208201526001600160601b036020830151166040820152600060408301516080606084015261401260a08401826136cd565b905064ffffffffff60608501511660808401528091505092915050565b602081526001600160401b0360c01b82511660208201526020820151151560408201526000604083015160a0606084015261406d60c08401826136cd565b90506001600160601b03606085015116608084015263ffffffff60808501511660a08401528091505092915050565b6020815260006001600160601b038084511660208401528060208501511660408401525060ff604084015116606083015260ff6060840151166080830152608083015160c060a08401526140f360e08401826136cd565b905064ffffffffff60a08501511660c08401528091505092915050565b6020815261412a6020820183516001600160601b03169052565b6000602083015161414660408401826001600160601b03169052565b5060408301516001600160c01b0319811660608401525060608301516001600160c01b0319811660808401525060808301516001600160601b03811660a08401525060a08301516001600160601b03811660c08401525060c08301516001600160601b03811660e08401525060e08301516101006141cc8185018364ffffffffff169052565b8085015191505061022061012081818601526141ec6102408601846136cd565b9250808601519050610140601f19868503018187015261420c84836136cd565b9350808701519150506101606142278187018361ffff169052565b860151905061018061423e8682018361ffff169052565b86015190506101a061425a868201836001600160601b03169052565b86015190506101c0614276868201836001600160601b03169052565b86015190506101e06142908682018364ffffffffff169052565b86015190506102006142aa8682018364ffffffffff169052565b9095015164ffffffffff1693019290925250919050565b6001600160c01b031991909116815260200190565b6000602082840312156142e857600080fd5b5051919050565b602081526001600160601b03825116602082015260006020830151604080840152613abb60608401826136cd565b602081526000825161012080602085015261433c6101408501836136cd565b9150602085015160408501526040850151606085015260608501516080850152608085015161437360a086018263ffffffff169052565b5060a085015163ffffffff811660c08601525060c085015180151560e08601525060e08501516101006143a98187018315159052565b860151858403601f19018387015290506143c383826136cd565b9695505050505050565b6000602082840312156143df57600080fd5b815161169681612d41565b600181811c908216806143fe57607f821691505b60208210810361441e57634e487b7160e01b600052602260045260246000fd5b50919050565b6020815261443e6020820183516001600160601b03169052565b6000602083015161445c604084018280518252602090810151910152565b5060408301516101408060808501526144796101608501836136cd565b9150606085015161449560a08601826001600160601b03169052565b5060808501516001600160601b03811660c08601525060a08501516001600160601b03811660e08601525060c08501516101006144da8187018364ffffffffff169052565b60e087015164ffffffffff811661012088015291506142aa565b602081526001600160601b0382511660208201526000602083015160e060408401526145246101008401826136cd565b90506040840151606084015263ffffffff6060850151166080840152608084015161455760a085018263ffffffff169052565b5060a084015164ffffffffff811660c08501525b5060c0840151838203601f190160e085015261458782826136cd565b95945050505050565b81516001600160601b031681526020808301516001600160a01b039081168284015260408085015180519185019190915291820151606084015261010083019190606085015180516080860152602081015160a0860152915060808501511660c08401525060a09092015160e09091015290565b602081526000825160e060208401526146216101008401826136cd565b9050602084015160018060a01b0380821660408601528060408701511660608601528060608701511660808601525050608084015161466b60a08501826001600160601b03169052565b5060a08401516001600160601b03811660c085015261456b565b60006020828403121561469757600080fd5b815161169681612cf1565b600080858511156146b257600080fd5b838611156146bf57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156146f45780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b601f82111561081957600081815260208120601f850160051c810160208610156147635750805b601f850160051c820191505b818110156115145782815560010161476f565b81516001600160401b0381111561479b5761479b612c06565b6147af816147a984546143ea565b8461473c565b602080601f8311600181146147e457600084156147cc5750858301515b600019600386901b1c1916600185901b178555611514565b600085815260208120601f198616915b82811015614813578886015182559484019460019091019084016147f4565b50858210156148315787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561485357600080fd5b815161169681612e03565b60006020828403121561487057600080fd5b815161169681613e79565b60ff978816815260ff1996909616602087015293861660408601529190941660608401526001600160a01b03938416608084015290921660a082015263ffffffff9190911660c082015260e00190565b600082516148dd8184602087016136a9565b9190910192915050565b600080604083850312156148fa57600080fd5b825161490581612d41565b6020840151909250612ea9816130c256fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a26469706673582212205d2aab53e1d8af854c490903dc56c4bfb64487fddb1d4306aa667d862645a82164736f6c63430008140033",
2464
+ "linkReferences": {
2465
+ "contracts/types/ClaimId.sol": {
2466
+ "ClaimIdLib": [
2467
+ {
2468
+ "length": 20,
2469
+ "start": 8396
2470
+ }
2471
+ ]
2472
+ },
2473
+ "contracts/types/DistributorType.sol": {
2474
+ "DistributorTypeLib": [
2475
+ {
2476
+ "length": 20,
2477
+ "start": 2538
2478
+ },
2479
+ {
2480
+ "length": 20,
2481
+ "start": 3143
2482
+ },
2483
+ {
2484
+ "length": 20,
2485
+ "start": 4358
2486
+ }
2487
+ ]
2488
+ },
2489
+ "contracts/types/Key32.sol": {
2490
+ "Key32Lib": [
2491
+ {
2492
+ "length": 20,
2493
+ "start": 5719
2494
+ },
2495
+ {
2496
+ "length": 20,
2497
+ "start": 6861
2498
+ },
2499
+ {
2500
+ "length": 20,
2501
+ "start": 6977
2502
+ },
2503
+ {
2504
+ "length": 20,
2505
+ "start": 7159
2506
+ },
2507
+ {
2508
+ "length": 20,
2509
+ "start": 7275
2510
+ },
2511
+ {
2512
+ "length": 20,
2513
+ "start": 8041
2514
+ },
2515
+ {
2516
+ "length": 20,
2517
+ "start": 8157
2518
+ },
2519
+ {
2520
+ "length": 20,
2521
+ "start": 8455
2522
+ },
2523
+ {
2524
+ "length": 20,
2525
+ "start": 9204
2526
+ },
2527
+ {
2528
+ "length": 20,
2529
+ "start": 9320
2530
+ }
2531
+ ]
2532
+ },
2533
+ "contracts/types/NftId.sol": {
2534
+ "NftIdLib": [
2535
+ {
2536
+ "length": 20,
2537
+ "start": 6220
2538
+ }
2539
+ ]
2540
+ },
2541
+ "contracts/types/ObjectType.sol": {
2542
+ "ObjectTypeLib": [
2543
+ {
2544
+ "length": 20,
2545
+ "start": 8576
2546
+ }
2547
+ ]
2548
+ },
2549
+ "contracts/types/PayoutId.sol": {
2550
+ "PayoutIdLib": [
2551
+ {
2552
+ "length": 20,
2553
+ "start": 8319
2554
+ }
2555
+ ]
2556
+ },
2557
+ "contracts/types/Referral.sol": {
2558
+ "ReferralLib": [
2559
+ {
2560
+ "length": 20,
2561
+ "start": 3303
2562
+ },
2563
+ {
2564
+ "length": 20,
2565
+ "start": 4877
2566
+ },
2567
+ {
2568
+ "length": 20,
2569
+ "start": 5464
2570
+ }
2571
+ ]
2572
+ },
2573
+ "contracts/types/RiskId.sol": {
2574
+ "RiskIdLib": [
2575
+ {
2576
+ "length": 20,
2577
+ "start": 2378
2578
+ },
2579
+ {
2580
+ "length": 20,
2581
+ "start": 3639
2582
+ },
2583
+ {
2584
+ "length": 20,
2585
+ "start": 4476
2586
+ }
2587
+ ]
2588
+ },
2589
+ "contracts/types/StateId.sol": {
2590
+ "StateIdLib": [
2591
+ {
2592
+ "length": 20,
2593
+ "start": 2736
2594
+ },
2595
+ {
2596
+ "length": 20,
2597
+ "start": 4651
2598
+ },
2599
+ {
2600
+ "length": 20,
2601
+ "start": 4992
2602
+ },
2603
+ {
2604
+ "length": 20,
2605
+ "start": 6278
2606
+ },
2607
+ {
2608
+ "length": 20,
2609
+ "start": 6498
2610
+ },
2611
+ {
2612
+ "length": 20,
2613
+ "start": 7479
2614
+ },
2615
+ {
2616
+ "length": 20,
2617
+ "start": 7699
2618
+ },
2619
+ {
2620
+ "length": 20,
2621
+ "start": 8793
2622
+ }
2623
+ ]
2624
+ }
2625
+ },
2626
+ "deployedLinkReferences": {
2627
+ "contracts/types/ClaimId.sol": {
2628
+ "ClaimIdLib": [
2629
+ {
2630
+ "length": 20,
2631
+ "start": 8364
2632
+ }
2633
+ ]
2634
+ },
2635
+ "contracts/types/DistributorType.sol": {
2636
+ "DistributorTypeLib": [
2637
+ {
2638
+ "length": 20,
2639
+ "start": 2506
2640
+ },
2641
+ {
2642
+ "length": 20,
2643
+ "start": 3111
2644
+ },
2645
+ {
2646
+ "length": 20,
2647
+ "start": 4326
2648
+ }
2649
+ ]
2650
+ },
2651
+ "contracts/types/Key32.sol": {
2652
+ "Key32Lib": [
2653
+ {
2654
+ "length": 20,
2655
+ "start": 5687
2656
+ },
2657
+ {
2658
+ "length": 20,
2659
+ "start": 6829
2660
+ },
2661
+ {
2662
+ "length": 20,
2663
+ "start": 6945
2664
+ },
2665
+ {
2666
+ "length": 20,
2667
+ "start": 7127
2668
+ },
2669
+ {
2670
+ "length": 20,
2671
+ "start": 7243
2672
+ },
2673
+ {
2674
+ "length": 20,
2675
+ "start": 8009
2676
+ },
2677
+ {
2678
+ "length": 20,
2679
+ "start": 8125
2680
+ },
2681
+ {
2682
+ "length": 20,
2683
+ "start": 8423
2684
+ },
2685
+ {
2686
+ "length": 20,
2687
+ "start": 9172
2688
+ },
2689
+ {
2690
+ "length": 20,
2691
+ "start": 9288
2692
+ }
2693
+ ]
2694
+ },
2695
+ "contracts/types/NftId.sol": {
2696
+ "NftIdLib": [
2697
+ {
2698
+ "length": 20,
2699
+ "start": 6188
2700
+ }
2701
+ ]
2702
+ },
2703
+ "contracts/types/ObjectType.sol": {
2704
+ "ObjectTypeLib": [
2705
+ {
2706
+ "length": 20,
2707
+ "start": 8544
2708
+ }
2709
+ ]
2710
+ },
2711
+ "contracts/types/PayoutId.sol": {
2712
+ "PayoutIdLib": [
2713
+ {
2714
+ "length": 20,
2715
+ "start": 8287
2716
+ }
2717
+ ]
2718
+ },
2719
+ "contracts/types/Referral.sol": {
2720
+ "ReferralLib": [
2721
+ {
2722
+ "length": 20,
2723
+ "start": 3271
2724
+ },
2725
+ {
2726
+ "length": 20,
2727
+ "start": 4845
2728
+ },
2729
+ {
2730
+ "length": 20,
2731
+ "start": 5432
2732
+ }
2733
+ ]
2734
+ },
2735
+ "contracts/types/RiskId.sol": {
2736
+ "RiskIdLib": [
2737
+ {
2738
+ "length": 20,
2739
+ "start": 2346
2740
+ },
2741
+ {
2742
+ "length": 20,
2743
+ "start": 3607
2744
+ },
2745
+ {
2746
+ "length": 20,
2747
+ "start": 4444
2748
+ }
2749
+ ]
2750
+ },
2751
+ "contracts/types/StateId.sol": {
2752
+ "StateIdLib": [
2753
+ {
2754
+ "length": 20,
2755
+ "start": 2704
2756
+ },
2757
+ {
2758
+ "length": 20,
2759
+ "start": 4619
2760
+ },
2761
+ {
2762
+ "length": 20,
2763
+ "start": 4960
2764
+ },
2765
+ {
2766
+ "length": 20,
2767
+ "start": 6246
2768
+ },
2769
+ {
2770
+ "length": 20,
2771
+ "start": 6466
2772
+ },
2773
+ {
2774
+ "length": 20,
2775
+ "start": 7447
2776
+ },
2777
+ {
2778
+ "length": 20,
2779
+ "start": 7667
2780
+ },
2781
+ {
2782
+ "length": 20,
2783
+ "start": 8761
2784
+ }
2785
+ ]
2786
+ }
2787
+ }
2788
+ }