@etherisc/gif-next 0.0.2-c34d8ab-035 → 0.0.2-c47e74c-707

Sign up to get free protection for your applications and to get access to all the features.
Files changed (383) hide show
  1. package/README.md +75 -14
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
  3. package/artifacts/contracts/components/Component.sol/Component.json +842 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +954 -219
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → components/IComponent.sol/IComponent.json} +303 -164
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +848 -31
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +864 -49
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +682 -9
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +849 -247
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +637 -224
  18. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  19. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  20. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  21. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  22. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  23. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → Cloneable.sol/Cloneable.json} +79 -3
  24. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  25. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +2444 -184
  26. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +321 -168
  28. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  29. package/artifacts/contracts/instance/Instance.sol/Instance.json +1013 -1253
  30. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  31. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +593 -193
  32. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  33. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +342 -222
  34. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  35. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +622 -237
  36. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +386 -77
  38. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +276 -150
  42. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  44. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +40 -10
  46. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  47. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
  48. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +71 -45
  50. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  51. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  52. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  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 +4 -0
  59. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +1060 -0
  60. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +681 -0
  62. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1266 -0
  64. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +725 -0
  66. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
  67. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +1040 -0
  68. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +685 -0
  70. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1774 -0
  72. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  73. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +793 -0
  74. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +627 -0
  76. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  77. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +686 -0
  78. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +602 -0
  80. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +804 -160
  82. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  83. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +937 -0
  84. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +437 -154
  86. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +90 -391
  88. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  89. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1511 -0
  90. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +741 -0
  92. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  93. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +1237 -0
  94. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +661 -0
  96. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  97. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +840 -0
  98. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +653 -0
  100. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  101. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  102. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +373 -61
  104. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +223 -229
  106. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  107. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  108. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  109. package/artifacts/contracts/registry/Registry.sol/Registry.json +333 -188
  110. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  111. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  112. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +227 -330
  114. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +304 -138
  116. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  117. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +498 -0
  120. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  121. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  122. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  123. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  124. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
  125. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  126. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
  127. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  128. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -34
  129. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  130. package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
  131. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  132. package/artifacts/contracts/shared/IService.sol/IService.json +86 -172
  133. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  134. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  135. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  136. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -27
  137. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  138. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
  139. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  140. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -61
  141. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  142. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
  143. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  144. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
  145. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  146. package/artifacts/contracts/shared/Service.sol/Service.json +191 -163
  147. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  148. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  149. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  150. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  151. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  152. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  153. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  154. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  155. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  156. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +129 -51
  157. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  158. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
  159. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  160. package/artifacts/contracts/test/TestService.sol/TestService.json +210 -214
  161. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  162. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  163. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  164. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  165. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
  166. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  167. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  168. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
  169. package/artifacts/contracts/types/Amount.sol/AmountLib.json +185 -0
  170. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  172. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  173. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  174. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +179 -0
  175. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
  177. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  178. package/artifacts/contracts/types/Fee.sol/FeeLib.json +40 -9
  179. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  180. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  181. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  182. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
  183. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  184. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  185. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  186. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  187. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  188. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  189. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +209 -0
  190. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  191. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +23 -4
  192. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  194. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  196. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
  197. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
  198. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  199. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  200. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  201. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +38 -7
  202. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  203. package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
  204. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  205. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
  206. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  207. package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
  208. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  209. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  210. package/contracts/components/Component.sol +253 -0
  211. package/contracts/components/Distribution.sol +204 -86
  212. package/contracts/components/IComponent.sol +76 -0
  213. package/contracts/components/IDistributionComponent.sol +44 -16
  214. package/contracts/components/IPoolComponent.sol +88 -37
  215. package/contracts/components/IProductComponent.sol +10 -5
  216. package/contracts/components/Pool.sol +224 -181
  217. package/contracts/components/Product.sol +249 -175
  218. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
  219. package/contracts/instance/BundleManager.sol +126 -0
  220. package/contracts/instance/Cloneable.sol +51 -0
  221. package/contracts/instance/IInstance.sol +88 -14
  222. package/contracts/instance/IInstanceService.sol +46 -8
  223. package/contracts/instance/Instance.sol +154 -286
  224. package/contracts/instance/InstanceAccessManager.sol +414 -175
  225. package/contracts/instance/InstanceReader.sol +64 -37
  226. package/contracts/instance/InstanceService.sol +421 -81
  227. package/contracts/instance/InstanceServiceManager.sol +11 -13
  228. package/contracts/instance/ObjectManager.sol +82 -0
  229. package/contracts/instance/base/ComponentService.sol +121 -0
  230. package/contracts/instance/base/KeyValueStore.sol +13 -5
  231. package/contracts/instance/base/Lifecycle.sol +23 -6
  232. package/contracts/instance/module/IAccess.sol +36 -20
  233. package/contracts/instance/module/IBundle.sol +8 -4
  234. package/contracts/instance/module/IComponents.sol +41 -0
  235. package/contracts/instance/module/IDistribution.sol +2 -0
  236. package/contracts/instance/module/IPolicy.sol +41 -9
  237. package/contracts/instance/module/ISetup.sol +9 -19
  238. package/contracts/instance/service/ApplicationService.sol +355 -0
  239. package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
  240. package/contracts/instance/service/BundleService.sol +436 -0
  241. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  242. package/contracts/instance/service/ClaimService.sol +239 -0
  243. package/contracts/instance/service/ClaimServiceManager.sol +35 -0
  244. package/contracts/instance/service/DistributionService.sol +431 -0
  245. package/contracts/instance/service/DistributionServiceManager.sol +51 -0
  246. package/contracts/instance/service/IApplicationService.sol +78 -0
  247. package/contracts/instance/service/IBundleService.sol +96 -0
  248. package/contracts/instance/service/IClaimService.sol +92 -0
  249. package/contracts/instance/service/IDistributionService.sol +87 -0
  250. package/contracts/instance/service/IPolicyService.sol +137 -0
  251. package/contracts/instance/service/IPoolService.sol +79 -17
  252. package/contracts/instance/service/IProductService.sol +6 -73
  253. package/contracts/instance/service/PolicyService.sol +541 -0
  254. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  255. package/contracts/instance/service/PoolService.sol +303 -0
  256. package/contracts/instance/service/PoolServiceManager.sol +51 -0
  257. package/contracts/instance/service/ProductService.sol +210 -0
  258. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  259. package/contracts/registry/ChainNft.sol +9 -1
  260. package/contracts/registry/IRegistry.sol +51 -8
  261. package/contracts/registry/IRegistryService.sol +47 -14
  262. package/contracts/registry/ITransferInterceptor.sol +1 -0
  263. package/contracts/registry/Registry.sol +270 -226
  264. package/contracts/registry/RegistryAccessManager.sol +216 -0
  265. package/contracts/registry/RegistryService.sol +113 -275
  266. package/contracts/registry/RegistryServiceManager.sol +24 -26
  267. package/contracts/registry/ReleaseManager.sol +324 -0
  268. package/contracts/registry/TokenRegistry.sol +116 -0
  269. package/contracts/shared/ERC165.sol +14 -8
  270. package/contracts/shared/INftOwnable.sol +11 -10
  271. package/contracts/shared/IPolicyHolder.sol +26 -0
  272. package/contracts/shared/IRegisterable.sol +4 -6
  273. package/contracts/shared/IRegistryLinked.sol +12 -0
  274. package/contracts/shared/IService.sol +5 -4
  275. package/contracts/shared/IVersionable.sol +4 -47
  276. package/contracts/shared/NftOwnable.sol +67 -83
  277. package/contracts/shared/PolicyHolder.sol +81 -0
  278. package/contracts/shared/ProxyManager.sol +100 -25
  279. package/contracts/shared/Registerable.sol +16 -31
  280. package/contracts/shared/RegistryLinked.sol +48 -0
  281. package/contracts/shared/Service.sol +42 -24
  282. package/contracts/shared/TokenHandler.sol +11 -5
  283. package/contracts/shared/Versionable.sol +4 -92
  284. package/contracts/test/TestRegisterable.sol +1 -1
  285. package/contracts/test/TestService.sol +4 -3
  286. package/contracts/types/Amount.sol +65 -0
  287. package/contracts/types/Blocknumber.sol +1 -0
  288. package/contracts/types/ClaimId.sol +75 -0
  289. package/contracts/types/DistributorType.sol +2 -2
  290. package/contracts/types/Fee.sol +13 -5
  291. package/contracts/types/NftId.sol +8 -0
  292. package/contracts/types/NftIdSet.sol +26 -24
  293. package/contracts/types/ObjectType.sol +11 -6
  294. package/contracts/types/PayoutId.sol +82 -0
  295. package/contracts/types/Referral.sol +4 -0
  296. package/contracts/types/RoleId.sol +26 -11
  297. package/contracts/types/Seconds.sol +54 -0
  298. package/contracts/types/StateId.sol +11 -2
  299. package/contracts/types/Timestamp.sol +18 -13
  300. package/contracts/types/UFixed.sol +1 -0
  301. package/contracts/types/Version.sol +5 -1
  302. package/package.json +3 -3
  303. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  304. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -314
  305. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  306. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
  307. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  308. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  309. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  310. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  311. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  312. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  313. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  314. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  315. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  316. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  317. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  318. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  319. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  320. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  321. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  322. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  323. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  324. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  325. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  326. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  327. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  328. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  329. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  330. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  331. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  332. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  333. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  334. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  335. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  336. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  337. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  338. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  339. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  340. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  341. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  342. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  343. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  344. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  345. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  346. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  347. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  348. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  349. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  350. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  351. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  352. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  353. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  354. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  355. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  356. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  357. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  358. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  359. package/contracts/components/BaseComponent.sol +0 -86
  360. package/contracts/components/IBaseComponent.sol +0 -24
  361. package/contracts/experiment/cloning/Cloner.sol +0 -47
  362. package/contracts/experiment/errors/Require.sol +0 -38
  363. package/contracts/experiment/errors/Revert.sol +0 -44
  364. package/contracts/experiment/inheritance/A.sol +0 -53
  365. package/contracts/experiment/inheritance/B.sol +0 -28
  366. package/contracts/experiment/inheritance/C.sol +0 -34
  367. package/contracts/experiment/inheritance/IA.sol +0 -13
  368. package/contracts/experiment/inheritance/IB.sol +0 -10
  369. package/contracts/experiment/inheritance/IC.sol +0 -12
  370. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  371. package/contracts/experiment/statemachine/ISM.sol +0 -25
  372. package/contracts/experiment/statemachine/SM.sol +0 -57
  373. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  374. package/contracts/experiment/types/TypeA.sol +0 -47
  375. package/contracts/experiment/types/TypeB.sol +0 -29
  376. package/contracts/instance/AccessManagedSimple.sol +0 -122
  377. package/contracts/instance/AccessManagerSimple.sol +0 -692
  378. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  379. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  380. package/contracts/instance/base/IInstanceBase.sol +0 -23
  381. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  382. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  383. package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -3,17 +3,6 @@
3
3
  "contractName": "InstanceAccessManager",
4
4
  "sourceName": "contracts/instance/InstanceAccessManager.sol",
5
5
  "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "address",
10
- "name": "accessManager",
11
- "type": "address"
12
- }
13
- ],
14
- "stateMutability": "nonpayable",
15
- "type": "constructor"
16
- },
17
6
  {
18
7
  "inputs": [
19
8
  {
@@ -54,13 +43,18 @@
54
43
  },
55
44
  {
56
45
  "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "caller",
49
+ "type": "address"
50
+ },
57
51
  {
58
52
  "internalType": "RoleId",
59
53
  "name": "roleId",
60
54
  "type": "uint64"
61
55
  }
62
56
  ],
63
- "name": "ErrorGrantNonexstentRole",
57
+ "name": "ErrorIAccessCallerIsNotRoleAdmin",
64
58
  "type": "error"
65
59
  },
66
60
  {
@@ -71,7 +65,7 @@
71
65
  "type": "uint64"
72
66
  }
73
67
  ],
74
- "name": "ErrorRenounceNonexstentRole",
68
+ "name": "ErrorIAccessRoleIdDoesNotExist",
75
69
  "type": "error"
76
70
  },
77
71
  {
@@ -82,7 +76,7 @@
82
76
  "type": "uint64"
83
77
  }
84
78
  ],
85
- "name": "ErrorRevokeNonexstentRole",
79
+ "name": "ErrorIAccessRoleIdExists",
86
80
  "type": "error"
87
81
  },
88
82
  {
@@ -91,14 +85,9 @@
91
85
  "internalType": "RoleId",
92
86
  "name": "roleId",
93
87
  "type": "uint64"
94
- },
95
- {
96
- "internalType": "ShortString",
97
- "name": "name",
98
- "type": "bytes32"
99
88
  }
100
89
  ],
101
- "name": "ErrorRoleIdAlreadyExists",
90
+ "name": "ErrorIAccessRoleIdTooBig",
102
91
  "type": "error"
103
92
  },
104
93
  {
@@ -109,7 +98,7 @@
109
98
  "type": "uint64"
110
99
  }
111
100
  ],
112
- "name": "ErrorRoleIdInvalid",
101
+ "name": "ErrorIAccessRoleIdTooSmall",
113
102
  "type": "error"
114
103
  },
115
104
  {
@@ -120,7 +109,7 @@
120
109
  "type": "uint64"
121
110
  }
122
111
  ],
123
- "name": "ErrorRoleIdNotActive",
112
+ "name": "ErrorIAccessRoleNameEmpty",
124
113
  "type": "error"
125
114
  },
126
115
  {
@@ -129,20 +118,19 @@
129
118
  "internalType": "RoleId",
130
119
  "name": "roleId",
131
120
  "type": "uint64"
132
- }
133
- ],
134
- "name": "ErrorRoleIdTooBig",
135
- "type": "error"
136
- },
137
- {
138
- "inputs": [
121
+ },
139
122
  {
140
123
  "internalType": "RoleId",
141
- "name": "roleId",
124
+ "name": "existingRoleId",
142
125
  "type": "uint64"
126
+ },
127
+ {
128
+ "internalType": "ShortString",
129
+ "name": "name",
130
+ "type": "bytes32"
143
131
  }
144
132
  ],
145
- "name": "ErrorRoleIdTooSmall",
133
+ "name": "ErrorIAccessRoleNameExists",
146
134
  "type": "error"
147
135
  },
148
136
  {
@@ -153,52 +141,47 @@
153
141
  "type": "uint64"
154
142
  },
155
143
  {
156
- "internalType": "bool",
157
- "name": "isCustom",
158
- "type": "bool"
144
+ "internalType": "enum IAccess.Type",
145
+ "name": "rtype",
146
+ "type": "uint8"
159
147
  }
160
148
  ],
161
- "name": "ErrorRoleInvalidUpdate",
149
+ "name": "ErrorIAccessRoleTypeInvalid",
162
150
  "type": "error"
163
151
  },
164
152
  {
165
153
  "inputs": [
166
154
  {
167
- "internalType": "RoleId",
168
- "name": "roleId",
169
- "type": "uint64"
170
- },
171
- {
172
- "internalType": "bool",
173
- "name": "isCustom",
174
- "type": "bool"
155
+ "internalType": "address",
156
+ "name": "target",
157
+ "type": "address"
175
158
  },
176
159
  {
177
- "internalType": "bool",
178
- "name": "isCustomExisting",
179
- "type": "bool"
160
+ "internalType": "address",
161
+ "name": "targetAuthority",
162
+ "type": "address"
180
163
  }
181
164
  ],
182
- "name": "ErrorRoleIsCustomIsImmutable",
165
+ "name": "ErrorIAccessTargetAuthorityInvalid",
183
166
  "type": "error"
184
167
  },
185
168
  {
186
169
  "inputs": [
187
170
  {
188
- "internalType": "RoleId",
189
- "name": "roleId",
190
- "type": "uint64"
171
+ "internalType": "address",
172
+ "name": "target",
173
+ "type": "address"
191
174
  }
192
175
  ],
193
- "name": "ErrorRoleNameEmpty",
176
+ "name": "ErrorIAccessTargetDoesNotExist",
194
177
  "type": "error"
195
178
  },
196
179
  {
197
180
  "inputs": [
198
181
  {
199
- "internalType": "RoleId",
200
- "name": "roleId",
201
- "type": "uint64"
182
+ "internalType": "address",
183
+ "name": "target",
184
+ "type": "address"
202
185
  },
203
186
  {
204
187
  "internalType": "ShortString",
@@ -206,18 +189,7 @@
206
189
  "type": "bytes32"
207
190
  }
208
191
  ],
209
- "name": "ErrorRoleNameNotUnique",
210
- "type": "error"
211
- },
212
- {
213
- "inputs": [
214
- {
215
- "internalType": "RoleId",
216
- "name": "roleId",
217
- "type": "uint64"
218
- }
219
- ],
220
- "name": "ErrorSetLockedForNonexstentRole",
192
+ "name": "ErrorIAccessTargetExists",
221
193
  "type": "error"
222
194
  },
223
195
  {
@@ -228,12 +200,7 @@
228
200
  "type": "address"
229
201
  }
230
202
  ],
231
- "name": "ErrorSetLockedForNonexstentTarget",
232
- "type": "error"
233
- },
234
- {
235
- "inputs": [],
236
- "name": "ErrorTargetAddressZero",
203
+ "name": "ErrorIAccessTargetNameEmpty",
237
204
  "type": "error"
238
205
  },
239
206
  {
@@ -243,13 +210,18 @@
243
210
  "name": "target",
244
211
  "type": "address"
245
212
  },
213
+ {
214
+ "internalType": "address",
215
+ "name": "existingTarget",
216
+ "type": "address"
217
+ },
246
218
  {
247
219
  "internalType": "ShortString",
248
220
  "name": "name",
249
221
  "type": "bytes32"
250
222
  }
251
223
  ],
252
- "name": "ErrorTargetAlreadyExists",
224
+ "name": "ErrorIAccessTargetNameExists",
253
225
  "type": "error"
254
226
  },
255
227
  {
@@ -260,7 +232,7 @@
260
232
  "type": "address"
261
233
  }
262
234
  ],
263
- "name": "ErrorTargetNameEmpty",
235
+ "name": "ErrorIAccessTargetNotRegistered",
264
236
  "type": "error"
265
237
  },
266
238
  {
@@ -271,17 +243,17 @@
271
243
  "type": "address"
272
244
  },
273
245
  {
274
- "internalType": "address",
275
- "name": "existingTarget",
276
- "type": "address"
277
- },
278
- {
279
- "internalType": "ShortString",
280
- "name": "name",
281
- "type": "bytes32"
246
+ "internalType": "enum IAccess.Type",
247
+ "name": "ttype",
248
+ "type": "uint8"
282
249
  }
283
250
  ],
284
- "name": "ErrorTargetNameExists",
251
+ "name": "ErrorIAccessTargetTypeInvalid",
252
+ "type": "error"
253
+ },
254
+ {
255
+ "inputs": [],
256
+ "name": "InvalidInitialization",
285
257
  "type": "error"
286
258
  },
287
259
  {
@@ -289,6 +261,11 @@
289
261
  "name": "InvalidShortString",
290
262
  "type": "error"
291
263
  },
264
+ {
265
+ "inputs": [],
266
+ "name": "NotInitializing",
267
+ "type": "error"
268
+ },
292
269
  {
293
270
  "inputs": [
294
271
  {
@@ -313,6 +290,75 @@
313
290
  "name": "AuthorityUpdated",
314
291
  "type": "event"
315
292
  },
293
+ {
294
+ "anonymous": false,
295
+ "inputs": [
296
+ {
297
+ "indexed": false,
298
+ "internalType": "uint64",
299
+ "name": "version",
300
+ "type": "uint64"
301
+ }
302
+ ],
303
+ "name": "Initialized",
304
+ "type": "event"
305
+ },
306
+ {
307
+ "anonymous": false,
308
+ "inputs": [
309
+ {
310
+ "indexed": false,
311
+ "internalType": "RoleId",
312
+ "name": "roleId",
313
+ "type": "uint64"
314
+ },
315
+ {
316
+ "indexed": false,
317
+ "internalType": "ShortString",
318
+ "name": "name",
319
+ "type": "bytes32"
320
+ },
321
+ {
322
+ "indexed": false,
323
+ "internalType": "enum IAccess.Type",
324
+ "name": "rtype",
325
+ "type": "uint8"
326
+ }
327
+ ],
328
+ "name": "LogRoleCreation",
329
+ "type": "event"
330
+ },
331
+ {
332
+ "anonymous": false,
333
+ "inputs": [
334
+ {
335
+ "indexed": false,
336
+ "internalType": "address",
337
+ "name": "target",
338
+ "type": "address"
339
+ },
340
+ {
341
+ "indexed": false,
342
+ "internalType": "ShortString",
343
+ "name": "name",
344
+ "type": "bytes32"
345
+ },
346
+ {
347
+ "indexed": false,
348
+ "internalType": "enum IAccess.Type",
349
+ "name": "ttype",
350
+ "type": "uint8"
351
+ },
352
+ {
353
+ "indexed": false,
354
+ "internalType": "bool",
355
+ "name": "isLocked",
356
+ "type": "bool"
357
+ }
358
+ ],
359
+ "name": "LogTargetCreation",
360
+ "type": "event"
361
+ },
316
362
  {
317
363
  "inputs": [],
318
364
  "name": "ADMIN_ROLE_NAME",
@@ -352,6 +398,32 @@
352
398
  "stateMutability": "view",
353
399
  "type": "function"
354
400
  },
401
+ {
402
+ "inputs": [],
403
+ "name": "INSTANCE_OWNER_ROLE_NAME",
404
+ "outputs": [
405
+ {
406
+ "internalType": "string",
407
+ "name": "",
408
+ "type": "string"
409
+ }
410
+ ],
411
+ "stateMutability": "view",
412
+ "type": "function"
413
+ },
414
+ {
415
+ "inputs": [],
416
+ "name": "INSTANCE_ROLE_NAME",
417
+ "outputs": [
418
+ {
419
+ "internalType": "string",
420
+ "name": "",
421
+ "type": "string"
422
+ }
423
+ ],
424
+ "stateMutability": "view",
425
+ "type": "function"
426
+ },
355
427
  {
356
428
  "inputs": [],
357
429
  "name": "PUBLIC_ROLE_NAME",
@@ -380,18 +452,158 @@
380
452
  },
381
453
  {
382
454
  "inputs": [
455
+ {
456
+ "internalType": "address",
457
+ "name": "caller",
458
+ "type": "address"
459
+ },
460
+ {
461
+ "internalType": "address",
462
+ "name": "target",
463
+ "type": "address"
464
+ },
465
+ {
466
+ "internalType": "bytes4",
467
+ "name": "selector",
468
+ "type": "bytes4"
469
+ }
470
+ ],
471
+ "name": "canCall",
472
+ "outputs": [
473
+ {
474
+ "internalType": "bool",
475
+ "name": "immediate",
476
+ "type": "bool"
477
+ },
478
+ {
479
+ "internalType": "uint32",
480
+ "name": "delay",
481
+ "type": "uint32"
482
+ }
483
+ ],
484
+ "stateMutability": "view",
485
+ "type": "function"
486
+ },
487
+ {
488
+ "inputs": [
489
+ {
490
+ "internalType": "RoleId",
491
+ "name": "roleId",
492
+ "type": "uint64"
493
+ },
494
+ {
495
+ "internalType": "string",
496
+ "name": "name",
497
+ "type": "string"
498
+ }
499
+ ],
500
+ "name": "createCoreRole",
501
+ "outputs": [],
502
+ "stateMutability": "nonpayable",
503
+ "type": "function"
504
+ },
505
+ {
506
+ "inputs": [
507
+ {
508
+ "internalType": "address",
509
+ "name": "target",
510
+ "type": "address"
511
+ },
512
+ {
513
+ "internalType": "string",
514
+ "name": "name",
515
+ "type": "string"
516
+ }
517
+ ],
518
+ "name": "createCoreTarget",
519
+ "outputs": [],
520
+ "stateMutability": "nonpayable",
521
+ "type": "function"
522
+ },
523
+ {
524
+ "inputs": [
525
+ {
526
+ "internalType": "RoleId",
527
+ "name": "roleId",
528
+ "type": "uint64"
529
+ },
530
+ {
531
+ "internalType": "string",
532
+ "name": "name",
533
+ "type": "string"
534
+ },
535
+ {
536
+ "internalType": "RoleId",
537
+ "name": "admin",
538
+ "type": "uint64"
539
+ }
540
+ ],
541
+ "name": "createGifRole",
542
+ "outputs": [],
543
+ "stateMutability": "nonpayable",
544
+ "type": "function"
545
+ },
546
+ {
547
+ "inputs": [
548
+ {
549
+ "internalType": "address",
550
+ "name": "target",
551
+ "type": "address"
552
+ },
553
+ {
554
+ "internalType": "string",
555
+ "name": "name",
556
+ "type": "string"
557
+ }
558
+ ],
559
+ "name": "createGifTarget",
560
+ "outputs": [],
561
+ "stateMutability": "nonpayable",
562
+ "type": "function"
563
+ },
564
+ {
565
+ "inputs": [
566
+ {
567
+ "internalType": "string",
568
+ "name": "roleName",
569
+ "type": "string"
570
+ },
571
+ {
572
+ "internalType": "string",
573
+ "name": "adminName",
574
+ "type": "string"
575
+ }
576
+ ],
577
+ "name": "createRole",
578
+ "outputs": [
383
579
  {
384
580
  "internalType": "RoleId",
385
581
  "name": "roleId",
386
582
  "type": "uint64"
387
583
  },
584
+ {
585
+ "internalType": "RoleId",
586
+ "name": "admin",
587
+ "type": "uint64"
588
+ }
589
+ ],
590
+ "stateMutability": "nonpayable",
591
+ "type": "function"
592
+ },
593
+ {
594
+ "inputs": [
595
+ {
596
+ "internalType": "address",
597
+ "name": "target",
598
+ "type": "address"
599
+ },
388
600
  {
389
601
  "internalType": "string",
390
602
  "name": "name",
391
603
  "type": "string"
392
604
  }
393
605
  ],
394
- "name": "createDefaultRole",
606
+ "name": "createTarget",
395
607
  "outputs": [],
396
608
  "stateMutability": "nonpayable",
397
609
  "type": "function"
@@ -402,34 +614,55 @@
402
614
  "internalType": "RoleId",
403
615
  "name": "roleId",
404
616
  "type": "uint64"
405
- },
406
- {
407
- "internalType": "string",
408
- "name": "name",
409
- "type": "string"
410
617
  }
411
618
  ],
412
- "name": "createRole",
413
- "outputs": [],
414
- "stateMutability": "nonpayable",
619
+ "name": "getRoleAdmin",
620
+ "outputs": [
621
+ {
622
+ "internalType": "RoleId",
623
+ "name": "admin",
624
+ "type": "uint64"
625
+ }
626
+ ],
627
+ "stateMutability": "view",
628
+ "type": "function"
629
+ },
630
+ {
631
+ "inputs": [
632
+ {
633
+ "internalType": "uint256",
634
+ "name": "idx",
635
+ "type": "uint256"
636
+ }
637
+ ],
638
+ "name": "getRoleId",
639
+ "outputs": [
640
+ {
641
+ "internalType": "RoleId",
642
+ "name": "roleId",
643
+ "type": "uint64"
644
+ }
645
+ ],
646
+ "stateMutability": "view",
415
647
  "type": "function"
416
648
  },
417
649
  {
418
650
  "inputs": [
419
- {
420
- "internalType": "address",
421
- "name": "target",
422
- "type": "address"
423
- },
424
651
  {
425
652
  "internalType": "string",
426
653
  "name": "name",
427
654
  "type": "string"
428
655
  }
429
656
  ],
430
- "name": "createTarget",
431
- "outputs": [],
432
- "stateMutability": "nonpayable",
657
+ "name": "getRoleIdForName",
658
+ "outputs": [
659
+ {
660
+ "internalType": "RoleId",
661
+ "name": "roleId",
662
+ "type": "uint64"
663
+ }
664
+ ],
665
+ "stateMutability": "view",
433
666
  "type": "function"
434
667
  },
435
668
  {
@@ -440,7 +673,7 @@
440
673
  "type": "uint64"
441
674
  }
442
675
  ],
443
- "name": "getRole",
676
+ "name": "getRoleInfo",
444
677
  "outputs": [
445
678
  {
446
679
  "components": [
@@ -450,14 +683,14 @@
450
683
  "type": "bytes32"
451
684
  },
452
685
  {
453
- "internalType": "bool",
454
- "name": "isCustom",
455
- "type": "bool"
686
+ "internalType": "enum IAccess.Type",
687
+ "name": "rtype",
688
+ "type": "uint8"
456
689
  },
457
690
  {
458
- "internalType": "bool",
459
- "name": "isLocked",
460
- "type": "bool"
691
+ "internalType": "RoleId",
692
+ "name": "admin",
693
+ "type": "uint64"
461
694
  },
462
695
  {
463
696
  "internalType": "Timestamp",
@@ -470,47 +703,28 @@
470
703
  "type": "uint40"
471
704
  }
472
705
  ],
473
- "internalType": "struct InstanceAccessManager.RoleInfo",
474
- "name": "role",
706
+ "internalType": "struct IAccess.RoleInfo",
707
+ "name": "info",
475
708
  "type": "tuple"
476
709
  }
477
710
  ],
478
711
  "stateMutability": "view",
479
712
  "type": "function"
480
713
  },
481
- {
482
- "inputs": [
483
- {
484
- "internalType": "uint256",
485
- "name": "idx",
486
- "type": "uint256"
487
- }
488
- ],
489
- "name": "getRoleId",
490
- "outputs": [
491
- {
492
- "internalType": "RoleId",
493
- "name": "roleId",
494
- "type": "uint64"
495
- }
496
- ],
497
- "stateMutability": "view",
498
- "type": "function"
499
- },
500
714
  {
501
715
  "inputs": [
502
716
  {
503
717
  "internalType": "string",
504
- "name": "name",
718
+ "name": "targetName",
505
719
  "type": "string"
506
720
  }
507
721
  ],
508
- "name": "getRoleIdForName",
722
+ "name": "getTargetAddress",
509
723
  "outputs": [
510
724
  {
511
- "internalType": "RoleId",
512
- "name": "roleId",
513
- "type": "uint64"
725
+ "internalType": "address",
726
+ "name": "targetAddress",
727
+ "type": "address"
514
728
  }
515
729
  ],
516
730
  "stateMutability": "view",
@@ -519,22 +733,44 @@
519
733
  {
520
734
  "inputs": [
521
735
  {
522
- "internalType": "RoleId",
523
- "name": "roleId",
524
- "type": "uint64"
525
- },
526
- {
527
- "internalType": "uint256",
528
- "name": "idx",
529
- "type": "uint256"
736
+ "internalType": "address",
737
+ "name": "target",
738
+ "type": "address"
530
739
  }
531
740
  ],
532
- "name": "getRoleMember",
741
+ "name": "getTargetInfo",
533
742
  "outputs": [
534
743
  {
535
- "internalType": "address",
536
- "name": "roleMember",
537
- "type": "address"
744
+ "components": [
745
+ {
746
+ "internalType": "ShortString",
747
+ "name": "name",
748
+ "type": "bytes32"
749
+ },
750
+ {
751
+ "internalType": "enum IAccess.Type",
752
+ "name": "ttype",
753
+ "type": "uint8"
754
+ },
755
+ {
756
+ "internalType": "bool",
757
+ "name": "isLocked",
758
+ "type": "bool"
759
+ },
760
+ {
761
+ "internalType": "Timestamp",
762
+ "name": "createdAt",
763
+ "type": "uint40"
764
+ },
765
+ {
766
+ "internalType": "Timestamp",
767
+ "name": "updatedAt",
768
+ "type": "uint40"
769
+ }
770
+ ],
771
+ "internalType": "struct IAccess.TargetInfo",
772
+ "name": "",
773
+ "type": "tuple"
538
774
  }
539
775
  ],
540
776
  "stateMutability": "view",
@@ -592,7 +828,7 @@
592
828
  "inputs": [
593
829
  {
594
830
  "internalType": "address",
595
- "name": "initialAuthority",
831
+ "name": "instanceAddress",
596
832
  "type": "address"
597
833
  }
598
834
  ],
@@ -614,6 +850,25 @@
614
850
  "stateMutability": "view",
615
851
  "type": "function"
616
852
  },
853
+ {
854
+ "inputs": [
855
+ {
856
+ "internalType": "address",
857
+ "name": "target",
858
+ "type": "address"
859
+ }
860
+ ],
861
+ "name": "isTargetLocked",
862
+ "outputs": [
863
+ {
864
+ "internalType": "bool",
865
+ "name": "locked",
866
+ "type": "bool"
867
+ }
868
+ ],
869
+ "stateMutability": "view",
870
+ "type": "function"
871
+ },
617
872
  {
618
873
  "inputs": [
619
874
  {
@@ -626,7 +881,7 @@
626
881
  "outputs": [
627
882
  {
628
883
  "internalType": "bool",
629
- "name": "revoked",
884
+ "name": "",
630
885
  "type": "bool"
631
886
  }
632
887
  ],
@@ -647,6 +902,25 @@
647
902
  }
648
903
  ],
649
904
  "name": "revokeRole",
905
+ "outputs": [
906
+ {
907
+ "internalType": "bool",
908
+ "name": "",
909
+ "type": "bool"
910
+ }
911
+ ],
912
+ "stateMutability": "nonpayable",
913
+ "type": "function"
914
+ },
915
+ {
916
+ "inputs": [
917
+ {
918
+ "internalType": "RoleId",
919
+ "name": "roleId",
920
+ "type": "uint64"
921
+ }
922
+ ],
923
+ "name": "revokeRoleAllMembers",
650
924
  "outputs": [
651
925
  {
652
926
  "internalType": "bool",
@@ -676,6 +950,30 @@
676
950
  "stateMutability": "view",
677
951
  "type": "function"
678
952
  },
953
+ {
954
+ "inputs": [
955
+ {
956
+ "internalType": "RoleId",
957
+ "name": "roleId",
958
+ "type": "uint64"
959
+ },
960
+ {
961
+ "internalType": "uint256",
962
+ "name": "idx",
963
+ "type": "uint256"
964
+ }
965
+ ],
966
+ "name": "roleMember",
967
+ "outputs": [
968
+ {
969
+ "internalType": "address",
970
+ "name": "member",
971
+ "type": "address"
972
+ }
973
+ ],
974
+ "stateMutability": "view",
975
+ "type": "function"
976
+ },
679
977
  {
680
978
  "inputs": [
681
979
  {
@@ -721,6 +1019,29 @@
721
1019
  "stateMutability": "nonpayable",
722
1020
  "type": "function"
723
1021
  },
1022
+ {
1023
+ "inputs": [
1024
+ {
1025
+ "internalType": "string",
1026
+ "name": "targetName",
1027
+ "type": "string"
1028
+ },
1029
+ {
1030
+ "internalType": "bytes4[]",
1031
+ "name": "selectors",
1032
+ "type": "bytes4[]"
1033
+ },
1034
+ {
1035
+ "internalType": "RoleId",
1036
+ "name": "roleId",
1037
+ "type": "uint64"
1038
+ }
1039
+ ],
1040
+ "name": "setCoreTargetFunctionRole",
1041
+ "outputs": [],
1042
+ "stateMutability": "nonpayable",
1043
+ "type": "function"
1044
+ },
724
1045
  {
725
1046
  "inputs": [
726
1047
  {
@@ -729,12 +1050,35 @@
729
1050
  "type": "uint64"
730
1051
  },
731
1052
  {
732
- "internalType": "bool",
733
- "name": "locked",
734
- "type": "bool"
1053
+ "internalType": "RoleId",
1054
+ "name": "admin",
1055
+ "type": "uint64"
1056
+ }
1057
+ ],
1058
+ "name": "setRoleAdmin",
1059
+ "outputs": [],
1060
+ "stateMutability": "nonpayable",
1061
+ "type": "function"
1062
+ },
1063
+ {
1064
+ "inputs": [
1065
+ {
1066
+ "internalType": "string",
1067
+ "name": "targetName",
1068
+ "type": "string"
1069
+ },
1070
+ {
1071
+ "internalType": "bytes4[]",
1072
+ "name": "selectors",
1073
+ "type": "bytes4[]"
1074
+ },
1075
+ {
1076
+ "internalType": "RoleId",
1077
+ "name": "roleId",
1078
+ "type": "uint64"
735
1079
  }
736
1080
  ],
737
- "name": "setRoleLocked",
1081
+ "name": "setTargetFunctionRole",
738
1082
  "outputs": [],
739
1083
  "stateMutability": "nonpayable",
740
1084
  "type": "function"
@@ -777,90 +1121,106 @@
777
1121
  "type": "function"
778
1122
  }
779
1123
  ],
780
- "bytecode": "0x60806040523480156200001157600080fd5b5060405162002f0438038062002f04833981016040819052620000349162000ad5565b806200004081620002aa565b50600880546001600160a01b0319166001600160a01b03831690811790915560408051631d6c8e3f60e21b81529051620001769273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__926368aebf7b926375b238fc916004808201926020929091908290030181865afa158015620000bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e2919062000b20565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af415801562000127573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014d919062000b20565b60408051808201909152600981526841646d696e526f6c6560b81b602082015260008062000329565b620002a373__$cd131c2b3ba46b9dbe046aaf4458b9777d$__6368aebf7b600860009054906101000a90046001600160a01b03166001600160a01b0316633ca7c02a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020e919062000b20565b6040516001600160e01b031960e084901b1681526001600160401b039091166004820152602401602060405180830381865af415801562000253573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000279919062000b20565b60408051808201909152600a8152695075626c6963526f6c6560b01b602082015260008062000329565b5062000c05565b60005460ff16156200030e5760405162461bcd60e51b815260206004820152602260248201527f4163636573734d616e616765643a20616c726561647920696e697469616c697a604482015261195960f21b60648201526084015b60405180910390fd5b620003198162000573565b506000805460ff19166001179055565b80156200033f576200033d848484620005cf565b505b60006040518060a001604052806200035d8662000a6360201b60201c565b8152602001841515815260200160001515815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015620003bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e3919062000b40565b64ffffffffff16815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801562000439573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045f919062000b40565b64ffffffffff9081169091526001600160401b03968716600081815260016020818152604080842087518082558884015191850180548a85015160608c01516080909c015161ffff1990921694151561ff0019169490941761010094151585021762010000600160601b031916620100009b8b169b909b0264ffffffffff60381b19169a909a176701000000000000009a909916999099029790971790975594835260039081905293822080546001600160401b03191684179055600480549182018155918290527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9181049190910180549190931660080290930a97880219909216969091029590951790945550505050565b60008054610100600160a81b0319166101006001600160a01b038416908102919091179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260085460408051631d6c8e3f60e21b8152905186926001600160a01b0316916375b238fc9160048083019260209291908290030181865afa15801562000644573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200066a919062000b20565b6001600160401b0316816001600160401b03161480620007145750600860009054906101000a90046001600160a01b03166001600160a01b0316633ca7c02a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006ff919062000b20565b6001600160401b0316816001600160401b0316145b156200073f5760405163981bf42160e01b81526001600160401b038616600482015260240162000305565b6001600160401b038516600090815260016020818152604092839020835160a0810185528154815292015460ff808216151592840192909252610100810490911615158284015264ffffffffff6201000082048116606084018190526701000000000000009092041660808301529151638d38cd4b60e01b81526004810192909252925073__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b90602401602060405180830381865af415801562000800573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000826919062000b69565b80156200083b57508160200151151583151514155b156200087a57602082015160405162d1cd9360e51b81526001600160401b03871660048201528415156024820152901515604482015260640162000305565b8280156200089257506127106001600160401b038216105b15620008bd57604051633119b9df60e21b81526001600160401b038616600482015260240162000305565b82158015620008d757506127106001600160401b03821610155b15620009025760405163094fb39160e01b81526001600160401b038616600482015260240162000305565b60006200090f8562000a63565b90506200091c8162000aa6565b60000362000949576040516321ab17ab60e01b81526001600160401b038716600482015260240162000305565b60008181526003602090815260409182902054825163bc1b392d60e01b81529251620009f0936001600160401b039092169273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9263bc1b392d92600480830193928290030181865af4158015620009b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009de919062000b20565b6001600160401b039081169116141590565b801562000a1757506000818152600360205260409020546001600160401b03878116911614155b1562000a5a5760008181526003602052604090819020549051631660fb9360e21b81526001600160401b0390911660048201526024810182905260440162000305565b50509392505050565b600080829050601f8151111562000a91578260405163305a27a960e01b815260040162000305919062000b8d565b805162000a9e8262000bdd565b179392505050565b600060ff8216601f81111562000acf57604051632cd44ac360e21b815260040160405180910390fd5b92915050565b60006020828403121562000ae857600080fd5b81516001600160a01b038116811462000b0057600080fd5b9392505050565b6001600160401b038116811462000b1d57600080fd5b50565b60006020828403121562000b3357600080fd5b815162000b008162000b07565b60006020828403121562000b5357600080fd5b815164ffffffffff8116811462000b0057600080fd5b60006020828403121562000b7c57600080fd5b8151801515811462000b0057600080fd5b600060208083528351808285015260005b8181101562000bbc5785810183015185820160400152820162000b9e565b506000604082860101526040601f19601f8301168501019250505092915050565b8051602080830151919081101562000bff576000198160200360031b1b821691505b50919050565b6122ef8062000c156000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806386892313116100de578063bc62a0a511610097578063c4d66de811610071578063c4d66de81461047f578063c6a0017914610492578063d1f856ee146104a5578063d78a83b1146104b857600080fd5b8063bc62a0a5146103f7578063bcfb11b01461042c578063bf7e214f1461045557600080fd5b8063868923131461028e57806386f0c47b146102a15780638fb360371461039d578063af8d729e146103be578063b428b0b0146103d1578063b7d2b162146103e457600080fd5b80635dfa73db116101305780635dfa73db146102245780635fa8aad41461022d578063605aa10a146102425780636270b7c31461025557806368ed5d2e146102685780637a9e5e4b1461027b57600080fd5b8063030149741461017857806337f135d71461019e578063384c9a57146101bb578063392f5f64146101de5780633fd85561146101e65780635511a6f314610211575b600080fd5b61018b610186366004611e25565b6104cb565b6040519081526020015b60405180910390f35b6101a6600081565b60405163ffffffff9091168152602001610195565b6101ce6101c9366004611e25565b6104f2565b6040519015158152602001610195565b60045461018b565b6101f96101f4366004611e42565b61067f565b6040516001600160401b039091168152602001610195565b6101f961021f366004611efd565b6106c4565b6101f961271081565b61024061023b366004611f55565b6106f3565b005b6101ce610250366004611fa2565b610711565b610240610263366004611fbd565b6107ae565b610240610276366004611fbd565b6107c5565b610240610289366004611fa2565b6107db565b61024061029c366004611fe9565b610856565b61034a6102af366004611e25565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506001600160401b0316600090815260016020818152604092839020835160a0810185528154815292015460ff808216151592840192909252610100810490911615159282019290925264ffffffffff62010000830481166060830152600160381b909204909116608082015290565b6040516101959190600060a08201905082518252602083015115156020830152604083015115156040830152606083015164ffffffffff8082166060850152806080860151166080850152505092915050565b6103a5610924565b6040516001600160e01b03199091168152602001610195565b6102406103cc366004612020565b610948565b6101ce6103df36600461203e565b610a67565b6101ce6103f236600461203e565b610c43565b61041f6040518060400160405280600981526020016841646d696e526f6c6560b81b81525081565b6040516101959190612097565b61041f6040518060400160405280600a8152602001695075626c6963526f6c6560b01b81525081565b60005461010090046001600160a01b03165b6040516001600160a01b039091168152602001610195565b61024061048d366004611fa2565b610dc1565b6101ce6104a0366004611e25565b610e38565b6101ce6104b336600461203e565b610e9a565b6104676104c63660046120ca565b610faa565b6001600160401b03811660009081526002602052604081206104ec90610fd3565b92915050565b6000336104fe83610e38565b61052a57604051627a416f60e01b81526001600160401b03841660048201526024015b60405180910390fd5b6001600160401b038316600090815260026020526040902061054c9082610fdd565b1561067657600854604051631517388760e21b81526001600160401b03851660048201526001600160a01b039091169063b7d2b1629073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e291906120f6565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0384166024820152604401600060405180830381600087803b15801561063257600080fd5b505af1158015610646573d6000803e3d6000fd5b5050506001600160401b038416600090815260026020526040902061066c915082610fff565b5060019392505050565b50600092915050565b60006004828154811061069457610694612113565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b03169050919050565b6000600360006106d384611014565b81526020810191909152604001600020546001600160401b031692915050565b610700335b600036611052565b61070d828260018061116c565b5050565b6001600160a01b038116600090815260056020526040808220600101549051638d38cd4b60e01b81526201000090910464ffffffffff16600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b906024015b602060405180830381865af415801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190612129565b6107b7336106f8565b61070d828260006001611449565b6107ce336106f8565b61070d8282600180611449565b600054339061010090046001600160a01b031681146108175760405162d1953b60e31b81526001600160a01b0382166004820152602401610521565b816001600160a01b03163b60000361084d576040516361798f2f60e11b81526001600160a01b0383166004820152602401610521565b61070d82611682565b61085f336106f8565b61086882610711565b6108905760405163ba52b0f160e01b81526001600160a01b0383166004820152602401610521565b6001600160a01b0382811660008181526005602052604090819020600101805461ff00191661010086151590810291909117909155600854915163167bd39560e01b8152600481019390935260248301529091169063167bd39590604401600060405180830381600087803b15801561090857600080fd5b505af115801561091c573d6000803e3d6000fd5b505050505050565b60008054600160a81b900460ff1661093c5750600090565b50638fb3603760e01b90565b610951336106f8565b61095a82610e38565b6109825760405163135c79b760e21b81526001600160401b0383166004820152602401610521565b6001600160401b038216600090815260016020818152604092839020909101805461ff0019166101008515150217905581516356db0c1960e11b8152915173__$d53880c81dc91c20799140d711e5ab8718$__9263adb618329260048083019391928290030181865af41580156109fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a219190612146565b6001600160401b03909216600090815260016020819052604090912001805464ffffffffff93909316600160381b0264ffffffffff60381b199093169290921790915550565b6000610a72336106f8565b610a7b83610e38565b610aa357604051636777365b60e01b81526001600160401b0384166004820152602401610521565b6001600160401b03831660009081526001602081905260409091200154610100900460ff1615610af15760405163fe229d5d60e01b81526001600160401b0384166004820152602401610521565b6001600160401b0383166000908152600260205260409020610b139083610fdd565b61067657600854604051631517388760e21b81526001600160401b03851660048201526001600160a01b03909116906325c471a09073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015610b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba891906120f6565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038516602482015260006044820152606401600060405180830381600087803b158015610bff57600080fd5b505af1158015610c13573d6000803e3d6000fd5b5050506001600160401b0384166000908152600260205260409020610c399150836116de565b50600190506104ec565b6000610c4e336106f8565b610c5783610e38565b610c7f57604051634cee277360e11b81526001600160401b0384166004820152602401610521565b6001600160401b0383166000908152600260205260409020610ca19083610fdd565b1561067657600854604051631517388760e21b81526001600160401b03851660048201526001600160a01b039091169063b7d2b1629073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015610d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3791906120f6565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0385166024820152604401600060405180830381600087803b158015610d8757600080fd5b505af1158015610d9b573d6000803e3d6000fd5b5050506001600160401b0384166000908152600260205260409020610c39915083610fff565b60005460ff1615610e1f5760405162461bcd60e51b815260206004820152602260248201527f4163636573734d616e616765643a20616c726561647920696e697469616c697a604482015261195960f21b6064820152608401610521565b610e2881611682565b506000805460ff19166001179055565b6001600160401b0381166000908152600160208190526040808320909101549051638d38cd4b60e01b81526201000090910464ffffffffff16600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b9060240161076d565b600854604051631517388760e21b81526001600160401b03841660048201526000916001600160a01b03169063d1f856ee9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015610f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2c91906120f6565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b03851660248201526044016040805180830381865afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa2919061216d565b509392505050565b6001600160401b0382166000908152600260205260408120610fcc90836116f3565b9392505050565b60006104ec825490565b6001600160a01b03811660009081526001830160205260408120541515610fcc565b6000610fcc836001600160a01b0384166116ff565b600080829050601f8151111561103f578260405163305a27a960e01b81526004016105219190612097565b805161104a826121a5565b179392505050565b60008061108e6110706000546001600160a01b036101009091041690565b863061108060046000898b6121cc565b611089916121f6565b6117f2565b91509150816111655763ffffffff811615611142576000805460ff60a81b1916600160a81b1790556110ce6000546001600160a01b036101009091041690565b6001600160a01b03166394c7d7ee8686866040518463ffffffff1660e01b81526004016110fd93929190612226565b600060405180830381600087803b15801561111757600080fd5b505af115801561112b573d6000803e3d6000fd5b50506000805460ff60a81b19169055506111659050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610521565b5050505050565b60006040518060a0016040528061118286611014565b815284151560208201526008546040805163a166aa8960e01b81526001600160a01b038a81166004830152919093019291169063a166aa8990602401602060405180830381865afa1580156111db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ff9190612129565b1515815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190612146565b64ffffffffff16815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec9190612146565b64ffffffffff1681525090508060056000876001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff02191690831515021790555060408201518160010160016101000a81548160ff02191690831515021790555060608201518160010160026101000a81548164ffffffffff021916908364ffffffffff16021790555060808201518160010160076101000a81548164ffffffffff021916908364ffffffffff16021790555090505084600660008360000151815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506007859080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055505050505050565b801561145c5761145a8484846118fe565b505b60006040518060a0016040528061147286611014565b8152602001841515815260200160001515815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f59190612146565b64ffffffffff16815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561154a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156e9190612146565b64ffffffffff9081169091526001600160401b03968716600081815260016020818152604080842087518082558884015191850180548a85015160608c01516080909c015161ffff1990921694151561ff001916949094176101009415158502176bffffffffffffffffffff00001916620100009b8b169b909b0264ffffffffff60381b19169a909a17600160381b9a9099169990990297909717909755948352600390819052938220805467ffffffffffffffff191684179055600480549182018155918290527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9181049190910180549190931660080290930a97880219909216969091029590951790945550505050565b60008054610100600160a81b0319166101006001600160a01b038416908102919091179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6000610fcc836001600160a01b038416611d6c565b6000610fcc8383611dbb565b600081815260018301602052604081205480156117e8576000611723600183612266565b855490915060009061173790600190612266565b905080821461179c57600086600001828154811061175757611757612113565b906000526020600020015490508087600001848154811061177a5761177a612113565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806117ad576117ad612287565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506104ec565b60009150506104ec565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611861919061229d565b600060405180830381855afa9150503d806000811461189c576040519150601f19603f3d011682016040523d82523d6000602084013e6118a1565b606091505b509150915081156118f35760408151106118d357808060200190518101906118c9919061216d565b90945092506118f3565b60208151106118f357808060200190518101906118f09190612129565b93505b505094509492505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260085460408051631d6c8e3f60e21b8152905186926001600160a01b0316916375b238fc9160048083019260209291908290030181865afa158015611972573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199691906120f6565b6001600160401b0316816001600160401b03161480611a3c5750600860009054906101000a90046001600160a01b03166001600160a01b0316633ca7c02a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2791906120f6565b6001600160401b0316816001600160401b0316145b15611a655760405163981bf42160e01b81526001600160401b0386166004820152602401610521565b6001600160401b038516600090815260016020818152604092839020835160a0810185528154815292015460ff808216151592840192909252610100810490911615158284015264ffffffffff620100008204811660608401819052600160381b9092041660808301529151638d38cd4b60e01b81526004810192909252925073__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b90602401602060405180830381865af4158015611b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b459190612129565b8015611b5957508160200151151583151514155b15611b9657602082015160405162d1cd9360e51b81526001600160401b038716600482015284151560248201529015156044820152606401610521565b828015611bad57506127106001600160401b038216105b15611bd657604051633119b9df60e21b81526001600160401b0386166004820152602401610521565b82158015611bef57506127106001600160401b03821610155b15611c185760405163094fb39160e01b81526001600160401b0386166004820152602401610521565b6000611c2385611014565b9050611c2e81611de5565b600003611c59576040516321ab17ab60e01b81526001600160401b0387166004820152602401610521565b60008181526003602090815260409182902054825163bc1b392d60e01b81529251611cfc936001600160401b039092169273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9263bc1b392d92600480830193928290030181865af4158015611cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cea91906120f6565b6001600160401b039081169116141590565b8015611d2257506000818152600360205260409020546001600160401b03878116911614155b15611d635760008181526003602052604090819020549051631660fb9360e21b81526001600160401b03909116600482015260248101829052604401610521565b50509392505050565b6000818152600183016020526040812054611db3575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104ec565b5060006104ec565b6000826000018281548110611dd257611dd2612113565b9060005260206000200154905092915050565b600060ff8216601f8111156104ec57604051632cd44ac360e21b815260040160405180910390fd5b6001600160401b0381168114611e2257600080fd5b50565b600060208284031215611e3757600080fd5b8135610fcc81611e0d565b600060208284031215611e5457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611e8257600080fd5b81356001600160401b0380821115611e9c57611e9c611e5b565b604051601f8301601f19908116603f01168101908282118183101715611ec457611ec4611e5b565b81604052838152866020858801011115611edd57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215611f0f57600080fd5b81356001600160401b03811115611f2557600080fd5b611f3184828501611e71565b949350505050565b80356001600160a01b0381168114611f5057600080fd5b919050565b60008060408385031215611f6857600080fd5b611f7183611f39565b915060208301356001600160401b03811115611f8c57600080fd5b611f9885828601611e71565b9150509250929050565b600060208284031215611fb457600080fd5b610fcc82611f39565b60008060408385031215611fd057600080fd5b8235611f7181611e0d565b8015158114611e2257600080fd5b60008060408385031215611ffc57600080fd5b61200583611f39565b9150602083013561201581611fdb565b809150509250929050565b6000806040838503121561203357600080fd5b823561200581611e0d565b6000806040838503121561205157600080fd5b823561205c81611e0d565b915061206a60208401611f39565b90509250929050565b60005b8381101561208e578181015183820152602001612076565b50506000910152565b60208152600082518060208401526120b6816040850160208701612073565b601f01601f19169190910160400192915050565b600080604083850312156120dd57600080fd5b82356120e881611e0d565b946020939093013593505050565b60006020828403121561210857600080fd5b8151610fcc81611e0d565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561213b57600080fd5b8151610fcc81611fdb565b60006020828403121561215857600080fd5b815164ffffffffff81168114610fcc57600080fd5b6000806040838503121561218057600080fd5b825161218b81611fdb565b602084015190925063ffffffff8116811461201557600080fd5b805160208083015191908110156121c6576000198160200360031b1b821691505b50919050565b600080858511156121dc57600080fd5b838611156121e957600080fd5b5050820193919092039150565b6001600160e01b0319813581811691600485101561221e5780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b818103818111156104ec57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600082516122af818460208701612073565b919091019291505056fea26469706673582212207c3cfa8878ad1430e029dfbff2aa4723ff1538138ecbb8884a66af0b5a7e022264736f6c63430008140033",
781
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c806386892313116100de578063bc62a0a511610097578063c4d66de811610071578063c4d66de81461047f578063c6a0017914610492578063d1f856ee146104a5578063d78a83b1146104b857600080fd5b8063bc62a0a5146103f7578063bcfb11b01461042c578063bf7e214f1461045557600080fd5b8063868923131461028e57806386f0c47b146102a15780638fb360371461039d578063af8d729e146103be578063b428b0b0146103d1578063b7d2b162146103e457600080fd5b80635dfa73db116101305780635dfa73db146102245780635fa8aad41461022d578063605aa10a146102425780636270b7c31461025557806368ed5d2e146102685780637a9e5e4b1461027b57600080fd5b8063030149741461017857806337f135d71461019e578063384c9a57146101bb578063392f5f64146101de5780633fd85561146101e65780635511a6f314610211575b600080fd5b61018b610186366004611e25565b6104cb565b6040519081526020015b60405180910390f35b6101a6600081565b60405163ffffffff9091168152602001610195565b6101ce6101c9366004611e25565b6104f2565b6040519015158152602001610195565b60045461018b565b6101f96101f4366004611e42565b61067f565b6040516001600160401b039091168152602001610195565b6101f961021f366004611efd565b6106c4565b6101f961271081565b61024061023b366004611f55565b6106f3565b005b6101ce610250366004611fa2565b610711565b610240610263366004611fbd565b6107ae565b610240610276366004611fbd565b6107c5565b610240610289366004611fa2565b6107db565b61024061029c366004611fe9565b610856565b61034a6102af366004611e25565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152506001600160401b0316600090815260016020818152604092839020835160a0810185528154815292015460ff808216151592840192909252610100810490911615159282019290925264ffffffffff62010000830481166060830152600160381b909204909116608082015290565b6040516101959190600060a08201905082518252602083015115156020830152604083015115156040830152606083015164ffffffffff8082166060850152806080860151166080850152505092915050565b6103a5610924565b6040516001600160e01b03199091168152602001610195565b6102406103cc366004612020565b610948565b6101ce6103df36600461203e565b610a67565b6101ce6103f236600461203e565b610c43565b61041f6040518060400160405280600981526020016841646d696e526f6c6560b81b81525081565b6040516101959190612097565b61041f6040518060400160405280600a8152602001695075626c6963526f6c6560b01b81525081565b60005461010090046001600160a01b03165b6040516001600160a01b039091168152602001610195565b61024061048d366004611fa2565b610dc1565b6101ce6104a0366004611e25565b610e38565b6101ce6104b336600461203e565b610e9a565b6104676104c63660046120ca565b610faa565b6001600160401b03811660009081526002602052604081206104ec90610fd3565b92915050565b6000336104fe83610e38565b61052a57604051627a416f60e01b81526001600160401b03841660048201526024015b60405180910390fd5b6001600160401b038316600090815260026020526040902061054c9082610fdd565b1561067657600854604051631517388760e21b81526001600160401b03851660048201526001600160a01b039091169063b7d2b1629073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156105be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105e291906120f6565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0384166024820152604401600060405180830381600087803b15801561063257600080fd5b505af1158015610646573d6000803e3d6000fd5b5050506001600160401b038416600090815260026020526040902061066c915082610fff565b5060019392505050565b50600092915050565b60006004828154811061069457610694612113565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b03169050919050565b6000600360006106d384611014565b81526020810191909152604001600020546001600160401b031692915050565b610700335b600036611052565b61070d828260018061116c565b5050565b6001600160a01b038116600090815260056020526040808220600101549051638d38cd4b60e01b81526201000090910464ffffffffff16600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b906024015b602060405180830381865af415801561078a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ec9190612129565b6107b7336106f8565b61070d828260006001611449565b6107ce336106f8565b61070d8282600180611449565b600054339061010090046001600160a01b031681146108175760405162d1953b60e31b81526001600160a01b0382166004820152602401610521565b816001600160a01b03163b60000361084d576040516361798f2f60e11b81526001600160a01b0383166004820152602401610521565b61070d82611682565b61085f336106f8565b61086882610711565b6108905760405163ba52b0f160e01b81526001600160a01b0383166004820152602401610521565b6001600160a01b0382811660008181526005602052604090819020600101805461ff00191661010086151590810291909117909155600854915163167bd39560e01b8152600481019390935260248301529091169063167bd39590604401600060405180830381600087803b15801561090857600080fd5b505af115801561091c573d6000803e3d6000fd5b505050505050565b60008054600160a81b900460ff1661093c5750600090565b50638fb3603760e01b90565b610951336106f8565b61095a82610e38565b6109825760405163135c79b760e21b81526001600160401b0383166004820152602401610521565b6001600160401b038216600090815260016020818152604092839020909101805461ff0019166101008515150217905581516356db0c1960e11b8152915173__$d53880c81dc91c20799140d711e5ab8718$__9263adb618329260048083019391928290030181865af41580156109fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a219190612146565b6001600160401b03909216600090815260016020819052604090912001805464ffffffffff93909316600160381b0264ffffffffff60381b199093169290921790915550565b6000610a72336106f8565b610a7b83610e38565b610aa357604051636777365b60e01b81526001600160401b0384166004820152602401610521565b6001600160401b03831660009081526001602081905260409091200154610100900460ff1615610af15760405163fe229d5d60e01b81526001600160401b0384166004820152602401610521565b6001600160401b0383166000908152600260205260409020610b139083610fdd565b61067657600854604051631517388760e21b81526001600160401b03851660048201526001600160a01b03909116906325c471a09073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015610b84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba891906120f6565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038516602482015260006044820152606401600060405180830381600087803b158015610bff57600080fd5b505af1158015610c13573d6000803e3d6000fd5b5050506001600160401b0384166000908152600260205260409020610c399150836116de565b50600190506104ec565b6000610c4e336106f8565b610c5783610e38565b610c7f57604051634cee277360e11b81526001600160401b0384166004820152602401610521565b6001600160401b0383166000908152600260205260409020610ca19083610fdd565b1561067657600854604051631517388760e21b81526001600160401b03851660048201526001600160a01b039091169063b7d2b1629073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015610d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3791906120f6565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b0385166024820152604401600060405180830381600087803b158015610d8757600080fd5b505af1158015610d9b573d6000803e3d6000fd5b5050506001600160401b0384166000908152600260205260409020610c39915083610fff565b60005460ff1615610e1f5760405162461bcd60e51b815260206004820152602260248201527f4163636573734d616e616765643a20616c726561647920696e697469616c697a604482015261195960f21b6064820152608401610521565b610e2881611682565b506000805460ff19166001179055565b6001600160401b0381166000908152600160208190526040808320909101549051638d38cd4b60e01b81526201000090910464ffffffffff16600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b9060240161076d565b600854604051631517388760e21b81526001600160401b03841660048201526000916001600160a01b03169063d1f856ee9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015610f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2c91906120f6565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b03851660248201526044016040805180830381865afa158015610f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa2919061216d565b509392505050565b6001600160401b0382166000908152600260205260408120610fcc90836116f3565b9392505050565b60006104ec825490565b6001600160a01b03811660009081526001830160205260408120541515610fcc565b6000610fcc836001600160a01b0384166116ff565b600080829050601f8151111561103f578260405163305a27a960e01b81526004016105219190612097565b805161104a826121a5565b179392505050565b60008061108e6110706000546001600160a01b036101009091041690565b863061108060046000898b6121cc565b611089916121f6565b6117f2565b91509150816111655763ffffffff811615611142576000805460ff60a81b1916600160a81b1790556110ce6000546001600160a01b036101009091041690565b6001600160a01b03166394c7d7ee8686866040518463ffffffff1660e01b81526004016110fd93929190612226565b600060405180830381600087803b15801561111757600080fd5b505af115801561112b573d6000803e3d6000fd5b50506000805460ff60a81b19169055506111659050565b60405162d1953b60e31b81526001600160a01b0386166004820152602401610521565b5050505050565b60006040518060a0016040528061118286611014565b815284151560208201526008546040805163a166aa8960e01b81526001600160a01b038a81166004830152919093019291169063a166aa8990602401602060405180830381865afa1580156111db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ff9190612129565b1515815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561124f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112739190612146565b64ffffffffff16815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec9190612146565b64ffffffffff1681525090508060056000876001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff02191690831515021790555060408201518160010160016101000a81548160ff02191690831515021790555060608201518160010160026101000a81548164ffffffffff021916908364ffffffffff16021790555060808201518160010160076101000a81548164ffffffffff021916908364ffffffffff16021790555090505084600660008360000151815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506007859080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055505050505050565b801561145c5761145a8484846118fe565b505b60006040518060a0016040528061147286611014565b8152602001841515815260200160001515815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af41580156114d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f59190612146565b64ffffffffff16815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561154a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156e9190612146565b64ffffffffff9081169091526001600160401b03968716600081815260016020818152604080842087518082558884015191850180548a85015160608c01516080909c015161ffff1990921694151561ff001916949094176101009415158502176bffffffffffffffffffff00001916620100009b8b169b909b0264ffffffffff60381b19169a909a17600160381b9a9099169990990297909717909755948352600390819052938220805467ffffffffffffffff191684179055600480549182018155918290527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b9181049190910180549190931660080290930a97880219909216969091029590951790945550505050565b60008054610100600160a81b0319166101006001600160a01b038416908102919091179091556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9060200160405180910390a150565b6000610fcc836001600160a01b038416611d6c565b6000610fcc8383611dbb565b600081815260018301602052604081205480156117e8576000611723600183612266565b855490915060009061173790600190612266565b905080821461179c57600086600001828154811061175757611757612113565b906000526020600020015490508087600001848154811061177a5761177a612113565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806117ad576117ad612287565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506104ec565b60009150506104ec565b6040516001600160a01b03848116602483015283811660448301526001600160e01b03198316606483015260009182918291829189169060840160408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251611861919061229d565b600060405180830381855afa9150503d806000811461189c576040519150601f19603f3d011682016040523d82523d6000602084013e6118a1565b606091505b509150915081156118f35760408151106118d357808060200190518101906118c9919061216d565b90945092506118f3565b60208151106118f357808060200190518101906118f09190612129565b93505b505094509492505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260085460408051631d6c8e3f60e21b8152905186926001600160a01b0316916375b238fc9160048083019260209291908290030181865afa158015611972573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061199691906120f6565b6001600160401b0316816001600160401b03161480611a3c5750600860009054906101000a90046001600160a01b03166001600160a01b0316633ca7c02a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2791906120f6565b6001600160401b0316816001600160401b0316145b15611a655760405163981bf42160e01b81526001600160401b0386166004820152602401610521565b6001600160401b038516600090815260016020818152604092839020835160a0810185528154815292015460ff808216151592840192909252610100810490911615158284015264ffffffffff620100008204811660608401819052600160381b9092041660808301529151638d38cd4b60e01b81526004810192909252925073__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b90602401602060405180830381865af4158015611b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b459190612129565b8015611b5957508160200151151583151514155b15611b9657602082015160405162d1cd9360e51b81526001600160401b038716600482015284151560248201529015156044820152606401610521565b828015611bad57506127106001600160401b038216105b15611bd657604051633119b9df60e21b81526001600160401b0386166004820152602401610521565b82158015611bef57506127106001600160401b03821610155b15611c185760405163094fb39160e01b81526001600160401b0386166004820152602401610521565b6000611c2385611014565b9050611c2e81611de5565b600003611c59576040516321ab17ab60e01b81526001600160401b0387166004820152602401610521565b60008181526003602090815260409182902054825163bc1b392d60e01b81529251611cfc936001600160401b039092169273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9263bc1b392d92600480830193928290030181865af4158015611cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cea91906120f6565b6001600160401b039081169116141590565b8015611d2257506000818152600360205260409020546001600160401b03878116911614155b15611d635760008181526003602052604090819020549051631660fb9360e21b81526001600160401b03909116600482015260248101829052604401610521565b50509392505050565b6000818152600183016020526040812054611db3575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104ec565b5060006104ec565b6000826000018281548110611dd257611dd2612113565b9060005260206000200154905092915050565b600060ff8216601f8111156104ec57604051632cd44ac360e21b815260040160405180910390fd5b6001600160401b0381168114611e2257600080fd5b50565b600060208284031215611e3757600080fd5b8135610fcc81611e0d565b600060208284031215611e5457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611e8257600080fd5b81356001600160401b0380821115611e9c57611e9c611e5b565b604051601f8301601f19908116603f01168101908282118183101715611ec457611ec4611e5b565b81604052838152866020858801011115611edd57600080fd5b836020870160208301376000602085830101528094505050505092915050565b600060208284031215611f0f57600080fd5b81356001600160401b03811115611f2557600080fd5b611f3184828501611e71565b949350505050565b80356001600160a01b0381168114611f5057600080fd5b919050565b60008060408385031215611f6857600080fd5b611f7183611f39565b915060208301356001600160401b03811115611f8c57600080fd5b611f9885828601611e71565b9150509250929050565b600060208284031215611fb457600080fd5b610fcc82611f39565b60008060408385031215611fd057600080fd5b8235611f7181611e0d565b8015158114611e2257600080fd5b60008060408385031215611ffc57600080fd5b61200583611f39565b9150602083013561201581611fdb565b809150509250929050565b6000806040838503121561203357600080fd5b823561200581611e0d565b6000806040838503121561205157600080fd5b823561205c81611e0d565b915061206a60208401611f39565b90509250929050565b60005b8381101561208e578181015183820152602001612076565b50506000910152565b60208152600082518060208401526120b6816040850160208701612073565b601f01601f19169190910160400192915050565b600080604083850312156120dd57600080fd5b82356120e881611e0d565b946020939093013593505050565b60006020828403121561210857600080fd5b8151610fcc81611e0d565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561213b57600080fd5b8151610fcc81611fdb565b60006020828403121561215857600080fd5b815164ffffffffff81168114610fcc57600080fd5b6000806040838503121561218057600080fd5b825161218b81611fdb565b602084015190925063ffffffff8116811461201557600080fd5b805160208083015191908110156121c6576000198160200360031b1b821691505b50919050565b600080858511156121dc57600080fd5b838611156121e957600080fd5b5050820193919092039150565b6001600160e01b0319813581811691600485101561221e5780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b818103818111156104ec57634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600082516122af818460208701612073565b919091019291505056fea26469706673582212207c3cfa8878ad1430e029dfbff2aa4723ff1538138ecbb8884a66af0b5a7e022264736f6c63430008140033",
1124
+ "bytecode": "0x608060405234801561001057600080fd5b50613a83806100206000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80635dfa73db11610130578063bc62a0a5116100b8578063d05404431161007c578063d0540443146105a3578063d1f856ee146105ce578063d2192dbf146105e1578063eaf09b3714610614578063f2345aea1461062757600080fd5b8063bc62a0a514610524578063bcfb11b01461054c578063bf7e214f14610575578063c4d66de81461057d578063c6a001791461059057600080fd5b806386892313116100ff578063868923131461049b5780638fb36037146104ae578063b428b0b0146104cf578063b7009613146104e2578063b7d2b1621461051157600080fd5b80635dfa73db146104595780635fa8aad414610462578063605aa10a146104755780637a9e5e4b1461048857600080fd5b80633656481c116101be57806344ec4c301161018257806344ec4c30146103cc5780634a3a1e00146103df578063530dd456146103f25780635511a6f3146104265780635bfa50271461043957600080fd5b80633656481c1461033e57806337f135d714610369578063384c9a5714610386578063392f5f64146103995780633fd85561146103a157600080fd5b8063131021d911610205578063131021d9146102a55780631bdd0cf8146102e257806326decd401461030557806329db8c3d1461031857806330cae1871461032b57600080fd5b806303014974146102375780630c8ae53e1461025d57806312e1ebc51461027257806312f48f1514610292575b600080fd5b61024a61024536600461312e565b61063a565b6040519081526020015b60405180910390f35b61027061026b3660046131ed565b610661565b005b6102856102803660046132ac565b61075c565b6040516102549190613301565b6102706102a0366004613350565b61081a565b6102d560405180604001604052806011815260200170496e7374616e63654f776e6572526f6c6560781b81525081565b60405161025491906133c3565b6102f56102f036600461312e565b610833565b6040519015158152602001610254565b6102f56103133660046132ac565b610b53565b6102706103263660046131ed565b610bc2565b6102706103393660046133f6565b610c9b565b61035161034c36600461342f565b610d97565b6040516001600160a01b039091168152602001610254565b610371600081565b60405163ffffffff9091168152602001610254565b6102f561039436600461312e565b610dc2565b60035461024a565b6103b46103af366004613463565b610e48565b6040516001600160401b039091168152602001610254565b6102706103da366004613350565b610e8d565b6102706103ed36600461347c565b610f38565b6103b461040036600461312e565b6001600160401b0390811660009081526020819052604090206001015461010090041690565b6103b461043436600461342f565b610f4d565b61044c61044736600461312e565b610f7c565b604051610254919061349a565b6103b461271081565b610270610470366004613350565b611042565b6102f56104833660046132ac565b611057565b6102706104963660046132ac565b6110d0565b6102706104a93660046134fe565b611153565b6104b661128d565b6040516001600160e01b03199091168152602001610254565b6102f56104dd36600461352c565b6112c6565b6104f56104f0366004613572565b611575565b60408051921515835263ffffffff909116602083015201610254565b6102f561051f36600461352c565b6115fa565b6102d56040518060400160405280600981526020016841646d696e526f6c6560b81b81525081565b6102d56040518060400160405280600a8152602001695075626c6963526f6c6560b01b81525081565b610351611758565b61027061058b3660046132ac565b611774565b6102f561059e36600461312e565b611ad1565b6102d56040518060400160405280600c81526020016b496e7374616e6365526f6c6560a01b81525081565b6102f56105dc36600461352c565b611b32565b6105f46105ef3660046135b9565b611c2a565b604080516001600160401b03938416815292909116602083015201610254565b610351610622366004613612565b611c78565b61027061063536600461363e565b611ca1565b6001600160401b038116600090815260016020526040812061065b90611cc5565b92915050565b61066e335b600036611ccf565b600061067985611dcd565b6000818152600660205260409020549091506001600160a01b031660036001600160a01b03821660009081526005602052604090206001015460ff1660038111156106c6576106c66132c9565b036106f25780600360405163ecec011f60e01b81526004016106e99291906136a1565b60405180910390fd5b60036001600160401b03841660009081526020819052604090206001015460ff166003811115610724576107246132c9565b0361074757826003604051630bb1a0c760e01b81526004016106e99291906136be565b6107548183878787611e0b565b505050505050565b6040805160a080820183526000808352602080840182905283850182905260608401829052608084018290526001600160a01b038616825260058152908490208451928301909452835482526001840154929391929083019060ff1660038111156107c9576107c96132c9565b60038111156107da576107da6132c9565b81526001919091015460ff6101008204161515602083015264ffffffffff62010000820481166040840152600160381b9091041660609091015292915050565b61082333610666565b61082f82826001611ede565b5050565b6000816000610862826001600160401b0390811660009081526020819052604090206001015461010090041690565b600854604051631517388760e21b81526001600160401b038316600482015291925060009182916001600160a01b03169063d1f856ee9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156108d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f991906136db565b336040518363ffffffff1660e01b81526004016109179291906136f8565b6040805180830381865afa158015610933573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610957919061371a565b915091508063ffffffff1660001461097157610971613752565b816109ac57335b6040516366c7cee960e01b81526001600160a01b0390911660048201526001600160401b03851660248201526044016106e9565b6109b586611ad1565b6109dd5760405163f5edec3f60e01b81526001600160401b03871660048201526024016106e9565b6001600160401b03861660009081526001602052604081206109fe90611cc5565b905060005b81811015610b48576001600160401b0388166000908152600160205260408120610a2d9083612322565b6001600160401b038a166000908152600160205260409020909150610a52908261232e565b50600854604051631517388760e21b81526001600160401b038b1660048201526001600160a01b039091169063b7d2b1629073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015610ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae491906136db565b836040518363ffffffff1660e01b8152600401610b029291906136f8565b600060405180830381600087803b158015610b1c57600080fd5b505af1158015610b30573d6000803e3d6000fd5b50505050508080610b409061377e565b915050610a03565b505050505050919050565b60085460405163a166aa8960e01b81526001600160a01b038381166004830152600092169063a166aa8990602401602060405180830381865afa158015610b9e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065b9190613797565b610bcb33610666565b6000610bd685611dcd565b6000818152600660205260409020549091506001600160a01b031660016001600160a01b03821660009081526005602052604090206001015460ff166003811115610c2357610c236132c9565b03610c465780600160405163ecec011f60e01b81526004016106e99291906136a1565b60016001600160401b03841660009081526020819052604090206001015460ff166003811115610c7857610c786132c9565b0361074757826001604051630bb1a0c760e01b81526004016106e99291906136be565b610ca433610666565b610cad82611ad1565b610cd55760405163f5edec3f60e01b81526001600160401b03831660048201526024016106e9565b60016001600160401b03831660009081526020819052604090206001015460ff166003811115610d0757610d076132c9565b03610d2a57816001604051630bb1a0c760e01b81526004016106e99291906136be565b610d3381611ad1565b610d5b5760405163f5edec3f60e01b81526001600160401b03821660048201526024016106e9565b6001600160401b0391821660009081526020819052604090206001018054929091166101000268ffffffffffffffff0019909216919091179055565b600080610da383611dcd565b6000908152600660205260409020546001600160a01b03169392505050565b6001600160401b038116600090815260208190526040812060019081015460ff1690816003811115610df657610df66132c9565b1480610e1357506002816003811115610e1157610e116132c9565b145b15610e35578281604051630bb1a0c760e01b81526004016106e99291906136be565b33610e408482612343565b949350505050565b600060038281548110610e5d57610e5d6137b4565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b03169050919050565b610e9633610666565b60095460405163c3c5a54760e01b81526001600160a01b0384811660048301529091169063c3c5a54790602401602060405180830381865afa158015610ee0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f049190613797565b610f2c576040516306ad3ea560e51b81526001600160a01b03831660048201526024016106e9565b61082f82826002611ede565b610f4133610666565b61082f8282600161247d565b600060026000610f5c84611dcd565b81526020810191909152604001600020546001600160401b031692915050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526001600160401b03821660009081526020818152604091829020825160a08101909352805483526001810154909183019060ff166003811115610fec57610fec6132c9565b6003811115610ffd57610ffd6132c9565b8152600191909101546001600160401b03610100820416602083015264ffffffffff600160481b820481166040840152600160701b9091041660609091015292915050565b61104b33610666565b61082f82826003611ede565b6001600160a01b038116600090815260056020526040808220600101549051638d38cd4b60e01b81526201000090910464ffffffffff16600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b906024015b602060405180830381865af4158015610b9e573d6000803e3d6000fd5b336110d9611758565b6001600160a01b0316816001600160a01b0316146111145760405162d1953b60e31b81526001600160a01b03821660048201526024016106e9565b816001600160a01b03163b60000361114a576040516361798f2f60e11b81526001600160a01b03831660048201526024016106e9565b61082f8261283e565b61115c33610666565b6001600160a01b03821660008181526005602052604090206001015460ff1690158061119957506000816003811115611197576111976132c9565b145b156111c25760405163b8c1f4e560e01b81526001600160a01b03841660048201526024016106e9565b60018160038111156111d6576111d66132c9565b036111f857828160405163ecec011f60e01b81526004016106e99291906136a1565b6001600160a01b0383811660008181526005602052604090819020600101805461ff00191661010087151590810291909117909155600854915163167bd39560e01b8152600481019390935260248301529091169063167bd39590604401600060405180830381600087803b15801561127057600080fd5b505af1158015611284573d6000803e3d6000fd5b50505050505050565b600080516020613a2e833981519152805460009190600160a01b900460ff166112b75760006112c0565b638fb3603760e01b5b91505090565b60008260006112f5826001600160401b0390811660009081526020819052604090206001015461010090041690565b600854604051631517388760e21b81526001600160401b038316600482015291925060009182916001600160a01b03169063d1f856ee9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015611368573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138c91906136db565b336040518363ffffffff1660e01b81526004016113aa9291906136f8565b6040805180830381865afa1580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea919061371a565b915091508063ffffffff1660001461140457611404613752565b8161140f5733610978565b61141887611ad1565b6114405760405163f5edec3f60e01b81526001600160401b03881660048201526024016106e9565b6001600160401b0387166000908152600160205260409020611462908761289f565b9450841561156b57600854604051631517388760e21b81526001600160401b03891660048201526001600160a01b03909116906325c471a09073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156114d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fb91906136db565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038916602482015260006044820152606401600060405180830381600087803b15801561155257600080fd5b505af1158015611566573d6000803e3d6000fd5b505050505b5050505092915050565b60085460405163b700961360e01b815260009182916001600160a01b039091169063b7009613906115ae908890889088906004016137ca565b6040805180830381865afa1580156115ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ee919061371a565b91509150935093915050565b6000826000611629826001600160401b0390811660009081526020819052604090206001015461010090041690565b600854604051631517388760e21b81526001600160401b038316600482015291925060009182916001600160a01b03169063d1f856ee9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af415801561169c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c091906136db565b336040518363ffffffff1660e01b81526004016116de9291906136f8565b6040805180830381865afa1580156116fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171e919061371a565b915091508063ffffffff1660001461173857611738613752565b816117435733610978565b61174d8787612343565b979650505050505050565b600080516020613a2e833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156117b95750825b90506000826001600160401b031660011480156117d55750303b155b9050811580156117e3575080155b156118015760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561182b57845460ff60401b1916600160401b1785555b60008690506000816001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611870573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189491906137f7565b90506000826001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fa91906137f7565b9050611905816128b4565b600880546001600160a01b038084166001600160a01b03199283161790925560098054928516929091169190911790556004805467ffffffffffffffff191661271017905561197e6119556128c8565b6040518060400160405280600981526020016841646d696e526f6c6560b81b815250600161247d565b6119b3611989612945565b6040518060400160405280600a8152602001695075626c6963526f6c6560b01b815250600161247d565b6119ea6119be612986565b6040518060400160405280600c81526020016b496e7374616e6365526f6c6560a01b815250600161247d565b611a266119f56129c2565b60405180604001604052806011815260200170496e7374616e63654f776e6572526f6c6560781b815250600261247d565b611a5b60016000611a356128c8565b6001600160401b03166001600160401b031681526020019081526020016000203061289f565b50611a6d611a67612986565b8a6112c6565b50611a81611a796129c2565b610339612986565b505050831561075457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b6001600160401b038116600090815260208190526040808220600101549051638d38cd4b60e01b8152600160481b90910464ffffffffff16600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b906024016110b3565b600854604051631517388760e21b81526001600160401b03841660048201526000916001600160a01b03169063d1f856ee9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015611ba0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc491906136db565b846040518363ffffffff1660e01b8152600401611be29291906136f8565b6040805180830381865afa158015611bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c22919061371a565b509392505050565b600080611c3633610666565b611c3e6129fe565b9092509050611c4f8285600361247d565b611c5b8184600361247d565b611c658282610c9b565b611c71816103396129c2565b9250929050565b6001600160401b0382166000908152600160205260408120611c9a9083612322565b9392505050565b611caa33610666565b611cb68383600261247d565b611cc08382610c9b565b505050565b600061065b825490565b600080516020613a2e833981519152600080611d0a611cec611758565b8730611cfc600460008a8c613814565b611d059161383e565b612b40565b91509150816107545763ffffffff811615611daa57825460ff60a01b1916600160a01b178355611d38611758565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611d679392919061386e565b600060405180830381600087803b158015611d8157600080fd5b505af1158015611d95573d6000803e3d6000fd5b5050845460ff60a01b19168555506107549050565b60405162d1953b60e31b81526001600160a01b03871660048201526024016106e9565b600080829050601f81511115611df8578260405163305a27a960e01b81526004016106e991906133c3565b8051611e03826138ae565b179392505050565b6001600160a01b038516611e3d5760405163b8c1f4e560e01b81526001600160a01b03861660048201526024016106e9565b611e4681611ad1565b611e6e5760405163f5edec3f60e01b81526001600160401b03821660048201526024016106e9565b6008546040516308d6122d60e01b815282916001600160a01b0316906308d6122d90611ea49089908890889087906004016138d5565b600060405180830381600087803b158015611ebe57600080fd5b505af1158015611ed2573d6000803e3d6000fd5b50505050505050505050565b6000611ee983611dcd565b9050611ef6848284612c37565b6001600160a01b03841660009081526005602052604090819020600101549051638d38cd4b60e01b81526201000090910464ffffffffff16600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b90602401602060405180830381865af4158015611f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f939190613797565b15611fd4576001600160a01b03841660008181526005602052604090819020549051632969db5760e11b8152600481019290925260248201526044016106e9565b6000818152600660205260409020546001600160a01b03161561203557600081815260066020526040908190205490516361c0558f60e01b81526001600160a01b0380871660048301529091166024820152604481018290526064016106e9565b60085460405163a166aa8960e01b81526001600160a01b038681166004830152600092169063a166aa8990602401602060405180830381865afa158015612080573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a49190613797565b90506040518060a001604052808381526020018460038111156120c9576120c96132c9565b8152602001821515815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561211f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121439190613948565b64ffffffffff16815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bc9190613948565b64ffffffffff1690526001600160a01b0386166000908152600560209081526040909120825181559082015160018083018054909160ff199091169083600381111561220a5761220a6132c9565b021790555060408281015160019283018054606086015160809096015166ffffffffffff00199091166101009315159390930266ffffffffff00001916929092176201000064ffffffffff96871602176bffffffffff000000000000001916600160381b9590921694909402179092556000848152600660205282812080546001600160a01b03199081166001600160a01b038b169081179092556007805494850181559092527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890920180549091169091179055517f1b6c9e4eef57701705db39664c8777cd8c15bb0f52556130a44b55e30cd501e89061231390879085908790869061396f565b60405180910390a15050505050565b6000611c9a8383612d23565b6000611c9a836001600160a01b038416612d4d565b600061234e83611ad1565b6123765760405163f5edec3f60e01b81526001600160401b03841660048201526024016106e9565b6001600160401b0383166000908152600160205260409020612398908361232e565b9050801561065b57600854604051631517388760e21b81526001600160401b03851660048201526001600160a01b039091169063b7d2b1629073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af415801561240d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243191906136db565b846040518363ffffffff1660e01b815260040161244f9291906136f8565b600060405180830381600087803b15801561246957600080fd5b505af115801561156b573d6000803e3d6000fd5b600061248883611dcd565b9050612495848284612e47565b61249e84611ad1565b156124c7576040516330907ba960e01b81526001600160401b03851660048201526024016106e9565b6000818152600260205260409081902054905163a42e52e960e01b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063a42e52e990602401602060405180830381865af4158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190613797565b1561259d576000818152600260205260409081902054905163af48012f60e01b81526001600160401b0380871660048301529091166024820152604481018290526064016106e9565b6040518060a001604052808281526020018360038111156125c0576125c06132c9565b81526020016125cd6128c8565b6001600160401b0316815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126489190613948565b64ffffffffff16815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561269d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c19190613948565b64ffffffffff1690526001600160401b038516600090815260208181526040909120825181559082015160018083018054909160ff199091169083600381111561270d5761270d6132c9565b02179055506040828101516001928301805460608601516080909601516dffffffffffffffffffffffffff00199091166101006001600160401b0394851681026dffffffffff000000000000000000191691909117600160481b64ffffffffff988916021764ffffffffff60701b1916600160701b979092169690960217905560008581526002602052828120805467ffffffffffffffff19168a8416908117909155600380549586018155918290527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600486040180549590921660080290950a918202199093169302929092179055517f946b8e9c3ff1c1ed025292a56da516b43a836f1a9f35bc2ee6de53d879d6d6b090612830908690849086906139a4565b60405180910390a150505050565b600080516020613a2e83398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6000611c9a836001600160a01b038416613036565b6128bc613085565b6128c5816130d0565b50565b6040516368aebf7b60e01b81526000600482018190529073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024015b602060405180830381865af415801561291c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294091906136db565b905090565b6040516368aebf7b60e01b81526001600160401b03600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024016128ff565b6040516368aebf7b60e01b8152610a28600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024016128ff565b6040516368aebf7b60e01b815261076c600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024016128ff565b60045460009081906001600160401b031681612a1b8260016139c8565b9050612a288260026139c8565b6004805467ffffffffffffffff19166001600160401b039283161781556040516368aebf7b60e01b81529184169082015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af4158015612a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab991906136db565b6040516368aebf7b60e01b81526001600160401b038316600482015290945073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af4158015612b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3891906136db565b925050509091565b600080600080876001600160a01b0316878787604051602401612b65939291906137ca565b60408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251612b9a91906139e8565b600060405180830381855afa9150503d8060008114612bd5576040519150601f19603f3d011682016040523d82523d6000602084013e612bda565b606091505b50915091508115612c2c576040815110612c0c5780806020019051810190612c02919061371a565b9094509250612c2c565b6020815110612c2c5780806020019051810190612c299190613797565b93505b505094509492505050565b6000836001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9b91906137f7565b9050612ca5611758565b6001600160a01b0316816001600160a01b031614612ce957604051631db0625160e01b81526001600160a01b038086166004830152821660248201526044016106e9565b612cf2836130e1565b600003612d1d5760405163a12ddedf60e01b81526001600160a01b03851660048201526024016106e9565b50505050565b6000826000018281548110612d3a57612d3a6137b4565b9060005260206000200154905092915050565b60008181526001830160205260408120548015612e36576000612d71600183613a04565b8554909150600090612d8590600190613a04565b9050808214612dea576000866000018281548110612da557612da56137b4565b9060005260206000200154905080876000018481548110612dc857612dc86137b4565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612dfb57612dfb613a17565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061065b565b600091505061065b565b5092915050565b604051631517388760e21b81526001600160401b038416600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015612ea2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec691906136db565b6001600160401b031690506003826003811115612ee557612ee56132c9565b148015612ef3575061271081105b15612f1c5760405163be511cc160e01b81526001600160401b03851660048201526024016106e9565b6003826003811115612f3057612f306132c9565b14158015612f4057506127108110155b8015612fd95750612f4f612945565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015612fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcc91906136db565b6001600160401b03168114155b1561300257604051630e08ff2d60e11b81526001600160401b03851660048201526024016106e9565b61300b836130e1565b600003612d1d57604051631367e80d60e31b81526001600160401b03851660048201526024016106e9565b600081815260018301602052604081205461307d5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561065b565b50600061065b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166130ce57604051631afcd79f60e31b815260040160405180910390fd5b565b6130d8613085565b6128c58161283e565b600060ff8216601f81111561065b57604051632cd44ac360e21b815260040160405180910390fd5b6001600160401b03811681146128c557600080fd5b803561312981613109565b919050565b60006020828403121561314057600080fd5b8135611c9a81613109565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261317257600080fd5b81356001600160401b038082111561318c5761318c61314b565b604051601f8301601f19908116603f011681019082821181831017156131b4576131b461314b565b816040528381528660208588010111156131cd57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806060858703121561320357600080fd5b84356001600160401b038082111561321a57600080fd5b61322688838901613161565b9550602087013591508082111561323c57600080fd5b818701915087601f83011261325057600080fd5b81358181111561325f57600080fd5b8860208260051b850101111561327457600080fd5b60208301955080945050505061328c6040860161311e565b905092959194509250565b6001600160a01b03811681146128c557600080fd5b6000602082840312156132be57600080fd5b8135611c9a81613297565b634e487b7160e01b600052602160045260246000fd5b600481106132fd57634e487b7160e01b600052602160045260246000fd5b9052565b8151815260208083015160a083019161331c908401826132df565b50604083015115156040830152606083015164ffffffffff8082166060850152806080860151166080850152505092915050565b6000806040838503121561336357600080fd5b823561336e81613297565b915060208301356001600160401b0381111561338957600080fd5b61339585828601613161565b9150509250929050565b60005b838110156133ba5781810151838201526020016133a2565b50506000910152565b60208152600082518060208401526133e281604085016020870161339f565b601f01601f19169190910160400192915050565b6000806040838503121561340957600080fd5b823561341481613109565b9150602083013561342481613109565b809150509250929050565b60006020828403121561344157600080fd5b81356001600160401b0381111561345757600080fd5b610e4084828501613161565b60006020828403121561347557600080fd5b5035919050565b6000806040838503121561348f57600080fd5b823561336e81613109565b8151815260208083015160a08301916134b5908401826132df565b506001600160401b036040840151166040830152606083015164ffffffffff8082166060850152806080860151166080850152505092915050565b80151581146128c557600080fd5b6000806040838503121561351157600080fd5b823561351c81613297565b91506020830135613424816134f0565b6000806040838503121561353f57600080fd5b823561354a81613109565b9150602083013561342481613297565b80356001600160e01b03198116811461312957600080fd5b60008060006060848603121561358757600080fd5b833561359281613297565b925060208401356135a281613297565b91506135b06040850161355a565b90509250925092565b600080604083850312156135cc57600080fd5b82356001600160401b03808211156135e357600080fd5b6135ef86838701613161565b9350602085013591508082111561360557600080fd5b5061339585828601613161565b6000806040838503121561362557600080fd5b823561363081613109565b946020939093013593505050565b60008060006060848603121561365357600080fd5b833561365e81613109565b925060208401356001600160401b0381111561367957600080fd5b61368586828701613161565b925050604084013561369681613109565b809150509250925092565b6001600160a01b038316815260408101611c9a60208301846132df565b6001600160401b038316815260408101611c9a60208301846132df565b6000602082840312156136ed57600080fd5b8151611c9a81613109565b6001600160401b039290921682526001600160a01b0316602082015260400190565b6000806040838503121561372d57600080fd5b8251613738816134f0565b602084015190925063ffffffff8116811461342457600080fd5b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161379057613790613768565b5060010190565b6000602082840312156137a957600080fd5b8151611c9a816134f0565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b60006020828403121561380957600080fd5b8151611c9a81613297565b6000808585111561382457600080fd5b8386111561383157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156138665780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b805160208083015191908110156138cf576000198160200360031b1b821691505b50919050565b6001600160a01b038516815260606020808301829052908201849052600090859060808401835b87811015613929576001600160e01b03196139168561355a565b16825292820192908201906001016138fc565b508093505050506001600160401b038316604083015295945050505050565b60006020828403121561395a57600080fd5b815164ffffffffff81168114611c9a57600080fd5b6001600160a01b0385168152602081018490526080810161399360408301856132df565b821515606083015295945050505050565b6001600160401b03841681526020810183905260608101610e4060408301846132df565b6001600160401b03818116838216019080821115612e4057612e40613768565b600082516139fa81846020870161339f565b9190910192915050565b8181038181111561065b5761065b613768565b634e487b7160e01b600052603160045260246000fdfef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a2646970667358221220a12730de3560cd621ff7488dacb5e00d0dca5f9a99dfcfddf1fcd5e304fe6a7364736f6c63430008140033",
1125
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102325760003560e01c80635dfa73db11610130578063bc62a0a5116100b8578063d05404431161007c578063d0540443146105a3578063d1f856ee146105ce578063d2192dbf146105e1578063eaf09b3714610614578063f2345aea1461062757600080fd5b8063bc62a0a514610524578063bcfb11b01461054c578063bf7e214f14610575578063c4d66de81461057d578063c6a001791461059057600080fd5b806386892313116100ff578063868923131461049b5780638fb36037146104ae578063b428b0b0146104cf578063b7009613146104e2578063b7d2b1621461051157600080fd5b80635dfa73db146104595780635fa8aad414610462578063605aa10a146104755780637a9e5e4b1461048857600080fd5b80633656481c116101be57806344ec4c301161018257806344ec4c30146103cc5780634a3a1e00146103df578063530dd456146103f25780635511a6f3146104265780635bfa50271461043957600080fd5b80633656481c1461033e57806337f135d714610369578063384c9a5714610386578063392f5f64146103995780633fd85561146103a157600080fd5b8063131021d911610205578063131021d9146102a55780631bdd0cf8146102e257806326decd401461030557806329db8c3d1461031857806330cae1871461032b57600080fd5b806303014974146102375780630c8ae53e1461025d57806312e1ebc51461027257806312f48f1514610292575b600080fd5b61024a61024536600461312e565b61063a565b6040519081526020015b60405180910390f35b61027061026b3660046131ed565b610661565b005b6102856102803660046132ac565b61075c565b6040516102549190613301565b6102706102a0366004613350565b61081a565b6102d560405180604001604052806011815260200170496e7374616e63654f776e6572526f6c6560781b81525081565b60405161025491906133c3565b6102f56102f036600461312e565b610833565b6040519015158152602001610254565b6102f56103133660046132ac565b610b53565b6102706103263660046131ed565b610bc2565b6102706103393660046133f6565b610c9b565b61035161034c36600461342f565b610d97565b6040516001600160a01b039091168152602001610254565b610371600081565b60405163ffffffff9091168152602001610254565b6102f561039436600461312e565b610dc2565b60035461024a565b6103b46103af366004613463565b610e48565b6040516001600160401b039091168152602001610254565b6102706103da366004613350565b610e8d565b6102706103ed36600461347c565b610f38565b6103b461040036600461312e565b6001600160401b0390811660009081526020819052604090206001015461010090041690565b6103b461043436600461342f565b610f4d565b61044c61044736600461312e565b610f7c565b604051610254919061349a565b6103b461271081565b610270610470366004613350565b611042565b6102f56104833660046132ac565b611057565b6102706104963660046132ac565b6110d0565b6102706104a93660046134fe565b611153565b6104b661128d565b6040516001600160e01b03199091168152602001610254565b6102f56104dd36600461352c565b6112c6565b6104f56104f0366004613572565b611575565b60408051921515835263ffffffff909116602083015201610254565b6102f561051f36600461352c565b6115fa565b6102d56040518060400160405280600981526020016841646d696e526f6c6560b81b81525081565b6102d56040518060400160405280600a8152602001695075626c6963526f6c6560b01b81525081565b610351611758565b61027061058b3660046132ac565b611774565b6102f561059e36600461312e565b611ad1565b6102d56040518060400160405280600c81526020016b496e7374616e6365526f6c6560a01b81525081565b6102f56105dc36600461352c565b611b32565b6105f46105ef3660046135b9565b611c2a565b604080516001600160401b03938416815292909116602083015201610254565b610351610622366004613612565b611c78565b61027061063536600461363e565b611ca1565b6001600160401b038116600090815260016020526040812061065b90611cc5565b92915050565b61066e335b600036611ccf565b600061067985611dcd565b6000818152600660205260409020549091506001600160a01b031660036001600160a01b03821660009081526005602052604090206001015460ff1660038111156106c6576106c66132c9565b036106f25780600360405163ecec011f60e01b81526004016106e99291906136a1565b60405180910390fd5b60036001600160401b03841660009081526020819052604090206001015460ff166003811115610724576107246132c9565b0361074757826003604051630bb1a0c760e01b81526004016106e99291906136be565b6107548183878787611e0b565b505050505050565b6040805160a080820183526000808352602080840182905283850182905260608401829052608084018290526001600160a01b038616825260058152908490208451928301909452835482526001840154929391929083019060ff1660038111156107c9576107c96132c9565b60038111156107da576107da6132c9565b81526001919091015460ff6101008204161515602083015264ffffffffff62010000820481166040840152600160381b9091041660609091015292915050565b61082333610666565b61082f82826001611ede565b5050565b6000816000610862826001600160401b0390811660009081526020819052604090206001015461010090041690565b600854604051631517388760e21b81526001600160401b038316600482015291925060009182916001600160a01b03169063d1f856ee9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156108d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f991906136db565b336040518363ffffffff1660e01b81526004016109179291906136f8565b6040805180830381865afa158015610933573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610957919061371a565b915091508063ffffffff1660001461097157610971613752565b816109ac57335b6040516366c7cee960e01b81526001600160a01b0390911660048201526001600160401b03851660248201526044016106e9565b6109b586611ad1565b6109dd5760405163f5edec3f60e01b81526001600160401b03871660048201526024016106e9565b6001600160401b03861660009081526001602052604081206109fe90611cc5565b905060005b81811015610b48576001600160401b0388166000908152600160205260408120610a2d9083612322565b6001600160401b038a166000908152600160205260409020909150610a52908261232e565b50600854604051631517388760e21b81526001600160401b038b1660048201526001600160a01b039091169063b7d2b1629073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015610ac0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae491906136db565b836040518363ffffffff1660e01b8152600401610b029291906136f8565b600060405180830381600087803b158015610b1c57600080fd5b505af1158015610b30573d6000803e3d6000fd5b50505050508080610b409061377e565b915050610a03565b505050505050919050565b60085460405163a166aa8960e01b81526001600160a01b038381166004830152600092169063a166aa8990602401602060405180830381865afa158015610b9e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065b9190613797565b610bcb33610666565b6000610bd685611dcd565b6000818152600660205260409020549091506001600160a01b031660016001600160a01b03821660009081526005602052604090206001015460ff166003811115610c2357610c236132c9565b03610c465780600160405163ecec011f60e01b81526004016106e99291906136a1565b60016001600160401b03841660009081526020819052604090206001015460ff166003811115610c7857610c786132c9565b0361074757826001604051630bb1a0c760e01b81526004016106e99291906136be565b610ca433610666565b610cad82611ad1565b610cd55760405163f5edec3f60e01b81526001600160401b03831660048201526024016106e9565b60016001600160401b03831660009081526020819052604090206001015460ff166003811115610d0757610d076132c9565b03610d2a57816001604051630bb1a0c760e01b81526004016106e99291906136be565b610d3381611ad1565b610d5b5760405163f5edec3f60e01b81526001600160401b03821660048201526024016106e9565b6001600160401b0391821660009081526020819052604090206001018054929091166101000268ffffffffffffffff0019909216919091179055565b600080610da383611dcd565b6000908152600660205260409020546001600160a01b03169392505050565b6001600160401b038116600090815260208190526040812060019081015460ff1690816003811115610df657610df66132c9565b1480610e1357506002816003811115610e1157610e116132c9565b145b15610e35578281604051630bb1a0c760e01b81526004016106e99291906136be565b33610e408482612343565b949350505050565b600060038281548110610e5d57610e5d6137b4565b90600052602060002090600491828204019190066008029054906101000a90046001600160401b03169050919050565b610e9633610666565b60095460405163c3c5a54760e01b81526001600160a01b0384811660048301529091169063c3c5a54790602401602060405180830381865afa158015610ee0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f049190613797565b610f2c576040516306ad3ea560e51b81526001600160a01b03831660048201526024016106e9565b61082f82826002611ede565b610f4133610666565b61082f8282600161247d565b600060026000610f5c84611dcd565b81526020810191909152604001600020546001600160401b031692915050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526001600160401b03821660009081526020818152604091829020825160a08101909352805483526001810154909183019060ff166003811115610fec57610fec6132c9565b6003811115610ffd57610ffd6132c9565b8152600191909101546001600160401b03610100820416602083015264ffffffffff600160481b820481166040840152600160701b9091041660609091015292915050565b61104b33610666565b61082f82826003611ede565b6001600160a01b038116600090815260056020526040808220600101549051638d38cd4b60e01b81526201000090910464ffffffffff16600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b906024015b602060405180830381865af4158015610b9e573d6000803e3d6000fd5b336110d9611758565b6001600160a01b0316816001600160a01b0316146111145760405162d1953b60e31b81526001600160a01b03821660048201526024016106e9565b816001600160a01b03163b60000361114a576040516361798f2f60e11b81526001600160a01b03831660048201526024016106e9565b61082f8261283e565b61115c33610666565b6001600160a01b03821660008181526005602052604090206001015460ff1690158061119957506000816003811115611197576111976132c9565b145b156111c25760405163b8c1f4e560e01b81526001600160a01b03841660048201526024016106e9565b60018160038111156111d6576111d66132c9565b036111f857828160405163ecec011f60e01b81526004016106e99291906136a1565b6001600160a01b0383811660008181526005602052604090819020600101805461ff00191661010087151590810291909117909155600854915163167bd39560e01b8152600481019390935260248301529091169063167bd39590604401600060405180830381600087803b15801561127057600080fd5b505af1158015611284573d6000803e3d6000fd5b50505050505050565b600080516020613a2e833981519152805460009190600160a01b900460ff166112b75760006112c0565b638fb3603760e01b5b91505090565b60008260006112f5826001600160401b0390811660009081526020819052604090206001015461010090041690565b600854604051631517388760e21b81526001600160401b038316600482015291925060009182916001600160a01b03169063d1f856ee9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015611368573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138c91906136db565b336040518363ffffffff1660e01b81526004016113aa9291906136f8565b6040805180830381865afa1580156113c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ea919061371a565b915091508063ffffffff1660001461140457611404613752565b8161140f5733610978565b61141887611ad1565b6114405760405163f5edec3f60e01b81526001600160401b03881660048201526024016106e9565b6001600160401b0387166000908152600160205260409020611462908761289f565b9450841561156b57600854604051631517388760e21b81526001600160401b03891660048201526001600160a01b03909116906325c471a09073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af41580156114d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114fb91906136db565b6040516001600160e01b031960e084901b1681526001600160401b0390911660048201526001600160a01b038916602482015260006044820152606401600060405180830381600087803b15801561155257600080fd5b505af1158015611566573d6000803e3d6000fd5b505050505b5050505092915050565b60085460405163b700961360e01b815260009182916001600160a01b039091169063b7009613906115ae908890889088906004016137ca565b6040805180830381865afa1580156115ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ee919061371a565b91509150935093915050565b6000826000611629826001600160401b0390811660009081526020819052604090206001015461010090041690565b600854604051631517388760e21b81526001600160401b038316600482015291925060009182916001600160a01b03169063d1f856ee9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af415801561169c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c091906136db565b336040518363ffffffff1660e01b81526004016116de9291906136f8565b6040805180830381865afa1580156116fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171e919061371a565b915091508063ffffffff1660001461173857611738613752565b816117435733610978565b61174d8787612343565b979650505050505050565b600080516020613a2e833981519152546001600160a01b031690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156117b95750825b90506000826001600160401b031660011480156117d55750303b155b9050811580156117e3575080155b156118015760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561182b57845460ff60401b1916600160401b1785555b60008690506000816001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015611870573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189491906137f7565b90506000826001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fa91906137f7565b9050611905816128b4565b600880546001600160a01b038084166001600160a01b03199283161790925560098054928516929091169190911790556004805467ffffffffffffffff191661271017905561197e6119556128c8565b6040518060400160405280600981526020016841646d696e526f6c6560b81b815250600161247d565b6119b3611989612945565b6040518060400160405280600a8152602001695075626c6963526f6c6560b01b815250600161247d565b6119ea6119be612986565b6040518060400160405280600c81526020016b496e7374616e6365526f6c6560a01b815250600161247d565b611a266119f56129c2565b60405180604001604052806011815260200170496e7374616e63654f776e6572526f6c6560781b815250600261247d565b611a5b60016000611a356128c8565b6001600160401b03166001600160401b031681526020019081526020016000203061289f565b50611a6d611a67612986565b8a6112c6565b50611a81611a796129c2565b610339612986565b505050831561075457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b6001600160401b038116600090815260208190526040808220600101549051638d38cd4b60e01b8152600160481b90910464ffffffffff16600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b906024016110b3565b600854604051631517388760e21b81526001600160401b03841660048201526000916001600160a01b03169063d1f856ee9073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015611ba0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bc491906136db565b846040518363ffffffff1660e01b8152600401611be29291906136f8565b6040805180830381865afa158015611bfe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c22919061371a565b509392505050565b600080611c3633610666565b611c3e6129fe565b9092509050611c4f8285600361247d565b611c5b8184600361247d565b611c658282610c9b565b611c71816103396129c2565b9250929050565b6001600160401b0382166000908152600160205260408120611c9a9083612322565b9392505050565b611caa33610666565b611cb68383600261247d565b611cc08382610c9b565b505050565b600061065b825490565b600080516020613a2e833981519152600080611d0a611cec611758565b8730611cfc600460008a8c613814565b611d059161383e565b612b40565b91509150816107545763ffffffff811615611daa57825460ff60a01b1916600160a01b178355611d38611758565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401611d679392919061386e565b600060405180830381600087803b158015611d8157600080fd5b505af1158015611d95573d6000803e3d6000fd5b5050845460ff60a01b19168555506107549050565b60405162d1953b60e31b81526001600160a01b03871660048201526024016106e9565b600080829050601f81511115611df8578260405163305a27a960e01b81526004016106e991906133c3565b8051611e03826138ae565b179392505050565b6001600160a01b038516611e3d5760405163b8c1f4e560e01b81526001600160a01b03861660048201526024016106e9565b611e4681611ad1565b611e6e5760405163f5edec3f60e01b81526001600160401b03821660048201526024016106e9565b6008546040516308d6122d60e01b815282916001600160a01b0316906308d6122d90611ea49089908890889087906004016138d5565b600060405180830381600087803b158015611ebe57600080fd5b505af1158015611ed2573d6000803e3d6000fd5b50505050505050505050565b6000611ee983611dcd565b9050611ef6848284612c37565b6001600160a01b03841660009081526005602052604090819020600101549051638d38cd4b60e01b81526201000090910464ffffffffff16600482015273__$d53880c81dc91c20799140d711e5ab8718$__90638d38cd4b90602401602060405180830381865af4158015611f6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f939190613797565b15611fd4576001600160a01b03841660008181526005602052604090819020549051632969db5760e11b8152600481019290925260248201526044016106e9565b6000818152600660205260409020546001600160a01b03161561203557600081815260066020526040908190205490516361c0558f60e01b81526001600160a01b0380871660048301529091166024820152604481018290526064016106e9565b60085460405163a166aa8960e01b81526001600160a01b038681166004830152600092169063a166aa8990602401602060405180830381865afa158015612080573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a49190613797565b90506040518060a001604052808381526020018460038111156120c9576120c96132c9565b8152602001821515815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561211f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121439190613948565b64ffffffffff16815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bc9190613948565b64ffffffffff1690526001600160a01b0386166000908152600560209081526040909120825181559082015160018083018054909160ff199091169083600381111561220a5761220a6132c9565b021790555060408281015160019283018054606086015160809096015166ffffffffffff00199091166101009315159390930266ffffffffff00001916929092176201000064ffffffffff96871602176bffffffffff000000000000001916600160381b9590921694909402179092556000848152600660205282812080546001600160a01b03199081166001600160a01b038b169081179092556007805494850181559092527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890920180549091169091179055517f1b6c9e4eef57701705db39664c8777cd8c15bb0f52556130a44b55e30cd501e89061231390879085908790869061396f565b60405180910390a15050505050565b6000611c9a8383612d23565b6000611c9a836001600160a01b038416612d4d565b600061234e83611ad1565b6123765760405163f5edec3f60e01b81526001600160401b03841660048201526024016106e9565b6001600160401b0383166000908152600160205260409020612398908361232e565b9050801561065b57600854604051631517388760e21b81526001600160401b03851660048201526001600160a01b039091169063b7d2b1629073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af415801561240d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243191906136db565b846040518363ffffffff1660e01b815260040161244f9291906136f8565b600060405180830381600087803b15801561246957600080fd5b505af115801561156b573d6000803e3d6000fd5b600061248883611dcd565b9050612495848284612e47565b61249e84611ad1565b156124c7576040516330907ba960e01b81526001600160401b03851660048201526024016106e9565b6000818152600260205260409081902054905163a42e52e960e01b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063a42e52e990602401602060405180830381865af4158015612530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125549190613797565b1561259d576000818152600260205260409081902054905163af48012f60e01b81526001600160401b0380871660048301529091166024820152604481018290526064016106e9565b6040518060a001604052808281526020018360038111156125c0576125c06132c9565b81526020016125cd6128c8565b6001600160401b0316815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af4158015612624573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126489190613948565b64ffffffffff16815260200173__$d53880c81dc91c20799140d711e5ab8718$__63adb618326040518163ffffffff1660e01b8152600401602060405180830381865af415801561269d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c19190613948565b64ffffffffff1690526001600160401b038516600090815260208181526040909120825181559082015160018083018054909160ff199091169083600381111561270d5761270d6132c9565b02179055506040828101516001928301805460608601516080909601516dffffffffffffffffffffffffff00199091166101006001600160401b0394851681026dffffffffff000000000000000000191691909117600160481b64ffffffffff988916021764ffffffffff60701b1916600160701b979092169690960217905560008581526002602052828120805467ffffffffffffffff19168a8416908117909155600380549586018155918290527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b600486040180549590921660080290950a918202199093169302929092179055517f946b8e9c3ff1c1ed025292a56da516b43a836f1a9f35bc2ee6de53d879d6d6b090612830908690849086906139a4565b60405180910390a150505050565b600080516020613a2e83398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6000611c9a836001600160a01b038416613036565b6128bc613085565b6128c5816130d0565b50565b6040516368aebf7b60e01b81526000600482018190529073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024015b602060405180830381865af415801561291c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294091906136db565b905090565b6040516368aebf7b60e01b81526001600160401b03600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024016128ff565b6040516368aebf7b60e01b8152610a28600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024016128ff565b6040516368aebf7b60e01b815261076c600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b906024016128ff565b60045460009081906001600160401b031681612a1b8260016139c8565b9050612a288260026139c8565b6004805467ffffffffffffffff19166001600160401b039283161781556040516368aebf7b60e01b81529184169082015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af4158015612a95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ab991906136db565b6040516368aebf7b60e01b81526001600160401b038316600482015290945073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__906368aebf7b90602401602060405180830381865af4158015612b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3891906136db565b925050509091565b600080600080876001600160a01b0316878787604051602401612b65939291906137ca565b60408051601f198184030181529181526020820180516001600160e01b031663b700961360e01b17905251612b9a91906139e8565b600060405180830381855afa9150503d8060008114612bd5576040519150601f19603f3d011682016040523d82523d6000602084013e612bda565b606091505b50915091508115612c2c576040815110612c0c5780806020019051810190612c02919061371a565b9094509250612c2c565b6020815110612c2c5780806020019051810190612c299190613797565b93505b505094509492505050565b6000836001600160a01b031663bf7e214f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9b91906137f7565b9050612ca5611758565b6001600160a01b0316816001600160a01b031614612ce957604051631db0625160e01b81526001600160a01b038086166004830152821660248201526044016106e9565b612cf2836130e1565b600003612d1d5760405163a12ddedf60e01b81526001600160a01b03851660048201526024016106e9565b50505050565b6000826000018281548110612d3a57612d3a6137b4565b9060005260206000200154905092915050565b60008181526001830160205260408120548015612e36576000612d71600183613a04565b8554909150600090612d8590600190613a04565b9050808214612dea576000866000018281548110612da557612da56137b4565b9060005260206000200154905080876000018481548110612dc857612dc86137b4565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612dfb57612dfb613a17565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061065b565b600091505061065b565b5092915050565b604051631517388760e21b81526001600160401b038416600482015260009073__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015612ea2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec691906136db565b6001600160401b031690506003826003811115612ee557612ee56132c9565b148015612ef3575061271081105b15612f1c5760405163be511cc160e01b81526001600160401b03851660048201526024016106e9565b6003826003811115612f3057612f306132c9565b14158015612f4057506127108110155b8015612fd95750612f4f612945565b604051631517388760e21b81526001600160401b03909116600482015273__$cd131c2b3ba46b9dbe046aaf4458b9777d$__9063545ce21c90602401602060405180830381865af4158015612fa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcc91906136db565b6001600160401b03168114155b1561300257604051630e08ff2d60e11b81526001600160401b03851660048201526024016106e9565b61300b836130e1565b600003612d1d57604051631367e80d60e31b81526001600160401b03851660048201526024016106e9565b600081815260018301602052604081205461307d5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561065b565b50600061065b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166130ce57604051631afcd79f60e31b815260040160405180910390fd5b565b6130d8613085565b6128c58161283e565b600060ff8216601f81111561065b57604051632cd44ac360e21b815260040160405180910390fd5b6001600160401b03811681146128c557600080fd5b803561312981613109565b919050565b60006020828403121561314057600080fd5b8135611c9a81613109565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261317257600080fd5b81356001600160401b038082111561318c5761318c61314b565b604051601f8301601f19908116603f011681019082821181831017156131b4576131b461314b565b816040528381528660208588010111156131cd57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806060858703121561320357600080fd5b84356001600160401b038082111561321a57600080fd5b61322688838901613161565b9550602087013591508082111561323c57600080fd5b818701915087601f83011261325057600080fd5b81358181111561325f57600080fd5b8860208260051b850101111561327457600080fd5b60208301955080945050505061328c6040860161311e565b905092959194509250565b6001600160a01b03811681146128c557600080fd5b6000602082840312156132be57600080fd5b8135611c9a81613297565b634e487b7160e01b600052602160045260246000fd5b600481106132fd57634e487b7160e01b600052602160045260246000fd5b9052565b8151815260208083015160a083019161331c908401826132df565b50604083015115156040830152606083015164ffffffffff8082166060850152806080860151166080850152505092915050565b6000806040838503121561336357600080fd5b823561336e81613297565b915060208301356001600160401b0381111561338957600080fd5b61339585828601613161565b9150509250929050565b60005b838110156133ba5781810151838201526020016133a2565b50506000910152565b60208152600082518060208401526133e281604085016020870161339f565b601f01601f19169190910160400192915050565b6000806040838503121561340957600080fd5b823561341481613109565b9150602083013561342481613109565b809150509250929050565b60006020828403121561344157600080fd5b81356001600160401b0381111561345757600080fd5b610e4084828501613161565b60006020828403121561347557600080fd5b5035919050565b6000806040838503121561348f57600080fd5b823561336e81613109565b8151815260208083015160a08301916134b5908401826132df565b506001600160401b036040840151166040830152606083015164ffffffffff8082166060850152806080860151166080850152505092915050565b80151581146128c557600080fd5b6000806040838503121561351157600080fd5b823561351c81613297565b91506020830135613424816134f0565b6000806040838503121561353f57600080fd5b823561354a81613109565b9150602083013561342481613297565b80356001600160e01b03198116811461312957600080fd5b60008060006060848603121561358757600080fd5b833561359281613297565b925060208401356135a281613297565b91506135b06040850161355a565b90509250925092565b600080604083850312156135cc57600080fd5b82356001600160401b03808211156135e357600080fd5b6135ef86838701613161565b9350602085013591508082111561360557600080fd5b5061339585828601613161565b6000806040838503121561362557600080fd5b823561363081613109565b946020939093013593505050565b60008060006060848603121561365357600080fd5b833561365e81613109565b925060208401356001600160401b0381111561367957600080fd5b61368586828701613161565b925050604084013561369681613109565b809150509250925092565b6001600160a01b038316815260408101611c9a60208301846132df565b6001600160401b038316815260408101611c9a60208301846132df565b6000602082840312156136ed57600080fd5b8151611c9a81613109565b6001600160401b039290921682526001600160a01b0316602082015260400190565b6000806040838503121561372d57600080fd5b8251613738816134f0565b602084015190925063ffffffff8116811461342457600080fd5b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161379057613790613768565b5060010190565b6000602082840312156137a957600080fd5b8151611c9a816134f0565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b60006020828403121561380957600080fd5b8151611c9a81613297565b6000808585111561382457600080fd5b8386111561383157600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156138665780818660040360031b1b83161692505b505092915050565b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b805160208083015191908110156138cf576000198160200360031b1b821691505b50919050565b6001600160a01b038516815260606020808301829052908201849052600090859060808401835b87811015613929576001600160e01b03196139168561355a565b16825292820192908201906001016138fc565b508093505050506001600160401b038316604083015295945050505050565b60006020828403121561395a57600080fd5b815164ffffffffff81168114611c9a57600080fd5b6001600160a01b0385168152602081018490526080810161399360408301856132df565b821515606083015295945050505050565b6001600160401b03841681526020810183905260608101610e4060408301846132df565b6001600160401b03818116838216019080821115612e4057612e40613768565b600082516139fa81846020870161339f565b9190910192915050565b8181038181111561065b5761065b613768565b634e487b7160e01b600052603160045260246000fdfef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00a2646970667358221220a12730de3560cd621ff7488dacb5e00d0dca5f9a99dfcfddf1fcd5e304fe6a7364736f6c63430008140033",
782
1126
  "linkReferences": {
783
1127
  "contracts/types/RoleId.sol": {
784
1128
  "RoleIdLib": [
785
1129
  {
786
1130
  "length": 20,
787
- "start": 118
1131
+ "start": 2235
788
1132
  },
789
1133
  {
790
1134
  "length": 20,
791
- "start": 380
1135
+ "start": 2726
792
1136
  },
793
1137
  {
794
1138
  "length": 20,
795
- "start": 2429
1139
+ "start": 4942
796
1140
  },
797
1141
  {
798
1142
  "length": 20,
799
- "start": 4505
1143
+ "start": 5309
800
1144
  },
801
1145
  {
802
1146
  "length": 20,
803
- "start": 5983
1147
+ "start": 5762
804
1148
  },
805
1149
  {
806
1150
  "length": 20,
807
- "start": 6382
1151
+ "start": 7046
808
1152
  },
809
1153
  {
810
1154
  "length": 20,
811
- "start": 6883
1155
+ "start": 9203
812
1156
  },
813
1157
  {
814
1158
  "length": 20,
815
- "start": 10401
816
- }
817
- ]
818
- },
819
- "contracts/types/Timestamp.sol": {
820
- "TimestampLib": [
1159
+ "start": 9494
1160
+ },
1161
+ {
1162
+ "length": 20,
1163
+ "start": 10497
1164
+ },
1165
+ {
1166
+ "length": 20,
1167
+ "start": 10628
1168
+ },
1169
+ {
1170
+ "length": 20,
1171
+ "start": 10688
1172
+ },
821
1173
  {
822
1174
  "length": 20,
823
- "start": 885
1175
+ "start": 10748
824
1176
  },
825
1177
  {
826
1178
  "length": 20,
827
- "start": 1009
1179
+ "start": 10875
828
1180
  },
829
1181
  {
830
1182
  "length": 20,
831
- "start": 1989
1183
+ "start": 11002
832
1184
  },
833
1185
  {
834
1186
  "length": 20,
835
- "start": 4964
1187
+ "start": 11912
836
1188
  },
837
1189
  {
838
1190
  "length": 20,
839
- "start": 5591
1191
+ "start": 12174
1192
+ }
1193
+ ]
1194
+ },
1195
+ "contracts/types/Timestamp.sol": {
1196
+ "TimestampLib": [
1197
+ {
1198
+ "length": 20,
1199
+ "start": 4277
840
1200
  },
841
1201
  {
842
1202
  "length": 20,
843
- "start": 6797
1203
+ "start": 6960
844
1204
  },
845
1205
  {
846
1206
  "length": 20,
847
- "start": 7709
1207
+ "start": 8021
848
1208
  },
849
1209
  {
850
1210
  "length": 20,
851
- "start": 7830
1211
+ "start": 8440
852
1212
  },
853
1213
  {
854
1214
  "length": 20,
855
- "start": 8351
1215
+ "start": 8561
856
1216
  },
857
1217
  {
858
1218
  "length": 20,
859
- "start": 8472
1219
+ "start": 9725
860
1220
  },
861
1221
  {
862
1222
  "length": 20,
863
- "start": 9980
1223
+ "start": 9846
864
1224
  }
865
1225
  ]
866
1226
  }
@@ -870,23 +1230,67 @@
870
1230
  "RoleIdLib": [
871
1231
  {
872
1232
  "length": 20,
873
- "start": 1412
1233
+ "start": 2203
1234
+ },
1235
+ {
1236
+ "length": 20,
1237
+ "start": 2694
1238
+ },
1239
+ {
1240
+ "length": 20,
1241
+ "start": 4910
1242
+ },
1243
+ {
1244
+ "length": 20,
1245
+ "start": 5277
1246
+ },
1247
+ {
1248
+ "length": 20,
1249
+ "start": 5730
1250
+ },
1251
+ {
1252
+ "length": 20,
1253
+ "start": 7014
1254
+ },
1255
+ {
1256
+ "length": 20,
1257
+ "start": 9171
1258
+ },
1259
+ {
1260
+ "length": 20,
1261
+ "start": 9462
1262
+ },
1263
+ {
1264
+ "length": 20,
1265
+ "start": 10465
1266
+ },
1267
+ {
1268
+ "length": 20,
1269
+ "start": 10596
1270
+ },
1271
+ {
1272
+ "length": 20,
1273
+ "start": 10656
1274
+ },
1275
+ {
1276
+ "length": 20,
1277
+ "start": 10716
874
1278
  },
875
1279
  {
876
1280
  "length": 20,
877
- "start": 2890
1281
+ "start": 10843
878
1282
  },
879
1283
  {
880
1284
  "length": 20,
881
- "start": 3289
1285
+ "start": 10970
882
1286
  },
883
1287
  {
884
1288
  "length": 20,
885
- "start": 3790
1289
+ "start": 11880
886
1290
  },
887
1291
  {
888
1292
  "length": 20,
889
- "start": 7308
1293
+ "start": 12142
890
1294
  }
891
1295
  ]
892
1296
  },
@@ -894,35 +1298,31 @@
894
1298
  "TimestampLib": [
895
1299
  {
896
1300
  "length": 20,
897
- "start": 1871
898
- },
899
- {
900
- "length": 20,
901
- "start": 2498
1301
+ "start": 4245
902
1302
  },
903
1303
  {
904
1304
  "length": 20,
905
- "start": 3704
1305
+ "start": 6928
906
1306
  },
907
1307
  {
908
1308
  "length": 20,
909
- "start": 4616
1309
+ "start": 7989
910
1310
  },
911
1311
  {
912
1312
  "length": 20,
913
- "start": 4737
1313
+ "start": 8408
914
1314
  },
915
1315
  {
916
1316
  "length": 20,
917
- "start": 5258
1317
+ "start": 8529
918
1318
  },
919
1319
  {
920
1320
  "length": 20,
921
- "start": 5379
1321
+ "start": 9693
922
1322
  },
923
1323
  {
924
1324
  "length": 20,
925
- "start": 6887
1325
+ "start": 9814
926
1326
  }
927
1327
  ]
928
1328
  }