From 7d016122f5f0f01a5c91ebb5c3eca81149d03751 Mon Sep 17 00:00:00 2001 From: Giuseppe Rodriguez <5714678+giuseppecrj@users.noreply.github.com> Date: Fri, 26 Jul 2024 13:46:00 -0400 Subject: [PATCH] Update rule entitlement v1 with clean up and storage changes (#458) Co-authored-by: Crystal Lemire --- .github/workflows/ci.yml | 1 + .../DeployEntitlementDataQueryable.s.sol | 1 + .../entitlements/rule/IRuleEntitlement.sol | 44 +- .../entitlements/rule/RuleEntitlementV2.sol | 254 ++++++++ .../extensions/EntitlementDataQueryable.sol | 85 ++- .../extensions/IEntitlementDataQueryable.sol | 5 + .../spaces/facets/gated/EntitlementGated.sol | 1 + .../src/spaces/facets/roles/RolesBase.sol | 39 +- .../test/crosschain/RuleEntitlement.t.sol | 122 ++-- .../test/crosschain/RuleEntitlementUtil.sol | 75 +-- .../test/crosschain/RuleEntitlementV2.t.sol | 202 ++++++ contracts/test/spaces/BaseSetup.sol | 3 - .../EntitlementDataQueryable.t.sol | 62 +- .../integration/createSpace/createSpace.t.sol | 31 +- core/contracts/base/architect.go | 4 +- .../base/deploy/mock_entitlement_gated.go | 50 +- .../base/entitlement_data_queryable.go | 33 +- core/contracts/base/i_entitlement_gated.go | 34 +- core/contracts/base/rule_entitlement.go | 18 +- .../river/deploy/mock_river_registry.go | 2 +- core/node/auth/space_contract.go | 2 +- core/node/auth/space_contract_v3.go | 2 +- .../client_simulator/client_simulator.go | 48 +- core/xchain/entitlement/entitlement.go | 4 +- core/xchain/server/server.go | 2 +- core/xchain/server/server_test.go | 26 +- .../generated/dev/abis/Architect.abi.json | 14 +- packages/generated/dev/abis/Architect.abi.ts | 14 +- packages/generated/dev/abis/Architect.json | 2 +- .../dev/abis/Architect.metadata.json | 26 +- packages/generated/dev/abis/Channels.json | 2 +- .../generated/dev/abis/Channels.metadata.json | 6 +- .../abis/IEntitlementDataQueryable.abi.json | 36 ++ .../dev/abis/IEntitlementDataQueryable.abi.ts | 36 ++ .../dev/abis/IEntitlementDataQueryable.json | 2 +- .../IEntitlementDataQueryable.metadata.json | 42 +- .../abis/IEntitlementDataQueryableBase.json | 2 +- ...EntitlementDataQueryableBase.metadata.json | 6 +- .../dev/abis/IRuleEntitlement.abi.json | 30 +- .../dev/abis/IRuleEntitlement.abi.ts | 30 +- .../generated/dev/abis/IRuleEntitlement.json | 2 +- .../dev/abis/IRuleEntitlement.metadata.json | 36 +- .../dev/abis/IRuleEntitlementBase.abi.json | 110 ++++ .../dev/abis/IRuleEntitlementBase.abi.ts | 110 ++++ .../dev/abis/IRuleEntitlementBase.bin | 0 .../dev/abis/IRuleEntitlementBase.json | 1 + .../abis/IRuleEntitlementBase.metadata.json | 172 +++++ .../dev/abis/IRuleEntitlementV2.abi.json | 448 +++++++++++++ .../dev/abis/IRuleEntitlementV2.abi.ts | 448 +++++++++++++ .../generated/dev/abis/IRuleEntitlementV2.bin | 0 .../dev/abis/IRuleEntitlementV2.json | 1 + .../dev/abis/IRuleEntitlementV2.metadata.json | 592 ++++++++++++++++++ .../dev/abis/MembershipFacet.abi.json | 14 +- .../generated/dev/abis/MembershipFacet.abi.ts | 14 +- .../generated/dev/abis/MembershipFacet.bin | 2 +- .../generated/dev/abis/MembershipFacet.json | 2 +- .../dev/abis/MembershipFacet.metadata.json | 41 +- .../dev/abis/MockEntitlementGated.abi.json | 42 +- .../dev/abis/MockEntitlementGated.abi.ts | 42 +- .../dev/abis/MockEntitlementGated.json | 2 +- .../abis/MockEntitlementGated.metadata.json | 60 +- .../generated/dev/abis/MockRiverRegistry.bin | 2 +- .../generated/dev/abis/MockRiverRegistry.json | 2 +- .../dev/abis/MockRiverRegistry.metadata.json | 6 +- packages/generated/dev/abis/Roles.bin | 2 +- packages/generated/dev/abis/Roles.json | 2 +- .../generated/dev/abis/Roles.metadata.json | 12 +- packages/generated/dev/abis/SpaceOwner.json | 2 +- packages/generated/dev/abis/StreamFlags.json | 2 +- .../dev/abis/StreamFlags.metadata.json | 6 +- .../generated/dev/abis/StreamRegistry.bin | 2 +- .../generated/dev/abis/StreamRegistry.json | 2 +- .../dev/abis/StreamRegistry.metadata.json | 6 +- packages/generated/dev/typings/IArchitect.ts | 26 +- .../dev/typings/IEntitlementDataQueryable.ts | 41 ++ .../generated/dev/typings/IRuleEntitlement.ts | 40 +- .../generated/dev/typings/MembershipFacet.ts | 26 +- .../dev/typings/MockEntitlementGated.ts | 44 +- .../typings/factories/IArchitect__factory.ts | 14 +- .../IEntitlementDataQueryable__factory.ts | 36 ++ .../factories/IRuleEntitlement__factory.ts | 30 +- .../factories/MembershipFacet__factory.ts | 16 +- .../MockEntitlementGated__factory.ts | 42 +- .../sdk/src/channelsWithEntitlements.test.ts | 4 +- .../sdk/src/spaceWithEntitlements.test.ts | 4 +- packages/sdk/src/util.test.ts | 8 +- packages/web3/src/ContractTypes.ts | 8 +- packages/web3/src/ConvertersEntitlements.ts | 4 +- packages/web3/src/ConvertersRoles.ts | 4 +- packages/web3/src/ISpaceDapp.ts | 6 +- packages/web3/src/entitlement.ts | 18 +- packages/web3/src/v3/IRuleEntitlementShim.ts | 6 +- packages/web3/src/v3/RuleEntitlementShim.ts | 9 +- packages/web3/src/v3/Space.ts | 6 +- packages/web3/src/v3/SpaceDapp.ts | 6 +- scripts/gen-river-node-bindings.sh | 16 +- 96 files changed, 3323 insertions(+), 674 deletions(-) create mode 100644 contracts/src/spaces/entitlements/rule/RuleEntitlementV2.sol create mode 100644 contracts/test/crosschain/RuleEntitlementV2.t.sol create mode 100644 packages/generated/dev/abis/IRuleEntitlementBase.abi.json create mode 100644 packages/generated/dev/abis/IRuleEntitlementBase.abi.ts create mode 100644 packages/generated/dev/abis/IRuleEntitlementBase.bin create mode 100644 packages/generated/dev/abis/IRuleEntitlementBase.json create mode 100644 packages/generated/dev/abis/IRuleEntitlementBase.metadata.json create mode 100644 packages/generated/dev/abis/IRuleEntitlementV2.abi.json create mode 100644 packages/generated/dev/abis/IRuleEntitlementV2.abi.ts create mode 100644 packages/generated/dev/abis/IRuleEntitlementV2.bin create mode 100644 packages/generated/dev/abis/IRuleEntitlementV2.json create mode 100644 packages/generated/dev/abis/IRuleEntitlementV2.metadata.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f8099e4b..e9f45552c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -710,6 +710,7 @@ jobs: path: | ./core/run_files/ !./core/**/bin/** + Go_Tests: permissions: write-all if: github.event_name != 'workflow_dispatch' || !inputs.skip_go diff --git a/contracts/scripts/deployments/facets/DeployEntitlementDataQueryable.s.sol b/contracts/scripts/deployments/facets/DeployEntitlementDataQueryable.s.sol index 3e5e1f7d5..403df1037 100644 --- a/contracts/scripts/deployments/facets/DeployEntitlementDataQueryable.s.sol +++ b/contracts/scripts/deployments/facets/DeployEntitlementDataQueryable.s.sol @@ -19,6 +19,7 @@ contract DeployEntitlementDataQueryable is Deployer, FacetHelper { addSelector( EntitlementDataQueryable.getChannelEntitlementDataByPermission.selector ); + addSelector(EntitlementDataQueryable.getCrossChainEntitlementData.selector); } // Deploying diff --git a/contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol b/contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol index 6084a192a..86230107a 100644 --- a/contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol +++ b/contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol @@ -16,7 +16,7 @@ import {IEntitlement} from "contracts/src/spaces/entitlements/IEntitlement.sol"; * As new LogicalOperation nodes are added, they can only reference existing nodes in the 'operations' array, * ensuring a valid post-order tree structure. */ -interface IRuleEntitlement is IEntitlement { +interface IRuleEntitlementBase { // ============================================================= // Errors // ============================================================= @@ -31,7 +31,7 @@ interface IRuleEntitlement is IEntitlement { uint8 operationIndex, uint8 logicalOperationsLength ); - error InvalidOperationType(IRuleEntitlement.CombinedOperationType opType); + error InvalidOperationType(CombinedOperationType opType); error InvalidLeftOperationIndex( uint8 leftOperationIndex, uint8 currentOperationIndex @@ -70,7 +70,6 @@ interface IRuleEntitlement is IEntitlement { // ============================================================= // Structs // ============================================================= - struct CheckOperation { CheckOperationType opType; uint256 chainId; @@ -78,6 +77,13 @@ interface IRuleEntitlement is IEntitlement { uint256 threshold; } + struct CheckOperationV2 { + CheckOperationType opType; + uint256 chainId; + address contractAddress; + bytes params; + } + struct LogicalOperation { LogicalOperationType logOpType; uint8 leftOperationIndex; @@ -95,6 +101,38 @@ interface IRuleEntitlement is IEntitlement { LogicalOperation[] logicalOperations; } + struct RuleDataV2 { + Operation[] operations; + CheckOperationV2[] checkOperations; + LogicalOperation[] logicalOperations; + } +} + +interface IRuleEntitlementV2 is IRuleEntitlementBase, IEntitlement { + // ============================================================= + // Functions + // ============================================================= + + /** + * @notice Encodes the RuleData struct into bytes + * @param data RuleData struct to encode + * @return Encoded bytes of the RuleData struct + */ + function encodeRuleData( + RuleDataV2 memory data + ) external pure returns (bytes memory); + + /** + * @notice Decodes the RuleDataV2 struct from bytes + * @param roleId Role ID + * @return data RuleDataV2 struct + */ + function getRuleDataV2( + uint256 roleId + ) external view returns (RuleDataV2 memory data); +} + +interface IRuleEntitlement is IRuleEntitlementBase, IEntitlement { // ============================================================= // Functions // ============================================================= diff --git a/contracts/src/spaces/entitlements/rule/RuleEntitlementV2.sol b/contracts/src/spaces/entitlements/rule/RuleEntitlementV2.sol new file mode 100644 index 000000000..e59d46ead --- /dev/null +++ b/contracts/src/spaces/entitlements/rule/RuleEntitlementV2.sol @@ -0,0 +1,254 @@ +// SPDX-License-Identifier: MIT + +/** + * @title EntitlementRule + * @dev This contract manages entitlement rules based on blockchain operations. + * The contract maintains a tree-like data structure to combine various types of operations. + * The tree is implemented as a dynamic array of 'Operation' structs, and is built in post-order fashion. + * + * Post-order Tree Structure: + * In a post-order binary tree, children nodes must be added before their respective parent nodes. + * The 'LogicalOperation' nodes refer to their child nodes via indices in the 'operations' array. + * As new LogicalOperation nodes are added, they can only reference existing nodes in the 'operations' array, + * ensuring a valid post-order tree structure. + */ +pragma solidity ^0.8.0; + +// contracts +import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; +import {ERC165Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol"; +import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol"; +import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; + +// libraries + +// interfaces +import {IEntitlement} from "contracts/src/spaces/entitlements/IEntitlement.sol"; +import {IRuleEntitlementV2} from "./IRuleEntitlement.sol"; + +contract RuleEntitlementV2 is + Initializable, + ERC165Upgradeable, + ContextUpgradeable, + UUPSUpgradeable, + IRuleEntitlementV2 +{ + struct Entitlement { + address grantedBy; + uint256 grantedTime; + RuleData data; + } + + mapping(uint256 => Entitlement) internal entitlementsByRoleId; + address public SPACE_ADDRESS; + + // keccak256(abi.encode(uint256(keccak256("spaces.entitlements.rule.storage")) - 1)) & ~bytes32(uint256(0xff)) + bytes32 private constant STORAGE_SLOT = + 0xa7ba26993e5aed586ba0b4d511980a49b23ea33e13d5f0920b7e42ae1a27cc00; + + struct EntitlementV2 { + address grantedBy; + uint256 grantedTime; + bytes data; + } + + // @custom:storage-location erc7201:spaces.entitlements.rule.storage + struct Layout { + mapping(uint256 => EntitlementV2) entitlementsByRoleIdV2; + } + + string public constant name = "Rule Entitlement V2"; + string public constant description = "Entitlement for crosschain rules"; + string public constant moduleType = "RuleEntitlementV2"; + bool public constant isCrosschain = true; + + /// @custom:oz-upgrades-unsafe-allow constructor + constructor() { + _disableInitializers(); + } + + function initialize(address _space) public initializer { + __UUPSUpgradeable_init(); + __ERC165_init(); + __Context_init(); + SPACE_ADDRESS = _space; + } + + modifier onlySpace() { + if (_msgSender() != SPACE_ADDRESS) { + revert Entitlement__NotAllowed(); + } + _; + } + + // ============================================================= + // Admin + // ============================================================= + + /// @notice allow the contract to be upgraded while retaining state + /// @param newImplementation address of the new implementation + function _authorizeUpgrade( + address newImplementation + ) internal override onlySpace {} + + /// @notice get the storage slot for the contract + /// @return ds storage slot + function layout() internal pure returns (Layout storage ds) { + bytes32 slot = STORAGE_SLOT; + assembly { + ds.slot := slot + } + } + + // ============================================================= + // External + // ============================================================= + + function supportsInterface( + bytes4 interfaceId + ) public view override returns (bool) { + return + interfaceId == type(IEntitlement).interfaceId || + interfaceId == type(IRuleEntitlementV2).interfaceId || + super.supportsInterface(interfaceId); + } + + // @inheritdoc IEntitlement + function isEntitled( + bytes32, + address[] memory, + bytes32 + ) external pure returns (bool) { + return false; + } + + // @inheritdoc IEntitlement + function setEntitlement( + uint256 roleId, + bytes calldata entitlementData + ) external onlySpace { + _removeRuleDataV1(roleId); + + // Decode the data + RuleDataV2 memory data = abi.decode(entitlementData, (RuleDataV2)); + + if (entitlementData.length == 0 || data.operations.length == 0) { + return; + } + + // Cache sender and currentTime + address sender = _msgSender(); + uint256 currentTime = block.timestamp; + + // Cache lengths of operations arrays to reduce state access cost + uint256 operationsLength = data.operations.length; + uint256 checkOperationsLength = data.checkOperations.length; + uint256 logicalOperationsLength = data.logicalOperations.length; + + // Step 1: Validate Operation against CheckOperation and LogicalOperation + for (uint256 i = 0; i < operationsLength; i++) { + CombinedOperationType opType = data.operations[i].opType; // cache the operation type + uint8 index = data.operations[i].index; // cache the operation index + + if (opType == CombinedOperationType.CHECK) { + if (index >= checkOperationsLength) { + revert InvalidCheckOperationIndex( + index, + uint8(checkOperationsLength) + ); + } + } else if (opType == CombinedOperationType.LOGICAL) { + // Use custom error in revert statement + if (index >= logicalOperationsLength) { + revert InvalidLogicalOperationIndex( + index, + uint8(logicalOperationsLength) + ); + } + + // Verify the logical operations make a DAG + LogicalOperation memory logicalOp = data.logicalOperations[index]; + uint8 leftOperationIndex = logicalOp.leftOperationIndex; + uint8 rightOperationIndex = logicalOp.rightOperationIndex; + + // Use custom errors in revert statements + if (leftOperationIndex >= i) { + revert InvalidLeftOperationIndex(leftOperationIndex, uint8(i)); + } + + if (rightOperationIndex >= i) { + revert InvalidRightOperationIndex(rightOperationIndex, uint8(i)); + } + } + } + + EntitlementV2 storage entitlement = layout().entitlementsByRoleIdV2[roleId]; + entitlement.grantedBy = sender; + entitlement.grantedTime = currentTime; + entitlement.data = entitlementData; + } + + // @inheritdoc IEntitlement + function removeEntitlement(uint256 roleId) external onlySpace { + Layout storage ds = layout(); + + EntitlementV2 memory entitlement = ds.entitlementsByRoleIdV2[roleId]; + + if (entitlement.grantedBy == address(0)) { + revert Entitlement__InvalidValue(); + } + + delete ds.entitlementsByRoleIdV2[roleId].grantedBy; + delete ds.entitlementsByRoleIdV2[roleId].grantedTime; + delete ds.entitlementsByRoleIdV2[roleId].data; + delete ds.entitlementsByRoleIdV2[roleId]; + } + + // @inheritdoc IEntitlement + function getEntitlementDataByRoleId( + uint256 roleId + ) external view returns (bytes memory) { + EntitlementV2 storage entitlement = layout().entitlementsByRoleIdV2[roleId]; + return entitlement.data; + } + + function encodeRuleData( + RuleDataV2 calldata data + ) external pure returns (bytes memory) { + return abi.encode(data); + } + + function getRuleData( + uint256 roleId + ) external view returns (RuleData memory data) { + return entitlementsByRoleId[roleId].data; + } + + function getRuleDataV2( + uint256 roleId + ) external view returns (RuleDataV2 memory data) { + bytes memory ruleData = layout().entitlementsByRoleIdV2[roleId].data; + + if (ruleData.length == 0) { + return + RuleDataV2( + new Operation[](0), + new CheckOperationV2[](0), + new LogicalOperation[](0) + ); + } + + return abi.decode(ruleData, (RuleDataV2)); + } + + // ============================================================= + // Internal + // ============================================================= + function _removeRuleDataV1(uint256 roleId) internal { + if (entitlementsByRoleId[roleId].grantedBy != address(0)) { + delete entitlementsByRoleId[roleId]; + delete entitlementsByRoleId[roleId].grantedBy; + delete entitlementsByRoleId[roleId].grantedTime; + } + } +} diff --git a/contracts/src/spaces/facets/entitlements/extensions/EntitlementDataQueryable.sol b/contracts/src/spaces/facets/entitlements/extensions/EntitlementDataQueryable.sol index 9ba0f4187..258df48ea 100644 --- a/contracts/src/spaces/facets/entitlements/extensions/EntitlementDataQueryable.sol +++ b/contracts/src/spaces/facets/entitlements/extensions/EntitlementDataQueryable.sol @@ -5,11 +5,13 @@ pragma solidity ^0.8.23; import {IEntitlementDataQueryable} from "contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol"; import {IRolesBase} from "contracts/src/spaces/facets/roles/IRoles.sol"; import {IEntitlement} from "contracts/src/spaces/entitlements/IEntitlement.sol"; -import {IRuleEntitlement} from "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol"; -import {IUserEntitlement} from "contracts/src/spaces/entitlements/user/IUserEntitlement.sol"; +import {IEntitlementGatedBase} from "contracts/src/spaces/facets/gated/IEntitlementGated.sol"; // libraries import {ChannelService} from "contracts/src/spaces/facets/channels/ChannelService.sol"; +import {EntitlementGatedStorage} from "contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol"; +import {RolesStorage} from "contracts/src/spaces/facets/roles/RolesStorage.sol"; +import {StringSet} from "contracts/src/utils/StringSet.sol"; // contracts import {RolesBase} from "contracts/src/spaces/facets/roles/RolesBase.sol"; @@ -18,9 +20,12 @@ import {Facet} from "contracts/src/diamond/facets/Facet.sol"; contract EntitlementDataQueryable is IRolesBase, IEntitlementDataQueryable, + IEntitlementGatedBase, RolesBase, Facet { + using StringSet for StringSet.Set; + function getEntitlementDataByPermission( string calldata permission ) external view returns (EntitlementData[] memory) { @@ -36,6 +41,25 @@ contract EntitlementDataQueryable is return _getEntitlements(roles); } + function getCrossChainEntitlementData( + bytes32 transactionId, + uint256 roleId + ) external view returns (EntitlementData memory) { + EntitlementGatedStorage.Layout storage ds = EntitlementGatedStorage + .layout(); + + Transaction storage transaction = ds.transactions[transactionId]; + + if (transaction.hasBenSet == false) { + revert EntitlementGated_TransactionNotRegistered(); + } + + IEntitlement re = IEntitlement(transaction.entitlement); + + return + EntitlementData(re.moduleType(), re.getEntitlementDataByRoleId(roleId)); + } + // ============================================================= // Internal // ============================================================= @@ -44,31 +68,33 @@ contract EntitlementDataQueryable is string calldata permission ) internal view returns (Role[] memory) { uint256[] memory channelRoles = ChannelService.getRolesByChannel(channelId); + uint256 channelRolesLength = channelRoles.length; uint256 roleCount = 0; - uint256[] memory matchedRoleIds = new uint256[](channelRoles.length); + uint256[] memory matchedRoleIds = new uint256[](channelRolesLength); - bytes32 requestedPermission = keccak256(abi.encodePacked(permission)); + RolesStorage.Layout storage ds = RolesStorage.layout(); // Count the number of roles that have the requested permission and record their ids. - for (uint256 i = 0; i < channelRoles.length; i++) { - Role memory role = _getRoleById(channelRoles[i]); - if (role.disabled) { + for (uint256 i; i < channelRolesLength; i++) { + uint256 roleId = channelRoles[i]; + + RolesStorage.Role storage role = ds.roleById[roleId]; + + if (role.isImmutable) { continue; } + // Check if the role has the requested permission. - for (uint256 j = 0; j < role.permissions.length; j++) { - if (keccak256(bytes(role.permissions[j])) == requestedPermission) { - matchedRoleIds[roleCount] = role.id; - roleCount++; - break; - } + if (role.permissions.contains(permission)) { + matchedRoleIds[roleCount] = roleId; + roleCount++; } } // Assemble the roles that have the requested permission for the specified channel. Role[] memory roles = new Role[](roleCount); - for (uint256 i = 0; i < roleCount; i++) { + for (uint256 i; i < roleCount; i++) { roles[i] = _getRoleById(matchedRoleIds[i]); } @@ -78,9 +104,12 @@ contract EntitlementDataQueryable is function _getEntitlements( Role[] memory roles ) internal view returns (EntitlementData[] memory) { - uint256 entitlementCount = 0; - for (uint256 i = 0; i < roles.length; i++) { + uint256 entitlementCount; + uint256 rolesLength = roles.length; + + for (uint256 i = 0; i < rolesLength; i++) { Role memory role = roles[i]; + if (!role.disabled) { entitlementCount += role.entitlements.length; } @@ -92,24 +121,18 @@ contract EntitlementDataQueryable is entitlementCount = 0; - for (uint256 i = 0; i < roles.length; i++) { + for (uint256 i; i < rolesLength; i++) { Role memory role = roles[i]; + if (!role.disabled) { - for (uint256 j = 0; j < role.entitlements.length; j++) { + for (uint256 j; j < role.entitlements.length; j++) { IEntitlement entitlement = IEntitlement(role.entitlements[j]); - if (!entitlement.isCrosschain()) { - IUserEntitlement ue = IUserEntitlement(address(entitlement)); - entitlementData[entitlementCount] = EntitlementData( - ue.moduleType(), - ue.getEntitlementDataByRoleId(role.id) - ); - } else { - IRuleEntitlement re = IRuleEntitlement(address(entitlement)); - entitlementData[entitlementCount] = EntitlementData( - re.moduleType(), - re.getEntitlementDataByRoleId(role.id) - ); - } + + entitlementData[entitlementCount] = EntitlementData( + entitlement.moduleType(), + entitlement.getEntitlementDataByRoleId(role.id) + ); + entitlementCount++; } } diff --git a/contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol b/contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol index 974fbb7cf..3beecc68a 100644 --- a/contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol +++ b/contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol @@ -24,4 +24,9 @@ interface IEntitlementDataQueryable is IEntitlementDataQueryableBase { bytes32 channelId, string calldata permission ) external view returns (EntitlementData[] memory); + + function getCrossChainEntitlementData( + bytes32 transactionId, + uint256 roleId + ) external view returns (EntitlementData memory); } diff --git a/contracts/src/spaces/facets/gated/EntitlementGated.sol b/contracts/src/spaces/facets/gated/EntitlementGated.sol index 9d5445412..c2b9aa1bf 100644 --- a/contracts/src/spaces/facets/gated/EntitlementGated.sol +++ b/contracts/src/spaces/facets/gated/EntitlementGated.sol @@ -42,6 +42,7 @@ contract EntitlementGated is _postEntitlementCheckResult(transactionId, roleId, result); } + /// deprecated Use EntitlementDataQueryable.getCrossChainEntitlementData instead function getRuleData( bytes32 transactionId, uint256 roleId diff --git a/contracts/src/spaces/facets/roles/RolesBase.sol b/contracts/src/spaces/facets/roles/RolesBase.sol index 5c232087b..d69720b13 100644 --- a/contracts/src/spaces/facets/roles/RolesBase.sol +++ b/contracts/src/spaces/facets/roles/RolesBase.sol @@ -360,20 +360,19 @@ abstract contract RolesBase is IRolesBase { function _getEntitlementsByRole( uint256 roleId ) internal view returns (IEntitlement[] memory) { + EnumerableSet.AddressSet storage entitlements = RolesStorage + .layout() + .roleById[roleId] + .entitlements; + + uint256 entitlementLen = entitlements.length(); + IEntitlement[] memory entitlementsArray = new IEntitlement[]( - RolesStorage.layout().roleById[roleId].entitlements.length() + entitlementLen ); - for ( - uint256 i = 0; - i < RolesStorage.layout().roleById[roleId].entitlements.length(); - i++ - ) { - address entitlementAddress = RolesStorage - .layout() - .roleById[roleId] - .entitlements - .at(i); + for (uint256 i = 0; i < entitlementLen; i++) { + address entitlementAddress = entitlements.at(i); entitlementsArray[i] = IEntitlement(entitlementAddress); } @@ -448,11 +447,13 @@ abstract contract RolesBase is IRolesBase { // if permission is empty, revert _checkEmptyString(permissions[i]); - if (!rs.roleById[roleId].permissions.contains(permissions[i])) { + RolesStorage.Role storage role = rs.roleById[roleId]; + + if (!role.permissions.contains(permissions[i])) { revert Roles__PermissionDoesNotExist(); } - rs.roleById[roleId].permissions.remove(permissions[i]); + role.permissions.remove(permissions[i]); unchecked { i++; @@ -518,22 +519,22 @@ abstract contract RolesBase is IRolesBase { uint256 roleId, address entitlement ) internal { - RolesStorage.Layout storage rs = RolesStorage.layout(); + RolesStorage.Role storage role = RolesStorage.layout().roleById[roleId]; - if (!rs.roleById[roleId].entitlements.contains(entitlement)) { + if (!role.entitlements.contains(entitlement)) { revert Roles__EntitlementDoesNotExist(); } - rs.roleById[roleId].entitlements.remove(entitlement); + role.entitlements.remove(entitlement); } function _addEntitlementToRole(uint256 roleId, address entitlement) internal { - RolesStorage.Layout storage rs = RolesStorage.layout(); + RolesStorage.Role storage role = RolesStorage.layout().roleById[roleId]; - if (rs.roleById[roleId].entitlements.contains(entitlement)) { + if (role.entitlements.contains(entitlement)) { revert Roles__EntitlementAlreadyExists(); } - rs.roleById[roleId].entitlements.add(entitlement); + role.entitlements.add(entitlement); } } diff --git a/contracts/test/crosschain/RuleEntitlement.t.sol b/contracts/test/crosschain/RuleEntitlement.t.sol index 873410e8d..d5f2db8e7 100644 --- a/contracts/test/crosschain/RuleEntitlement.t.sol +++ b/contracts/test/crosschain/RuleEntitlement.t.sol @@ -6,17 +6,20 @@ import {TestUtils} from "contracts/test/utils/TestUtils.sol"; import {RuleEntitlement} from "contracts/src/spaces/entitlements/rule/RuleEntitlement.sol"; import {IEntitlementBase} from "contracts/src/spaces/entitlements/IEntitlement.sol"; -import {IRuleEntitlement} from "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol"; +import {IRuleEntitlementBase} from "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol"; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -contract RuleEntitlementTest is TestUtils, IEntitlementBase { +contract RuleEntitlementTest is + TestUtils, + IEntitlementBase, + IRuleEntitlementBase +{ RuleEntitlement internal implementation; RuleEntitlement internal ruleEntitlement; address internal entitlement; address internal deployer; address internal space; - uint256 internal roleId = 0; function setUp() public { @@ -37,66 +40,50 @@ contract RuleEntitlementTest is TestUtils, IEntitlementBase { } modifier givenRuleEntitlementIsSet() { - uint256 chainId = 31337; + uint256 chainId = block.chainid; address erc20Contract = _randomAddress(); address erc721Contract = _randomAddress(); uint256 threshold = 100; // we have 3 operations total - IRuleEntitlement.Operation[] - memory operations = new IRuleEntitlement.Operation[](3); + Operation[] memory operations = new Operation[](3); // we have 2 check operations - IRuleEntitlement.CheckOperation[] - memory checkOperations = new IRuleEntitlement.CheckOperation[](2); + CheckOperation[] memory checkOperations = new CheckOperation[](2); // and 1 logical operation - IRuleEntitlement.LogicalOperation[] - memory logicalOperations = new IRuleEntitlement.LogicalOperation[](1); + LogicalOperation[] memory logicalOperations = new LogicalOperation[](1); // for the first check operation, we are checking ERC20 balance of 100 on chain 31337 - checkOperations[0] = IRuleEntitlement.CheckOperation( - IRuleEntitlement.CheckOperationType.ERC20, + checkOperations[0] = CheckOperation( + CheckOperationType.ERC20, chainId, erc20Contract, threshold ); // for the second check operation, we are checking ERC721 balance of 100 on chain 31337 - checkOperations[1] = IRuleEntitlement.CheckOperation( - IRuleEntitlement.CheckOperationType.ERC721, + checkOperations[1] = CheckOperation( + CheckOperationType.ERC721, chainId, erc721Contract, threshold ); // we are combining the two check operations with an AND operation so both must pass - logicalOperations[0] = IRuleEntitlement.LogicalOperation( - IRuleEntitlement.LogicalOperationType.AND, - 0, - 1 - ); + logicalOperations[0] = LogicalOperation(LogicalOperationType.AND, 0, 1); // the first operation is a check operation - operations[0] = IRuleEntitlement.Operation( - IRuleEntitlement.CombinedOperationType.CHECK, - 0 - ); + operations[0] = Operation(CombinedOperationType.CHECK, 0); // the second operation is a check operation - operations[1] = IRuleEntitlement.Operation( - IRuleEntitlement.CombinedOperationType.CHECK, - 1 - ); + operations[1] = Operation(CombinedOperationType.CHECK, 1); // the third operation is a logical operation - operations[2] = IRuleEntitlement.Operation( - IRuleEntitlement.CombinedOperationType.LOGICAL, - 0 - ); + operations[2] = Operation(CombinedOperationType.LOGICAL, 0); // we are combining all the operations into a rule data struct - IRuleEntitlement.RuleData memory ruleData = IRuleEntitlement.RuleData( + RuleData memory ruleData = RuleData( operations, checkOperations, logicalOperations @@ -110,7 +97,7 @@ contract RuleEntitlementTest is TestUtils, IEntitlementBase { } function test_setRuleEntitlement() external givenRuleEntitlementIsSet { - IRuleEntitlement.Operation[] memory ruleOperations = ruleEntitlement + Operation[] memory ruleOperations = ruleEntitlement .getRuleData(roleId) .operations; assertEq(ruleOperations.length, 3); @@ -119,10 +106,10 @@ contract RuleEntitlementTest is TestUtils, IEntitlementBase { function test_removeRuleEntitlement() external givenRuleEntitlementIsSet { vm.prank(space); ruleEntitlement.removeEntitlement(roleId); - IRuleEntitlement.Operation[] memory ruleOperations = ruleEntitlement - .getRuleData(roleId) - .operations; - assertEq(ruleOperations.length, 0); + + RuleData memory ruleData = ruleEntitlement.getRuleData(roleId); + + assertEq(ruleData.operations.length, 0); } function test_revertWhenNotAllowedToRemove() @@ -138,53 +125,30 @@ contract RuleEntitlementTest is TestUtils, IEntitlementBase { // Request Entitlement Check // ============================================================= function test_revertOnDirectionFailureEntitlementRule() external { - IRuleEntitlement.Operation[] - memory operations = new IRuleEntitlement.Operation[](4); - IRuleEntitlement.CheckOperation[] - memory checkOperations = new IRuleEntitlement.CheckOperation[](2); - IRuleEntitlement.LogicalOperation[] - memory logicalOperations = new IRuleEntitlement.LogicalOperation[](2); - checkOperations[0] = IRuleEntitlement.CheckOperation( - IRuleEntitlement.CheckOperationType.ERC20, + Operation[] memory operations = new Operation[](4); + CheckOperation[] memory checkOperations = new CheckOperation[](2); + LogicalOperation[] memory logicalOperations = new LogicalOperation[](2); + checkOperations[0] = CheckOperation( + CheckOperationType.ERC20, 31337, address(0x12), 100 ); - checkOperations[1] = IRuleEntitlement.CheckOperation( - IRuleEntitlement.CheckOperationType.ERC721, + checkOperations[1] = CheckOperation( + CheckOperationType.ERC721, 31337, address(0x21), 100 ); // This operation is referring to a parent so will revert - logicalOperations[0] = IRuleEntitlement.LogicalOperation( - IRuleEntitlement.LogicalOperationType.AND, - 0, - 3 - ); - logicalOperations[1] = IRuleEntitlement.LogicalOperation( - IRuleEntitlement.LogicalOperationType.AND, - 0, - 1 - ); - operations[0] = IRuleEntitlement.Operation( - IRuleEntitlement.CombinedOperationType.CHECK, - 0 - ); - operations[1] = IRuleEntitlement.Operation( - IRuleEntitlement.CombinedOperationType.CHECK, - 1 - ); - operations[2] = IRuleEntitlement.Operation( - IRuleEntitlement.CombinedOperationType.LOGICAL, - 0 - ); - operations[3] = IRuleEntitlement.Operation( - IRuleEntitlement.CombinedOperationType.LOGICAL, - 1 - ); - - IRuleEntitlement.RuleData memory ruleData = IRuleEntitlement.RuleData( + logicalOperations[0] = LogicalOperation(LogicalOperationType.AND, 0, 3); + logicalOperations[1] = LogicalOperation(LogicalOperationType.AND, 0, 1); + operations[0] = Operation(CombinedOperationType.CHECK, 0); + operations[1] = Operation(CombinedOperationType.CHECK, 1); + operations[2] = Operation(CombinedOperationType.LOGICAL, 0); + operations[3] = Operation(CombinedOperationType.LOGICAL, 1); + + RuleData memory ruleData = RuleData( operations, checkOperations, logicalOperations @@ -193,17 +157,13 @@ contract RuleEntitlementTest is TestUtils, IEntitlementBase { bytes memory encodedData = abi.encode(ruleData); vm.expectRevert( - abi.encodeWithSelector( - IRuleEntitlement.InvalidRightOperationIndex.selector, - 3, - 2 - ) + abi.encodeWithSelector(InvalidRightOperationIndex.selector, 3, 2) ); vm.prank(space); ruleEntitlement.setEntitlement(0, encodedData); - IRuleEntitlement.Operation[] memory ruleOperations = ruleEntitlement + Operation[] memory ruleOperations = ruleEntitlement .getRuleData(uint256(0)) .operations; assertEq(ruleOperations.length, 0); diff --git a/contracts/test/crosschain/RuleEntitlementUtil.sol b/contracts/test/crosschain/RuleEntitlementUtil.sol index 636740e22..e10307b22 100644 --- a/contracts/test/crosschain/RuleEntitlementUtil.sol +++ b/contracts/test/crosschain/RuleEntitlementUtil.sol @@ -1,23 +1,24 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.23; -import {IRuleEntitlement} from "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol"; +import {IRuleEntitlementBase} from "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol"; library RuleEntitlementUtil { function getNoopRuleData() internal pure - returns (IRuleEntitlement.RuleData memory data) + returns (IRuleEntitlementBase.RuleData memory data) { - data = IRuleEntitlement.RuleData({ - operations: new IRuleEntitlement.Operation[](1), - checkOperations: new IRuleEntitlement.CheckOperation[](0), - logicalOperations: new IRuleEntitlement.LogicalOperation[](0) - }); - IRuleEntitlement.Operation memory noop = IRuleEntitlement.Operation({ - opType: IRuleEntitlement.CombinedOperationType.NONE, - index: 0 + data = IRuleEntitlementBase.RuleData({ + operations: new IRuleEntitlementBase.Operation[](1), + checkOperations: new IRuleEntitlementBase.CheckOperation[](0), + logicalOperations: new IRuleEntitlementBase.LogicalOperation[](0) }); + IRuleEntitlementBase.Operation memory noop = IRuleEntitlementBase + .Operation({ + opType: IRuleEntitlementBase.CombinedOperationType.NONE, + index: 0 + }); data.operations[0] = noop; } @@ -25,22 +26,22 @@ library RuleEntitlementUtil { function getMockERC721RuleData() internal pure - returns (IRuleEntitlement.RuleData memory data) + returns (IRuleEntitlementBase.RuleData memory data) { - data = IRuleEntitlement.RuleData({ - operations: new IRuleEntitlement.Operation[](1), - checkOperations: new IRuleEntitlement.CheckOperation[](1), - logicalOperations: new IRuleEntitlement.LogicalOperation[](0) + data = IRuleEntitlementBase.RuleData({ + operations: new IRuleEntitlementBase.Operation[](1), + checkOperations: new IRuleEntitlementBase.CheckOperation[](1), + logicalOperations: new IRuleEntitlementBase.LogicalOperation[](0) }); - IRuleEntitlement.CheckOperation memory checkOp = IRuleEntitlement + IRuleEntitlementBase.CheckOperation memory checkOp = IRuleEntitlementBase .CheckOperation({ - opType: IRuleEntitlement.CheckOperationType.ERC721, + opType: IRuleEntitlementBase.CheckOperationType.ERC721, chainId: 11155111, contractAddress: address(0xb088b3f2b35511A611bF2aaC13fE605d491D6C19), threshold: 1 }); - IRuleEntitlement.Operation memory op = IRuleEntitlement.Operation({ - opType: IRuleEntitlement.CombinedOperationType.CHECK, + IRuleEntitlementBase.Operation memory op = IRuleEntitlementBase.Operation({ + opType: IRuleEntitlementBase.CombinedOperationType.CHECK, index: 0 }); @@ -51,22 +52,22 @@ library RuleEntitlementUtil { function getMockERC20RuleData() internal pure - returns (IRuleEntitlement.RuleData memory data) + returns (IRuleEntitlementBase.RuleData memory data) { - data = IRuleEntitlement.RuleData({ - operations: new IRuleEntitlement.Operation[](1), - checkOperations: new IRuleEntitlement.CheckOperation[](1), - logicalOperations: new IRuleEntitlement.LogicalOperation[](0) + data = IRuleEntitlementBase.RuleData({ + operations: new IRuleEntitlementBase.Operation[](1), + checkOperations: new IRuleEntitlementBase.CheckOperation[](1), + logicalOperations: new IRuleEntitlementBase.LogicalOperation[](0) }); - IRuleEntitlement.CheckOperation memory checkOp = IRuleEntitlement + IRuleEntitlementBase.CheckOperation memory checkOp = IRuleEntitlementBase .CheckOperation({ - opType: IRuleEntitlement.CheckOperationType.ERC20, + opType: IRuleEntitlementBase.CheckOperationType.ERC20, chainId: 31337, contractAddress: address(0x11), threshold: 100 }); - IRuleEntitlement.Operation memory op = IRuleEntitlement.Operation({ - opType: IRuleEntitlement.CombinedOperationType.CHECK, + IRuleEntitlementBase.Operation memory op = IRuleEntitlementBase.Operation({ + opType: IRuleEntitlementBase.CombinedOperationType.CHECK, index: 0 }); data.operations[0] = op; @@ -76,22 +77,22 @@ library RuleEntitlementUtil { function getMockERC1155RuleData() internal pure - returns (IRuleEntitlement.RuleData memory data) + returns (IRuleEntitlementBase.RuleData memory data) { - data = IRuleEntitlement.RuleData({ - operations: new IRuleEntitlement.Operation[](1), - checkOperations: new IRuleEntitlement.CheckOperation[](1), - logicalOperations: new IRuleEntitlement.LogicalOperation[](0) + data = IRuleEntitlementBase.RuleData({ + operations: new IRuleEntitlementBase.Operation[](1), + checkOperations: new IRuleEntitlementBase.CheckOperation[](1), + logicalOperations: new IRuleEntitlementBase.LogicalOperation[](0) }); - IRuleEntitlement.CheckOperation memory checkOp = IRuleEntitlement + IRuleEntitlementBase.CheckOperation memory checkOp = IRuleEntitlementBase .CheckOperation({ - opType: IRuleEntitlement.CheckOperationType.ERC1155, + opType: IRuleEntitlementBase.CheckOperationType.ERC1155, chainId: 31341, contractAddress: address(0x55), threshold: 500 }); - IRuleEntitlement.Operation memory op = IRuleEntitlement.Operation({ - opType: IRuleEntitlement.CombinedOperationType.CHECK, + IRuleEntitlementBase.Operation memory op = IRuleEntitlementBase.Operation({ + opType: IRuleEntitlementBase.CombinedOperationType.CHECK, index: 0 }); data.operations[0] = op; diff --git a/contracts/test/crosschain/RuleEntitlementV2.t.sol b/contracts/test/crosschain/RuleEntitlementV2.t.sol new file mode 100644 index 000000000..99acfa7a3 --- /dev/null +++ b/contracts/test/crosschain/RuleEntitlementV2.t.sol @@ -0,0 +1,202 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +// utils +import {TestUtils} from "contracts/test/utils/TestUtils.sol"; + +import {RuleEntitlement} from "contracts/src/spaces/entitlements/rule/RuleEntitlement.sol"; +import {RuleEntitlementV2} from "contracts/src/spaces/entitlements/rule/RuleEntitlementV2.sol"; + +import {IEntitlementBase} from "contracts/src/spaces/entitlements/IEntitlement.sol"; +import {IRuleEntitlement, IRuleEntitlementV2, IRuleEntitlementBase} from "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol"; + +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; + +contract RuleEntitlementV2Test is + TestUtils, + IEntitlementBase, + IRuleEntitlementBase +{ + RuleEntitlement internal implementation; + RuleEntitlement internal ruleEntitlement; + + RuleEntitlementV2 internal implementationV2; + RuleEntitlementV2 internal ruleEntitlementV2; + + address internal entitlement; + address internal deployer; + address internal space; + uint256 internal roleId = 0; + + function setUp() public { + deployer = _randomAddress(); + space = _randomAddress(); + + vm.startPrank(deployer); + implementation = new RuleEntitlement(); + entitlement = address( + new ERC1967Proxy( + address(implementation), + abi.encodeCall(RuleEntitlement.initialize, (space)) + ) + ); + vm.stopPrank(); + + ruleEntitlement = RuleEntitlement(entitlement); + } + + modifier givenRuleV1EntitlementIsSet() { + uint256 chainId = block.chainid; + address erc20Contract = _randomAddress(); + address erc721Contract = _randomAddress(); + uint256 threshold = 100; + + // we have 3 operations total + Operation[] memory operations = new Operation[](3); + + // we have 2 check operations + CheckOperation[] memory checkOperations = new CheckOperation[](2); + + // and 1 logical operation + LogicalOperation[] memory logicalOperations = new LogicalOperation[](1); + + // for the first check operation, we are checking ERC20 balance of 100 on chain 31337 + checkOperations[0] = CheckOperation( + CheckOperationType.ERC20, + chainId, + erc20Contract, + threshold + ); + + // for the second check operation, we are checking ERC721 balance of 100 on chain 31337 + checkOperations[1] = CheckOperation( + CheckOperationType.ERC721, + chainId, + erc721Contract, + threshold + ); + + // we are combining the two check operations with an AND operation so both must pass + logicalOperations[0] = LogicalOperation(LogicalOperationType.AND, 0, 1); + + // the first operation is a check operation + operations[0] = Operation(CombinedOperationType.CHECK, 0); + + // the second operation is a check operation + operations[1] = Operation(CombinedOperationType.CHECK, 1); + + // the third operation is a logical operation + operations[2] = Operation(CombinedOperationType.LOGICAL, 0); + + // we are combining all the operations into a rule data struct + RuleData memory ruleData = RuleData( + operations, + checkOperations, + logicalOperations + ); + + bytes memory encodedData = abi.encode(ruleData); + + vm.prank(space); + ruleEntitlement.setEntitlement(roleId, encodedData); + _; + } + + function test_upgradeToRuleV2() external givenRuleV1EntitlementIsSet { + // Validate Rule V1 exists + ruleEntitlement.getRuleData(roleId); + + assertFalse( + ruleEntitlement.supportsInterface(type(IRuleEntitlementV2).interfaceId) + ); + + // Upgrade to Rule V2 + vm.startPrank(deployer); + implementationV2 = new RuleEntitlementV2(); + vm.stopPrank(); + + vm.prank(space); + UUPSUpgradeable(entitlement).upgradeToAndCall( + address(implementationV2), + "" + ); + + ruleEntitlementV2 = RuleEntitlementV2(entitlement); + + assertTrue( + ruleEntitlementV2.supportsInterface(type(IRuleEntitlementV2).interfaceId) + ); + + RuleData memory ruleData = ruleEntitlementV2.getRuleData(roleId); + assertTrue(ruleData.operations.length > 0); + + RuleDataV2 memory ruleDataV2 = ruleEntitlementV2.getRuleDataV2(roleId); + assertTrue(ruleDataV2.operations.length == 0); + + // Set Rule V2 + vm.prank(space); + ruleEntitlementV2.setEntitlement(roleId, abi.encode(_createRuleDataV2())); + + // Validate Rule V2 exists and Rule V1 does not + ruleDataV2 = ruleEntitlementV2.getRuleDataV2(roleId); + assertTrue(ruleDataV2.operations.length > 0); + + ruleData = ruleEntitlementV2.getRuleData(roleId); + assertTrue(ruleData.operations.length == 0); + } + + // ============================================================= + // Internal + // ============================================================= + function _createRuleDataV2() + internal + view + returns (RuleDataV2 memory ruleData) + { + uint256 chainId = block.chainid; + address erc20Contract = _randomAddress(); + address erc721Contract = _randomAddress(); + bytes memory params = ""; + + // we have 3 operations total + Operation[] memory operations = new Operation[](3); + + // we have 2 check operations + CheckOperationV2[] memory checkOperations = new CheckOperationV2[](2); + + // and 1 logical operation + LogicalOperation[] memory logicalOperations = new LogicalOperation[](1); + + // for the first check operation, we are checking ERC20 balance of 100 on chain 31337 + checkOperations[0] = CheckOperationV2( + CheckOperationType.ERC20, + chainId, + erc20Contract, + params + ); + + // for the second check operation, we are checking ERC721 balance of 100 on chain 31337 + checkOperations[1] = CheckOperationV2( + CheckOperationType.ERC721, + chainId, + erc721Contract, + params + ); + + // we are combining the two check operations with an AND operation so both must pass + logicalOperations[0] = LogicalOperation(LogicalOperationType.AND, 0, 1); + + // the first operation is a check operation + operations[0] = Operation(CombinedOperationType.CHECK, 0); + + // the second operation is a check operation + operations[1] = Operation(CombinedOperationType.CHECK, 1); + + // the third operation is a logical operation + operations[2] = Operation(CombinedOperationType.LOGICAL, 0); + + // we are combining all the operations into a rule data struct + ruleData = RuleDataV2(operations, checkOperations, logicalOperations); + } +} diff --git a/contracts/test/spaces/BaseSetup.sol b/contracts/test/spaces/BaseSetup.sol index 6fc6d1d70..37b26d6d4 100644 --- a/contracts/test/spaces/BaseSetup.sol +++ b/contracts/test/spaces/BaseSetup.sol @@ -153,9 +153,6 @@ contract BaseSetup is TestUtils, SpaceHelper { space = Architect(spaceFactory).createSpace(spaceInfo); everyoneSpace = Architect(spaceFactory).createSpace(everyoneSpaceInfo); vm.stopPrank(); - - // _registerOperators(); - // _registerNodes(); } function _registerOperators() internal { diff --git a/contracts/test/spaces/entitlements/EntitlementDataQueryable.t.sol b/contracts/test/spaces/entitlements/EntitlementDataQueryable.t.sol index 819951fc6..b1ec7b92d 100644 --- a/contracts/test/spaces/entitlements/EntitlementDataQueryable.t.sol +++ b/contracts/test/spaces/entitlements/EntitlementDataQueryable.t.sol @@ -10,21 +10,28 @@ import {IChannel} from "contracts/src/spaces/facets/channels/IChannel.sol"; // libraries import {Permissions} from "contracts/src/spaces/facets/Permissions.sol"; +import {Vm} from "forge-std/Test.sol"; // contracts -import {BaseSetup} from "contracts/test/spaces/BaseSetup.sol"; + +import {MembershipBaseSetup} from "contracts/test/spaces/membership/MembershipBaseSetup.sol"; // mocks import {MockUserEntitlement} from "contracts/test/mocks/MockUserEntitlement.sol"; contract EntitlementDataQueryableTest is - BaseSetup, + MembershipBaseSetup, IEntitlementDataQueryableBase, IRolesBase { IEntitlementDataQueryable internal entitlements; MockUserEntitlement internal mockEntitlement; + bytes32 internal constant CHECK_REQUESTED = + keccak256( + "EntitlementCheckRequested(address,address,bytes32,uint256,address[])" + ); + function setUp() public override { super.setUp(); @@ -49,7 +56,7 @@ contract EntitlementDataQueryableTest is ); } - function test_GetChannelEntitlementDataByPermission() external { + function test_getChannelEntitlementDataByPermission() external { string[] memory permissions = new string[](1); permissions[0] = Permissions.Read; @@ -89,4 +96,53 @@ contract EntitlementDataQueryableTest is keccak256(abi.encode(users)) ); } + + function test_getCrossChainEntitlementData() external { + address alice = _randomAddress(); + + vm.recordLogs(); + + vm.prank(alice); + membership.joinSpace(alice); + + Vm.Log[] memory requestLogs = vm.getRecordedLogs(); // Retrieve the recorded logs + + (, bytes32 transactionId, uint256 roleId, ) = _getRequestedEntitlementData( + requestLogs + ); + + EntitlementData memory data = IEntitlementDataQueryable(userSpace) + .getCrossChainEntitlementData(transactionId, roleId); + + assertTrue(data.entitlementData.length > 0); + assertEq( + keccak256(abi.encodePacked(data.entitlementType)), + keccak256(abi.encodePacked("RuleEntitlement")) + ); + } + + function _getRequestedEntitlementData( + Vm.Log[] memory requestLogs + ) + internal + pure + returns ( + address contractAddress, + bytes32 transactionId, + uint256 roleId, + address[] memory selectedNodes + ) + { + for (uint i = 0; i < requestLogs.length; i++) { + if ( + requestLogs[i].topics.length > 0 && + requestLogs[i].topics[0] == CHECK_REQUESTED + ) { + (, contractAddress, transactionId, roleId, selectedNodes) = abi.decode( + requestLogs[i].data, + (address, address, bytes32, uint256, address[]) + ); + } + } + } } diff --git a/contracts/test/spaces/integration/createSpace/createSpace.t.sol b/contracts/test/spaces/integration/createSpace/createSpace.t.sol index e75414401..39fe3884c 100644 --- a/contracts/test/spaces/integration/createSpace/createSpace.t.sol +++ b/contracts/test/spaces/integration/createSpace/createSpace.t.sol @@ -10,9 +10,9 @@ import {IRolesBase} from "contracts/src/spaces/facets/roles/IRoles.sol"; import {IArchitect} from "contracts/src/factory/facets/architect/IArchitect.sol"; import {IArchitectBase} from "contracts/src/factory/facets/architect/IArchitect.sol"; import {IMembership} from "contracts/src/spaces/facets/membership/IMembership.sol"; -import {IRuleEntitlement} from "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol"; +import {IRuleEntitlementBase} from "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol"; import {IEntitlement} from "contracts/src/spaces/entitlements/IEntitlement.sol"; -import {IEntitlementChecker} from "contracts/src/base/registry/facets/checker/IEntitlementChecker.sol"; + // libraries import {Permissions} from "contracts/src/spaces/facets/Permissions.sol"; @@ -23,7 +23,12 @@ import {Architect} from "contracts/src/factory/facets/architect/Architect.sol"; // mocks import {MockERC721} from "contracts/test/mocks/MockERC721.sol"; -contract Integration_CreateSpace is BaseSetup, IRolesBase, IArchitectBase { +contract Integration_CreateSpace is + BaseSetup, + IRolesBase, + IArchitectBase, + IRuleEntitlementBase +{ Architect public spaceArchitect; function setUp() public override { @@ -94,29 +99,23 @@ contract Integration_CreateSpace is BaseSetup, IRolesBase, IArchitectBase { address mock = address(new MockERC721()); // We first define how many operations we want to have - IRuleEntitlement.Operation[] - memory operations = new IRuleEntitlement.Operation[](1); - operations[0] = IRuleEntitlement.Operation({ - opType: IRuleEntitlement.CombinedOperationType.CHECK, - index: 0 - }); + Operation[] memory operations = new Operation[](1); + operations[0] = Operation({opType: CombinedOperationType.CHECK, index: 0}); // We then define the type of operations we want to have - IRuleEntitlement.CheckOperation[] - memory checkOperations = new IRuleEntitlement.CheckOperation[](1); - checkOperations[0] = IRuleEntitlement.CheckOperation({ - opType: IRuleEntitlement.CheckOperationType.ERC721, + CheckOperation[] memory checkOperations = new CheckOperation[](1); + checkOperations[0] = CheckOperation({ + opType: CheckOperationType.ERC721, chainId: block.chainid, contractAddress: mock, threshold: 1 }); // We then define the logical operations we want to have - IRuleEntitlement.LogicalOperation[] - memory logicalOperations = new IRuleEntitlement.LogicalOperation[](0); + LogicalOperation[] memory logicalOperations = new LogicalOperation[](0); // We then define the rule data - IRuleEntitlement.RuleData memory ruleData = IRuleEntitlement.RuleData({ + RuleData memory ruleData = RuleData({ operations: operations, checkOperations: checkOperations, logicalOperations: logicalOperations diff --git a/core/contracts/base/architect.go b/core/contracts/base/architect.go index 00a1b04f6..f250e93b0 100644 --- a/core/contracts/base/architect.go +++ b/core/contracts/base/architect.go @@ -45,7 +45,7 @@ type IArchitectBaseMembership struct { type IArchitectBaseMembershipRequirements struct { Everyone bool Users []common.Address - RuleData IRuleEntitlementRuleData + RuleData IRuleEntitlementBaseRuleData } // IArchitectBaseSpaceInfo is an auto generated low-level Go binding around an user-defined struct. @@ -73,7 +73,7 @@ type IMembershipBaseMembership struct { // ArchitectMetaData contains all meta data concerning the Architect contract. var ArchitectMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"createSpace\",\"inputs\":[{\"name\":\"SpaceInfo\",\"type\":\"tuple\",\"internalType\":\"structIArchitectBase.SpaceInfo\",\"components\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"uri\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"membership\",\"type\":\"tuple\",\"internalType\":\"structIArchitectBase.Membership\",\"components\":[{\"name\":\"settings\",\"type\":\"tuple\",\"internalType\":\"structIMembershipBase.Membership\",\"components\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxSupply\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"duration\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"currency\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"freeAllocation\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"pricingModule\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"requirements\",\"type\":\"tuple\",\"internalType\":\"structIArchitectBase.MembershipRequirements\",\"components\":[{\"name\":\"everyone\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"users\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"ruleData\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlement.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}]},{\"name\":\"permissions\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]},{\"name\":\"channel\",\"type\":\"tuple\",\"internalType\":\"structIArchitectBase.ChannelInfo\",\"components\":[{\"name\":\"metadata\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"name\":\"shortDescription\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"longDescription\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getSpaceArchitectImplementations\",\"inputs\":[],\"outputs\":[{\"name\":\"ownerTokenImplementation\",\"type\":\"address\",\"internalType\":\"contractISpaceOwner\"},{\"name\":\"userEntitlementImplementation\",\"type\":\"address\",\"internalType\":\"contractIUserEntitlement\"},{\"name\":\"ruleEntitlementImplementation\",\"type\":\"address\",\"internalType\":\"contractIRuleEntitlement\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSpaceByTokenId\",\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"space\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenIdBySpace\",\"inputs\":[{\"name\":\"space\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setSpaceArchitectImplementations\",\"inputs\":[{\"name\":\"ownerTokenImplementation\",\"type\":\"address\",\"internalType\":\"contractISpaceOwner\"},{\"name\":\"userEntitlementImplementation\",\"type\":\"address\",\"internalType\":\"contractIUserEntitlement\"},{\"name\":\"ruleEntitlementImplementation\",\"type\":\"address\",\"internalType\":\"contractIRuleEntitlement\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"SpaceCreated\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"space\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"Architect__InvalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Architect__InvalidNetworkId\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Architect__InvalidStringLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Architect__NotContract\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"createSpace\",\"inputs\":[{\"name\":\"SpaceInfo\",\"type\":\"tuple\",\"internalType\":\"structIArchitectBase.SpaceInfo\",\"components\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"uri\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"membership\",\"type\":\"tuple\",\"internalType\":\"structIArchitectBase.Membership\",\"components\":[{\"name\":\"settings\",\"type\":\"tuple\",\"internalType\":\"structIMembershipBase.Membership\",\"components\":[{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"price\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"maxSupply\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"duration\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"currency\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeRecipient\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"freeAllocation\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"pricingModule\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"name\":\"requirements\",\"type\":\"tuple\",\"internalType\":\"structIArchitectBase.MembershipRequirements\",\"components\":[{\"name\":\"everyone\",\"type\":\"bool\",\"internalType\":\"bool\"},{\"name\":\"users\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"ruleData\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlementBase.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}]},{\"name\":\"permissions\",\"type\":\"string[]\",\"internalType\":\"string[]\"}]},{\"name\":\"channel\",\"type\":\"tuple\",\"internalType\":\"structIArchitectBase.ChannelInfo\",\"components\":[{\"name\":\"metadata\",\"type\":\"string\",\"internalType\":\"string\"}]},{\"name\":\"shortDescription\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"longDescription\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getSpaceArchitectImplementations\",\"inputs\":[],\"outputs\":[{\"name\":\"ownerTokenImplementation\",\"type\":\"address\",\"internalType\":\"contractISpaceOwner\"},{\"name\":\"userEntitlementImplementation\",\"type\":\"address\",\"internalType\":\"contractIUserEntitlement\"},{\"name\":\"ruleEntitlementImplementation\",\"type\":\"address\",\"internalType\":\"contractIRuleEntitlement\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getSpaceByTokenId\",\"inputs\":[{\"name\":\"tokenId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"space\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getTokenIdBySpace\",\"inputs\":[{\"name\":\"space\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setSpaceArchitectImplementations\",\"inputs\":[{\"name\":\"ownerTokenImplementation\",\"type\":\"address\",\"internalType\":\"contractISpaceOwner\"},{\"name\":\"userEntitlementImplementation\",\"type\":\"address\",\"internalType\":\"contractIUserEntitlement\"},{\"name\":\"ruleEntitlementImplementation\",\"type\":\"address\",\"internalType\":\"contractIRuleEntitlement\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"SpaceCreated\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"tokenId\",\"type\":\"uint256\",\"indexed\":true,\"internalType\":\"uint256\"},{\"name\":\"space\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"Architect__InvalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Architect__InvalidNetworkId\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Architect__InvalidStringLength\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Architect__NotContract\",\"inputs\":[]}]", } // ArchitectABI is the input ABI used to generate the binding from. diff --git a/core/contracts/base/deploy/mock_entitlement_gated.go b/core/contracts/base/deploy/mock_entitlement_gated.go index 2c145c548..0ca99e36a 100644 --- a/core/contracts/base/deploy/mock_entitlement_gated.go +++ b/core/contracts/base/deploy/mock_entitlement_gated.go @@ -29,37 +29,37 @@ var ( _ = abi.ConvertType ) -// IRuleEntitlementCheckOperation is an auto generated low-level Go binding around an user-defined struct. -type IRuleEntitlementCheckOperation struct { +// IRuleEntitlementBaseCheckOperation is an auto generated low-level Go binding around an user-defined struct. +type IRuleEntitlementBaseCheckOperation struct { OpType uint8 ChainId *big.Int ContractAddress common.Address Threshold *big.Int } -// IRuleEntitlementLogicalOperation is an auto generated low-level Go binding around an user-defined struct. -type IRuleEntitlementLogicalOperation struct { +// IRuleEntitlementBaseLogicalOperation is an auto generated low-level Go binding around an user-defined struct. +type IRuleEntitlementBaseLogicalOperation struct { LogOpType uint8 LeftOperationIndex uint8 RightOperationIndex uint8 } -// IRuleEntitlementOperation is an auto generated low-level Go binding around an user-defined struct. -type IRuleEntitlementOperation struct { +// IRuleEntitlementBaseOperation is an auto generated low-level Go binding around an user-defined struct. +type IRuleEntitlementBaseOperation struct { OpType uint8 Index uint8 } -// IRuleEntitlementRuleData is an auto generated low-level Go binding around an user-defined struct. -type IRuleEntitlementRuleData struct { - Operations []IRuleEntitlementOperation - CheckOperations []IRuleEntitlementCheckOperation - LogicalOperations []IRuleEntitlementLogicalOperation +// IRuleEntitlementBaseRuleData is an auto generated low-level Go binding around an user-defined struct. +type IRuleEntitlementBaseRuleData struct { + Operations []IRuleEntitlementBaseOperation + CheckOperations []IRuleEntitlementBaseCheckOperation + LogicalOperations []IRuleEntitlementBaseLogicalOperation } // MockEntitlementGatedMetaData contains all meta data concerning the MockEntitlementGated contract. var MockEntitlementGatedMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"checker\",\"type\":\"address\",\"internalType\":\"contractIEntitlementChecker\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"__EntitlementGated_init\",\"inputs\":[{\"name\":\"entitlementChecker\",\"type\":\"address\",\"internalType\":\"contractIEntitlementChecker\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getRuleData\",\"inputs\":[{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlement.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRuleData\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlement.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"postEntitlementCheckResult\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"result\",\"type\":\"uint8\",\"internalType\":\"enumIEntitlementGatedBase.NodeVoteStatus\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"requestEntitlementCheck\",\"inputs\":[{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"ruleData\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlement.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"EntitlementCheckResultPosted\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"result\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumIEntitlementGatedBase.NodeVoteStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"InterfaceAdded\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"indexed\":true,\"internalType\":\"bytes4\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"InterfaceRemoved\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"indexed\":true,\"internalType\":\"bytes4\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"EntitlementGated_InvalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_NodeAlreadyVoted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_NodeNotFound\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_TransactionCheckAlreadyCompleted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_TransactionCheckAlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_TransactionNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_InInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_NotInInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_AlreadySupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_NotSupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuard__ReentrantCall\",\"inputs\":[]}]", + ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"checker\",\"type\":\"address\",\"internalType\":\"contractIEntitlementChecker\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"__EntitlementGated_init\",\"inputs\":[{\"name\":\"entitlementChecker\",\"type\":\"address\",\"internalType\":\"contractIEntitlementChecker\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getRuleData\",\"inputs\":[{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlementBase.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRuleData\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlementBase.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"postEntitlementCheckResult\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"result\",\"type\":\"uint8\",\"internalType\":\"enumIEntitlementGatedBase.NodeVoteStatus\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"requestEntitlementCheck\",\"inputs\":[{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"ruleData\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlementBase.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"EntitlementCheckResultPosted\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"result\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumIEntitlementGatedBase.NodeVoteStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"InterfaceAdded\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"indexed\":true,\"internalType\":\"bytes4\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"InterfaceRemoved\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"indexed\":true,\"internalType\":\"bytes4\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"EntitlementGated_InvalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_NodeAlreadyVoted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_NodeNotFound\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_TransactionCheckAlreadyCompleted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_TransactionCheckAlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_TransactionNotRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_InInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_NotInInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_AlreadySupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_NotSupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"ReentrancyGuard__ReentrantCall\",\"inputs\":[]}]", Bin: "0x60806040523480156200001157600080fd5b5060405162001b9a38038062001b9a833981016040819052620000349162000127565b6200003e6200007f565b7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0080546001600160a01b0319166001600160a01b0383161790555062000159565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff1615620000cc576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156200012457805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6000602082840312156200013a57600080fd5b81516001600160a01b03811681146200015257600080fd5b9392505050565b611a3180620001696000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063069a3ee91461005c5780634739e8051461008557806357e700271461009a5780637adc9cbe146100bb57806392c399ff146100ce575b600080fd5b61006f61006a366004610e1e565b6100e1565b60405161007c9190610f28565b60405180910390f35b610098610093366004610fd8565b610314565b005b6100ad6100a8366004611011565b6103b8565b60405190815260200161007c565b6100986100c9366004611074565b610426565b61006f6100dc366004611091565b61047c565b61010560405180606001604052806060815260200160608152602001606081525090565b6000828152602081815260408083208151815460809481028201850190935260608101838152909491938593919285929185015b828210156101a257600084815260209020604080518082019091529083018054829060ff16600281111561016f5761016f610e37565b600281111561018057610180610e37565b81529054610100900460ff166020918201529082526001929092019101610139565b50505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101561025a576000848152602090206040805160808101909152600484029091018054829060ff16600581111561020a5761020a610e37565b600581111561021b5761021b610e37565b815260018281015460208084019190915260028401546001600160a01b03166040840152600390930154606090920191909152918352920191016101cf565b50505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b828210156103065760008481526020902060408051606081019091529083018054829060ff1660028111156102be576102be610e37565b60028111156102cf576102cf610e37565b8152905460ff6101008204811660208085019190915262010000909204166040909201919091529082526001929092019101610287565b505050915250909392505050565b60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a00540361035657604051635db5c7cd60e11b815260040160405180910390fd5b61037f60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b61038a8383836104aa565b6103b360017f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b505050565b600082815260208190526040812082906103d2828261140a565b50506040516bffffffffffffffffffffffff193260601b16602082015243603482015260009060540160405160208183030381529060405280519060200120905061041f81306000610743565b9392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661047057604051630ef4733760e31b815260040160405180910390fd5b610479816109f2565b50565b6104a060405180606001604052806060815260200160608152602001606081525090565b61041f8383610a2d565b6000838152600080516020611a118339815191526020526040902080546000805160206119f1833981519152919061010090046001600160a01b031615806104f45750805460ff16155b1561051257604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff161561054457604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b8181101561068257600089815260018701602052604081208054839081106105855761058561150e565b60009182526020909120018054909150336001600160a01b03909116036106115760008154600160a01b900460ff1660028111156105c5576105c5610e37565b146105e3576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b83600281111561060757610607610e37565b0217905550600195505b60018154600160a01b900460ff16600281111561063057610630610e37565b03610647578461063f81611524565b955050610679565b60028154600160a01b900460ff16600281111561066657610666610e37565b03610679578361067581611524565b9450505b5060010161055b565b50836106a157604051638223a7e960e01b815260040160405180910390fd5b6106ac60028261153d565b8311806106c257506106bf60028261153d565b82115b156107385760008881526002860160205260408120805460ff191660011790558284116106f05760026106f3565b60015b9050897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051610725919061155f565b60405180910390a26107368a610b27565b505b505050505050505050565b6000838152600080516020611a118339815191526020526040902080546000805160206119f1833981519152919060ff1615156001036107d55760005b60048201548110156107d357838260040182815481106107a2576107a261150e565b9060005260206000200154036107cb576040516301ab53df60e31b815260040160405180910390fd5b600101610780565b505b81546001600160a01b03166107ec576107ec610bfb565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015610835573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261085d9190810190611636565b825490915060ff1661089e5781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b815181101561098e5782600101600086815260200190815260200160002060405180604001604052808484815181106108f3576108f361150e565b60200260200101516001600160a01b031681526020016000600281111561091c5761091c610e37565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b83600281111561097f5761097f610e37565b021790555050506001016108b8565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e5906109c49033908a90899087906004016116ca565b600060405180830381600087803b1580156109de57600080fd5b505af1158015610736573d6000803e3d6000fd5b610a02636afd38fd60e11b610ccc565b6000805160206119f183398151915280546001600160a01b0319166001600160a01b03831617905550565b610a5160405180606001604052806060815260200160608152602001606081525090565b6000838152600080516020611a118339815191526020526040812080546000805160206119f18339815191529260ff90911615159003610aa457604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015610af4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b1c9190810190611893565b979650505050505050565b6000818152600080516020611a11833981519152602052604081206000805160206119f1833981519152915b6004820154811015610ba757816001016000836004018381548110610b7a57610b7a61150e565b906000526020600020015481526020019081526020016000206000610b9f9190610daa565b600101610b53565b50610bb6600482016000610dc8565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610bf46004830182610dc8565b5050505050565b60006000805160206119f1833981519152905060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60060060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015610c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cad91906119d3565b82546001600160a01b0319166001600160a01b03919091161790915550565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114610d59576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055610d72565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b50805460008255906000526020600020908101906104799190610de6565b50805460008255906000526020600020908101906104799190610e09565b5b80821115610e055780546001600160a81b0319168155600101610de7565b5090565b5b80821115610e055760008155600101610e0a565b600060208284031215610e3057600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6003811061047957610479610e37565b60008151808452602080850194506020840160005b83811015610ec7578151805160068110610e8e57610e8e610e37565b885280840151848901526040808201516001600160a01b0316908901526060908101519088015260809096019590820190600101610e72565b509495945050505050565b60008151808452602080850194506020840160005b83811015610ec75781518051610efc81610e4d565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101610ee7565b6020808252825160608383015280516080840181905260009291820190839060a08601905b80831015610f845783518051610f6281610e4d565b835285015160ff16858301529284019260019290920191604090910190610f4d565b50838701519350601f19925082868203016040870152610fa48185610e5d565b93505050604085015181858403016060860152610fc18382610ed2565b9695505050505050565b6003811061047957600080fd5b600080600060608486031215610fed57600080fd5b8335925060208401359150604084013561100681610fcb565b809150509250925092565b6000806040838503121561102457600080fd5b82359150602083013567ffffffffffffffff81111561104257600080fd5b83016060818603121561105457600080fd5b809150509250929050565b6001600160a01b038116811461047957600080fd5b60006020828403121561108657600080fd5b813561041f8161105f565b600080604083850312156110a457600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff8116811461047957600080fd5b81356110f981610fcb565b61110281610e4d565b60ff1982541660ff82168117835550506020820135611120816110df565b815461ff001916600882901b61ff0016178255505050565b6000808335601e1984360301811261114f57600080fd5b83018035915067ffffffffffffffff82111561116a57600080fd5b6020019150600781901b360382131561118257600080fd5b9250929050565b6006811061047957600080fd5b81356111a181611189565b600681106111b1576111b1610e37565b60ff1982541660ff8216811783555050602082013560018201556002810160408301356111dd8161105f565b81546001600160a01b0319166001600160a01b03919091161790556060919091013560039190910155565b600160401b83111561121c5761121c6110b3565b80548382558084101561129a5760026001600160fe1b038281168314611244576112446110c9565b8086168614611255576112556110c9565b506000838152602081208360021b81018760021b820191505b8082101561129557828255826001830155828483015582600383015560048201915061126e565b505050505b5060008181526020812083915b858110156112cf576112b98383611196565b60809290920191600491909101906001016112a7565b505050505050565b6000808335601e198436030181126112ee57600080fd5b83018035915067ffffffffffffffff82111561130957600080fd5b602001915060608102360382131561118257600080fd5b813561132b81610fcb565b61133481610e4d565b60ff1982541660ff82168117835550506020820135611352816110df565b815461ff001916600882901b61ff0016178255506040820135611374816110df565b815462ff0000191660109190911b62ff00001617905550565b600160401b8311156113a1576113a16110b3565b8054838255808410156113d8576000828152602081208581019083015b808210156113d4578282556001820191506113be565b5050505b5060008181526020812083915b858110156112cf576113f78383611320565b60609290920191600191820191016113e5565b8135601e1983360301811261141e57600080fd5b8201803567ffffffffffffffff81111561143757600080fd5b6020820191508060061b360382131561144f57600080fd5b600160401b811115611463576114636110b3565b82548184558082101561149a576000848152602081208381019083015b8082101561149657828255600182019150611480565b5050505b5060008381526020902060005b828110156114cc576114b984836110ee565b60409390930192600191820191016114a7565b505050506114dd6020830183611138565b6114eb818360018601611208565b50506114fa60408301836112d7565b61150881836002860161138d565b50505050565b634e487b7160e01b600052603260045260246000fd5b600060018201611536576115366110c9565b5060010190565b60008261155a57634e487b7160e01b600052601260045260246000fd5b500490565b6020810161156c83610e4d565b91905290565b6040516080810167ffffffffffffffff81118282101715611595576115956110b3565b60405290565b6040516060810167ffffffffffffffff81118282101715611595576115956110b3565b6040805190810167ffffffffffffffff81118282101715611595576115956110b3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561160a5761160a6110b3565b604052919050565b600067ffffffffffffffff82111561162c5761162c6110b3565b5060051b60200190565b6000602080838503121561164957600080fd5b825167ffffffffffffffff81111561166057600080fd5b8301601f8101851361167157600080fd5b805161168461167f82611612565b6115e1565b81815260059190911b820183019083810190878311156116a357600080fd5b928401925b82841015610b1c5783516116bb8161105f565b825292840192908401906116a8565b60006080820160018060a01b03808816845260208760208601528660408601526080606086015282865180855260a08701915060208801945060005b81811015611724578551851683529483019491830191600101611706565b50909a9950505050505050505050565b600082601f83011261174557600080fd5b8151602061175561167f83611612565b82815260079290921b8401810191818101908684111561177457600080fd5b8286015b848110156117d957608081890312156117915760008081fd5b611799611572565b81516117a481611189565b815281850151858201526040808301516117bd8161105f565b9082015260608281015190820152835291830191608001611778565b509695505050505050565b600082601f8301126117f557600080fd5b8151602061180561167f83611612565b8281526060928302850182019282820191908785111561182457600080fd5b8387015b858110156118865781818a0312156118405760008081fd5b61184861159b565b815161185381610fcb565b815281860151611862816110df565b81870152604082810151611875816110df565b908201528452928401928101611828565b5090979650505050505050565b600060208083850312156118a657600080fd5b825167ffffffffffffffff808211156118be57600080fd5b90840190606082870312156118d257600080fd5b6118da61159b565b8251828111156118e957600080fd5b8301601f810188136118fa57600080fd5b805161190861167f82611612565b81815260069190911b8201860190868101908a83111561192757600080fd5b928701925b8284101561197d576040848c0312156119455760008081fd5b61194d6115be565b845161195881610fcb565b815284890151611967816110df565b818a01528252604093909301929087019061192c565b8452505050828401518281111561199357600080fd5b61199f88828601611734565b858301525060408301519350818411156119b857600080fd5b6119c4878585016117e4565b60408201529695505050505050565b6000602082840312156119e557600080fd5b815161041f8161105f56fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e01", } @@ -233,15 +233,15 @@ func (_MockEntitlementGated *MockEntitlementGatedTransactorRaw) Transact(opts *b // GetRuleData is a free data retrieval call binding the contract method 0x069a3ee9. // // Solidity: function getRuleData(uint256 roleId) view returns(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[])) -func (_MockEntitlementGated *MockEntitlementGatedCaller) GetRuleData(opts *bind.CallOpts, roleId *big.Int) (IRuleEntitlementRuleData, error) { +func (_MockEntitlementGated *MockEntitlementGatedCaller) GetRuleData(opts *bind.CallOpts, roleId *big.Int) (IRuleEntitlementBaseRuleData, error) { var out []interface{} err := _MockEntitlementGated.contract.Call(opts, &out, "getRuleData", roleId) if err != nil { - return *new(IRuleEntitlementRuleData), err + return *new(IRuleEntitlementBaseRuleData), err } - out0 := *abi.ConvertType(out[0], new(IRuleEntitlementRuleData)).(*IRuleEntitlementRuleData) + out0 := *abi.ConvertType(out[0], new(IRuleEntitlementBaseRuleData)).(*IRuleEntitlementBaseRuleData) return out0, err @@ -250,29 +250,29 @@ func (_MockEntitlementGated *MockEntitlementGatedCaller) GetRuleData(opts *bind. // GetRuleData is a free data retrieval call binding the contract method 0x069a3ee9. // // Solidity: function getRuleData(uint256 roleId) view returns(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[])) -func (_MockEntitlementGated *MockEntitlementGatedSession) GetRuleData(roleId *big.Int) (IRuleEntitlementRuleData, error) { +func (_MockEntitlementGated *MockEntitlementGatedSession) GetRuleData(roleId *big.Int) (IRuleEntitlementBaseRuleData, error) { return _MockEntitlementGated.Contract.GetRuleData(&_MockEntitlementGated.CallOpts, roleId) } // GetRuleData is a free data retrieval call binding the contract method 0x069a3ee9. // // Solidity: function getRuleData(uint256 roleId) view returns(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[])) -func (_MockEntitlementGated *MockEntitlementGatedCallerSession) GetRuleData(roleId *big.Int) (IRuleEntitlementRuleData, error) { +func (_MockEntitlementGated *MockEntitlementGatedCallerSession) GetRuleData(roleId *big.Int) (IRuleEntitlementBaseRuleData, error) { return _MockEntitlementGated.Contract.GetRuleData(&_MockEntitlementGated.CallOpts, roleId) } // GetRuleData0 is a free data retrieval call binding the contract method 0x92c399ff. // // Solidity: function getRuleData(bytes32 transactionId, uint256 roleId) view returns(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[])) -func (_MockEntitlementGated *MockEntitlementGatedCaller) GetRuleData0(opts *bind.CallOpts, transactionId [32]byte, roleId *big.Int) (IRuleEntitlementRuleData, error) { +func (_MockEntitlementGated *MockEntitlementGatedCaller) GetRuleData0(opts *bind.CallOpts, transactionId [32]byte, roleId *big.Int) (IRuleEntitlementBaseRuleData, error) { var out []interface{} err := _MockEntitlementGated.contract.Call(opts, &out, "getRuleData0", transactionId, roleId) if err != nil { - return *new(IRuleEntitlementRuleData), err + return *new(IRuleEntitlementBaseRuleData), err } - out0 := *abi.ConvertType(out[0], new(IRuleEntitlementRuleData)).(*IRuleEntitlementRuleData) + out0 := *abi.ConvertType(out[0], new(IRuleEntitlementBaseRuleData)).(*IRuleEntitlementBaseRuleData) return out0, err @@ -281,14 +281,14 @@ func (_MockEntitlementGated *MockEntitlementGatedCaller) GetRuleData0(opts *bind // GetRuleData0 is a free data retrieval call binding the contract method 0x92c399ff. // // Solidity: function getRuleData(bytes32 transactionId, uint256 roleId) view returns(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[])) -func (_MockEntitlementGated *MockEntitlementGatedSession) GetRuleData0(transactionId [32]byte, roleId *big.Int) (IRuleEntitlementRuleData, error) { +func (_MockEntitlementGated *MockEntitlementGatedSession) GetRuleData0(transactionId [32]byte, roleId *big.Int) (IRuleEntitlementBaseRuleData, error) { return _MockEntitlementGated.Contract.GetRuleData0(&_MockEntitlementGated.CallOpts, transactionId, roleId) } // GetRuleData0 is a free data retrieval call binding the contract method 0x92c399ff. // // Solidity: function getRuleData(bytes32 transactionId, uint256 roleId) view returns(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[])) -func (_MockEntitlementGated *MockEntitlementGatedCallerSession) GetRuleData0(transactionId [32]byte, roleId *big.Int) (IRuleEntitlementRuleData, error) { +func (_MockEntitlementGated *MockEntitlementGatedCallerSession) GetRuleData0(transactionId [32]byte, roleId *big.Int) (IRuleEntitlementBaseRuleData, error) { return _MockEntitlementGated.Contract.GetRuleData0(&_MockEntitlementGated.CallOpts, transactionId, roleId) } @@ -337,21 +337,21 @@ func (_MockEntitlementGated *MockEntitlementGatedTransactorSession) PostEntitlem // RequestEntitlementCheck is a paid mutator transaction binding the contract method 0x57e70027. // // Solidity: function requestEntitlementCheck(uint256 roleId, ((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]) ruleData) returns(bytes32) -func (_MockEntitlementGated *MockEntitlementGatedTransactor) RequestEntitlementCheck(opts *bind.TransactOpts, roleId *big.Int, ruleData IRuleEntitlementRuleData) (*types.Transaction, error) { +func (_MockEntitlementGated *MockEntitlementGatedTransactor) RequestEntitlementCheck(opts *bind.TransactOpts, roleId *big.Int, ruleData IRuleEntitlementBaseRuleData) (*types.Transaction, error) { return _MockEntitlementGated.contract.Transact(opts, "requestEntitlementCheck", roleId, ruleData) } // RequestEntitlementCheck is a paid mutator transaction binding the contract method 0x57e70027. // // Solidity: function requestEntitlementCheck(uint256 roleId, ((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]) ruleData) returns(bytes32) -func (_MockEntitlementGated *MockEntitlementGatedSession) RequestEntitlementCheck(roleId *big.Int, ruleData IRuleEntitlementRuleData) (*types.Transaction, error) { +func (_MockEntitlementGated *MockEntitlementGatedSession) RequestEntitlementCheck(roleId *big.Int, ruleData IRuleEntitlementBaseRuleData) (*types.Transaction, error) { return _MockEntitlementGated.Contract.RequestEntitlementCheck(&_MockEntitlementGated.TransactOpts, roleId, ruleData) } // RequestEntitlementCheck is a paid mutator transaction binding the contract method 0x57e70027. // // Solidity: function requestEntitlementCheck(uint256 roleId, ((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]) ruleData) returns(bytes32) -func (_MockEntitlementGated *MockEntitlementGatedTransactorSession) RequestEntitlementCheck(roleId *big.Int, ruleData IRuleEntitlementRuleData) (*types.Transaction, error) { +func (_MockEntitlementGated *MockEntitlementGatedTransactorSession) RequestEntitlementCheck(roleId *big.Int, ruleData IRuleEntitlementBaseRuleData) (*types.Transaction, error) { return _MockEntitlementGated.Contract.RequestEntitlementCheck(&_MockEntitlementGated.TransactOpts, roleId, ruleData) } diff --git a/core/contracts/base/entitlement_data_queryable.go b/core/contracts/base/entitlement_data_queryable.go index 99cba3682..dfbc88e2e 100644 --- a/core/contracts/base/entitlement_data_queryable.go +++ b/core/contracts/base/entitlement_data_queryable.go @@ -37,7 +37,7 @@ type IEntitlementDataQueryableBaseEntitlementData struct { // EntitlementDataQueryableMetaData contains all meta data concerning the EntitlementDataQueryable contract. var EntitlementDataQueryableMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"getChannelEntitlementDataByPermission\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"permission\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIEntitlementDataQueryableBase.EntitlementData[]\",\"components\":[{\"name\":\"entitlementType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"entitlementData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getEntitlementDataByPermission\",\"inputs\":[{\"name\":\"permission\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIEntitlementDataQueryableBase.EntitlementData[]\",\"components\":[{\"name\":\"entitlementType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"entitlementData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"}]", + ABI: "[{\"type\":\"function\",\"name\":\"getChannelEntitlementDataByPermission\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"permission\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIEntitlementDataQueryableBase.EntitlementData[]\",\"components\":[{\"name\":\"entitlementType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"entitlementData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getCrossChainEntitlementData\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIEntitlementDataQueryableBase.EntitlementData\",\"components\":[{\"name\":\"entitlementType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"entitlementData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getEntitlementDataByPermission\",\"inputs\":[{\"name\":\"permission\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structIEntitlementDataQueryableBase.EntitlementData[]\",\"components\":[{\"name\":\"entitlementType\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"entitlementData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"}]", } // EntitlementDataQueryableABI is the input ABI used to generate the binding from. @@ -217,6 +217,37 @@ func (_EntitlementDataQueryable *EntitlementDataQueryableCallerSession) GetChann return _EntitlementDataQueryable.Contract.GetChannelEntitlementDataByPermission(&_EntitlementDataQueryable.CallOpts, channelId, permission) } +// GetCrossChainEntitlementData is a free data retrieval call binding the contract method 0x0fe44a21. +// +// Solidity: function getCrossChainEntitlementData(bytes32 transactionId, uint256 roleId) view returns((string,bytes)) +func (_EntitlementDataQueryable *EntitlementDataQueryableCaller) GetCrossChainEntitlementData(opts *bind.CallOpts, transactionId [32]byte, roleId *big.Int) (IEntitlementDataQueryableBaseEntitlementData, error) { + var out []interface{} + err := _EntitlementDataQueryable.contract.Call(opts, &out, "getCrossChainEntitlementData", transactionId, roleId) + + if err != nil { + return *new(IEntitlementDataQueryableBaseEntitlementData), err + } + + out0 := *abi.ConvertType(out[0], new(IEntitlementDataQueryableBaseEntitlementData)).(*IEntitlementDataQueryableBaseEntitlementData) + + return out0, err + +} + +// GetCrossChainEntitlementData is a free data retrieval call binding the contract method 0x0fe44a21. +// +// Solidity: function getCrossChainEntitlementData(bytes32 transactionId, uint256 roleId) view returns((string,bytes)) +func (_EntitlementDataQueryable *EntitlementDataQueryableSession) GetCrossChainEntitlementData(transactionId [32]byte, roleId *big.Int) (IEntitlementDataQueryableBaseEntitlementData, error) { + return _EntitlementDataQueryable.Contract.GetCrossChainEntitlementData(&_EntitlementDataQueryable.CallOpts, transactionId, roleId) +} + +// GetCrossChainEntitlementData is a free data retrieval call binding the contract method 0x0fe44a21. +// +// Solidity: function getCrossChainEntitlementData(bytes32 transactionId, uint256 roleId) view returns((string,bytes)) +func (_EntitlementDataQueryable *EntitlementDataQueryableCallerSession) GetCrossChainEntitlementData(transactionId [32]byte, roleId *big.Int) (IEntitlementDataQueryableBaseEntitlementData, error) { + return _EntitlementDataQueryable.Contract.GetCrossChainEntitlementData(&_EntitlementDataQueryable.CallOpts, transactionId, roleId) +} + // GetEntitlementDataByPermission is a free data retrieval call binding the contract method 0xdb0a69a8. // // Solidity: function getEntitlementDataByPermission(string permission) view returns((string,bytes)[]) diff --git a/core/contracts/base/i_entitlement_gated.go b/core/contracts/base/i_entitlement_gated.go index 3ba9b4d9f..68f33aba2 100644 --- a/core/contracts/base/i_entitlement_gated.go +++ b/core/contracts/base/i_entitlement_gated.go @@ -29,37 +29,37 @@ var ( _ = abi.ConvertType ) -// IRuleEntitlementCheckOperation is an auto generated low-level Go binding around an user-defined struct. -type IRuleEntitlementCheckOperation struct { +// IRuleEntitlementBaseCheckOperation is an auto generated low-level Go binding around an user-defined struct. +type IRuleEntitlementBaseCheckOperation struct { OpType uint8 ChainId *big.Int ContractAddress common.Address Threshold *big.Int } -// IRuleEntitlementLogicalOperation is an auto generated low-level Go binding around an user-defined struct. -type IRuleEntitlementLogicalOperation struct { +// IRuleEntitlementBaseLogicalOperation is an auto generated low-level Go binding around an user-defined struct. +type IRuleEntitlementBaseLogicalOperation struct { LogOpType uint8 LeftOperationIndex uint8 RightOperationIndex uint8 } -// IRuleEntitlementOperation is an auto generated low-level Go binding around an user-defined struct. -type IRuleEntitlementOperation struct { +// IRuleEntitlementBaseOperation is an auto generated low-level Go binding around an user-defined struct. +type IRuleEntitlementBaseOperation struct { OpType uint8 Index uint8 } -// IRuleEntitlementRuleData is an auto generated low-level Go binding around an user-defined struct. -type IRuleEntitlementRuleData struct { - Operations []IRuleEntitlementOperation - CheckOperations []IRuleEntitlementCheckOperation - LogicalOperations []IRuleEntitlementLogicalOperation +// IRuleEntitlementBaseRuleData is an auto generated low-level Go binding around an user-defined struct. +type IRuleEntitlementBaseRuleData struct { + Operations []IRuleEntitlementBaseOperation + CheckOperations []IRuleEntitlementBaseCheckOperation + LogicalOperations []IRuleEntitlementBaseLogicalOperation } // IEntitlementGatedMetaData contains all meta data concerning the IEntitlementGated contract. var IEntitlementGatedMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"getRuleData\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlement.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"postEntitlementCheckResult\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"result\",\"type\":\"uint8\",\"internalType\":\"enumIEntitlementGatedBase.NodeVoteStatus\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"EntitlementCheckResultPosted\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"result\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumIEntitlementGatedBase.NodeVoteStatus\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"EntitlementGated_InvalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_NodeAlreadyVoted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_NodeNotFound\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_TransactionCheckAlreadyCompleted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_TransactionCheckAlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_TransactionNotRegistered\",\"inputs\":[]}]", + ABI: "[{\"type\":\"function\",\"name\":\"getRuleData\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlementBase.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"postEntitlementCheckResult\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"result\",\"type\":\"uint8\",\"internalType\":\"enumIEntitlementGatedBase.NodeVoteStatus\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"EntitlementCheckResultPosted\",\"inputs\":[{\"name\":\"transactionId\",\"type\":\"bytes32\",\"indexed\":true,\"internalType\":\"bytes32\"},{\"name\":\"result\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumIEntitlementGatedBase.NodeVoteStatus\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"EntitlementGated_InvalidAddress\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_NodeAlreadyVoted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_NodeNotFound\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_TransactionCheckAlreadyCompleted\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_TransactionCheckAlreadyRegistered\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"EntitlementGated_TransactionNotRegistered\",\"inputs\":[]}]", } // IEntitlementGatedABI is the input ABI used to generate the binding from. @@ -211,15 +211,15 @@ func (_IEntitlementGated *IEntitlementGatedTransactorRaw) Transact(opts *bind.Tr // GetRuleData is a free data retrieval call binding the contract method 0x92c399ff. // // Solidity: function getRuleData(bytes32 transactionId, uint256 roleId) view returns(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[])) -func (_IEntitlementGated *IEntitlementGatedCaller) GetRuleData(opts *bind.CallOpts, transactionId [32]byte, roleId *big.Int) (IRuleEntitlementRuleData, error) { +func (_IEntitlementGated *IEntitlementGatedCaller) GetRuleData(opts *bind.CallOpts, transactionId [32]byte, roleId *big.Int) (IRuleEntitlementBaseRuleData, error) { var out []interface{} err := _IEntitlementGated.contract.Call(opts, &out, "getRuleData", transactionId, roleId) if err != nil { - return *new(IRuleEntitlementRuleData), err + return *new(IRuleEntitlementBaseRuleData), err } - out0 := *abi.ConvertType(out[0], new(IRuleEntitlementRuleData)).(*IRuleEntitlementRuleData) + out0 := *abi.ConvertType(out[0], new(IRuleEntitlementBaseRuleData)).(*IRuleEntitlementBaseRuleData) return out0, err @@ -228,14 +228,14 @@ func (_IEntitlementGated *IEntitlementGatedCaller) GetRuleData(opts *bind.CallOp // GetRuleData is a free data retrieval call binding the contract method 0x92c399ff. // // Solidity: function getRuleData(bytes32 transactionId, uint256 roleId) view returns(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[])) -func (_IEntitlementGated *IEntitlementGatedSession) GetRuleData(transactionId [32]byte, roleId *big.Int) (IRuleEntitlementRuleData, error) { +func (_IEntitlementGated *IEntitlementGatedSession) GetRuleData(transactionId [32]byte, roleId *big.Int) (IRuleEntitlementBaseRuleData, error) { return _IEntitlementGated.Contract.GetRuleData(&_IEntitlementGated.CallOpts, transactionId, roleId) } // GetRuleData is a free data retrieval call binding the contract method 0x92c399ff. // // Solidity: function getRuleData(bytes32 transactionId, uint256 roleId) view returns(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[])) -func (_IEntitlementGated *IEntitlementGatedCallerSession) GetRuleData(transactionId [32]byte, roleId *big.Int) (IRuleEntitlementRuleData, error) { +func (_IEntitlementGated *IEntitlementGatedCallerSession) GetRuleData(transactionId [32]byte, roleId *big.Int) (IRuleEntitlementBaseRuleData, error) { return _IEntitlementGated.Contract.GetRuleData(&_IEntitlementGated.CallOpts, transactionId, roleId) } diff --git a/core/contracts/base/rule_entitlement.go b/core/contracts/base/rule_entitlement.go index 63affe5de..e62254b9b 100644 --- a/core/contracts/base/rule_entitlement.go +++ b/core/contracts/base/rule_entitlement.go @@ -31,7 +31,7 @@ var ( // RuleEntitlementMetaData contains all meta data concerning the RuleEntitlement contract. var RuleEntitlementMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"description\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"encodeRuleData\",\"inputs\":[{\"name\":\"data\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlement.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getEntitlementDataByRoleId\",\"inputs\":[{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRuleData\",\"inputs\":[{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"data\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlement.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlement.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"space\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isCrosschain\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isEntitled\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"user\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"permission\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"moduleType\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"removeEntitlement\",\"inputs\":[{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEntitlement\",\"inputs\":[{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"entitlementData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"error\",\"name\":\"CheckOperationsLimitReaced\",\"inputs\":[{\"name\":\"limit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"Entitlement__InvalidValue\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Entitlement__NotAllowed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Entitlement__NotMember\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Entitlement__ValueAlreadyExists\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCheckOperationIndex\",\"inputs\":[{\"name\":\"operationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"checkOperationsLength\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"type\":\"error\",\"name\":\"InvalidLeftOperationIndex\",\"inputs\":[{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"currentOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"type\":\"error\",\"name\":\"InvalidLogicalOperationIndex\",\"inputs\":[{\"name\":\"operationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"logicalOperationsLength\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"type\":\"error\",\"name\":\"InvalidOperationType\",\"inputs\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlement.CombinedOperationType\"}]},{\"type\":\"error\",\"name\":\"InvalidRightOperationIndex\",\"inputs\":[{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"currentOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"type\":\"error\",\"name\":\"LogicalOperationLimitReached\",\"inputs\":[{\"name\":\"limit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"OperationsLimitReached\",\"inputs\":[{\"name\":\"limit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]", + ABI: "[{\"type\":\"function\",\"name\":\"description\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"encodeRuleData\",\"inputs\":[{\"name\":\"data\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlementBase.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"pure\"},{\"type\":\"function\",\"name\":\"getEntitlementDataByRoleId\",\"inputs\":[{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getRuleData\",\"inputs\":[{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"data\",\"type\":\"tuple\",\"internalType\":\"structIRuleEntitlementBase.RuleData\",\"components\":[{\"name\":\"operations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.Operation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CombinedOperationType\"},{\"name\":\"index\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"name\":\"checkOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.CheckOperation[]\",\"components\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CheckOperationType\"},{\"name\":\"chainId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"contractAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"threshold\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"name\":\"logicalOperations\",\"type\":\"tuple[]\",\"internalType\":\"structIRuleEntitlementBase.LogicalOperation[]\",\"components\":[{\"name\":\"logOpType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.LogicalOperationType\"},{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"space\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isCrosschain\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isEntitled\",\"inputs\":[{\"name\":\"channelId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"user\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"permission\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"moduleType\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"name\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"removeEntitlement\",\"inputs\":[{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setEntitlement\",\"inputs\":[{\"name\":\"roleId\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"entitlementData\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"error\",\"name\":\"CheckOperationsLimitReaced\",\"inputs\":[{\"name\":\"limit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"Entitlement__InvalidValue\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Entitlement__NotAllowed\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Entitlement__NotMember\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Entitlement__ValueAlreadyExists\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"InvalidCheckOperationIndex\",\"inputs\":[{\"name\":\"operationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"checkOperationsLength\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"type\":\"error\",\"name\":\"InvalidLeftOperationIndex\",\"inputs\":[{\"name\":\"leftOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"currentOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"type\":\"error\",\"name\":\"InvalidLogicalOperationIndex\",\"inputs\":[{\"name\":\"operationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"logicalOperationsLength\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"type\":\"error\",\"name\":\"InvalidOperationType\",\"inputs\":[{\"name\":\"opType\",\"type\":\"uint8\",\"internalType\":\"enumIRuleEntitlementBase.CombinedOperationType\"}]},{\"type\":\"error\",\"name\":\"InvalidRightOperationIndex\",\"inputs\":[{\"name\":\"rightOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"},{\"name\":\"currentOperationIndex\",\"type\":\"uint8\",\"internalType\":\"uint8\"}]},{\"type\":\"error\",\"name\":\"LogicalOperationLimitReached\",\"inputs\":[{\"name\":\"limit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]},{\"type\":\"error\",\"name\":\"OperationsLimitReached\",\"inputs\":[{\"name\":\"limit\",\"type\":\"uint256\",\"internalType\":\"uint256\"}]}]", } // RuleEntitlementABI is the input ABI used to generate the binding from. @@ -214,7 +214,7 @@ func (_RuleEntitlement *RuleEntitlementCallerSession) Description() (string, err // EncodeRuleData is a free data retrieval call binding the contract method 0x5d115072. // // Solidity: function encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]) data) pure returns(bytes) -func (_RuleEntitlement *RuleEntitlementCaller) EncodeRuleData(opts *bind.CallOpts, data IRuleEntitlementRuleData) ([]byte, error) { +func (_RuleEntitlement *RuleEntitlementCaller) EncodeRuleData(opts *bind.CallOpts, data IRuleEntitlementBaseRuleData) ([]byte, error) { var out []interface{} err := _RuleEntitlement.contract.Call(opts, &out, "encodeRuleData", data) @@ -231,14 +231,14 @@ func (_RuleEntitlement *RuleEntitlementCaller) EncodeRuleData(opts *bind.CallOpt // EncodeRuleData is a free data retrieval call binding the contract method 0x5d115072. // // Solidity: function encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]) data) pure returns(bytes) -func (_RuleEntitlement *RuleEntitlementSession) EncodeRuleData(data IRuleEntitlementRuleData) ([]byte, error) { +func (_RuleEntitlement *RuleEntitlementSession) EncodeRuleData(data IRuleEntitlementBaseRuleData) ([]byte, error) { return _RuleEntitlement.Contract.EncodeRuleData(&_RuleEntitlement.CallOpts, data) } // EncodeRuleData is a free data retrieval call binding the contract method 0x5d115072. // // Solidity: function encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]) data) pure returns(bytes) -func (_RuleEntitlement *RuleEntitlementCallerSession) EncodeRuleData(data IRuleEntitlementRuleData) ([]byte, error) { +func (_RuleEntitlement *RuleEntitlementCallerSession) EncodeRuleData(data IRuleEntitlementBaseRuleData) ([]byte, error) { return _RuleEntitlement.Contract.EncodeRuleData(&_RuleEntitlement.CallOpts, data) } @@ -276,15 +276,15 @@ func (_RuleEntitlement *RuleEntitlementCallerSession) GetEntitlementDataByRoleId // GetRuleData is a free data retrieval call binding the contract method 0x069a3ee9. // // Solidity: function getRuleData(uint256 roleId) view returns(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]) data) -func (_RuleEntitlement *RuleEntitlementCaller) GetRuleData(opts *bind.CallOpts, roleId *big.Int) (IRuleEntitlementRuleData, error) { +func (_RuleEntitlement *RuleEntitlementCaller) GetRuleData(opts *bind.CallOpts, roleId *big.Int) (IRuleEntitlementBaseRuleData, error) { var out []interface{} err := _RuleEntitlement.contract.Call(opts, &out, "getRuleData", roleId) if err != nil { - return *new(IRuleEntitlementRuleData), err + return *new(IRuleEntitlementBaseRuleData), err } - out0 := *abi.ConvertType(out[0], new(IRuleEntitlementRuleData)).(*IRuleEntitlementRuleData) + out0 := *abi.ConvertType(out[0], new(IRuleEntitlementBaseRuleData)).(*IRuleEntitlementBaseRuleData) return out0, err @@ -293,14 +293,14 @@ func (_RuleEntitlement *RuleEntitlementCaller) GetRuleData(opts *bind.CallOpts, // GetRuleData is a free data retrieval call binding the contract method 0x069a3ee9. // // Solidity: function getRuleData(uint256 roleId) view returns(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]) data) -func (_RuleEntitlement *RuleEntitlementSession) GetRuleData(roleId *big.Int) (IRuleEntitlementRuleData, error) { +func (_RuleEntitlement *RuleEntitlementSession) GetRuleData(roleId *big.Int) (IRuleEntitlementBaseRuleData, error) { return _RuleEntitlement.Contract.GetRuleData(&_RuleEntitlement.CallOpts, roleId) } // GetRuleData is a free data retrieval call binding the contract method 0x069a3ee9. // // Solidity: function getRuleData(uint256 roleId) view returns(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]) data) -func (_RuleEntitlement *RuleEntitlementCallerSession) GetRuleData(roleId *big.Int) (IRuleEntitlementRuleData, error) { +func (_RuleEntitlement *RuleEntitlementCallerSession) GetRuleData(roleId *big.Int) (IRuleEntitlementBaseRuleData, error) { return _RuleEntitlement.Contract.GetRuleData(&_RuleEntitlement.CallOpts, roleId) } diff --git a/core/contracts/river/deploy/mock_river_registry.go b/core/contracts/river/deploy/mock_river_registry.go index 11dd93d2d..3be4696ff 100644 --- a/core/contracts/river/deploy/mock_river_registry.go +++ b/core/contracts/river/deploy/mock_river_registry.go @@ -71,7 +71,7 @@ type StreamWithId struct { // MockRiverRegistryMetaData contains all meta data concerning the MockRiverRegistry contract. var MockRiverRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"approvedOperators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"__OperatorRegistry_init\",\"inputs\":[{\"name\":\"initialOperators\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"__RiverConfig_init\",\"inputs\":[{\"name\":\"configManagers\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"allocateStream\",\"inputs\":[{\"name\":\"streamId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"nodes\",\"type\":\"address[]\",\"internalType\":\"address[]\"},{\"name\":\"genesisMiniblockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"genesisMiniblock\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"approveConfigurationManager\",\"inputs\":[{\"name\":\"manager\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"approveOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"configurationExists\",\"inputs\":[{\"name\":\"key\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"deleteConfiguration\",\"inputs\":[{\"name\":\"key\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"deleteConfigurationOnBlock\",\"inputs\":[{\"name\":\"key\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"blockNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"getAllConfiguration\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structSetting[]\",\"components\":[{\"name\":\"key\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"blockNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllNodeAddresses\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllNodes\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structNode[]\",\"components\":[{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumNodeStatus\"},{\"name\":\"url\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"nodeAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllOperators\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address[]\",\"internalType\":\"address[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllStreamIds\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getAllStreams\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structStreamWithId[]\",\"components\":[{\"name\":\"id\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"stream\",\"type\":\"tuple\",\"internalType\":\"structStream\",\"components\":[{\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockNum\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"reserved0\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"flags\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"nodes\",\"type\":\"address[]\",\"internalType\":\"address[]\"}]}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getConfiguration\",\"inputs\":[{\"name\":\"key\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structSetting[]\",\"components\":[{\"name\":\"key\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"blockNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNode\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structNode\",\"components\":[{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumNodeStatus\"},{\"name\":\"url\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"nodeAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getNodeCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getPaginatedStreams\",\"inputs\":[{\"name\":\"start\",\"type\":\"uint256\",\"internalType\":\"uint256\"},{\"name\":\"stop\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structStreamWithId[]\",\"components\":[{\"name\":\"id\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"stream\",\"type\":\"tuple\",\"internalType\":\"structStream\",\"components\":[{\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockNum\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"reserved0\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"flags\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"nodes\",\"type\":\"address[]\",\"internalType\":\"address[]\"}]}]},{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStream\",\"inputs\":[{\"name\":\"streamId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structStream\",\"components\":[{\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockNum\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"reserved0\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"flags\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"nodes\",\"type\":\"address[]\",\"internalType\":\"address[]\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStreamByIndex\",\"inputs\":[{\"name\":\"i\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structStreamWithId\",\"components\":[{\"name\":\"id\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"stream\",\"type\":\"tuple\",\"internalType\":\"structStream\",\"components\":[{\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockNum\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"reserved0\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"flags\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"nodes\",\"type\":\"address[]\",\"internalType\":\"address[]\"}]}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStreamCount\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStreamCountOnNode\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStreamWithGenesis\",\"inputs\":[{\"name\":\"streamId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structStream\",\"components\":[{\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockNum\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"reserved0\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"flags\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"nodes\",\"type\":\"address[]\",\"internalType\":\"address[]\"}]},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"getStreamsOnNode\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structStreamWithId[]\",\"components\":[{\"name\":\"id\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"stream\",\"type\":\"tuple\",\"internalType\":\"structStream\",\"components\":[{\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockNum\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"reserved0\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"flags\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"nodes\",\"type\":\"address[]\",\"internalType\":\"address[]\"}]}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isConfigurationManager\",\"inputs\":[{\"name\":\"manager\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"placeStreamOnNode\",\"inputs\":[{\"name\":\"streamId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"nodeAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"registerNode\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"url\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumNodeStatus\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeConfigurationManager\",\"inputs\":[{\"name\":\"manager\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeNode\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeOperator\",\"inputs\":[{\"name\":\"operator\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"removeStreamFromNode\",\"inputs\":[{\"name\":\"streamId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"nodeAddress\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setConfiguration\",\"inputs\":[{\"name\":\"key\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"blockNumber\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"value\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setStreamLastMiniblock\",\"inputs\":[{\"name\":\"streamId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockNum\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"isSealed\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setStreamLastMiniblockBatch\",\"inputs\":[{\"name\":\"miniblocks\",\"type\":\"tuple[]\",\"internalType\":\"structSetMiniblock[]\",\"components\":[{\"name\":\"streamId\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"prevMiniBlockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockNum\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"isSealed\",\"type\":\"bool\",\"internalType\":\"bool\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateNodeStatus\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"uint8\",\"internalType\":\"enumNodeStatus\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"updateNodeUrl\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"url\",\"type\":\"string\",\"internalType\":\"string\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ConfigurationChanged\",\"inputs\":[{\"name\":\"key\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"block\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"value\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"deleted\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ConfigurationManagerAdded\",\"inputs\":[{\"name\":\"manager\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ConfigurationManagerRemoved\",\"inputs\":[{\"name\":\"manager\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint32\",\"indexed\":false,\"internalType\":\"uint32\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"InterfaceAdded\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"indexed\":true,\"internalType\":\"bytes4\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"InterfaceRemoved\",\"inputs\":[{\"name\":\"interfaceId\",\"type\":\"bytes4\",\"indexed\":true,\"internalType\":\"bytes4\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NodeAdded\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"url\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"},{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumNodeStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NodeRemoved\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NodeStatusUpdated\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"status\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"enumNodeStatus\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"NodeUrlUpdated\",\"inputs\":[{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"url\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorAdded\",\"inputs\":[{\"name\":\"operatorAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OperatorRemoved\",\"inputs\":[{\"name\":\"operatorAddress\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StreamAllocated\",\"inputs\":[{\"name\":\"streamId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"nodes\",\"type\":\"address[]\",\"indexed\":false,\"internalType\":\"address[]\"},{\"name\":\"genesisMiniblockHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"genesisMiniblock\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StreamLastMiniblockUpdateFailed\",\"inputs\":[{\"name\":\"streamId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockNum\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"reason\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StreamLastMiniblockUpdated\",\"inputs\":[{\"name\":\"streamId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"lastMiniblockNum\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"isSealed\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"StreamPlacementUpdated\",\"inputs\":[{\"name\":\"streamId\",\"type\":\"bytes32\",\"indexed\":false,\"internalType\":\"bytes32\"},{\"name\":\"nodeAddress\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"isAdded\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"}],\"anonymous\":false},{\"type\":\"error\",\"name\":\"Initializable_InInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Initializable_NotInInitializingState\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_AlreadySupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Introspection_NotSupported\",\"inputs\":[]},{\"type\":\"error\",\"name\":\"Ownable__NotOwner\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"internalType\":\"address\"}]},{\"type\":\"error\",\"name\":\"Ownable__ZeroAddress\",\"inputs\":[]}]", - Bin: "0x60806040523480156200001157600080fd5b5060405162004f6238038062004f628339810160408190526200003491620004a6565b6200003e620000c1565b620000493362000169565b60005b8151811015620000b957620000838282815181106200006f576200006f62000578565b60200260200101516200023760201b60201c565b620000b08282815181106200009c576200009c62000578565b60200260200101516200031c60201b60201c565b6001016200004c565b5050620005df565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200010e576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156200016657805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b60006200019d7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b90506001600160a01b038216620001c757604051634e3ef82560e01b815260040160405180910390fd5b817f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae30080546001600160a01b0319166001600160a01b03928316179055604051838216918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116620002865760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526200027d91906004016200058e565b60405180910390fd5b62000293600882620003e9565b15620002d757604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526200027d91906004016200058e565b620002e460088262000410565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b038116620003625760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526200027d91906004016200058e565b6200036f600d8262000410565b620003b257604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526200027d91906004016200058e565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b6001600160a01b038116600090815260018301602052604081205415155b90505b92915050565b600062000407836001600160a01b03841660008181526001830160205260408120546200046a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200040a565b5060006200040a565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620004a157600080fd5b919050565b60006020808385031215620004ba57600080fd5b82516001600160401b0380821115620004d257600080fd5b818501915085601f830112620004e757600080fd5b815181811115620004fc57620004fc62000473565b8060051b604051601f19603f8301168101818110858211171562000524576200052462000473565b6040529182528482019250838101850191888311156200054357600080fd5b938501935b828510156200056c576200055c8562000489565b8452938501939285019262000548565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020808352835180602085015260005b81811015620005be57858101830151858201604001528201620005a0565b506000604082860101526040601f19601f8301168501019250505092915050565b61497380620005ef6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80639ee86d3811610130578063c87d1324116100b8578063d911c6321161007c578063d911c632146104ed578063ee885b12146104f5578063eecc66f414610508578063fc207c011461051b578063ff3a14ab1461052e57600080fd5b8063c87d13241461047e578063c8fe3a0114610491578063ca78c41a146104a6578063d4bd44a0146104c7578063d7a3158a146104da57600080fd5b8063b2b99ec9116100ff578063b2b99ec91461042a578063b7f227ee1461043d578063ba428b1a14610450578063c0f2208414610463578063c179b85f1461046b57600080fd5b80639ee86d38146103dc578063a09449a6146103ef578063a1174e7d14610402578063ac8a584a1461041757600080fd5b8063581f8b9b116101b35780637e4465e7116101825780637e4465e71461036e578063813049ec1461038157806386789fc6146103945780639283ae3a146103a95780639d209048146103bc57600080fd5b8063581f8b9b1461030557806368b454df146103185780636b883c39146103385780636d70f7ae1461034b57600080fd5b806331374511116101fa578063313745111461029257806332705ac4146102a557806339bf397e146102c55780633bd84c0c146102db5780633c2544d1146102e357600080fd5b8063035759e11461022c578063081814db146102415780631290abe81461025f578063242cae9f1461027f575b600080fd5b61023f61023a366004613ae6565b610541565b005b6102496106b5565b6040516102569190613b4f565b60405180910390f35b61027261026d366004613ae6565b610920565b6040516102569190613c6a565b61023f61028d366004613c99565b610a42565b61023f6102a0366004613cb4565b610a89565b6102b86102b3366004613c99565b610b1a565b6040516102569190613da9565b6102cd610dca565b604051908152602001610256565b6102b8610ddb565b6102f66102f1366004613ae6565b610f4c565b60405161025693929190613dbc565b61023f610313366004613e00565b61111d565b61032b610326366004613ae6565b6112bd565b6040516102569190613e33565b61023f610346366004613efb565b6113e4565b61035e610359366004613c99565b611649565b6040519015158152602001610256565b61023f61037c366004613fde565b61165c565b61023f61038f366004613c99565b611854565b61039c61194f565b604051610256919061402b565b6102496103b7366004613ae6565b61195b565b6103cf6103ca366004613c99565b611abd565b60405161025691906140fb565b61023f6103ea36600461410e565b611c3e565b61023f6103fd366004614148565b611dfb565b61040a6120ca565b60405161025691906141ce565b61023f610425366004613c99565b61229e565b61023f610438366004613c99565b612401565b61023f61044b366004614232565b6125ca565b61023f61045e366004613cb4565b612819565b6102cd6128a5565b61023f610479366004613c99565b6128b0565b6102cd61048c366004613c99565b6128f4565b61049961299c565b604051610256919061429a565b6104b96104b43660046142ad565b6129a8565b6040516102569291906142cf565b61035e6104d5366004613c99565b612ba1565b61023f6104e8366004614303565b612bae565b610499612d39565b61023f61050336600461410e565b612d45565b61023f610516366004614353565b612f91565b61035e610529366004613ae6565b61315b565b61023f61053c3660046143b0565b613168565b3361054d600d826133cf565b6105905760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b60405180910390fd5b8161059c600a826133f4565b6105d75760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6000838152600c60205260409020541561064a576000838152600c6020526040902080548061060857610608614425565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff19169055906106416002830182613991565b505090556105d7565b6000838152600c60205260408120610661916139cb565b61066c600a8461340c565b50604080518481526001600160401b03602082015260808183018190526000908201526001606082015290516000805160206149538339815191529181900360a00190a1505050565b60606000806106c4600a613418565b905060005b818110156107055760006106de600a83613422565b6000818152600c60205260409020549091506106fa9085614451565b9350506001016106c9565b506000826001600160401b0381111561072057610720613e46565b60405190808252806020026020018201604052801561076d57816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161073e5790505b509050600061077c600a613418565b90506000805b82811015610915576000610797600a83613422565b6000818152600c6020908152604080832080548251818502810185019093528083529495509293909291849084015b828210156108aa57600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b0316938301939093526002830180549293929184019161081990614464565b80601f016020809104026020016040519081016040528092919081815260200182805461084590614464565b80156108925780601f1061086757610100808354040283529160200191610892565b820191906000526020600020905b81548152906001019060200180831161087557829003601f168201915b505050505081525050815260200190600101906107c6565b50505050905060005b8151811015610907578181815181106108ce576108ce614498565b60200260200101518786806108e2906144ae565b9750815181106108f4576108f4614498565b60209081029190910101526001016108b3565b505050806001019050610782565b509195945050505050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061095490836133f4565b61098f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610a3257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a14575b5050505050815250509050919050565b610a4a61342e565b6001600160a01b0316336001600160a01b031614610a7d576040516365f4906560e01b8152336004820152602401610587565b610a868161345c565b50565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610ad357604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b1557610b0d838383818110610af357610af3614498565b9050602002016020810190610b089190613c99565b61352e565b600101610ad6565b505050565b60606000610b2781613418565b6001600160401b03811115610b3e57610b3e613e46565b604051908082528060200260200182016040528015610b67578160200160208202803683370190505b5090506000805b610b786000613418565b811015610c2d576000610b8b8183613422565b60008181526002602052604081209192505b6002820154811015610c1f57876001600160a01b0316826002018281548110610bc857610bc8614498565b6000918252602090912001546001600160a01b031603610c1757828686610bee816144c7565b975063ffffffff1681518110610c0657610c06614498565b602002602001018181525050610c1f565b600101610b9d565b505050806001019050610b6e565b5060008163ffffffff166001600160401b03811115610c4e57610c4e613e46565b604051908082528060200260200182016040528015610c8757816020015b610c746139ec565b815260200190600190039081610c6c5790505b50905060005b8263ffffffff16811015610dc1576040518060400160405280858381518110610cb857610cb8614498565b6020026020010151815260200160006002016000878581518110610cde57610cde614498565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b909104166060820152600282018054845181870281018701909552808552919492936080860193909290830182828015610d9057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d72575b505050505081525050815250828281518110610dae57610dae614498565b6020908102919091010152600101610c8d565b50949350505050565b6000610dd66005613418565b905090565b60606000610de881613418565b6001600160401b03811115610dff57610dff613e46565b604051908082528060200260200182016040528015610e3857816020015b610e256139ec565b815260200190600190039081610e1d5790505b50905060005b610e486000613418565b811015610f46576000610e5b8183613422565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610f1457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ef6575b505050505081525050815250838381518110610f3257610f32614498565b602090810291909101015250600101610e3e565b50919050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201819052909190610f8482856133f4565b610fbf5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b9091041660608201529482018054845181870281018701909552808552929695919491938793608086019391929183018282801561107957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161105b575b505050505081525050925080805461109090614464565b80601f01602080910402602001604051908101604052809291908181526020018280546110bc90614464565b80156111095780601f106110de57610100808354040283529160200191611109565b820191906000526020600020905b8154815290600101906020018083116110ec57829003601f168201915b505050505090509250925092509193909250565b6001600160a01b0380831660009081526007602052604090206002015483911661117d57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b336111896008826133cf565b6111c35760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808516600090815260076020526040902060030154859133911681146112215760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b038616600090815260076020526040902080546112489060ff16876135f3565b80548690829060ff191660018360058111156112665761126661406f565b021790555060028101546040516001600160a01b03909116907f20891cc7622c7951cbd8c70c61a5201eb45625b8c00e8f6c986cfca78f3dbfa0906112ac9089906144ea565b60405180910390a250505050505050565b6112c56139ec565b6112cf6000613418565b821061130c5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b60006113188184613422565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b90910416606082015291810180548651818602810186019097528087529697509395838701959294919360808601939291908301828280156113d157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113b3575b5050509190925250505090529392505050565b336000818152600760205260409020600201546001600160a01b031661144057604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b61144b6000866133f4565b1561148c57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b60005b8451811015611510576114c88582815181106114ad576114ad614498565b602002602001015160006005016133cf90919063ffffffff16565b61150857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b60010161148f565b506040805160a0810182528481526000602082018190529181018290526060810182905260808101869052906115469087613786565b5060008681526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff199099169190941617969096179590951617909355608084015180518594936115d693908501920190613a36565b50505060008681526003602052604090206115f1848261455d565b5060008681526004602052604090819020859055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb90611639908890889088908890614616565b60405180910390a1505050505050565b60006116566008836133cf565b92915050565b336116686008826133cf565b6116a25760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b0380841660009081526007602052604090206002015484911661170257604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808516600090815260076020526040902060030154859133911681146117605760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b038616600090815260076020908152604091829020915161178a91889101614652565b60405160208183030381529060405280519060200120816001016040516020016117b4919061466e565b60405160208183030381529060405280519060200120036118045760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b60018101611812878261455d565b5060028101546040516001600160a01b03909116907f4505168a8705a16fd4d0575197fd0f510db69df93a065e158ad2c0957ba12bac906112ac908990614412565b61185c61342e565b6001600160a01b0316336001600160a01b03161461188f576040516365f4906560e01b8152336004820152602401610587565b6001600160a01b0381166118d25760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b6118dd600d82613792565b6119185760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6040516001600160a01b038216907ff9889c857e5356066b564327caa757c325ecbc001b2b47d72edf8cf9aedb1be590600090a250565b6060610dd660006137a7565b606081611969600a826133f4565b6119a45760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6000838152600c6020908152604080832080548251818502810185019093528083529193909284015b82821015611ab157600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b03169383019390935260028301805492939291840191611a2090614464565b80601f0160208091040260200160405190810160405280929190818152602001828054611a4c90614464565b8015611a995780601f10611a6e57610100808354040283529160200191611a99565b820191906000526020600020905b815481529060010190602001808311611a7c57829003601f168201915b505050505081525050815260200190600101906119cd565b50505050915050919050565b611ae86040805160808101909152806000815260606020820181905260006040830181905291015290565b611af36005836133cf565b611b3357604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b038216600090815260076020526040908190208151608081019092528054829060ff166005811115611b6e57611b6e61406f565b6005811115611b7f57611b7f61406f565b8152602001600182018054611b9390614464565b80601f0160208091040260200160405190810160405280929190818152602001828054611bbf90614464565b8015611c0c5780601f10611be157610100808354040283529160200191611c0c565b820191906000526020600020905b815481529060010190602001808311611bef57829003601f168201915b505050918352505060028201546001600160a01b03908116602083015260039092015490911660409091015292915050565b81611c4a6000826133f4565b611c855760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808316600090815260076020526040902060020154839116611ce557604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b6000848152600260205260408120905b6002820154811015611d7e57846001600160a01b0316826002018281548110611d2057611d20614498565b6000918252602090912001546001600160a01b031603611d7657604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b600101611cf5565b5060028101805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b03881690811790915560408051898152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600160405180910390a15050505050565b33611e07600d826133cf565b611e415760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b67fffffffffffffffe196001600160401b03851601611e8f5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b6000829003611ecd5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b611ed8600a866133f4565b611ee957611ee7600a86613786565b505b6000858152600c6020526040812054905b81811015611fd0576000878152600c6020526040902080546001600160401b038816919083908110611f2e57611f2e614498565b60009182526020909120600160039092020101546001600160401b031603611fc8576000878152600c6020526040902080548691869184908110611f7457611f74614498565b90600052602060002090600302016002019182611f929291906146e4565b50600080516020614953833981519152878787876000604051611fb995949392919061479d565b60405180910390a150506120c3565b600101611efa565b506000600c0160008781526020019081526020016000206040518060600160405280888152602001876001600160401b0316815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050835460018082018655948252602091829020845160039092020190815590830151938101805467ffffffffffffffff19166001600160401b0390951694909417909355506040810151909190600282019061209a908261455d565b50505060008051602061495383398151915286868686600060405161163995949392919061479d565b5050505050565b606060006120d86005613418565b6001600160401b038111156120ef576120ef613e46565b60405190808252806020026020018201604052801561214b57816020015b6121386040805160808101909152806000815260606020820181905260006040830181905291015290565b81526020019060019003908161210d5790505b50905060005b61215b6005613418565b811015610f465760076000612171600584613422565b6001600160a01b03168152602081019190915260409081016000208151608081019092528054829060ff1660058111156121ad576121ad61406f565b60058111156121be576121be61406f565b81526020016001820180546121d290614464565b80601f01602080910402602001604051908101604052809291908181526020018280546121fe90614464565b801561224b5780601f106122205761010080835404028352916020019161224b565b820191906000526020600020905b81548152906001019060200180831161222e57829003601f168201915b505050918352505060028201546001600160a01b039081166020830152600390920154909116604090910152825183908390811061228b5761228b614498565b6020908102919091010152600101612151565b6122a661342e565b6001600160a01b0316336001600160a01b0316146122d9576040516365f4906560e01b8152336004820152602401610587565b6122e46008826133cf565b61232857604080518082018252601281527113d41154905513d497d393d517d193d5539160721b6020820152905162461bcd60e51b81526105879190600401614412565b60005b6123356005613418565b8110156123bd576001600160a01b03821660076000612355600585613422565b6001600160a01b03908116825260208201929092526040016000206003015416036123b557604080518082018252600d81526c4f55545f4f465f424f554e445360981b6020820152905162461bcd60e51b81526105879190600401614412565b60010161232b565b506123c9600882613792565b506040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b038082166000908152600760205260409020600301548291339116811461245f5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03838116600090815260076020526040902060020154166124bd57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b60056001600160a01b03841660009081526007602052604090205460ff1660058111156124ec576124ec61406f565b146125355760408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614412565b612540600584613792565b506001600160a01b0383166000908152600760205260408120805460ff191681559061256f6001830182613991565b506002810180546001600160a01b03199081169091556003909101805490911690556040516001600160a01b038416907fcfc24166db4bb677e857cacabd1541fb2b30645021b27c5130419589b84db52b90600090a2505050565b336125d6600d826133cf565b6126105760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6000805b6000858152600c6020526040902054811015612791576000858152600c6020526040902080546001600160401b03861691908390811061265657612656614498565b60009182526020909120600160039092020101546001600160401b031603612789576000858152600c602052604090208054612694906001906147ed565b815481106126a4576126a4614498565b90600052602060002090600302016000600c01600087815260200190815260200160002082815481106126d9576126d9614498565b600091825260209091208254600390920201908155600180830154908201805467ffffffffffffffff19166001600160401b0390921691909117905560028082019061272790840182614800565b5050506000858152600c6020526040902080548061274757612747614425565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff19169055906127806002830182613991565b50509055600191505b600101612614565b50806127ce5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b604080518581526001600160401b038516602082015260808183018190526000908201526001606082015290516000805160206149538339815191529181900360a00190a150505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661286357604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b155761289d83838381811061288357612883614498565b90506020020160208101906128989190613c99565b61345c565b600101612866565b6000610dd681613418565b6128b861342e565b6001600160a01b0316336001600160a01b0316146128eb576040516365f4906560e01b8152336004820152602401610587565b610a868161352e565b600080805b6129036000613418565b8110156129955760006129168183613422565b60008181526002602052604081209192505b600282015481101561298757866001600160a01b031682600201828154811061295357612953614498565b6000918252602090912001546001600160a01b03160361297f5784612977816144ae565b955050612987565b600101612928565b5050508060010190506128f9565b5092915050565b6060610dd660056137a7565b60606000828410604051806040016040528060078152602001664241445f41524760c81b815250906129ed5760405162461bcd60e51b81526004016105879190614412565b5060006129fa85856147ed565b6001600160401b03811115612a1157612a11613e46565b604051908082528060200260200182016040528015612a4a57816020015b612a376139ec565b815260200190600190039081612a2f5790505b50905060005b612a5a6000613418565b612a648288614451565b108015612a79575084612a778288614451565b105b15612b89576000612a95612a8d8389614451565b600090613422565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015612b4e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612b30575b505050505081525050815250838381518110612b6c57612b6c614498565b60200260200101819052505080612b82906144ae565b9050612a50565b5080612b956000613418565b90969410159450505050565b6000611656600d836133cf565b336000818152600760205260409020600201546001600160a01b0316612c0a57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b612c156000876133f4565b612c505760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b0386161790558215612cb8576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b0316600103612ce0576000878152600360205260408120612ce091613991565b60408051888152602081018790526001600160401b03861681830152841515606082015290517fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b9181900360800190a150505050505050565b6060610dd660086137a7565b81612d516000826133f4565b612d8c5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808316600090815260076020526040902060020154839116612dec57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b600084815260026020526040812090805b6002830154811015612f0657856001600160a01b0316836002018281548110612e2857612e28614498565b6000918252602090912001546001600160a01b031603612efe57600283018054612e54906001906147ed565b81548110612e6457612e64614498565b6000918252602090912001546002840180546001600160a01b039092169183908110612e9257612e92614498565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082600201805480612ed357612ed3614425565b600082815260209020810160001990810180546001600160a01b031916905501905560019150612f06565b600101612dfd565b5080612f4857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b604080518781526001600160a01b03871660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f90606001611639565b33612f9d6008826133cf565b612fd75760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03848116600090815260076020526040902060020154161561303657604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b600060405180608001604052808460058111156130555761305561406f565b8152602081018690526001600160a01b03871660408201523360609091015290506130816005866137b4565b506001600160a01b03851660009081526007602052604090208151815483929190829060ff191660018360058111156130bc576130bc61406f565b0217905550602082015160018201906130d5908261455d565b506040828101516002830180546001600160a01b03199081166001600160a01b039384161790915560609094015160039093018054909416928116929092179092559051908616907fd6f3629b08191adb8308c3a65d5f8803b7f8f3e359c433fa7ae623276635e5619061314c90879087906148cc565b60405180910390a25050505050565b6000611656600a836133f4565b336000818152600760205260409020600201546001600160a01b03166131c457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b60005b828110156133c957368484838181106131e2576131e2614498565b60a0029190910191506131f99050600082356133f4565b613271577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561323560808501606086016148ee565b60408051808201825260098152681393d517d193d5539160ba1b602082015290516132639493929190614909565b60405180910390a1506133c1565b80356000908152600260205260409081902090820135815561329960808301606084016148ee565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556132cc60a0830160808401614937565b15613304576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b61331460808301606084016148ee565b6001600160401b031660010361333d578135600090815260036020526040812061333d91613991565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561337560808601606087016148ee565b61338560a0870160808801614937565b6040516133b6949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b6001016131c7565b50505050565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600081815260018301602052604081205415156133ed565b60006133ed83836137c9565b6000611656825490565b60006133ed83836138bc565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b6001600160a01b03811661349f5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b6134aa6008826133cf565b156134eb57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b6134f66008826137b4565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b0381166135715760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b61357c600d826137b4565b6135bc57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b60008260058111156136075761360761406f565b148061365b575060018260058111156136225761362261406f565b14801561365b5750600381600581111561363e5761363e61406f565b148061365b575060048160058111156136595761365961406f565b145b806136ae575060028260058111156136755761367561406f565b1480156136ae575060038160058111156136915761369161406f565b14806136ae575060048160058111156136ac576136ac61406f565b145b80613701575060048260058111156136c8576136c861406f565b148015613701575060038160058111156136e4576136e461406f565b1480613701575060058160058111156136ff576136ff61406f565b145b806137395750600382600581111561371b5761371b61406f565b148015613739575060058160058111156137375761373761406f565b145b15613742575050565b60408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614412565b60006133ed83836138e6565b60006133ed836001600160a01b0384166137c9565b606060006133ed83613935565b60006133ed836001600160a01b0384166138e6565b600081815260018301602052604081205480156138b25760006137ed6001836147ed565b8554909150600090613801906001906147ed565b905080821461386657600086600001828154811061382157613821614498565b906000526020600020015490508087600001848154811061384457613844614498565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061387757613877614425565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611656565b6000915050611656565b60008260000182815481106138d3576138d3614498565b9060005260206000200154905092915050565b600081815260018301602052604081205461392d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611656565b506000611656565b60608160000180548060200260200160405190810160405280929190818152602001828054801561398557602002820191906000526020600020905b815481526020019060010190808311613971575b50505050509050919050565b50805461399d90614464565b6000825580601f106139ad575050565b601f016020900490600052602060002090810190610a869190613a9b565b5080546000825560030290600052602060002090810190610a869190613ab0565b604080518082019091526000815260208101613a316040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b828054828255906000526020600020908101928215613a8b579160200282015b82811115613a8b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613a56565b50613a97929150613a9b565b5090565b5b80821115613a975760008155600101613a9c565b80821115613a9757600080825560018201805467ffffffffffffffff19169055613add6002830182613991565b50600301613ab0565b600060208284031215613af857600080fd5b5035919050565b60005b83811015613b1a578181015183820152602001613b02565b50506000910152565b60008151808452613b3b816020860160208601613aff565b601f01601f19169290920160200192915050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613bcb57888303603f19018552815180518452878101516001600160401b0316888501528601516060878501819052613bb781860183613b23565b968901969450505090860190600101613b78565b509098975050505050505050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015613c5f5784516001600160a01b03168252938301936001929092019190830190613c36565b509695505050505050565b6020815260006133ed6020830184613bd9565b80356001600160a01b0381168114613c9457600080fd5b919050565b600060208284031215613cab57600080fd5b6133ed82613c7d565b60008060208385031215613cc757600080fd5b82356001600160401b0380821115613cde57600080fd5b818501915085601f830112613cf257600080fd5b813581811115613d0157600080fd5b8660208260051b8501011115613d1657600080fd5b60209290920196919550909350505050565b805182526000602082015160406020850152613d476040850182613bd9565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015613d9c57601f19868403018952613d8a838351613d28565b98840198925090830190600101613d6e565b5090979650505050505050565b6020815260006133ed6020830184613d4f565b606081526000613dcf6060830186613bd9565b8460208401528281036040840152613de78185613b23565b9695505050505050565b803560068110613c9457600080fd5b60008060408385031215613e1357600080fd5b613e1c83613c7d565b9150613e2a60208401613df1565b90509250929050565b6020815260006133ed6020830184613d28565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613e8457613e84613e46565b604052919050565b600082601f830112613e9d57600080fd5b81356001600160401b03811115613eb657613eb6613e46565b613ec9601f8201601f1916602001613e5c565b818152846020838601011115613ede57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613f1157600080fd5b843593506020808601356001600160401b0380821115613f3057600080fd5b818801915088601f830112613f4457600080fd5b813581811115613f5657613f56613e46565b8060051b613f65858201613e5c565b918252838101850191858101908c841115613f7f57600080fd5b948601945b83861015613fa457613f9586613c7d565b82529486019490860190613f84565b9850505050604088013594506060880135925080831115613fc457600080fd5b5050613fd287828801613e8c565b91505092959194509250565b60008060408385031215613ff157600080fd5b613ffa83613c7d565b915060208301356001600160401b0381111561401557600080fd5b61402185828601613e8c565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561406357835183529284019291840191600101614047565b50909695505050505050565b634e487b7160e01b600052602160045260246000fd5b600681106140a357634e487b7160e01b600052602160045260246000fd5b9052565b6140b2828251614085565b60006020820151608060208501526140cd6080850182613b23565b6040848101516001600160a01b03908116918701919091526060948501511693909401929092525090919050565b6020815260006133ed60208301846140a7565b6000806040838503121561412157600080fd5b82359150613e2a60208401613c7d565b80356001600160401b0381168114613c9457600080fd5b6000806000806060858703121561415e57600080fd5b8435935061416e60208601614131565b925060408501356001600160401b038082111561418a57600080fd5b818701915087601f83011261419e57600080fd5b8135818111156141ad57600080fd5b8860208285010111156141bf57600080fd5b95989497505060200194505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561422557603f198886030184526142138583516140a7565b945092850192908501906001016141f7565b5092979650505050505050565b6000806040838503121561424557600080fd5b82359150613e2a60208401614131565b60008151808452602080850194506020840160005b8381101561428f5781516001600160a01b03168752958201959082019060010161426a565b509495945050505050565b6020815260006133ed6020830184614255565b600080604083850312156142c057600080fd5b50508035926020909101359150565b6040815260006142e26040830185613d4f565b905082151560208301529392505050565b80358015158114613c9457600080fd5b600080600080600060a0868803121561431b57600080fd5b85359450602086013593506040860135925061433960608701614131565b9150614347608087016142f3565b90509295509295909350565b60008060006060848603121561436857600080fd5b61437184613c7d565b925060208401356001600160401b0381111561438c57600080fd5b61439886828701613e8c565b9250506143a760408501613df1565b90509250925092565b600080602083850312156143c357600080fd5b82356001600160401b03808211156143da57600080fd5b818501915085601f8301126143ee57600080fd5b8135818111156143fd57600080fd5b86602060a083028501011115613d1657600080fd5b6020815260006133ed6020830184613b23565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156116565761165661443b565b600181811c9082168061447857607f821691505b602082108103610f4657634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016144c0576144c061443b565b5060010190565b600063ffffffff8083168181036144e0576144e061443b565b6001019392505050565b602081016116568284614085565b601f821115610b15576000816000526020600020601f850160051c810160208610156145215750805b601f850160051c820191505b818110156145405782815560010161452d565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561457657614576613e46565b61458a816145848454614464565b846144f8565b602080601f8311600181146145b957600084156145a75750858301515b6145b18582614548565b865550614540565b600085815260208120601f198616915b828110156145e8578886015182559484019460019091019084016145c9565b50858210156146065787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061462f6080830186614255565b84604084015282810360608401526146478185613b23565b979650505050505050565b60008251614664818460208701613aff565b9190910192915050565b600080835461467c81614464565b6001828116801561469457600181146146a9576146d8565b60ff19841687528215158302870194506146d8565b8760005260208060002060005b858110156146cf5781548a8201529084019082016146b6565b50505082870194505b50929695505050505050565b6001600160401b038311156146fb576146fb613e46565b61470f836147098354614464565b836144f8565b6000601f84116001811461473d576000851561472b5750838201355b6147358682614548565b8455506120c3565b600083815260209020601f19861690835b8281101561476e578685013582556020948501946001909201910161474e565b508682101561478b5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8581526001600160401b038516602082015260806040820152826080820152828460a0830137600081840160a0908101919091529115156060820152601f909201601f1916909101019392505050565b818103818111156116565761165661443b565b81810361480b575050565b6148158254614464565b6001600160401b0381111561482c5761482c613e46565b61483a816145848454614464565b6000601f82116001811461486857600083156148565750848201545b6148608482614548565b8555506120c3565b600085815260209020601f19841690600086815260209020845b838110156148a25782860154825560019586019590910190602001614882565b50858310156146065793015460001960f8600387901b161c19169092555050600190811b01905550565b6040815260006148df6040830185613b23565b90506133ed6020830184614085565b60006020828403121561490057600080fd5b6133ed82614131565b8481528360208201526001600160401b0383166040820152608060608201526000613de76080830184613b23565b60006020828403121561494957600080fd5b6133ed826142f356fec01483261a841a868b99cb8802faed4ea44a1a816651c4f7ee061a96a205fe98", + Bin: "0x60806040523480156200001157600080fd5b5060405162004f6038038062004f608339810160408190526200003491620004a6565b6200003e620000c1565b620000493362000169565b60005b8151811015620000b957620000838282815181106200006f576200006f62000578565b60200260200101516200023760201b60201c565b620000b08282815181106200009c576200009c62000578565b60200260200101516200031c60201b60201c565b6001016200004c565b5050620005df565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200010e576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156200016657805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b60006200019d7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b90506001600160a01b038216620001c757604051634e3ef82560e01b815260040160405180910390fd5b817f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae30080546001600160a01b0319166001600160a01b03928316179055604051838216918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116620002865760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526200027d91906004016200058e565b60405180910390fd5b62000293600882620003e9565b15620002d757604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526200027d91906004016200058e565b620002e460088262000410565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b038116620003625760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526200027d91906004016200058e565b6200036f600d8262000410565b620003b257604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526200027d91906004016200058e565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b6001600160a01b038116600090815260018301602052604081205415155b90505b92915050565b600062000407836001600160a01b03841660008181526001830160205260408120546200046a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200040a565b5060006200040a565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620004a157600080fd5b919050565b60006020808385031215620004ba57600080fd5b82516001600160401b0380821115620004d257600080fd5b818501915085601f830112620004e757600080fd5b815181811115620004fc57620004fc62000473565b8060051b604051601f19603f8301168101818110858211171562000524576200052462000473565b6040529182528482019250838101850191888311156200054357600080fd5b938501935b828510156200056c576200055c8562000489565b8452938501939285019262000548565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020808352835180602085015260005b81811015620005be57858101830151858201604001528201620005a0565b506000604082860101526040601f19601f8301168501019250505092915050565b61497180620005ef6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80639ee86d3811610130578063c87d1324116100b8578063d911c6321161007c578063d911c632146104ed578063ee885b12146104f5578063eecc66f414610508578063fc207c011461051b578063ff3a14ab1461052e57600080fd5b8063c87d13241461047e578063c8fe3a0114610491578063ca78c41a146104a6578063d4bd44a0146104c7578063d7a3158a146104da57600080fd5b8063b2b99ec9116100ff578063b2b99ec91461042a578063b7f227ee1461043d578063ba428b1a14610450578063c0f2208414610463578063c179b85f1461046b57600080fd5b80639ee86d38146103dc578063a09449a6146103ef578063a1174e7d14610402578063ac8a584a1461041757600080fd5b8063581f8b9b116101b35780637e4465e7116101825780637e4465e71461036e578063813049ec1461038157806386789fc6146103945780639283ae3a146103a95780639d209048146103bc57600080fd5b8063581f8b9b1461030557806368b454df146103185780636b883c39146103385780636d70f7ae1461034b57600080fd5b806331374511116101fa578063313745111461029257806332705ac4146102a557806339bf397e146102c55780633bd84c0c146102db5780633c2544d1146102e357600080fd5b8063035759e11461022c578063081814db146102415780631290abe81461025f578063242cae9f1461027f575b600080fd5b61023f61023a366004613ae4565b610541565b005b6102496106b5565b6040516102569190613b4d565b60405180910390f35b61027261026d366004613ae4565b610920565b6040516102569190613c68565b61023f61028d366004613c97565b610a42565b61023f6102a0366004613cb2565b610a89565b6102b86102b3366004613c97565b610b1a565b6040516102569190613da7565b6102cd610dcc565b604051908152602001610256565b6102b8610ddd565b6102f66102f1366004613ae4565b610f4b565b60405161025693929190613dba565b61023f610313366004613dfe565b61111c565b61032b610326366004613ae4565b6112bc565b6040516102569190613e31565b61023f610346366004613ef9565b6113e8565b61035e610359366004613c97565b61164f565b6040519015158152602001610256565b61023f61037c366004613fdc565b611662565b61023f61038f366004613c97565b61185a565b61039c611955565b6040516102569190614029565b6102496103b7366004613ae4565b611961565b6103cf6103ca366004613c97565b611ac4565b60405161025691906140f9565b61023f6103ea36600461410c565b611c45565b61023f6103fd366004614146565b611e07565b61040a6120d6565b60405161025691906141cc565b61023f610425366004613c97565b6122aa565b61023f610438366004613c97565b61240d565b61023f61044b366004614230565b6125d6565b61023f61045e366004613cb2565b612825565b6102cd6128b1565b61023f610479366004613c97565b6128bc565b6102cd61048c366004613c97565b612900565b6104996129ae565b6040516102569190614298565b6104b96104b43660046142ab565b6129ba565b6040516102569291906142cd565b61035e6104d5366004613c97565b612bab565b61023f6104e8366004614301565b612bb8565b610499612d3b565b61023f61050336600461410c565b612d47565b61023f610516366004614351565b612f94565b61035e610529366004613ae4565b61315e565b61023f61053c3660046143ae565b61316b565b3361054d600d826133cd565b6105905760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b60405180910390fd5b8161059c600a826133f2565b6105d75760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6000838152600c60205260409020541561064a576000838152600c6020526040902080548061060857610608614423565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff1916905590610641600283018261398f565b505090556105d7565b6000838152600c60205260408120610661916139c9565b61066c600a8461340a565b50604080518481526001600160401b03602082015260808183018190526000908201526001606082015290516000805160206149518339815191529181900360a00190a1505050565b60606000806106c4600a613416565b905060005b818110156107055760006106de600a83613420565b6000818152600c60205260409020549091506106fa908561444f565b9350506001016106c9565b506000826001600160401b0381111561072057610720613e44565b60405190808252806020026020018201604052801561076d57816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161073e5790505b509050600061077c600a613416565b90506000805b82811015610915576000610797600a83613420565b6000818152600c6020908152604080832080548251818502810185019093528083529495509293909291849084015b828210156108aa57600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b0316938301939093526002830180549293929184019161081990614462565b80601f016020809104026020016040519081016040528092919081815260200182805461084590614462565b80156108925780601f1061086757610100808354040283529160200191610892565b820191906000526020600020905b81548152906001019060200180831161087557829003601f168201915b505050505081525050815260200190600101906107c6565b50505050905060005b8151811015610907578181815181106108ce576108ce614496565b60200260200101518786806108e2906144ac565b9750815181106108f4576108f4614496565b60209081029190910101526001016108b3565b505050806001019050610782565b509195945050505050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061095490836133f2565b61098f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610a3257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a14575b5050505050815250509050919050565b610a4a61342c565b6001600160a01b0316336001600160a01b031614610a7d576040516365f4906560e01b8152336004820152602401610587565b610a868161345a565b50565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610ad357604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b1557610b0d838383818110610af357610af3614496565b9050602002016020810190610b089190613c97565b61352c565b600101610ad6565b505050565b60606000610b2781613416565b90506000816001600160401b03811115610b4357610b43613e44565b604051908082528060200260200182016040528015610b6c578160200160208202803683370190505b5090506000805b83811015610c2e576000610b878183613420565b600081815260026020819052604082209081015492935091905b81811015610c1f57896001600160a01b0316836002018281548110610bc857610bc8614496565b6000918252602090912001546001600160a01b031603610c1757838787610bee816144c5565b985063ffffffff1681518110610c0657610c06614496565b602002602001018181525050610c1f565b600101610ba1565b50505050806001019050610b73565b5060008163ffffffff166001600160401b03811115610c4f57610c4f613e44565b604051908082528060200260200182016040528015610c8857816020015b610c756139ea565b815260200190600190039081610c6d5790505b50905060005b8263ffffffff16811015610dc2576040518060400160405280858381518110610cb957610cb9614496565b6020026020010151815260200160006002016000878581518110610cdf57610cdf614496565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b909104166060820152600282018054845181870281018701909552808552919492936080860193909290830182828015610d9157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d73575b505050505081525050815250828281518110610daf57610daf614496565b6020908102919091010152600101610c8e565b5095945050505050565b6000610dd86005613416565b905090565b60606000610dea81613416565b90506000816001600160401b03811115610e0657610e06613e44565b604051908082528060200260200182016040528015610e3f57816020015b610e2c6139ea565b815260200190600190039081610e245790505b50905060005b82811015610f44576000610e598183613420565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610f1257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ef4575b505050505081525050815250838381518110610f3057610f30614496565b602090810291909101015250600101610e45565b5092915050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201819052909190610f8382856133f2565b610fbe5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b9091041660608201529482018054845181870281018701909552808552929695919491938793608086019391929183018282801561107857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161105a575b505050505081525050925080805461108f90614462565b80601f01602080910402602001604051908101604052809291908181526020018280546110bb90614462565b80156111085780601f106110dd57610100808354040283529160200191611108565b820191906000526020600020905b8154815290600101906020018083116110eb57829003601f168201915b505050505090509250925092509193909250565b6001600160a01b0380831660009081526007602052604090206002015483911661117c57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b336111886008826133cd565b6111c25760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808516600090815260076020526040902060030154859133911681146112205760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b038616600090815260076020526040902080546112479060ff16876135f1565b80548690829060ff191660018360058111156112655761126561406d565b021790555060028101546040516001600160a01b03909116907f20891cc7622c7951cbd8c70c61a5201eb45625b8c00e8f6c986cfca78f3dbfa0906112ab9089906144e8565b60405180910390a250505050505050565b6112c46139ea565b60006112cf81613416565b905080831061130f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600061131b8185613420565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b90910416606082015291810180548651818602810186019097528087529697509395838701959294919360808601939291908301828280156113d457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113b6575b505050919092525050509052949350505050565b336000818152600760205260409020600201546001600160a01b031661144457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b61144f6000866133f2565b1561149057604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b835160005b81811015611515576114cd8682815181106114b2576114b2614496565b602002602001015160006005016133cd90919063ffffffff16565b61150d57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b600101611495565b506040805160a08101825285815260006020820181905291810182905260608101829052608081018790529061154b9088613784565b5060008781526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff199099169190941617969096179590951617909355608084015180518594936115db93908501920190613a34565b50505060008781526003602052604090206115f6858261455b565b5060008781526004602052604090819020869055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb9061163e908990899089908990614614565b60405180910390a150505050505050565b600061165c6008836133cd565b92915050565b3361166e6008826133cd565b6116a85760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b0380841660009081526007602052604090206002015484911661170857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808516600090815260076020526040902060030154859133911681146117665760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b038616600090815260076020908152604091829020915161179091889101614650565b60405160208183030381529060405280519060200120816001016040516020016117ba919061466c565b604051602081830303815290604052805190602001200361180a5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b60018101611818878261455b565b5060028101546040516001600160a01b03909116907f4505168a8705a16fd4d0575197fd0f510db69df93a065e158ad2c0957ba12bac906112ab908990614410565b61186261342c565b6001600160a01b0316336001600160a01b031614611895576040516365f4906560e01b8152336004820152602401610587565b6001600160a01b0381166118d85760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b6118e3600d82613790565b61191e5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6040516001600160a01b038216907ff9889c857e5356066b564327caa757c325ecbc001b2b47d72edf8cf9aedb1be590600090a250565b6060610dd860006137a5565b60608161196f600a826133f2565b6119aa5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6000838152600c6020908152604080832080548251818502810185019093528083529193909284015b82821015611ab757600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b03169383019390935260028301805492939291840191611a2690614462565b80601f0160208091040260200160405190810160405280929190818152602001828054611a5290614462565b8015611a9f5780601f10611a7457610100808354040283529160200191611a9f565b820191906000526020600020905b815481529060010190602001808311611a8257829003601f168201915b505050505081525050815260200190600101906119d3565b5050505091505b50919050565b611aef6040805160808101909152806000815260606020820181905260006040830181905291015290565b611afa6005836133cd565b611b3a57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b038216600090815260076020526040908190208151608081019092528054829060ff166005811115611b7557611b7561406d565b6005811115611b8657611b8661406d565b8152602001600182018054611b9a90614462565b80601f0160208091040260200160405190810160405280929190818152602001828054611bc690614462565b8015611c135780601f10611be857610100808354040283529160200191611c13565b820191906000526020600020905b815481529060010190602001808311611bf657829003601f168201915b505050918352505060028201546001600160a01b03908116602083015260039092015490911660409091015292915050565b81611c516000826133f2565b611c8c5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808316600090815260076020526040902060020154839116611cec57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b600084815260026020819052604082209081015490915b81811015611d8857856001600160a01b0316836002018281548110611d2a57611d2a614496565b6000918252602090912001546001600160a01b031603611d8057604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b600101611d03565b5060028201805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b038916908117909155604080518a8152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f906060015b60405180910390a1505050505050565b33611e13600d826133cd565b611e4d5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b67fffffffffffffffe196001600160401b03851601611e9b5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b6000829003611ed95760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b611ee4600a866133f2565b611ef557611ef3600a86613784565b505b6000858152600c6020526040812054905b81811015611fdc576000878152600c6020526040902080546001600160401b038816919083908110611f3a57611f3a614496565b60009182526020909120600160039092020101546001600160401b031603611fd4576000878152600c6020526040902080548691869184908110611f8057611f80614496565b90600052602060002090600302016002019182611f9e9291906146e2565b50600080516020614951833981519152878787876000604051611fc595949392919061479b565b60405180910390a150506120cf565b600101611f06565b506000600c0160008781526020019081526020016000206040518060600160405280888152602001876001600160401b0316815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050835460018082018655948252602091829020845160039092020190815590830151938101805467ffffffffffffffff19166001600160401b039095169490941790935550604081015190919060028201906120a6908261455b565b505050600080516020614951833981519152868686866000604051611df795949392919061479b565b5050505050565b606060006120e46005613416565b6001600160401b038111156120fb576120fb613e44565b60405190808252806020026020018201604052801561215757816020015b6121446040805160808101909152806000815260606020820181905260006040830181905291015290565b8152602001906001900390816121195790505b50905060005b6121676005613416565b811015611abe576007600061217d600584613420565b6001600160a01b03168152602081019190915260409081016000208151608081019092528054829060ff1660058111156121b9576121b961406d565b60058111156121ca576121ca61406d565b81526020016001820180546121de90614462565b80601f016020809104026020016040519081016040528092919081815260200182805461220a90614462565b80156122575780601f1061222c57610100808354040283529160200191612257565b820191906000526020600020905b81548152906001019060200180831161223a57829003601f168201915b505050918352505060028201546001600160a01b039081166020830152600390920154909116604090910152825183908390811061229757612297614496565b602090810291909101015260010161215d565b6122b261342c565b6001600160a01b0316336001600160a01b0316146122e5576040516365f4906560e01b8152336004820152602401610587565b6122f06008826133cd565b61233457604080518082018252601281527113d41154905513d497d393d517d193d5539160721b6020820152905162461bcd60e51b81526105879190600401614410565b60005b6123416005613416565b8110156123c9576001600160a01b03821660076000612361600585613420565b6001600160a01b03908116825260208201929092526040016000206003015416036123c157604080518082018252600d81526c4f55545f4f465f424f554e445360981b6020820152905162461bcd60e51b81526105879190600401614410565b600101612337565b506123d5600882613790565b506040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b038082166000908152600760205260409020600301548291339116811461246b5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03838116600090815260076020526040902060020154166124c957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b60056001600160a01b03841660009081526007602052604090205460ff1660058111156124f8576124f861406d565b146125415760408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614410565b61254c600584613790565b506001600160a01b0383166000908152600760205260408120805460ff191681559061257b600183018261398f565b506002810180546001600160a01b03199081169091556003909101805490911690556040516001600160a01b038416907fcfc24166db4bb677e857cacabd1541fb2b30645021b27c5130419589b84db52b90600090a2505050565b336125e2600d826133cd565b61261c5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6000805b6000858152600c602052604090205481101561279d576000858152600c6020526040902080546001600160401b03861691908390811061266257612662614496565b60009182526020909120600160039092020101546001600160401b031603612795576000858152600c6020526040902080546126a0906001906147eb565b815481106126b0576126b0614496565b90600052602060002090600302016000600c01600087815260200190815260200160002082815481106126e5576126e5614496565b600091825260209091208254600390920201908155600180830154908201805467ffffffffffffffff19166001600160401b03909216919091179055600280820190612733908401826147fe565b5050506000858152600c6020526040902080548061275357612753614423565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff191690559061278c600283018261398f565b50509055600191505b600101612620565b50806127da5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b604080518581526001600160401b038516602082015260808183018190526000908201526001606082015290516000805160206149518339815191529181900360a00190a150505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661286f57604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b15576128a983838381811061288f5761288f614496565b90506020020160208101906128a49190613c97565b61345a565b600101612872565b6000610dd881613416565b6128c461342c565b6001600160a01b0316336001600160a01b0316146128f7576040516365f4906560e01b8152336004820152602401610587565b610a868161352c565b6000808061290d81613416565b905060005b818110156129a55760006129268183613420565b60008181526002602052604081209192505b600282015481101561299757876001600160a01b031682600201828154811061296357612963614496565b6000918252602090912001546001600160a01b03160361298f5785612987816144ac565b965050612997565b600101612938565b505050806001019050612912565b50909392505050565b6060610dd860056137a5565b60606000828410604051806040016040528060078152602001664241445f41524760c81b815250906129ff5760405162461bcd60e51b81526004016105879190614410565b506000612a0c85856147eb565b6001600160401b03811115612a2357612a23613e44565b604051908082528060200260200182016040528015612a5c57816020015b612a496139ea565b815260200190600190039081612a415790505b5090506000612a6a81613416565b905060005b81612a7a828961444f565b108015612a8f575085612a8d828961444f565b105b15612b9f576000612aab612aa3838a61444f565b600090613420565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015612b6457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612b46575b505050505081525050815250848381518110612b8257612b82614496565b60200260200101819052505080612b98906144ac565b9050612a6f565b50909593101593505050565b600061165c600d836133cd565b336000818152600760205260409020600201546001600160a01b0316612c1457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b612c1f6000876133f2565b612c5a5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b0386161790558215612cc2576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b0316600103612cea576000878152600360205260408120612cea9161398f565b60408051888152602081018790526001600160401b0386169181019190915283151560608201527fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b9060800161163e565b6060610dd860086137a5565b81612d536000826133f2565b612d8e5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808316600090815260076020526040902060020154839116612dee57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b6000848152600260208190526040822090810154909190815b81811015612f0957866001600160a01b0316846002018281548110612e2e57612e2e614496565b6000918252602090912001546001600160a01b031603612f015760028401612e576001846147eb565b81548110612e6757612e67614496565b6000918252602090912001546002850180546001600160a01b039092169183908110612e9557612e95614496565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083600201805480612ed657612ed6614423565b600082815260209020810160001990810180546001600160a01b031916905501905560019250612f09565b600101612e07565b5081612f4b57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b604080518881526001600160a01b03881660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600161163e565b33612fa06008826133cd565b612fda5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03848116600090815260076020526040902060020154161561303957604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b600060405180608001604052808460058111156130585761305861406d565b8152602081018690526001600160a01b03871660408201523360609091015290506130846005866137b2565b506001600160a01b03851660009081526007602052604090208151815483929190829060ff191660018360058111156130bf576130bf61406d565b0217905550602082015160018201906130d8908261455b565b506040828101516002830180546001600160a01b03199081166001600160a01b039384161790915560609094015160039093018054909416928116929092179092559051908616907fd6f3629b08191adb8308c3a65d5f8803b7f8f3e359c433fa7ae623276635e5619061314f90879087906148ca565b60405180910390a25050505050565b600061165c600a836133f2565b336000818152600760205260409020600201546001600160a01b03166131c757604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b8160005b818110156120cf57368585838181106131e6576131e6614496565b60a0029190910191506131fd9050600082356133f2565b613275577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561323960808501606086016148ec565b60408051808201825260098152681393d517d193d5539160ba1b602082015290516132679493929190614907565b60405180910390a1506133c5565b80356000908152600260205260409081902090820135815561329d60808301606084016148ec565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556132d060a0830160808401614935565b15613308576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b61331860808301606084016148ec565b6001600160401b031660010361334157813560009081526003602052604081206133419161398f565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561337960808601606087016148ec565b61338960a0870160808801614935565b6040516133ba949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b6001016131cb565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600081815260018301602052604081205415156133eb565b60006133eb83836137c7565b600061165c825490565b60006133eb83836138ba565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b6001600160a01b03811661349d5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b6134a86008826133cd565b156134e957604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b6134f46008826137b2565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b03811661356f5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b61357a600d826137b2565b6135ba57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b60008260058111156136055761360561406d565b1480613659575060018260058111156136205761362061406d565b1480156136595750600381600581111561363c5761363c61406d565b1480613659575060048160058111156136575761365761406d565b145b806136ac575060028260058111156136735761367361406d565b1480156136ac5750600381600581111561368f5761368f61406d565b14806136ac575060048160058111156136aa576136aa61406d565b145b806136ff575060048260058111156136c6576136c661406d565b1480156136ff575060038160058111156136e2576136e261406d565b14806136ff575060058160058111156136fd576136fd61406d565b145b80613737575060038260058111156137195761371961406d565b148015613737575060058160058111156137355761373561406d565b145b15613740575050565b60408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614410565b60006133eb83836138e4565b60006133eb836001600160a01b0384166137c7565b606060006133eb83613933565b60006133eb836001600160a01b0384166138e4565b600081815260018301602052604081205480156138b05760006137eb6001836147eb565b85549091506000906137ff906001906147eb565b905080821461386457600086600001828154811061381f5761381f614496565b906000526020600020015490508087600001848154811061384257613842614496565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061387557613875614423565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061165c565b600091505061165c565b60008260000182815481106138d1576138d1614496565b9060005260206000200154905092915050565b600081815260018301602052604081205461392b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561165c565b50600061165c565b60608160000180548060200260200160405190810160405280929190818152602001828054801561398357602002820191906000526020600020905b81548152602001906001019080831161396f575b50505050509050919050565b50805461399b90614462565b6000825580601f106139ab575050565b601f016020900490600052602060002090810190610a869190613a99565b5080546000825560030290600052602060002090810190610a869190613aae565b604080518082019091526000815260208101613a2f6040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b828054828255906000526020600020908101928215613a89579160200282015b82811115613a8957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613a54565b50613a95929150613a99565b5090565b5b80821115613a955760008155600101613a9a565b80821115613a9557600080825560018201805467ffffffffffffffff19169055613adb600283018261398f565b50600301613aae565b600060208284031215613af657600080fd5b5035919050565b60005b83811015613b18578181015183820152602001613b00565b50506000910152565b60008151808452613b39816020860160208601613afd565b601f01601f19169290920160200192915050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613bc957888303603f19018552815180518452878101516001600160401b0316888501528601516060878501819052613bb581860183613b21565b968901969450505090860190600101613b76565b509098975050505050505050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015613c5d5784516001600160a01b03168252938301936001929092019190830190613c34565b509695505050505050565b6020815260006133eb6020830184613bd7565b80356001600160a01b0381168114613c9257600080fd5b919050565b600060208284031215613ca957600080fd5b6133eb82613c7b565b60008060208385031215613cc557600080fd5b82356001600160401b0380821115613cdc57600080fd5b818501915085601f830112613cf057600080fd5b813581811115613cff57600080fd5b8660208260051b8501011115613d1457600080fd5b60209290920196919550909350505050565b805182526000602082015160406020850152613d456040850182613bd7565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015613d9a57601f19868403018952613d88838351613d26565b98840198925090830190600101613d6c565b5090979650505050505050565b6020815260006133eb6020830184613d4d565b606081526000613dcd6060830186613bd7565b8460208401528281036040840152613de58185613b21565b9695505050505050565b803560068110613c9257600080fd5b60008060408385031215613e1157600080fd5b613e1a83613c7b565b9150613e2860208401613def565b90509250929050565b6020815260006133eb6020830184613d26565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613e8257613e82613e44565b604052919050565b600082601f830112613e9b57600080fd5b81356001600160401b03811115613eb457613eb4613e44565b613ec7601f8201601f1916602001613e5a565b818152846020838601011115613edc57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613f0f57600080fd5b843593506020808601356001600160401b0380821115613f2e57600080fd5b818801915088601f830112613f4257600080fd5b813581811115613f5457613f54613e44565b8060051b613f63858201613e5a565b918252838101850191858101908c841115613f7d57600080fd5b948601945b83861015613fa257613f9386613c7b565b82529486019490860190613f82565b9850505050604088013594506060880135925080831115613fc257600080fd5b5050613fd087828801613e8a565b91505092959194509250565b60008060408385031215613fef57600080fd5b613ff883613c7b565b915060208301356001600160401b0381111561401357600080fd5b61401f85828601613e8a565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561406157835183529284019291840191600101614045565b50909695505050505050565b634e487b7160e01b600052602160045260246000fd5b600681106140a157634e487b7160e01b600052602160045260246000fd5b9052565b6140b0828251614083565b60006020820151608060208501526140cb6080850182613b21565b6040848101516001600160a01b03908116918701919091526060948501511693909401929092525090919050565b6020815260006133eb60208301846140a5565b6000806040838503121561411f57600080fd5b82359150613e2860208401613c7b565b80356001600160401b0381168114613c9257600080fd5b6000806000806060858703121561415c57600080fd5b8435935061416c6020860161412f565b925060408501356001600160401b038082111561418857600080fd5b818701915087601f83011261419c57600080fd5b8135818111156141ab57600080fd5b8860208285010111156141bd57600080fd5b95989497505060200194505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561422357603f198886030184526142118583516140a5565b945092850192908501906001016141f5565b5092979650505050505050565b6000806040838503121561424357600080fd5b82359150613e286020840161412f565b60008151808452602080850194506020840160005b8381101561428d5781516001600160a01b031687529582019590820190600101614268565b509495945050505050565b6020815260006133eb6020830184614253565b600080604083850312156142be57600080fd5b50508035926020909101359150565b6040815260006142e06040830185613d4d565b905082151560208301529392505050565b80358015158114613c9257600080fd5b600080600080600060a0868803121561431957600080fd5b8535945060208601359350604086013592506143376060870161412f565b9150614345608087016142f1565b90509295509295909350565b60008060006060848603121561436657600080fd5b61436f84613c7b565b925060208401356001600160401b0381111561438a57600080fd5b61439686828701613e8a565b9250506143a560408501613def565b90509250925092565b600080602083850312156143c157600080fd5b82356001600160401b03808211156143d857600080fd5b818501915085601f8301126143ec57600080fd5b8135818111156143fb57600080fd5b86602060a083028501011115613d1457600080fd5b6020815260006133eb6020830184613b21565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561165c5761165c614439565b600181811c9082168061447657607f821691505b602082108103611abe57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016144be576144be614439565b5060010190565b600063ffffffff8083168181036144de576144de614439565b6001019392505050565b6020810161165c8284614083565b601f821115610b15576000816000526020600020601f850160051c8101602086101561451f5750805b601f850160051c820191505b8181101561453e5782815560010161452b565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561457457614574613e44565b614588816145828454614462565b846144f6565b602080601f8311600181146145b757600084156145a55750858301515b6145af8582614546565b86555061453e565b600085815260208120601f198616915b828110156145e6578886015182559484019460019091019084016145c7565b50858210156146045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061462d6080830186614253565b84604084015282810360608401526146458185613b21565b979650505050505050565b60008251614662818460208701613afd565b9190910192915050565b600080835461467a81614462565b6001828116801561469257600181146146a7576146d6565b60ff19841687528215158302870194506146d6565b8760005260208060002060005b858110156146cd5781548a8201529084019082016146b4565b50505082870194505b50929695505050505050565b6001600160401b038311156146f9576146f9613e44565b61470d836147078354614462565b836144f6565b6000601f84116001811461473b57600085156147295750838201355b6147338682614546565b8455506120cf565b600083815260209020601f19861690835b8281101561476c578685013582556020948501946001909201910161474c565b50868210156147895760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8581526001600160401b038516602082015260806040820152826080820152828460a0830137600081840160a0908101919091529115156060820152601f909201601f1916909101019392505050565b8181038181111561165c5761165c614439565b818103614809575050565b6148138254614462565b6001600160401b0381111561482a5761482a613e44565b614838816145828454614462565b6000601f82116001811461486657600083156148545750848201545b61485e8482614546565b8555506120cf565b600085815260209020601f19841690600086815260209020845b838110156148a05782860154825560019586019590910190602001614880565b50858310156146045793015460001960f8600387901b161c19169092555050600190811b01905550565b6040815260006148dd6040830185613b21565b90506133eb6020830184614083565b6000602082840312156148fe57600080fd5b6133eb8261412f565b8481528360208201526001600160401b0383166040820152608060608201526000613de56080830184613b21565b60006020828403121561494757600080fd5b6133eb826142f156fec01483261a841a868b99cb8802faed4ea44a1a816651c4f7ee061a96a205fe98", } // MockRiverRegistryABI is the input ABI used to generate the binding from. diff --git a/core/node/auth/space_contract.go b/core/node/auth/space_contract.go index 55148c5e7..5213fe73d 100644 --- a/core/node/auth/space_contract.go +++ b/core/node/auth/space_contract.go @@ -11,7 +11,7 @@ import ( type Entitlement struct { entitlementType string - ruleEntitlement *base.IRuleEntitlementRuleData + ruleEntitlement *base.IRuleEntitlementBaseRuleData userEntitlement []common.Address } diff --git a/core/node/auth/space_contract_v3.go b/core/node/auth/space_contract_v3.go index bc6edacf6..8d79d04c4 100644 --- a/core/node/auth/space_contract_v3.go +++ b/core/node/auth/space_contract_v3.go @@ -121,7 +121,7 @@ func (sc *SpaceContractV3) marshalEntitlements( return nil, err } - var ruleData base.IRuleEntitlementRuleData + var ruleData base.IRuleEntitlementBaseRuleData unpackedData, err := parsedABI.Unpack("getRuleData", entitlement.EntitlementData) if err != nil { diff --git a/core/xchain/client_simulator/client_simulator.go b/core/xchain/client_simulator/client_simulator.go index d804be05d..f2ea27deb 100644 --- a/core/xchain/client_simulator/client_simulator.go +++ b/core/xchain/client_simulator/client_simulator.go @@ -100,15 +100,15 @@ func toggleCustomEntitlement( ) } -func customEntitlementExample(cfg *config.Config) base.IRuleEntitlementRuleData { - return base.IRuleEntitlementRuleData{ - Operations: []base.IRuleEntitlementOperation{ +func customEntitlementExample(cfg *config.Config) base.IRuleEntitlementBaseRuleData { + return base.IRuleEntitlementBaseRuleData{ + Operations: []base.IRuleEntitlementBaseOperation{ { OpType: uint8(entitlement.CHECK), Index: 0, }, }, - CheckOperations: []base.IRuleEntitlementCheckOperation{ + CheckOperations: []base.IRuleEntitlementBaseCheckOperation{ { OpType: uint8(entitlement.ISENTITLED), ChainId: big.NewInt(1), @@ -120,15 +120,15 @@ func customEntitlementExample(cfg *config.Config) base.IRuleEntitlementRuleData } } -func erc721Example() base.IRuleEntitlementRuleData { - return base.IRuleEntitlementRuleData{ - Operations: []base.IRuleEntitlementOperation{ +func erc721Example() base.IRuleEntitlementBaseRuleData { + return base.IRuleEntitlementBaseRuleData{ + Operations: []base.IRuleEntitlementBaseOperation{ { OpType: uint8(entitlement.CHECK), Index: 0, }, }, - CheckOperations: []base.IRuleEntitlementCheckOperation{ + CheckOperations: []base.IRuleEntitlementBaseCheckOperation{ { OpType: uint8(entitlement.ERC721), ChainId: examples.EthSepoliaChainId, @@ -140,15 +140,15 @@ func erc721Example() base.IRuleEntitlementRuleData { } } -func erc20Example() base.IRuleEntitlementRuleData { - return base.IRuleEntitlementRuleData{ - Operations: []base.IRuleEntitlementOperation{ +func erc20Example() base.IRuleEntitlementBaseRuleData { + return base.IRuleEntitlementBaseRuleData{ + Operations: []base.IRuleEntitlementBaseOperation{ { OpType: uint8(entitlement.CHECK), Index: 0, }, }, - CheckOperations: []base.IRuleEntitlementCheckOperation{ + CheckOperations: []base.IRuleEntitlementBaseCheckOperation{ { OpType: uint8(entitlement.ERC20), ChainId: examples.EthSepoliaChainId, @@ -178,7 +178,7 @@ type postResult struct { type ClientSimulator interface { Start(ctx context.Context) Stop() - EvaluateRuleData(ctx context.Context, cfg *config.Config, ruleData base.IRuleEntitlementRuleData) (bool, error) + EvaluateRuleData(ctx context.Context, cfg *config.Config, ruleData base.IRuleEntitlementBaseRuleData) (bool, error) Wallet() *node_crypto.Wallet } @@ -311,7 +311,7 @@ func (cs *clientSimulator) Start(ctx context.Context) { ) } -func (cs *clientSimulator) executeCheck(ctx context.Context, ruleData *deploy.IRuleEntitlementRuleData) error { +func (cs *clientSimulator) executeCheck(ctx context.Context, ruleData *deploy.IRuleEntitlementBaseRuleData) error { log := dlog.FromCtx(ctx).With("application", "clientSimulator") log.Info("ClientSimulator executing check", "ruleData", ruleData, "cfg", cs.cfg) @@ -478,32 +478,32 @@ func (cs *clientSimulator) Wallet() *node_crypto.Wallet { return cs.wallet } -func convertRuleDataFromBaseToDeploy(ruleData base.IRuleEntitlementRuleData) deploy.IRuleEntitlementRuleData { - operations := make([]deploy.IRuleEntitlementOperation, len(ruleData.Operations)) +func convertRuleDataFromBaseToDeploy(ruleData base.IRuleEntitlementBaseRuleData) deploy.IRuleEntitlementBaseRuleData { + operations := make([]deploy.IRuleEntitlementBaseOperation, len(ruleData.Operations)) for i, op := range ruleData.Operations { - operations[i] = deploy.IRuleEntitlementOperation{ + operations[i] = deploy.IRuleEntitlementBaseOperation{ OpType: op.OpType, Index: op.Index, } } - checkOperations := make([]deploy.IRuleEntitlementCheckOperation, len(ruleData.CheckOperations)) + checkOperations := make([]deploy.IRuleEntitlementBaseCheckOperation, len(ruleData.CheckOperations)) for i, op := range ruleData.CheckOperations { - checkOperations[i] = deploy.IRuleEntitlementCheckOperation{ + checkOperations[i] = deploy.IRuleEntitlementBaseCheckOperation{ OpType: op.OpType, ChainId: op.ChainId, ContractAddress: op.ContractAddress, Threshold: op.Threshold, } } - logicalOperations := make([]deploy.IRuleEntitlementLogicalOperation, len(ruleData.LogicalOperations)) + logicalOperations := make([]deploy.IRuleEntitlementBaseLogicalOperation, len(ruleData.LogicalOperations)) for i, op := range ruleData.LogicalOperations { - logicalOperations[i] = deploy.IRuleEntitlementLogicalOperation{ + logicalOperations[i] = deploy.IRuleEntitlementBaseLogicalOperation{ LogOpType: op.LogOpType, LeftOperationIndex: op.LeftOperationIndex, RightOperationIndex: op.RightOperationIndex, } } - return deploy.IRuleEntitlementRuleData{ + return deploy.IRuleEntitlementBaseRuleData{ Operations: operations, CheckOperations: checkOperations, LogicalOperations: logicalOperations, @@ -513,7 +513,7 @@ func convertRuleDataFromBaseToDeploy(ruleData base.IRuleEntitlementRuleData) dep func (cs *clientSimulator) EvaluateRuleData( ctx context.Context, cfg *config.Config, - baseRuleData base.IRuleEntitlementRuleData, + baseRuleData base.IRuleEntitlementBaseRuleData, ) (bool, error) { ruleData := convertRuleDataFromBaseToDeploy(baseRuleData) @@ -567,7 +567,7 @@ func RunClientSimulator(ctx context.Context, cfg *config.Config, wallet *node_cr cs.Start(ctx) defer cs.Stop() - var ruleData base.IRuleEntitlementRuleData + var ruleData base.IRuleEntitlementBaseRuleData switch simType { case ERC721: ruleData = erc721Example() diff --git a/core/xchain/entitlement/entitlement.go b/core/xchain/entitlement/entitlement.go index d7f1220cd..b01f6ae5b 100644 --- a/core/xchain/entitlement/entitlement.go +++ b/core/xchain/entitlement/entitlement.go @@ -16,7 +16,7 @@ import ( func (e *Evaluator) EvaluateRuleData( ctx context.Context, linkedWallets []common.Address, - ruleData *base.IRuleEntitlementRuleData, + ruleData *base.IRuleEntitlementBaseRuleData, ) (bool, error) { log := dlog.FromCtx(ctx) log.Info("Evaluating rule data", "ruleData", ruleData) @@ -169,7 +169,7 @@ func (a *AndOperation) SetRightOperation(right Operation) { } func getOperationTree(ctx context.Context, - ruleData *base.IRuleEntitlementRuleData, + ruleData *base.IRuleEntitlementBaseRuleData, ) (Operation, error) { log := dlog.FromCtx(ctx) decodedOperations := []Operation{} diff --git a/core/xchain/server/server.go b/core/xchain/server/server.go index b9ea33e9e..c1c2c279f 100644 --- a/core/xchain/server/server.go +++ b/core/xchain/server/server.go @@ -517,7 +517,7 @@ func (x *xchain) getRuleData( roleId *big.Int, contractAddress common.Address, client crypto.BlockchainClient, -) (*base.IRuleEntitlementRuleData, error) { +) (*base.IRuleEntitlementBaseRuleData, error) { log := x.Log(ctx).With("function", "getRuleData", "req.txid", transactionId) gater, err := base.NewIEntitlementGated(contractAddress, client) if err != nil { diff --git a/core/xchain/server/server_test.go b/core/xchain/server/server_test.go index 51dc22247..79bacce7f 100644 --- a/core/xchain/server/server_test.go +++ b/core/xchain/server/server_test.go @@ -346,15 +346,15 @@ func (st *serviceTester) linkWalletToRootWallet( st.require.Equal(uint64(1), receipt.Status) } -func erc721Check(chainId uint64, contractAddress common.Address, threshold uint64) base.IRuleEntitlementRuleData { - return base.IRuleEntitlementRuleData{ - Operations: []base.IRuleEntitlementOperation{ +func erc721Check(chainId uint64, contractAddress common.Address, threshold uint64) base.IRuleEntitlementBaseRuleData { + return base.IRuleEntitlementBaseRuleData{ + Operations: []base.IRuleEntitlementBaseOperation{ { OpType: uint8(entitlement.CHECK), Index: 0, }, }, - CheckOperations: []base.IRuleEntitlementCheckOperation{ + CheckOperations: []base.IRuleEntitlementBaseCheckOperation{ { OpType: uint8(entitlement.ERC721), ChainId: new(big.Int).SetUint64(chainId), @@ -365,15 +365,15 @@ func erc721Check(chainId uint64, contractAddress common.Address, threshold uint6 } } -func erc20Check(chainId uint64, contractAddress common.Address, threshold uint64) base.IRuleEntitlementRuleData { - return base.IRuleEntitlementRuleData{ - Operations: []base.IRuleEntitlementOperation{ +func erc20Check(chainId uint64, contractAddress common.Address, threshold uint64) base.IRuleEntitlementBaseRuleData { + return base.IRuleEntitlementBaseRuleData{ + Operations: []base.IRuleEntitlementBaseOperation{ { OpType: uint8(entitlement.CHECK), Index: 0, }, }, - CheckOperations: []base.IRuleEntitlementCheckOperation{ + CheckOperations: []base.IRuleEntitlementBaseCheckOperation{ { OpType: uint8(entitlement.ERC20), ChainId: new(big.Int).SetUint64(chainId), @@ -385,15 +385,15 @@ func erc20Check(chainId uint64, contractAddress common.Address, threshold uint64 } } -func customEntitlementCheck(chainId uint64, contractAddress common.Address) base.IRuleEntitlementRuleData { - return base.IRuleEntitlementRuleData{ - Operations: []base.IRuleEntitlementOperation{ +func customEntitlementCheck(chainId uint64, contractAddress common.Address) base.IRuleEntitlementBaseRuleData { + return base.IRuleEntitlementBaseRuleData{ + Operations: []base.IRuleEntitlementBaseOperation{ { OpType: uint8(entitlement.CHECK), Index: 0, }, }, - CheckOperations: []base.IRuleEntitlementCheckOperation{ + CheckOperations: []base.IRuleEntitlementBaseCheckOperation{ { OpType: uint8(entitlement.ISENTITLED), ChainId: new(big.Int).SetUint64(chainId), @@ -473,7 +473,7 @@ func expectEntitlementCheckResult( cs client_simulator.ClientSimulator, ctx context.Context, cfg *config.Config, - data base.IRuleEntitlementRuleData, + data base.IRuleEntitlementBaseRuleData, expected bool, ) { result, err := cs.EvaluateRuleData(ctx, cfg, data) diff --git a/packages/generated/dev/abis/Architect.abi.json b/packages/generated/dev/abis/Architect.abi.json index 0f7346921..4fe6ad5b4 100644 --- a/packages/generated/dev/abis/Architect.abi.json +++ b/packages/generated/dev/abis/Architect.abi.json @@ -116,17 +116,17 @@ { "name": "ruleData", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -138,12 +138,12 @@ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -165,12 +165,12 @@ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", diff --git a/packages/generated/dev/abis/Architect.abi.ts b/packages/generated/dev/abis/Architect.abi.ts index 841d24fe2..fe92de169 100644 --- a/packages/generated/dev/abis/Architect.abi.ts +++ b/packages/generated/dev/abis/Architect.abi.ts @@ -116,17 +116,17 @@ export default [ { "name": "ruleData", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -138,12 +138,12 @@ export default [ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -165,12 +165,12 @@ export default [ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", diff --git a/packages/generated/dev/abis/Architect.json b/packages/generated/dev/abis/Architect.json index afd2310d3..af526237f 100644 --- a/packages/generated/dev/abis/Architect.json +++ b/packages/generated/dev/abis/Architect.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"__Architect_init","inputs":[{"name":"ownerImplementation","type":"address","internalType":"contract ISpaceOwner"},{"name":"userEntitlementImplementation","type":"address","internalType":"contract IUserEntitlement"},{"name":"ruleEntitlementImplementation","type":"address","internalType":"contract IRuleEntitlement"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createSpace","inputs":[{"name":"spaceInfo","type":"tuple","internalType":"struct IArchitectBase.SpaceInfo","components":[{"name":"name","type":"string","internalType":"string"},{"name":"uri","type":"string","internalType":"string"},{"name":"membership","type":"tuple","internalType":"struct IArchitectBase.Membership","components":[{"name":"settings","type":"tuple","internalType":"struct IMembershipBase.Membership","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"maxSupply","type":"uint256","internalType":"uint256"},{"name":"duration","type":"uint64","internalType":"uint64"},{"name":"currency","type":"address","internalType":"address"},{"name":"feeRecipient","type":"address","internalType":"address"},{"name":"freeAllocation","type":"uint256","internalType":"uint256"},{"name":"pricingModule","type":"address","internalType":"address"}]},{"name":"requirements","type":"tuple","internalType":"struct IArchitectBase.MembershipRequirements","components":[{"name":"everyone","type":"bool","internalType":"bool"},{"name":"users","type":"address[]","internalType":"address[]"},{"name":"ruleData","type":"tuple","internalType":"struct IRuleEntitlement.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlement.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlement.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}]},{"name":"permissions","type":"string[]","internalType":"string[]"}]},{"name":"channel","type":"tuple","internalType":"struct IArchitectBase.ChannelInfo","components":[{"name":"metadata","type":"string","internalType":"string"}]},{"name":"shortDescription","type":"string","internalType":"string"},{"name":"longDescription","type":"string","internalType":"string"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getSpaceArchitectImplementations","inputs":[],"outputs":[{"name":"spaceToken","type":"address","internalType":"contract ISpaceOwner"},{"name":"userEntitlementImplementation","type":"address","internalType":"contract IUserEntitlement"},{"name":"ruleEntitlementImplementation","type":"address","internalType":"contract IRuleEntitlement"}],"stateMutability":"view"},{"type":"function","name":"getSpaceByTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTokenIdBySpace","inputs":[{"name":"space","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setSpaceArchitectImplementations","inputs":[{"name":"spaceToken","type":"address","internalType":"contract ISpaceOwner"},{"name":"userEntitlementImplementation","type":"address","internalType":"contract IUserEntitlement"},{"name":"ruleEntitlementImplementation","type":"address","internalType":"contract IRuleEntitlement"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"InterfaceAdded","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"InterfaceRemoved","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SpaceCreated","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"space","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"Architect__InvalidAddress","inputs":[]},{"type":"error","name":"Architect__InvalidNetworkId","inputs":[]},{"type":"error","name":"Architect__InvalidStringLength","inputs":[]},{"type":"error","name":"Architect__NotContract","inputs":[]},{"type":"error","name":"Factory__FailedDeployment","inputs":[]},{"type":"error","name":"Initializable_InInitializingState","inputs":[]},{"type":"error","name":"Initializable_NotInInitializingState","inputs":[]},{"type":"error","name":"Introspection_AlreadySupported","inputs":[]},{"type":"error","name":"Introspection_NotSupported","inputs":[]},{"type":"error","name":"Ownable__NotOwner","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Ownable__ZeroAddress","inputs":[]},{"type":"error","name":"Pausable__NotPaused","inputs":[]},{"type":"error","name":"Pausable__Paused","inputs":[]},{"type":"error","name":"ReentrancyGuard__ReentrantCall","inputs":[]},{"type":"error","name":"Validator__InvalidAddress","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001961001e565b6100c4565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff161561006a576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156100c157805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b613be880620000d46000396000f3fe60806040523480156200001157600080fd5b50600436106200006a5760003560e01c8063545efb2d146200006f578063673f0dd514620000a85780638bfc94b914620000d8578063c0bc679614620000f1578063dc1b9f231462000117578063ef009225146200012e575b600080fd5b6200007962000145565b604080516001600160a01b03948516815292841660208401529216918101919091526060015b60405180910390f35b620000bf620000b93660046200129d565b620001c2565b6040516001600160a01b0390911681526020016200009f565b620000ef620000e9366004620012cd565b62000200565b005b62000108620001023660046200132c565b62000263565b6040519081526020016200009f565b620000ef62000128366004620012cd565b620002a1565b620000bf6200013f36600462001b21565b620002ec565b6000806000620001b760008051602062003bc8833981519152547f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d01547f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d02546001600160a01b0392831693918316921690565b925092509250909192565b60008181527f06bd04a817647c31ee485c8a0baab96facd62dbfd4b475796bb17ca2c12f000260205260408120546001600160a01b03165b92915050565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b0316331462000251576040516365f4906560e01b815233600482015260240160405180910390fd5b6200025e838383620003db565b505050565b6001600160a01b03811660009081527f06bd04a817647c31ee485c8a0baab96facd62dbfd4b475796bb17ca2c12f00016020526040812054620001fa565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff166200025157604051630ef4733760e31b815260040160405180910390fd5b600060027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0054036200033157604051635db5c7cd60e11b815260040160405180910390fd5b6200035b60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b7fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff16156200039f576040516302ca8ced60e11b815260040160405180910390fd5b620003aa82620004ea565b9050620003d660017f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b919050565b826001600160a01b03163b60000362000407576040516302f3d00b60e01b815260040160405180910390fd5b816001600160a01b03163b60000362000433576040516302f3d00b60e01b815260040160405180910390fd5b806001600160a01b03163b6000036200045f576040516302f3d00b60e01b815260040160405180910390fd5b60008051602062003bc883398151915280546001600160a01b039485166001600160a01b0319918216179091557f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d018054938516938216939093179092557f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d028054919093169116179055565b60008051602062003bc8833981519152805460408051631d5e528f60e21b815290516000937f06bd04a817647c31ee485c8a0baab96facd62dbfd4b475796bb17ca2c12f000093909285926001600160a01b03909216916375794a3c916004808201926020929091908290030181865afa1580156200056d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000593919062001c58565b9050620005a581866040015162000899565b8354909450836000620005b88362001c72565b90915550506000818152600284016020908152604080832080546001600160a01b0319166001600160a01b03898116918217909255845260018701835292819020849055845488519289015160808a015160a08b01519351630efd6e3d60e21b81529290951694633bf5b8f494620006399490938b92919060040162001cee565b6020604051808303816000875af115801562000659573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200067f919062001c58565b5060018201546000906200069d906001600160a01b031686620008c3565b6002840154909150600090620006bd906001600160a01b031687620008c3565b60408051600280825260608201835292935060009290916020830190803683370190505090508281600081518110620006fa57620006fa62001d5e565b60200260200101906001600160a01b031690816001600160a01b031681525050818160018151811062000731576200073162001d5e565b6001600160a01b039283166020918202929092010152604051638bfc820f60e01b815290881690638bfc820f906200076e90849060040162001d74565b600060405180830381600087803b1580156200078957600080fd5b505af11580156200079e573d6000803e3d6000fd5b50505050620007b88784848b604001516020015162000980565b50604080890151805151910151600091620007d7918a91908762000db3565b9050620007ea88828b6060015162000f43565b8554604051632142170760e11b8152306004820152336024820152604481018790526001600160a01b03909116906342842e0e90606401600060405180830381600087803b1580156200083c57600080fd5b505af115801562000851573d6000803e3d6000fd5b50506040516001600160a01b038b16925087915033907fe50fc3942f8a2d7e5a7c8fb9488499eba5255b41e18bc3f1b4791402976d1d0b90600090a450505050505050919050565b6000806000620008aa858562001044565b91509150620008ba8282620011e1565b95945050505050565b60008060405180602001620008d89062001281565b601f1982820381018352601f9091011660408190526001600160a01b0385166024820152859060440160408051601f19818403018152918152602080830180516001600160e01b031663189acdbd60e31b17905290516200093c9392910162001dc3565b60408051601f19818403018152908290526200095c929160200162001de9565b604051602081830303815290604052905062000978816200121c565b949350505050565b604080516001808252818301909252600091829190816020015b60608152602001906001900390816200099a579050509050604051806040016040528060098152602001684a6f696e537061636560b81b81525081600081518110620009ea57620009ea62001d5e565b6020026020010181905250856001600160a01b0316638fcd793d6040518060400160405280600681526020016526b4b73a32b960d11b8152508360006001600160401b0381111562000a405762000a4062001353565b60405190808252806020026020018201604052801562000a8857816020015b60408051808201909152600081526060602082015281526020019060019003908162000a5f5790505b506040518463ffffffff1660e01b815260040162000aa99392919062001e45565b6020604051808303816000875af115801562000ac9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aef919062001c58565b83519092501562000bfd576040805160018082528183019092526000916020808301908036833701905050905060018160008151811062000b345762000b3462001d5e565b60200260200101906001600160a01b031690816001600160a01b031681525050866001600160a01b031663ba201ba88460405180604001604052808a6001600160a01b031681526020018560405160200162000b91919062001d74565b6040516020818303038152906040528152506040518363ffffffff1660e01b815260040162000bc292919062001f17565b600060405180830381600087803b15801562000bdd57600080fd5b505af115801562000bf2573d6000803e3d6000fd5b505050505062000daa565b6020830151511562000cf65760005b83602001515181101562000c4e5762000c458460200151828151811062000c375762000c3762001d5e565b602002602001015162001256565b60010162000c0c565b50856001600160a01b031663ba201ba8836040518060400160405280896001600160a01b03168152602001876020015160405160200162000c90919062001d74565b6040516020818303038152906040528152506040518363ffffffff1660e01b815260040162000cc192919062001f17565b600060405180830381600087803b15801562000cdc57600080fd5b505af115801562000cf1573d6000803e3d6000fd5b505050505b604083015151511562000daa57856001600160a01b031663ba201ba8836040518060400160405280886001600160a01b03168152602001876040015160405160200162000d4491906200202f565b6040516020818303038152906040528152506040518363ffffffff1660e01b815260040162000d7592919062001f17565b600060405180830381600087803b15801562000d9057600080fd5b505af115801562000da5573d6000803e3d6000fd5b505050505b50949350505050565b6040805160018082528183019092526000918291906020808301908036833701905050905060018160008151811062000df05762000df062001d5e565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b60408051808201909152600081526060602082015281526020019060019003908162000e20579050509050838160008151811062000e625762000e6262001d5e565b6020908102919091018101516001600160a01b0390921690915260405162000e8d9184910162001d74565b6040516020818303038152906040528160008151811062000eb25762000eb262001d5e565b6020908102919091018101510152604051638fcd793d60e01b81526001600160a01b03881690638fcd793d9062000ef29089908990869060040162001e45565b6020604051808303816000875af115801562000f12573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f38919062001c58565b979650505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811062000f7c5762000f7c62001d5e565b602090810291909101810191909152604051600160fd1b918101919091526bffffffffffffffffffffffff19606086901b16602182015260009060350160405160208183030381529060405262000fd390620020da565b835160405163921f717560e01b81529192506001600160a01b0387169163921f7175916200100991859190879060040162002102565b600060405180830381600087803b1580156200102457600080fd5b505af115801562001039573d6000803e3d6000fd5b505050505050505050565b606060008060008051602062003bc883398151915260408051336020820152908101879052426060820152909150608001604051602081830303815290604052805190602001209150604051806020016200109f906200128f565b601f19828203810183526040601f90920116818101825263dc9cc64560e01b8152306020828101919091528251808401845285546001600160a01b0390811682528183018b90528451610120810186528a515181528a518401519381019390935289518501519483019490945288516060908101519083015288516080908101516001600160401b031690830152885160a090810151851690830152885160c09081015133959293929183019116156200115f57895160c0015162001161565b335b6001600160a01b03168152602001896000015160e001518152602001896000015161010001516001600160a01b0316815250604051602001620011a8949392919062002163565b60408051601f1981840301815290829052620011c8929160200162001de9565b6040516020818303038152906040529250509250929050565b60008260200183518381836000f59250506001600160a01b0382169050620001fa5760405163ef35ca1960e01b815260040160405180910390fd5b600081602001825180826000f09250506001600160a01b0382169050620003d65760405163ef35ca1960e01b815260040160405180910390fd5b6001600160a01b0381166200127e576040516302e47d1560e41b815260040160405180910390fd5b50565b6103d4806200225f83390190565b611595806200263383390190565b600060208284031215620012b057600080fd5b5035919050565b6001600160a01b03811681146200127e57600080fd5b600080600060608486031215620012e357600080fd5b8335620012f081620012b7565b925060208401356200130281620012b7565b915060408401356200131481620012b7565b809150509250925092565b8035620003d681620012b7565b6000602082840312156200133f57600080fd5b81356200134c81620012b7565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156200138e576200138e62001353565b60405290565b604051606081016001600160401b03811182821017156200138e576200138e62001353565b604080519081016001600160401b03811182821017156200138e576200138e62001353565b60405161012081016001600160401b03811182821017156200138e576200138e62001353565b60405160c081016001600160401b03811182821017156200138e576200138e62001353565b604051601f8201601f191681016001600160401b038111828210171562001454576200145462001353565b604052919050565b600082601f8301126200146e57600080fd5b81356001600160401b038111156200148a576200148a62001353565b6200149f601f8201601f191660200162001429565b818152846020838601011115620014b557600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160401b0381168114620003d657600080fd5b60006001600160401b0382111562001506576200150662001353565b5060051b60200190565b600381106200127e57600080fd5b803560ff81168114620003d657600080fd5b600082601f8301126200154257600080fd5b813560206200155b6200155583620014ea565b62001429565b82815260079290921b840181019181810190868411156200157b57600080fd5b8286015b84811015620015ed57608081890312156200159a5760008081fd5b620015a462001369565b813560068110620015b55760008081fd5b81528185013585820152604080830135620015d081620012b7565b90820152606082810135908201528352918301916080016200157f565b509695505050505050565b600082601f8301126200160a57600080fd5b813560206200161d6200155583620014ea565b828152606092830285018201928282019190878511156200163d57600080fd5b8387015b85811015620016a65781818a0312156200165b5760008081fd5b6200166562001394565b8135620016728162001510565b8152620016818287016200151e565b868201526040620016948184016200151e565b90820152845292840192810162001641565b5090979650505050505050565b600060608284031215620016c657600080fd5b620016d062001394565b905081356001600160401b0380821115620016ea57600080fd5b818401915084601f830112620016ff57600080fd5b81356020620017126200155583620014ea565b82815260069290921b840181019181810190888411156200173257600080fd5b948201945b838610156200178f576040868a031215620017525760008081fd5b6200175c620013b9565b8635620017698162001510565b8152620017788785016200151e565b818501528252604095909501949082019062001737565b86525085810135935082841115620017a657600080fd5b620017b48785880162001530565b90850152506040840135915080821115620017ce57600080fd5b50620017dd84828501620015f8565b60408301525092915050565b600060608284031215620017fc57600080fd5b6200180662001394565b9050813580151581146200181957600080fd5b81526020828101356001600160401b03808211156200183757600080fd5b818501915085601f8301126200184c57600080fd5b81356200185d6200155582620014ea565b81815260059190911b830184019084810190888311156200187d57600080fd5b938501935b82851015620018a85784356200189881620012b7565b8252938501939085019062001882565b80868801525050506040850135925080831115620018c557600080fd5b5050620017dd84828501620016b3565b600082601f830112620018e757600080fd5b81356020620018fa6200155583620014ea565b82815260059290921b840181019181810190868411156200191a57600080fd5b8286015b84811015620015ed5780356001600160401b038111156200193f5760008081fd5b6200194f8986838b01016200145c565b8452509183019183016200191e565b6000606082840312156200197157600080fd5b6200197b62001394565b905081356001600160401b03808211156200199557600080fd5b908301906101208286031215620019ab57600080fd5b620019b5620013de565b823582811115620019c557600080fd5b620019d3878286016200145c565b825250602083013582811115620019e957600080fd5b620019f7878286016200145c565b602083015250604083013560408201526060830135606082015262001a1f60808401620014d2565b608082015262001a3260a084016200131f565b60a082015262001a4560c084016200131f565b60c082015260e083013560e082015261010062001a648185016200131f565b908201528352602084013591508082111562001a7f57600080fd5b62001a8d85838601620017e9565b6020840152604084013591508082111562001aa757600080fd5b50620017dd84828501620018d5565b60006020828403121562001ac957600080fd5b604051602081016001600160401b03828210818311171562001aef5762001aef62001353565b81604052829350843591508082111562001b0857600080fd5b5062001b17858286016200145c565b8252505092915050565b60006020828403121562001b3457600080fd5b81356001600160401b038082111562001b4c57600080fd5b9083019060c0828603121562001b6157600080fd5b62001b6b62001404565b82358281111562001b7b57600080fd5b62001b89878286016200145c565b82525060208301358281111562001b9f57600080fd5b62001bad878286016200145c565b60208301525060408301358281111562001bc657600080fd5b62001bd4878286016200195e565b60408301525060608301358281111562001bed57600080fd5b62001bfb8782860162001ab6565b60608301525060808301358281111562001c1457600080fd5b62001c22878286016200145c565b60808301525060a08301358281111562001c3b57600080fd5b62001c49878286016200145c565b60a08301525095945050505050565b60006020828403121562001c6b57600080fd5b5051919050565b60006001820162001c9357634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b8381101562001cb757818101518382015260200162001c9d565b50506000910152565b6000815180845262001cda81602086016020860162001c9a565b601f01601f19169290920160200192915050565b60a08152600062001d0360a083018862001cc0565b828103602084015262001d17818862001cc0565b6001600160a01b03871660408501528381036060850152905062001d3c818662001cc0565b9050828103608084015262001d52818562001cc0565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101562001db75783516001600160a01b03168352928401929184019160010162001d90565b50909695505050505050565b6001600160a01b0383168152604060208201819052600090620009789083018462001cc0565b6000835162001dfd81846020880162001c9a565b83519083019062001e1381836020880162001c9a565b01949350505050565b60018060a01b038151168252600060208201516040602085015262000978604085018262001cc0565b60608152600062001e5a606083018662001cc0565b6020838203818501528186518084528284019150828160051b85010183890160005b8381101562001eae57601f1987840301855262001e9b83835162001cc0565b9486019492509085019060010162001e7c565b50508681036040880152875180825284820195509250600583901b81018401915083880160005b8481101562001f0757601f1983850301875262001ef484835162001e1c565b9686019693509085019060010162001ed5565b50919a9950505050505050505050565b82815260406020820152600062000978604083018462001e1c565b634e487b7160e01b600052602160045260246000fd5b600381106200127e576200127e62001f32565b60008151808452602080850194506020840160005b8381101562001fca57815180516006811062001f905762001f9062001f32565b885280840151848901526040808201516001600160a01b031690890152606090810151908801526080909601959082019060010162001f70565b509495945050505050565b60008151808452602080850194506020840160005b8381101562001fca5781518051620020028162001f48565b88528084015160ff908116858a015260409182015116908801526060909601959082019060010162001fea565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156200208f57835180516200206c8162001f48565b835285015160ff1685830152928401926001929092019160409091019062002054565b50838701519350601f19925082868203016040870152620020b1818562001f5b565b93505050604085015181858403016060860152620020d0838262001fd5565b9695505050505050565b80516020808301519190811015620020fc576000198160200360031b1b821691505b50919050565b83815260006020606060208401526200211f606084018662001cc0565b83810360408501528451808252602080870192019060005b81811015620021555783518352928401929184019160010162002137565b509098975050505050505050565b600060018060a01b03808716835263ffffffff60e01b8651166020840152806020870151166040840152808551166060840152506020840151608083015260c060a083015282516101208060c0850152620021c36101e085018362001cc0565b9150602085015160bf198584030160e0860152620021e2838262001cc0565b9250506040850151610100818187015260608701518387015260808701519250620022196101408701846001600160401b03169052565b60a08701516001600160a01b0390811661016088015260c0880151811661018088015260e08801516101a0880152908701519081166101c08701529150620015ed905056fe60806040526040516103d43803806103d483398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6074806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fd60806040523480156200001157600080fd5b506040516200159538038062001595833981016040819052620000349162000cec565b6200003e62000160565b620000a58380517f9c16cba5b9f2fcbd952b38bec34079e93cbe107475c15fc20705f4e704198a0080546020909301516001600160a01b03166001600160a01b031960e09390931c600160a01b02929092166001600160c01b031990931692909217179055565b81517fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60080546001600160a01b0319166001600160a01b0390921691909117905560208201517fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60155805160208201516200011f919062000174565b62000135818460200151620001cb60201b60201c565b6200014284600162000381565b6200014c620003a7565b620001566200047c565b5050505062000ff5565b620001726301ffc9a760e01b620004d1565b565b600080516020620015158339815191527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df02620001b1848262000e52565b5060038101620001c2838262000e52565b50600090555050565b6000805160206200153583398151915280546001600160a01b038381166001600160a01b0319928316179092556101008401517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608805491909316908216179091557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb604805490911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee17905560608201517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035560e08201517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb607819055600080516020620015758339815191529015620002e15760e0830151620002e190620005b1565b610100830151620002f2906200065f565b6040830151156200037c5760408301516200030d9062000731565b600881015460408085015190516391b7f5ed60e01b81526001600160a01b03909216916391b7f5ed91620003479160040190815260200190565b600060405180830381600087803b1580156200036257600080fd5b505af115801562000377573d6000803e3d6000fd5b505050505b505050565b620003a3828260405180602001604052806000815250620007dc60201b60201c565b5050565b60007f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00905060006000805160206200157583398151915260060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa15801562000437573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045d919062000f1e565b82546001600160a01b0319166001600160a01b03919091161790915550565b6200048e6380ac58cd60e01b620004d1565b620004a0635b5e139f60e01b620004d1565b620004b2638c65f84d60e01b620004d1565b620004c46307f5828d60e41b620004d1565b620001726322fa1fe560e21b5b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16151560011462000560576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff1916600117905562000579565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b600080516020620015358339815191525460408051632cbb9d1360e01b8152905160008051602062001575833981519152926001600160a01b031691632cbb9d139160048083019260209291908290030181865afa15801562000618573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200063e919062000f43565b821115620003a35760405163c3983b9160e01b815260040160405180910390fd5b6001600160a01b0381166200068757604051630e88bf4b60e01b815260040160405180910390fd5b60008051602062001535833981519152546001600160a01b03166040516346fc05eb60e11b81526001600160a01b0383811660048301529190911690638df80bd690602401602060405180830381865afa158015620006ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000710919062000f5d565b6200072e57604051630e88bf4b60e01b815260040160405180910390fd5b50565b60006200075460008051602062001535833981519152546001600160a01b031690565b6001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000792573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007b8919062000f43565b905080821015620003a357604051631a23d64760e11b815260040160405180910390fd5b620007e883836200086e565b6001600160a01b0383163b156200037c5760008051602062001515833981519152548281035b60018101906200082490600090879086620009a8565b62000842576040516368d2bf6b60e11b815260040160405180910390fd5b8181106200080e57816000805160206200151583398151915254146200086757600080fd5b5050505050565b60008051602062001515833981519152546000829003620008a25760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b17831790558284019083908390600080516020620015558339815191528180a4600183015b8181146200096f578083600060008051602062001555833981519152600080a460010162000946565b50816000036200099157604051622e076360e81b815260040160405180910390fd5b600080516020620015158339815191525550505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290620009df90339089908890889060040162000f81565b6020604051808303816000875af192505050801562000a1d575060408051601f3d908101601f1916820190925262000a1a9181019062000fd7565b60015b62000a7f573d80801562000a4e576040519150601f19603f3d011682016040523d82523d6000602084013e62000a53565b606091505b50805160000362000a77576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b80516001600160a01b038116811462000ab457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171562000af55762000af562000ab9565b60405290565b604080519081016001600160401b038111828210171562000af55762000af562000ab9565b80516001600160e01b03198116811462000ab457600080fd5b60005b8381101562000b5657818101518382015260200162000b3c565b50506000910152565b600082601f83011262000b7157600080fd5b81516001600160401b038082111562000b8e5762000b8e62000ab9565b604051601f8301601f19908116603f0116810190828211818310171562000bb95762000bb962000ab9565b8160405283815286602085880101111562000bd357600080fd5b62000be684602083016020890162000b39565b9695505050505050565b80516001600160401b038116811462000ab457600080fd5b6000610120828403121562000c1c57600080fd5b62000c2662000acf565b82519091506001600160401b038082111562000c4157600080fd5b62000c4f8583860162000b5f565b8352602084015191508082111562000c6657600080fd5b5062000c758482850162000b5f565b602083015250604082015160408201526060820151606082015262000c9d6080830162000bf0565b608082015262000cb060a0830162000a9c565b60a082015262000cc360c0830162000a9c565b60c082015260e082015160e082015261010062000ce281840162000a9c565b9082015292915050565b60008060008084860360c081121562000d0457600080fd5b62000d0f8662000a9c565b94506040601f198201121562000d2457600080fd5b62000d2e62000afb565b62000d3c6020880162000b20565b815262000d4c6040880162000a9c565b602082015293506040605f198201121562000d6657600080fd5b5062000d7162000afb565b62000d7f6060870162000a9c565b81526080860151602082015260a08601519092506001600160401b0381111562000da857600080fd5b62000db68782880162000c08565b91505092959194509250565b600181811c9082168062000dd757607f821691505b60208210810362000df857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200037c576000816000526020600020601f850160051c8101602086101562000e295750805b601f850160051c820191505b8181101562000e4a5782815560010162000e35565b505050505050565b81516001600160401b0381111562000e6e5762000e6e62000ab9565b62000e868162000e7f845462000dc2565b8462000dfe565b602080601f83116001811462000ebe576000841562000ea55750858301515b600019600386901b1c1916600185901b17855562000e4a565b600085815260208120601f198616915b8281101562000eef5788860151825594840194600190910190840162000ece565b508582101562000f0e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000f3157600080fd5b62000f3c8262000a9c565b9392505050565b60006020828403121562000f5657600080fd5b5051919050565b60006020828403121562000f7057600080fd5b8151801515811462000f3c57600080fd5b600060018060a01b03808716835280861660208401525083604083015260806060830152825180608084015262000fc08160a085016020870162000b39565b601f01601f19169190910160a00195945050505050565b60006020828403121562000fea57600080fd5b62000f3c8262000b20565b61051080620010056000396000f3fe6080604052600436106100225760003560e01c8063ac9650d81461003357610029565b3661002957005b610031610069565b005b34801561003f57600080fd5b5061005361004e366004610327565b6100c4565b60405161006091906103c0565b60405180910390f35b60006100736101e1565b9050806001600160a01b03163b6000036100a0576040516321f27f0d60e21b815260040160405180910390fd5b3660008037600080366000845af43d6000803e8080156100bf573d6000f35b3d6000fd5b6060818067ffffffffffffffff8111156100e0576100e061043a565b60405190808252806020026020018201604052801561011357816020015b60608152602001906001900390816100fe5790505b50915060005b818110156101d9576000803087878581811061013757610137610450565b90506020028101906101499190610466565b6040516101579291906104b4565b600060405180830381855af49150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b509150915081156101c557808584815181106101b5576101b5610450565b60200260200101819052506101cf565b3d6000803e3d6000fd5b5050600101610119565b505092915050565b7f9c16cba5b9f2fcbd952b38bec34079e93cbe107475c15fc20705f4e704198a0054600090600160a01b900460e01b81806102437f9c16cba5b9f2fcbd952b38bec34079e93cbe107475c15fc20705f4e704198a00546001600160a01b031690565b6040516001600160e01b03196000351660248201526001600160a01b039190911690849060440160408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516102a891906104c4565b600060405180830381855afa9150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091508161030b5760405163391aa44560e01b815260040160405180910390fd5b8080602001905181019061031f91906104e0565b935050505090565b6000806020838503121561033a57600080fd5b823567ffffffffffffffff8082111561035257600080fd5b818501915085601f83011261036657600080fd5b81358181111561037557600080fd5b8660208260051b850101111561038a57600080fd5b60209290920196919550909350505050565b60005b838110156103b757818101518382015260200161039f565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561042d57878503603f190184528151805180875261040e818989018a850161039c565b601f01601f1916959095018601945092850192908501906001016103e7565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261047d57600080fd5b83018035915067ffffffffffffffff82111561049857600080fd5b6020019150368190038213156104ad57600080fd5b9250929050565b8183823760009101908152919050565b600082516104d681846020870161039c565b9190910192915050565b6000602082840312156104f257600080fd5b81516001600160a01b038116811461050957600080fd5b9392505050566569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00c21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d00","sourceMap":"823:1802:151:-:0;;;;;;;;;;;;-1:-1:-1;378:22:69;:20;:22::i;:::-;823:1802:151;;1653:314:84;296:66:85;1779:14:84;;;;;;;1775:62;;;1802:35;;-1:-1:-1;;;1802:35:84;;;;;;;;;;;1775:62;1848:9;;1860:16;1848:9;;;:28;1844:119;;;1886:28;;-1:-1:-1;;1886:28:84;1898:16;1886:28;;;;;1927:29;;158:42:404;;;1927:29:84;;146:2:404;131:18;1927:29:84;;;;;;;1844:119;1694:273;1653:314::o;14:192:404:-;823:1802:151;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b50600436106200006a5760003560e01c8063545efb2d146200006f578063673f0dd514620000a85780638bfc94b914620000d8578063c0bc679614620000f1578063dc1b9f231462000117578063ef009225146200012e575b600080fd5b6200007962000145565b604080516001600160a01b03948516815292841660208401529216918101919091526060015b60405180910390f35b620000bf620000b93660046200129d565b620001c2565b6040516001600160a01b0390911681526020016200009f565b620000ef620000e9366004620012cd565b62000200565b005b62000108620001023660046200132c565b62000263565b6040519081526020016200009f565b620000ef62000128366004620012cd565b620002a1565b620000bf6200013f36600462001b21565b620002ec565b6000806000620001b760008051602062003bc8833981519152547f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d01547f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d02546001600160a01b0392831693918316921690565b925092509250909192565b60008181527f06bd04a817647c31ee485c8a0baab96facd62dbfd4b475796bb17ca2c12f000260205260408120546001600160a01b03165b92915050565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b0316331462000251576040516365f4906560e01b815233600482015260240160405180910390fd5b6200025e838383620003db565b505050565b6001600160a01b03811660009081527f06bd04a817647c31ee485c8a0baab96facd62dbfd4b475796bb17ca2c12f00016020526040812054620001fa565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff166200025157604051630ef4733760e31b815260040160405180910390fd5b600060027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0054036200033157604051635db5c7cd60e11b815260040160405180910390fd5b6200035b60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b7fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff16156200039f576040516302ca8ced60e11b815260040160405180910390fd5b620003aa82620004ea565b9050620003d660017f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b919050565b826001600160a01b03163b60000362000407576040516302f3d00b60e01b815260040160405180910390fd5b816001600160a01b03163b60000362000433576040516302f3d00b60e01b815260040160405180910390fd5b806001600160a01b03163b6000036200045f576040516302f3d00b60e01b815260040160405180910390fd5b60008051602062003bc883398151915280546001600160a01b039485166001600160a01b0319918216179091557f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d018054938516938216939093179092557f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d028054919093169116179055565b60008051602062003bc8833981519152805460408051631d5e528f60e21b815290516000937f06bd04a817647c31ee485c8a0baab96facd62dbfd4b475796bb17ca2c12f000093909285926001600160a01b03909216916375794a3c916004808201926020929091908290030181865afa1580156200056d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000593919062001c58565b9050620005a581866040015162000899565b8354909450836000620005b88362001c72565b90915550506000818152600284016020908152604080832080546001600160a01b0319166001600160a01b03898116918217909255845260018701835292819020849055845488519289015160808a015160a08b01519351630efd6e3d60e21b81529290951694633bf5b8f494620006399490938b92919060040162001cee565b6020604051808303816000875af115801562000659573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200067f919062001c58565b5060018201546000906200069d906001600160a01b031686620008c3565b6002840154909150600090620006bd906001600160a01b031687620008c3565b60408051600280825260608201835292935060009290916020830190803683370190505090508281600081518110620006fa57620006fa62001d5e565b60200260200101906001600160a01b031690816001600160a01b031681525050818160018151811062000731576200073162001d5e565b6001600160a01b039283166020918202929092010152604051638bfc820f60e01b815290881690638bfc820f906200076e90849060040162001d74565b600060405180830381600087803b1580156200078957600080fd5b505af11580156200079e573d6000803e3d6000fd5b50505050620007b88784848b604001516020015162000980565b50604080890151805151910151600091620007d7918a91908762000db3565b9050620007ea88828b6060015162000f43565b8554604051632142170760e11b8152306004820152336024820152604481018790526001600160a01b03909116906342842e0e90606401600060405180830381600087803b1580156200083c57600080fd5b505af115801562000851573d6000803e3d6000fd5b50506040516001600160a01b038b16925087915033907fe50fc3942f8a2d7e5a7c8fb9488499eba5255b41e18bc3f1b4791402976d1d0b90600090a450505050505050919050565b6000806000620008aa858562001044565b91509150620008ba8282620011e1565b95945050505050565b60008060405180602001620008d89062001281565b601f1982820381018352601f9091011660408190526001600160a01b0385166024820152859060440160408051601f19818403018152918152602080830180516001600160e01b031663189acdbd60e31b17905290516200093c9392910162001dc3565b60408051601f19818403018152908290526200095c929160200162001de9565b604051602081830303815290604052905062000978816200121c565b949350505050565b604080516001808252818301909252600091829190816020015b60608152602001906001900390816200099a579050509050604051806040016040528060098152602001684a6f696e537061636560b81b81525081600081518110620009ea57620009ea62001d5e565b6020026020010181905250856001600160a01b0316638fcd793d6040518060400160405280600681526020016526b4b73a32b960d11b8152508360006001600160401b0381111562000a405762000a4062001353565b60405190808252806020026020018201604052801562000a8857816020015b60408051808201909152600081526060602082015281526020019060019003908162000a5f5790505b506040518463ffffffff1660e01b815260040162000aa99392919062001e45565b6020604051808303816000875af115801562000ac9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aef919062001c58565b83519092501562000bfd576040805160018082528183019092526000916020808301908036833701905050905060018160008151811062000b345762000b3462001d5e565b60200260200101906001600160a01b031690816001600160a01b031681525050866001600160a01b031663ba201ba88460405180604001604052808a6001600160a01b031681526020018560405160200162000b91919062001d74565b6040516020818303038152906040528152506040518363ffffffff1660e01b815260040162000bc292919062001f17565b600060405180830381600087803b15801562000bdd57600080fd5b505af115801562000bf2573d6000803e3d6000fd5b505050505062000daa565b6020830151511562000cf65760005b83602001515181101562000c4e5762000c458460200151828151811062000c375762000c3762001d5e565b602002602001015162001256565b60010162000c0c565b50856001600160a01b031663ba201ba8836040518060400160405280896001600160a01b03168152602001876020015160405160200162000c90919062001d74565b6040516020818303038152906040528152506040518363ffffffff1660e01b815260040162000cc192919062001f17565b600060405180830381600087803b15801562000cdc57600080fd5b505af115801562000cf1573d6000803e3d6000fd5b505050505b604083015151511562000daa57856001600160a01b031663ba201ba8836040518060400160405280886001600160a01b03168152602001876040015160405160200162000d4491906200202f565b6040516020818303038152906040528152506040518363ffffffff1660e01b815260040162000d7592919062001f17565b600060405180830381600087803b15801562000d9057600080fd5b505af115801562000da5573d6000803e3d6000fd5b505050505b50949350505050565b6040805160018082528183019092526000918291906020808301908036833701905050905060018160008151811062000df05762000df062001d5e565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b60408051808201909152600081526060602082015281526020019060019003908162000e20579050509050838160008151811062000e625762000e6262001d5e565b6020908102919091018101516001600160a01b0390921690915260405162000e8d9184910162001d74565b6040516020818303038152906040528160008151811062000eb25762000eb262001d5e565b6020908102919091018101510152604051638fcd793d60e01b81526001600160a01b03881690638fcd793d9062000ef29089908990869060040162001e45565b6020604051808303816000875af115801562000f12573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f38919062001c58565b979650505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811062000f7c5762000f7c62001d5e565b602090810291909101810191909152604051600160fd1b918101919091526bffffffffffffffffffffffff19606086901b16602182015260009060350160405160208183030381529060405262000fd390620020da565b835160405163921f717560e01b81529192506001600160a01b0387169163921f7175916200100991859190879060040162002102565b600060405180830381600087803b1580156200102457600080fd5b505af115801562001039573d6000803e3d6000fd5b505050505050505050565b606060008060008051602062003bc883398151915260408051336020820152908101879052426060820152909150608001604051602081830303815290604052805190602001209150604051806020016200109f906200128f565b601f19828203810183526040601f90920116818101825263dc9cc64560e01b8152306020828101919091528251808401845285546001600160a01b0390811682528183018b90528451610120810186528a515181528a518401519381019390935289518501519483019490945288516060908101519083015288516080908101516001600160401b031690830152885160a090810151851690830152885160c09081015133959293929183019116156200115f57895160c0015162001161565b335b6001600160a01b03168152602001896000015160e001518152602001896000015161010001516001600160a01b0316815250604051602001620011a8949392919062002163565b60408051601f1981840301815290829052620011c8929160200162001de9565b6040516020818303038152906040529250509250929050565b60008260200183518381836000f59250506001600160a01b0382169050620001fa5760405163ef35ca1960e01b815260040160405180910390fd5b600081602001825180826000f09250506001600160a01b0382169050620003d65760405163ef35ca1960e01b815260040160405180910390fd5b6001600160a01b0381166200127e576040516302e47d1560e41b815260040160405180910390fd5b50565b6103d4806200225f83390190565b611595806200263383390190565b600060208284031215620012b057600080fd5b5035919050565b6001600160a01b03811681146200127e57600080fd5b600080600060608486031215620012e357600080fd5b8335620012f081620012b7565b925060208401356200130281620012b7565b915060408401356200131481620012b7565b809150509250925092565b8035620003d681620012b7565b6000602082840312156200133f57600080fd5b81356200134c81620012b7565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156200138e576200138e62001353565b60405290565b604051606081016001600160401b03811182821017156200138e576200138e62001353565b604080519081016001600160401b03811182821017156200138e576200138e62001353565b60405161012081016001600160401b03811182821017156200138e576200138e62001353565b60405160c081016001600160401b03811182821017156200138e576200138e62001353565b604051601f8201601f191681016001600160401b038111828210171562001454576200145462001353565b604052919050565b600082601f8301126200146e57600080fd5b81356001600160401b038111156200148a576200148a62001353565b6200149f601f8201601f191660200162001429565b818152846020838601011115620014b557600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160401b0381168114620003d657600080fd5b60006001600160401b0382111562001506576200150662001353565b5060051b60200190565b600381106200127e57600080fd5b803560ff81168114620003d657600080fd5b600082601f8301126200154257600080fd5b813560206200155b6200155583620014ea565b62001429565b82815260079290921b840181019181810190868411156200157b57600080fd5b8286015b84811015620015ed57608081890312156200159a5760008081fd5b620015a462001369565b813560068110620015b55760008081fd5b81528185013585820152604080830135620015d081620012b7565b90820152606082810135908201528352918301916080016200157f565b509695505050505050565b600082601f8301126200160a57600080fd5b813560206200161d6200155583620014ea565b828152606092830285018201928282019190878511156200163d57600080fd5b8387015b85811015620016a65781818a0312156200165b5760008081fd5b6200166562001394565b8135620016728162001510565b8152620016818287016200151e565b868201526040620016948184016200151e565b90820152845292840192810162001641565b5090979650505050505050565b600060608284031215620016c657600080fd5b620016d062001394565b905081356001600160401b0380821115620016ea57600080fd5b818401915084601f830112620016ff57600080fd5b81356020620017126200155583620014ea565b82815260069290921b840181019181810190888411156200173257600080fd5b948201945b838610156200178f576040868a031215620017525760008081fd5b6200175c620013b9565b8635620017698162001510565b8152620017788785016200151e565b818501528252604095909501949082019062001737565b86525085810135935082841115620017a657600080fd5b620017b48785880162001530565b90850152506040840135915080821115620017ce57600080fd5b50620017dd84828501620015f8565b60408301525092915050565b600060608284031215620017fc57600080fd5b6200180662001394565b9050813580151581146200181957600080fd5b81526020828101356001600160401b03808211156200183757600080fd5b818501915085601f8301126200184c57600080fd5b81356200185d6200155582620014ea565b81815260059190911b830184019084810190888311156200187d57600080fd5b938501935b82851015620018a85784356200189881620012b7565b8252938501939085019062001882565b80868801525050506040850135925080831115620018c557600080fd5b5050620017dd84828501620016b3565b600082601f830112620018e757600080fd5b81356020620018fa6200155583620014ea565b82815260059290921b840181019181810190868411156200191a57600080fd5b8286015b84811015620015ed5780356001600160401b038111156200193f5760008081fd5b6200194f8986838b01016200145c565b8452509183019183016200191e565b6000606082840312156200197157600080fd5b6200197b62001394565b905081356001600160401b03808211156200199557600080fd5b908301906101208286031215620019ab57600080fd5b620019b5620013de565b823582811115620019c557600080fd5b620019d3878286016200145c565b825250602083013582811115620019e957600080fd5b620019f7878286016200145c565b602083015250604083013560408201526060830135606082015262001a1f60808401620014d2565b608082015262001a3260a084016200131f565b60a082015262001a4560c084016200131f565b60c082015260e083013560e082015261010062001a648185016200131f565b908201528352602084013591508082111562001a7f57600080fd5b62001a8d85838601620017e9565b6020840152604084013591508082111562001aa757600080fd5b50620017dd84828501620018d5565b60006020828403121562001ac957600080fd5b604051602081016001600160401b03828210818311171562001aef5762001aef62001353565b81604052829350843591508082111562001b0857600080fd5b5062001b17858286016200145c565b8252505092915050565b60006020828403121562001b3457600080fd5b81356001600160401b038082111562001b4c57600080fd5b9083019060c0828603121562001b6157600080fd5b62001b6b62001404565b82358281111562001b7b57600080fd5b62001b89878286016200145c565b82525060208301358281111562001b9f57600080fd5b62001bad878286016200145c565b60208301525060408301358281111562001bc657600080fd5b62001bd4878286016200195e565b60408301525060608301358281111562001bed57600080fd5b62001bfb8782860162001ab6565b60608301525060808301358281111562001c1457600080fd5b62001c22878286016200145c565b60808301525060a08301358281111562001c3b57600080fd5b62001c49878286016200145c565b60a08301525095945050505050565b60006020828403121562001c6b57600080fd5b5051919050565b60006001820162001c9357634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b8381101562001cb757818101518382015260200162001c9d565b50506000910152565b6000815180845262001cda81602086016020860162001c9a565b601f01601f19169290920160200192915050565b60a08152600062001d0360a083018862001cc0565b828103602084015262001d17818862001cc0565b6001600160a01b03871660408501528381036060850152905062001d3c818662001cc0565b9050828103608084015262001d52818562001cc0565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101562001db75783516001600160a01b03168352928401929184019160010162001d90565b50909695505050505050565b6001600160a01b0383168152604060208201819052600090620009789083018462001cc0565b6000835162001dfd81846020880162001c9a565b83519083019062001e1381836020880162001c9a565b01949350505050565b60018060a01b038151168252600060208201516040602085015262000978604085018262001cc0565b60608152600062001e5a606083018662001cc0565b6020838203818501528186518084528284019150828160051b85010183890160005b8381101562001eae57601f1987840301855262001e9b83835162001cc0565b9486019492509085019060010162001e7c565b50508681036040880152875180825284820195509250600583901b81018401915083880160005b8481101562001f0757601f1983850301875262001ef484835162001e1c565b9686019693509085019060010162001ed5565b50919a9950505050505050505050565b82815260406020820152600062000978604083018462001e1c565b634e487b7160e01b600052602160045260246000fd5b600381106200127e576200127e62001f32565b60008151808452602080850194506020840160005b8381101562001fca57815180516006811062001f905762001f9062001f32565b885280840151848901526040808201516001600160a01b031690890152606090810151908801526080909601959082019060010162001f70565b509495945050505050565b60008151808452602080850194506020840160005b8381101562001fca5781518051620020028162001f48565b88528084015160ff908116858a015260409182015116908801526060909601959082019060010162001fea565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156200208f57835180516200206c8162001f48565b835285015160ff1685830152928401926001929092019160409091019062002054565b50838701519350601f19925082868203016040870152620020b1818562001f5b565b93505050604085015181858403016060860152620020d0838262001fd5565b9695505050505050565b80516020808301519190811015620020fc576000198160200360031b1b821691505b50919050565b83815260006020606060208401526200211f606084018662001cc0565b83810360408501528451808252602080870192019060005b81811015620021555783518352928401929184019160010162002137565b509098975050505050505050565b600060018060a01b03808716835263ffffffff60e01b8651166020840152806020870151166040840152808551166060840152506020840151608083015260c060a083015282516101208060c0850152620021c36101e085018362001cc0565b9150602085015160bf198584030160e0860152620021e2838262001cc0565b9250506040850151610100818187015260608701518387015260808701519250620022196101408701846001600160401b03169052565b60a08701516001600160a01b0390811661016088015260c0880151811661018088015260e08801516101a0880152908701519081166101c08701529150620015ed905056fe60806040526040516103d43803806103d483398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6074806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fd60806040523480156200001157600080fd5b506040516200159538038062001595833981016040819052620000349162000cec565b6200003e62000160565b620000a58380517f9c16cba5b9f2fcbd952b38bec34079e93cbe107475c15fc20705f4e704198a0080546020909301516001600160a01b03166001600160a01b031960e09390931c600160a01b02929092166001600160c01b031990931692909217179055565b81517fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60080546001600160a01b0319166001600160a01b0390921691909117905560208201517fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60155805160208201516200011f919062000174565b62000135818460200151620001cb60201b60201c565b6200014284600162000381565b6200014c620003a7565b620001566200047c565b5050505062000ff5565b620001726301ffc9a760e01b620004d1565b565b600080516020620015158339815191527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df02620001b1848262000e52565b5060038101620001c2838262000e52565b50600090555050565b6000805160206200153583398151915280546001600160a01b038381166001600160a01b0319928316179092556101008401517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608805491909316908216179091557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb604805490911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee17905560608201517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035560e08201517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb607819055600080516020620015758339815191529015620002e15760e0830151620002e190620005b1565b610100830151620002f2906200065f565b6040830151156200037c5760408301516200030d9062000731565b600881015460408085015190516391b7f5ed60e01b81526001600160a01b03909216916391b7f5ed91620003479160040190815260200190565b600060405180830381600087803b1580156200036257600080fd5b505af115801562000377573d6000803e3d6000fd5b505050505b505050565b620003a3828260405180602001604052806000815250620007dc60201b60201c565b5050565b60007f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00905060006000805160206200157583398151915260060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa15801562000437573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045d919062000f1e565b82546001600160a01b0319166001600160a01b03919091161790915550565b6200048e6380ac58cd60e01b620004d1565b620004a0635b5e139f60e01b620004d1565b620004b2638c65f84d60e01b620004d1565b620004c46307f5828d60e41b620004d1565b620001726322fa1fe560e21b5b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16151560011462000560576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff1916600117905562000579565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b600080516020620015358339815191525460408051632cbb9d1360e01b8152905160008051602062001575833981519152926001600160a01b031691632cbb9d139160048083019260209291908290030181865afa15801562000618573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200063e919062000f43565b821115620003a35760405163c3983b9160e01b815260040160405180910390fd5b6001600160a01b0381166200068757604051630e88bf4b60e01b815260040160405180910390fd5b60008051602062001535833981519152546001600160a01b03166040516346fc05eb60e11b81526001600160a01b0383811660048301529190911690638df80bd690602401602060405180830381865afa158015620006ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000710919062000f5d565b6200072e57604051630e88bf4b60e01b815260040160405180910390fd5b50565b60006200075460008051602062001535833981519152546001600160a01b031690565b6001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000792573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007b8919062000f43565b905080821015620003a357604051631a23d64760e11b815260040160405180910390fd5b620007e883836200086e565b6001600160a01b0383163b156200037c5760008051602062001515833981519152548281035b60018101906200082490600090879086620009a8565b62000842576040516368d2bf6b60e11b815260040160405180910390fd5b8181106200080e57816000805160206200151583398151915254146200086757600080fd5b5050505050565b60008051602062001515833981519152546000829003620008a25760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b17831790558284019083908390600080516020620015558339815191528180a4600183015b8181146200096f578083600060008051602062001555833981519152600080a460010162000946565b50816000036200099157604051622e076360e81b815260040160405180910390fd5b600080516020620015158339815191525550505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290620009df90339089908890889060040162000f81565b6020604051808303816000875af192505050801562000a1d575060408051601f3d908101601f1916820190925262000a1a9181019062000fd7565b60015b62000a7f573d80801562000a4e576040519150601f19603f3d011682016040523d82523d6000602084013e62000a53565b606091505b50805160000362000a77576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b80516001600160a01b038116811462000ab457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171562000af55762000af562000ab9565b60405290565b604080519081016001600160401b038111828210171562000af55762000af562000ab9565b80516001600160e01b03198116811462000ab457600080fd5b60005b8381101562000b5657818101518382015260200162000b3c565b50506000910152565b600082601f83011262000b7157600080fd5b81516001600160401b038082111562000b8e5762000b8e62000ab9565b604051601f8301601f19908116603f0116810190828211818310171562000bb95762000bb962000ab9565b8160405283815286602085880101111562000bd357600080fd5b62000be684602083016020890162000b39565b9695505050505050565b80516001600160401b038116811462000ab457600080fd5b6000610120828403121562000c1c57600080fd5b62000c2662000acf565b82519091506001600160401b038082111562000c4157600080fd5b62000c4f8583860162000b5f565b8352602084015191508082111562000c6657600080fd5b5062000c758482850162000b5f565b602083015250604082015160408201526060820151606082015262000c9d6080830162000bf0565b608082015262000cb060a0830162000a9c565b60a082015262000cc360c0830162000a9c565b60c082015260e082015160e082015261010062000ce281840162000a9c565b9082015292915050565b60008060008084860360c081121562000d0457600080fd5b62000d0f8662000a9c565b94506040601f198201121562000d2457600080fd5b62000d2e62000afb565b62000d3c6020880162000b20565b815262000d4c6040880162000a9c565b602082015293506040605f198201121562000d6657600080fd5b5062000d7162000afb565b62000d7f6060870162000a9c565b81526080860151602082015260a08601519092506001600160401b0381111562000da857600080fd5b62000db68782880162000c08565b91505092959194509250565b600181811c9082168062000dd757607f821691505b60208210810362000df857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200037c576000816000526020600020601f850160051c8101602086101562000e295750805b601f850160051c820191505b8181101562000e4a5782815560010162000e35565b505050505050565b81516001600160401b0381111562000e6e5762000e6e62000ab9565b62000e868162000e7f845462000dc2565b8462000dfe565b602080601f83116001811462000ebe576000841562000ea55750858301515b600019600386901b1c1916600185901b17855562000e4a565b600085815260208120601f198616915b8281101562000eef5788860151825594840194600190910190840162000ece565b508582101562000f0e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000f3157600080fd5b62000f3c8262000a9c565b9392505050565b60006020828403121562000f5657600080fd5b5051919050565b60006020828403121562000f7057600080fd5b8151801515811462000f3c57600080fd5b600060018060a01b03808716835280861660208401525083604083015260806060830152825180608084015262000fc08160a085016020870162000b39565b601f01601f19169190910160a00195945050505050565b60006020828403121562000fea57600080fd5b62000f3c8262000b20565b61051080620010056000396000f3fe6080604052600436106100225760003560e01c8063ac9650d81461003357610029565b3661002957005b610031610069565b005b34801561003f57600080fd5b5061005361004e366004610327565b6100c4565b60405161006091906103c0565b60405180910390f35b60006100736101e1565b9050806001600160a01b03163b6000036100a0576040516321f27f0d60e21b815260040160405180910390fd5b3660008037600080366000845af43d6000803e8080156100bf573d6000f35b3d6000fd5b6060818067ffffffffffffffff8111156100e0576100e061043a565b60405190808252806020026020018201604052801561011357816020015b60608152602001906001900390816100fe5790505b50915060005b818110156101d9576000803087878581811061013757610137610450565b90506020028101906101499190610466565b6040516101579291906104b4565b600060405180830381855af49150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b509150915081156101c557808584815181106101b5576101b5610450565b60200260200101819052506101cf565b3d6000803e3d6000fd5b5050600101610119565b505092915050565b7f9c16cba5b9f2fcbd952b38bec34079e93cbe107475c15fc20705f4e704198a0054600090600160a01b900460e01b81806102437f9c16cba5b9f2fcbd952b38bec34079e93cbe107475c15fc20705f4e704198a00546001600160a01b031690565b6040516001600160e01b03196000351660248201526001600160a01b039190911690849060440160408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516102a891906104c4565b600060405180830381855afa9150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091508161030b5760405163391aa44560e01b815260040160405180910390fd5b8080602001905181019061031f91906104e0565b935050505090565b6000806020838503121561033a57600080fd5b823567ffffffffffffffff8082111561035257600080fd5b818501915085601f83011261036657600080fd5b81358181111561037557600080fd5b8660208260051b850101111561038a57600080fd5b60209290920196919550909350505050565b60005b838110156103b757818101518382015260200161039f565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561042d57878503603f190184528151805180875261040e818989018a850161039c565b601f01601f1916959095018601945092850192908501906001016103e7565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261047d57600080fd5b83018035915067ffffffffffffffff82111561049857600080fd5b6020019150368190038213156104ad57600080fd5b9250929050565b8183823760009101908152919050565b600082516104d681846020870161039c565b9190910192915050565b6000602082840312156104f257600080fd5b81516001600160a01b038116811461050957600080fd5b9392505050566569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00c21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d00","sourceMap":"823:1802:151:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2359:264;;;:::i;:::-;;;;-1:-1:-1;;;;;345:15:404;;;327:34;;397:15;;;392:2;377:18;;370:43;449:15;;429:18;;;422:43;;;;277:2;262:18;2359:264:151;;;;;;;;1604:121;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;934:32:404;;;916:51;;904:2;889:18;1604:121:151;770:203:404;2030:325:151;;;;;;:::i;:::-;;:::i;:::-;;1729:117;;;;;;:::i;:::-;;:::i;:::-;;;2336:25:404;;;2324:2;2309:18;1729:117:151;2190:177:404;938:334:151;;;;;;:::i;:::-;;:::i;1448:152::-;;;;;;:::i;:::-;;:::i;2359:264::-;2445:22;2475:46;2529;2597:21;-1:-1:-1;;;;;;;;;;;5974:13:152;5989:18;;6009;;-1:-1:-1;;;;;5974:13:152;;;;5989:18;;;;6009;;5669:364;2597:21:151;2590:28;;;;;;2359:264;;;:::o;1604:121::-;1671:7;2623:49:152;;;:40;:49;;;;;;-1:-1:-1;;;;;2623:49:152;1693:27:151;1686:34;1604:121;-1:-1:-1;;1604:121:151:o;2030:325::-;284:66:98;438:29:96;-1:-1:-1;;;;;438:29:96;279:10;:22;275:79;;318:29;;-1:-1:-1;;;318:29:96;;336:10;318:29;;;916:51:404;889:18;;318:29:96;;;;;;;275:79;2233:117:151::1;2260:10;2278:29;2315;2233:19;:117::i;:::-;2030:325:::0;;;:::o;1729:117::-;-1:-1:-1;;;;;2477:47:152;;1794:7:151;2477:47:152;;;:40;:47;;;;;;1816:25:151;2389:140:152;938:334:151;296:66:85;1263:42:84;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:84;;;;;;;;;;;1448:152:151;1550:7;408:1:113;295:66:114;508:38:113;:66;504:117;;589:32;;-1:-1:-1;;;589:32:113;;;;;;;;;;;504:117;627:22;408:1;295:66:114;825:65:113;770:125;627:22;286:66:110;519:31:108;;;286:55:::1;;;316:18;;-1:-1:-1::0;;;316:18:108::1;;;;;;;;;;;286:55;1572:23:151::2;1585:9;1572:12;:23::i;:::-;1565:30;;662:24:113::0;468:1;295:66:114;825:65:113;770:125;662:24;1448:152:151;;;:::o;5060:605:152:-;5224:10;-1:-1:-1;;;;;5216:31:152;;5251:1;5216:36;5212:73;;5261:24;;-1:-1:-1;;;5261:24:152;;;;;;;;;;;5212:73;5303:15;-1:-1:-1;;;;;5295:36:152;;5335:1;5295:41;5291:84;;5351:24;;-1:-1:-1;;;5351:24:152;;;;;;;;;;;5291:84;5393:15;-1:-1:-1;;;;;5385:36:152;;5425:1;5385:41;5381:84;;5441:24;;-1:-1:-1;;;5441:24:152;;;;;;;;;;;5381:84;-1:-1:-1;;;;;;;;;;;5550:26:152;;-1:-1:-1;;;;;5550:26:152;;;-1:-1:-1;;;;;;5550:26:152;;;;;;;5582:18;:36;;;;;;;;;;;;;;;5624:18;:36;;;;;;;;;;;5060:605::o;2681:2193::-;-1:-1:-1;;;;;;;;;;;2998:14:152;;:28;;;-1:-1:-1;;;2998:28:152;;;;2757:20;;274:66:153;;765::155;;2757:20:152;;-1:-1:-1;;;;;2998:14:152;;;;:26;;:28;;;;;;;;;;;;;;;:14;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2975:51;;3068:48;3081:12;3095:9;:20;;;3068:12;:48::i;:::-;3157:15;;3053:63;;-1:-1:-1;3157:2:152;:13;:15;;;:::i;:::-;;;;-1:-1:-1;;3203:31:152;;;;:17;;;:31;;;;;;;;:46;;-1:-1:-1;;;;;;3203:46:152;-1:-1:-1;;;;;3203:46:152;;;;;;;;;3255:31;;-1:-1:-1;3255:17:152;;:31;;;;;;:46;;;3355:14;;3387;;3409:13;;;;3450:26;;;;3484:25;;;;3355:160;;-1:-1:-1;;;3355:160:152;;:14;;;;;:24;;:160;;3387:14;;3203:46;;3450:26;3484:25;3355:160;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3631:19:152;;;;3553:32;;3612:53;;-1:-1:-1;;;;;3631:19:152;3652:12;3612:18;:53::i;:::-;3788:19;;;;3553:118;;-1:-1:-1;3710:32:152;;3769:53;;-1:-1:-1;;;;;3788:19:152;3809:12;3769:18;:53::i;:::-;3867:16;;;3881:1;3867:16;;;;;;;;3710:118;;-1:-1:-1;3835:29:152;;3867:16;;;;;;;;;;;;-1:-1:-1;3867:16:152;3835:48;;3915:15;3889:12;3902:1;3889:15;;;;;;;;:::i;:::-;;;;;;:42;-1:-1:-1;;;;;3889:42:152;;;-1:-1:-1;;;;;3889:42:152;;;;;3963:15;3937:12;3950:1;3937:15;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3937:42:152;;;:15;;;;;;;;;:42;4023:73;;-1:-1:-1;;;4023:73:152;;:59;;;;;;:73;;4083:12;;4023:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:137;4179:12;4199:15;4222;4245:9;:20;;;:33;;;4147:24;:137::i;:::-;-1:-1:-1;4427:20:152;;;;;:29;;:34;4469:32;;;4352:20;;4375:155;;4407:12;;4427:34;4509:15;4375:24;:155::i;:::-;4352:178;;4567:68;4589:12;4603;4617:9;:17;;;4567:21;:68::i;:::-;4689:14;;4672:115;;-1:-1:-1;;;4672:115:152;;4738:4;4672:115;;;18378:34:404;4751:10:152;18428:18:404;;;18421:43;18480:18;;;18473:34;;;-1:-1:-1;;;;;4689:14:152;;;;4672:50;;18313:18:404;;4672:115:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4817:52:152;;-1:-1:-1;;;;;4817:52:152;;;-1:-1:-1;4842:12:152;;-1:-1:-1;4830:10:152;;4817:52;;;;;2779:2095;;;;;;;2681:2193;;;:::o;9193:300::-;9297:13;9346:21;9369:12;9385:67;9416:12;9436:10;9385:23;:67::i;:::-;9345:107;;;;9465:23;9473:8;9483:4;9465:7;:23::i;:::-;9458:30;9193:300;-1:-1:-1;;;;;9193:300:152:o;9497:381::-;9603:7;9645:21;9693:31;;;;;;;;:::i;:::-;-1:-1:-1;;9693:31:152;;;;;;;;;;;;;;;;-1:-1:-1;;;;;934:32:404;;9773:55:152;;;916:51:404;9752:11:152;;889:18:404;;9773:55:152;;;-1:-1:-1;;9773:55:152;;;;;;;;;;;;;;;-1:-1:-1;;;;;9773:55:152;-1:-1:-1;;;9773:55:152;;;9732:104;;;;;9773:55;9732:104;;:::i;:::-;;;;-1:-1:-1;;9732:104:152;;;;;;;;;;9669:173;;;9732:104;9669:173;;:::i;:::-;;;;;;;;;;;;;9645:197;;9856:17;9864:8;9856:7;:17::i;:::-;9849:24;9497:381;-1:-1:-1;;;;9497:381:152:o;6815:1589::-;7077:15;;;7090:1;7077:15;;;;;;;;;7021:14;;;;7077:15;;;;;;;;;;;;;;;;;;;;;7043:49;;7119:21;;;;;;;;;;;;;-1:-1:-1;;;7119:21:152;;;7098:15;7114:1;7098:18;;;;;;;;:::i;:::-;;;;;;:42;;;;7163:12;-1:-1:-1;;;;;7156:31:152;;7195:11;;;;;;;;;;;;;-1:-1:-1;;;7195:11:152;;;7214:15;7272:1;-1:-1:-1;;;;;7237:37:152;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;7237:37:152;;;;;;;;;;;;;;;;7156:124;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7291:21;;7147:133;;-1:-1:-1;7287:1094:152;;;7347:16;;;7361:1;7347:16;;;;;;;;;7322:22;;7347:16;;;;;;;;;;;-1:-1:-1;7347:16:152;7322:41;;2109:1;7371:5;7377:1;7371:8;;;;;;;;:::i;:::-;;;;;;:27;-1:-1:-1;;;;;7371:27:152;;;-1:-1:-1;;;;;7371:27:152;;;;;7414:12;-1:-1:-1;;;;;7407:41:152;;7458:6;7474:110;;;;;;;;7523:15;-1:-1:-1;;;;;7474:110:152;;;;;7567:5;7556:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;7474:110;;;7407:185;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7314:285;7287:1094;;;7617:18;;;;:25;:30;7613:473;;7690:9;7685:172;7709:12;:18;;;:25;7705:1;:29;7685:172;;;7750:45;7773:12;:18;;;7792:1;7773:21;;;;;;;;:::i;:::-;;;;;;;7750:22;:45::i;:::-;7831:3;;7685:172;;;;7874:12;-1:-1:-1;;;;;7867:41:152;;7920:6;7938:129;;;;;;;;7989:15;-1:-1:-1;;;;;7938:129:152;;;;;8035:12;:18;;;8024:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;7938:129;;;7867:210;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7613:473;8098:21;;;;:32;:39;:43;8094:281;;8160:12;-1:-1:-1;;;;;8153:41:152;;8206:6;8224:132;;;;;;;;8275:15;-1:-1:-1;;;;;8224:132:152;;;;;8321:12;:21;;;8310:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;8224:132;;;8153:213;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8094:281;8386:13;6815:1589;;;;;;:::o;8408:601::-;8644:16;;;8658:1;8644:16;;;;;;;;;8597:14;;;;8644:16;;;;;;;;;;;;-1:-1:-1;8644:16:152;8619:41;;2109:1;8666:5;8672:1;8666:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8666:27:152;;;;:8;;;;;;;;;;;:27;8759:37;;;8794:1;8759:37;;;;;;;;;8700:56;;8759:37;;;;-1:-1:-1;;;;;;;;;;;;;;;;;8759:37:152;;;;;;;;;;;;;;;8700:96;;8827:15;8802:12;8815:1;8802:15;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;8802:40:152;;;;;;8871:17;;;;8882:5;;8871:17;;:::i;:::-;;;;;;;;;;;;;8848:12;8861:1;8848:15;;;;;;;;:::i;:::-;;;;;;;;;;;;:20;:40;8904:100;;-1:-1:-1;;;8904:100:152;;-1:-1:-1;;;;;8904:31:152;;;;;:100;;8943:10;;8961:17;;8986:12;;8904:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8895:109;8408:601;-1:-1:-1;;;;;;;8408:601:152:o;6219:406::-;6371:16;;;6385:1;6371:16;;;;;;;;;6344:24;;6371:16;;;;;;;;;;;-1:-1:-1;6371:16:152;6344:43;;6406:6;6393:7;6401:1;6393:10;;;;;;;;:::i;:::-;;;;;;;;;;;:19;;;;6461:44;;-1:-1:-1;;;6461:44:152;;;25085:39:404;;;;-1:-1:-1;;6490:14:152;;;;25153:44:404;25140:11;;;25133:65;6419:24:152;;25214:12:404;;6461:44:152;;;;;;;;;;;;6446:65;;;:::i;:::-;6579:20;;6518:102;;-1:-1:-1;;;6518:102:152;;6419:92;;-1:-1:-1;;;;;;6518:29:152;;;;;:102;;6419:92;;6579:20;6607:7;;6518:102;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6338:287;;6219:406;;;:::o;9882:1374::-;10002:21;10025:12;;-1:-1:-1;;;;;;;;;;;10163:53:152;;;10174:10;10163:53;;;26580:51:404;26647:18;;;26640:34;;;10200:15:152;26690:18:404;;;26683:34;10045:72:152;;-1:-1:-1;26553:18:404;;10163:53:152;;;;;;;;;;;;10153:64;;;;;;10146:71;;10286:29;;;;;;;;:::i;:::-;-1:-1:-1;;10286:29:152;;;;;;;;;;;;;10363:145;;;;;-1:-1:-1;;;10363:145:152;;10492:4;10286:29;10363:145;;;;;;;10518:121;;;;;;;10581:13;;-1:-1:-1;;;;;10581:13:152;;;10518:121;;;;;;;;10649:588;;;;;;;10694:19;;:24;10649:588;;10738:19;;:26;;;10649:588;;;;;;;10783:19;;:25;;;10649:588;;;;;;;10831:19;;10649:588;10831:29;;;;10649:588;;;;10882:19;;10649:588;10882:28;;;;-1:-1:-1;;;;;10649:588:152;;;;;10932:19;;10649:588;10932:28;;;;10649:588;;;;;;10986:19;;10649:588;10986:32;;;;10343:10;;10518:121;;10649:588;;;;;10986:46;;:118;;11072:19;;:32;;;10986:118;;;11047:10;10986:118;-1:-1:-1;;;;;10649:588:152;;;;;11132:10;:19;;;:34;;;10649:588;;;;11193:10;:19;;;:33;;;-1:-1:-1;;;;;10649:588:152;;;;10323:922;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;10323:922:152;;;;;;;;;;10262:989;;;10323:922;10262:989;;:::i;:::-;;;;;;;;;;;;;10251:1000;;10039:1217;9882:1374;;;;;:::o;1054:354:254:-;1138:18;1211:8;1205:4;1201:19;1253:8;1247:15;1322:4;1308:12;1294;1291:1;1283:44;1269:58;-1:-1:-1;;;;;;;1343:24:254;;;-1:-1:-1;1339:64:254;;1376:27;;-1:-1:-1;;;1376:27:254;;;;;;;;;;;394:329;460:18;533:8;527:4;523:19;575:8;569:15;629:12;615;612:1;605:37;591:51;-1:-1:-1;;;;;;;658:24:254;;;-1:-1:-1;654:64:254;;691:27;;-1:-1:-1;;;691:27:254;;;;;;;;;;;737:119:256;-1:-1:-1;;;;;797:18:256;;793:58;;824:27;;-1:-1:-1;;;824:27:256;;;;;;;;;;;793:58;737:119;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;476:180:404:-;535:6;588:2;576:9;567:7;563:23;559:32;556:52;;;604:1;601;594:12;556:52;-1:-1:-1;627:23:404;;476:180;-1:-1:-1;476:180:404:o;978:144::-;-1:-1:-1;;;;;1066:31:404;;1056:42;;1046:70;;1112:1;1109;1102:12;1127:641;1277:6;1285;1293;1346:2;1334:9;1325:7;1321:23;1317:32;1314:52;;;1362:1;1359;1352:12;1314:52;1401:9;1388:23;1420:44;1458:5;1420:44;:::i;:::-;1483:5;-1:-1:-1;1540:2:404;1525:18;;1512:32;1553:46;1512:32;1553:46;:::i;:::-;1618:7;-1:-1:-1;1677:2:404;1662:18;;1649:32;1690:46;1649:32;1690:46;:::i;:::-;1755:7;1745:17;;;1127:641;;;;;:::o;1773:147::-;1841:20;;1870:44;1841:20;1870:44;:::i;1925:260::-;1984:6;2037:2;2025:9;2016:7;2012:23;2008:32;2005:52;;;2053:1;2050;2043:12;2005:52;2092:9;2079:23;2111:44;2149:5;2111:44;:::i;:::-;2174:5;1925:260;-1:-1:-1;;;1925:260:404:o;2372:127::-;2433:10;2428:3;2424:20;2421:1;2414:31;2464:4;2461:1;2454:15;2488:4;2485:1;2478:15;2504:253;2576:2;2570:9;2618:4;2606:17;;-1:-1:-1;;;;;2638:34:404;;2674:22;;;2635:62;2632:88;;;2700:18;;:::i;:::-;2736:2;2729:22;2504:253;:::o;2762:::-;2834:2;2828:9;2876:4;2864:17;;-1:-1:-1;;;;;2896:34:404;;2932:22;;;2893:62;2890:88;;;2958:18;;:::i;3020:257::-;3092:4;3086:11;;;3124:17;;-1:-1:-1;;;;;3156:34:404;;3192:22;;;3153:62;3150:88;;;3218:18;;:::i;3282:255::-;3354:2;3348:9;3396:6;3384:19;;-1:-1:-1;;;;;3418:34:404;;3454:22;;;3415:62;3412:88;;;3480:18;;:::i;3542:253::-;3614:2;3608:9;3656:4;3644:17;;-1:-1:-1;;;;;3676:34:404;;3712:22;;;3673:62;3670:88;;;3738:18;;:::i;3800:275::-;3871:2;3865:9;3936:2;3917:13;;-1:-1:-1;;3913:27:404;3901:40;;-1:-1:-1;;;;;3956:34:404;;3992:22;;;3953:62;3950:88;;;4018:18;;:::i;:::-;4054:2;4047:22;3800:275;;-1:-1:-1;3800:275:404:o;4080:531::-;4123:5;4176:3;4169:4;4161:6;4157:17;4153:27;4143:55;;4194:1;4191;4184:12;4143:55;4230:6;4217:20;-1:-1:-1;;;;;4252:2:404;4249:26;4246:52;;;4278:18;;:::i;:::-;4322:55;4365:2;4346:13;;-1:-1:-1;;4342:27:404;4371:4;4338:38;4322:55;:::i;:::-;4402:2;4393:7;4386:19;4448:3;4441:4;4436:2;4428:6;4424:15;4420:26;4417:35;4414:55;;;4465:1;4462;4455:12;4414:55;4530:2;4523:4;4515:6;4511:17;4504:4;4495:7;4491:18;4478:55;4578:1;4553:16;;;4571:4;4549:27;4542:38;;;;4557:7;4080:531;-1:-1:-1;;;4080:531:404:o;4616:171::-;4683:20;;-1:-1:-1;;;;;4732:30:404;;4722:41;;4712:69;;4777:1;4774;4767:12;4792:183;4852:4;-1:-1:-1;;;;;4877:6:404;4874:30;4871:56;;;4907:18;;:::i;:::-;-1:-1:-1;4952:1:404;4948:14;4964:4;4944:25;;4792:183::o;4980:120::-;5074:1;5067:5;5064:12;5054:40;;5090:1;5087;5080:12;5105:156;5171:20;;5231:4;5220:16;;5210:27;;5200:55;;5251:1;5248;5241:12;5266:1379;5334:5;5387:3;5380:4;5372:6;5368:17;5364:27;5354:55;;5405:1;5402;5395:12;5354:55;5441:6;5428:20;5467:4;5491:60;5507:43;5547:2;5507:43;:::i;:::-;5491:60;:::i;:::-;5585:15;;;5671:1;5667:10;;;;5655:23;;5651:32;;;5616:12;;;;5695:15;;;5692:35;;;5723:1;5720;5713:12;5692:35;5759:2;5751:6;5747:15;5771:845;5787:6;5782:3;5779:15;5771:845;;;5865:4;5859:3;5854;5850:13;5846:24;5843:114;;;5911:1;5940:2;5936;5929:14;5843:114;5983:22;;:::i;:::-;6046:3;6033:17;6085:1;6076:7;6073:14;6063:112;;6129:1;6158:2;6154;6147:14;6063:112;6188:22;;6259:12;;;6246:26;6230:14;;;6223:50;6296:2;6339:12;;;6326:26;6365:46;6326:26;6365:46;:::i;:::-;6431:14;;;6424:31;6478:2;6529:12;;;6516:26;6500:14;;;6493:50;6556:18;;6594:12;;;;5813:4;5804:14;5771:845;;;-1:-1:-1;6634:5:404;5266:1379;-1:-1:-1;;;;;;5266:1379:404:o;6650:1169::-;6720:5;6773:3;6766:4;6758:6;6754:17;6750:27;6740:55;;6791:1;6788;6781:12;6740:55;6827:6;6814:20;6853:4;6877:60;6893:43;6933:2;6893:43;:::i;6877:60::-;6971:15;;;7033:4;7076:13;;;7064:26;;7060:35;;;7002:12;;;;6959:3;7107:15;;;7104:35;;;7135:1;7132;7125:12;7104:35;7171:2;7163:6;7159:15;7183:607;7199:6;7194:3;7191:15;7183:607;;;7275:2;7269:3;7264;7260:13;7256:22;7253:112;;;7319:1;7348:2;7344;7337:14;7253:112;7391:22;;:::i;:::-;7454:3;7441:17;7471:52;7515:7;7471:52;:::i;:::-;7536:22;;7594:30;7611:12;;;7594:30;:::i;:::-;7589:2;7582:5;7578:14;7571:54;7648:2;7686:30;7712:2;7707:3;7703:12;7686:30;:::i;:::-;7670:14;;;7663:54;7730:18;;7768:12;;;;7216;;7183:607;;;-1:-1:-1;7808:5:404;;6650:1169;-1:-1:-1;;;;;;;6650:1169:404:o;7824:1726::-;7879:5;7927:4;7915:9;7910:3;7906:19;7902:30;7899:50;;;7945:1;7942;7935:12;7899:50;7967:22;;:::i;:::-;7958:31;;8025:9;8012:23;-1:-1:-1;;;;;8095:2:404;8087:6;8084:14;8081:34;;;8111:1;8108;8101:12;8081:34;8149:6;8138:9;8134:22;8124:32;;8194:3;8187:4;8183:2;8179:13;8175:23;8165:51;;8212:1;8209;8202:12;8165:51;8248:2;8235:16;8270:4;8294:60;8310:43;8350:2;8310:43;:::i;8294:60::-;8388:15;;;8470:1;8466:10;;;;8458:19;;8454:28;;;8419:12;;;;8494:15;;;8491:35;;;8522:1;8519;8512:12;8491:35;8546:11;;;;8566:527;8582:6;8577:3;8574:15;8566:527;;;8660:4;8654:3;8649;8645:13;8641:24;8638:114;;;8706:1;8735:2;8731;8724:14;8638:114;8780:22;;:::i;:::-;8843:3;8830:17;8860:52;8904:7;8860:52;:::i;:::-;8925:24;;8987:30;9004:12;;;8987:30;:::i;:::-;8969:16;;;8962:56;9031:20;;8608:4;8599:14;;;;;9071:12;;;;8566:527;;;9102:20;;-1:-1:-1;9160:18:404;;;9147:32;;-1:-1:-1;9191:16:404;;;9188:36;;;9220:1;9217;9210:12;9188:36;9256:73;9325:3;9314:8;9303:9;9299:24;9256:73;:::i;:::-;9240:14;;;9233:97;-1:-1:-1;9383:4:404;9368:20;;9355:34;;-1:-1:-1;9401:16:404;;;9398:36;;;9430:1;9427;9420:12;9398:36;;9468:75;9539:3;9528:8;9517:9;9513:24;9468:75;:::i;:::-;9461:4;9454:5;9450:16;9443:101;;7824:1726;;;;:::o;9555:1386::-;9624:5;9672:4;9660:9;9655:3;9651:19;9647:30;9644:50;;;9690:1;9687;9680:12;9644:50;9712:22;;:::i;:::-;9703:31;;9771:9;9758:23;9826:7;9819:15;9812:23;9803:7;9800:36;9790:64;;9850:1;9847;9840:12;9790:64;9863:22;;9904:2;9942:18;;;9929:32;-1:-1:-1;;;;;10010:14:404;;;10007:34;;;10037:1;10034;10027:12;10007:34;10075:6;10064:9;10060:22;10050:32;;10120:3;10113:4;10109:2;10105:13;10101:23;10091:51;;10138:1;10135;10128:12;10091:51;10174:2;10161:16;10197:60;10213:43;10253:2;10213:43;:::i;10197:60::-;10291:15;;;10373:1;10369:10;;;;10361:19;;10357:28;;;10322:12;;;;10397:15;;;10394:35;;;10425:1;10422;10415:12;10394:35;10449:11;;;;10469:236;10485:6;10480:3;10477:15;10469:236;;;10567:3;10554:17;10584:46;10622:7;10584:46;:::i;:::-;10643:20;;10502:12;;;;10683;;;;10469:236;;;10737:5;10732:2;10725:5;10721:14;10714:29;;;;10796:2;10785:9;10781:18;10768:32;10752:48;;10825:2;10815:8;10812:16;10809:36;;;10841:1;10838;10831:12;10809:36;;;10877:57;10930:3;10919:8;10908:9;10904:24;10877:57;:::i;10946:888::-;10999:5;11052:3;11045:4;11037:6;11033:17;11029:27;11019:55;;11070:1;11067;11060:12;11019:55;11106:6;11093:20;11132:4;11156:60;11172:43;11212:2;11172:43;:::i;11156:60::-;11250:15;;;11336:1;11332:10;;;;11320:23;;11316:32;;;11281:12;;;;11360:15;;;11357:35;;;11388:1;11385;11378:12;11357:35;11424:2;11416:6;11412:15;11436:369;11452:6;11447:3;11444:15;11436:369;;;11538:3;11525:17;-1:-1:-1;;;;;11561:11:404;11558:35;11555:125;;;11634:1;11663:2;11659;11652:14;11555:125;11705:57;11758:3;11753:2;11739:11;11731:6;11727:24;11723:33;11705:57;:::i;:::-;11693:70;;-1:-1:-1;11783:12:404;;;;11469;;11436:369;;11839:1671;11896:5;11944:4;11932:9;11927:3;11923:19;11919:30;11916:50;;;11962:1;11959;11952:12;11916:50;11984:22;;:::i;:::-;11975:31;;12042:9;12029:23;-1:-1:-1;;;;;12112:2:404;12104:6;12101:14;12098:34;;;12128:1;12125;12118:12;12098:34;12151:22;;;;12203:6;12189:12;;;12185:25;12182:45;;;12223:1;12220;12213:12;12182:45;12251:22;;:::i;:::-;12311:2;12298:16;12339:2;12329:8;12326:16;12323:36;;;12355:1;12352;12345:12;12323:36;12384:41;12421:3;12410:8;12406:2;12402:17;12384:41;:::i;:::-;12375:7;12368:58;;12472:2;12468;12464:11;12451:25;12501:2;12491:8;12488:16;12485:36;;;12517:1;12514;12507:12;12485:36;12555:41;12592:3;12581:8;12577:2;12573:17;12555:41;:::i;:::-;12550:2;12541:7;12537:16;12530:67;;12652:2;12648;12644:11;12631:25;12626:2;12617:7;12613:16;12606:51;12714:4;12710:2;12706:13;12693:27;12686:4;12677:7;12673:18;12666:55;12756:31;12782:3;12778:2;12774:12;12756:31;:::i;:::-;12750:3;12741:7;12737:17;12730:58;12823:32;12850:3;12846:2;12842:12;12823:32;:::i;:::-;12817:3;12808:7;12804:17;12797:59;12891:32;12918:3;12914:2;12910:12;12891:32;:::i;:::-;12885:3;12876:7;12872:17;12865:59;12980:3;12976:2;12972:12;12959:26;12953:3;12944:7;12940:17;12933:53;13005:3;13042:31;13069:2;13065;13061:11;13042:31;:::i;:::-;13024:16;;;13017:57;13083:22;;13158:2;13143:18;;13130:32;;-1:-1:-1;13174:16:404;;;13171:36;;;13203:1;13200;13193:12;13171:36;13239:71;13306:3;13295:8;13284:9;13280:24;13239:71;:::i;:::-;13234:2;13227:5;13223:14;13216:95;13364:2;13353:9;13349:18;13336:32;13320:48;;13393:2;13383:8;13380:16;13377:36;;;13409:1;13406;13399:12;13377:36;;13445:58;13499:3;13488:8;13477:9;13473:24;13445:58;:::i;13515:543::-;13573:5;13621:4;13609:9;13604:3;13600:19;13596:30;13593:50;;;13639:1;13636;13629:12;13593:50;13672:2;13666:9;13714:4;13706:6;13702:17;-1:-1:-1;;;;;13806:6:404;13794:10;13791:22;13786:2;13774:10;13771:18;13768:46;13765:72;;;13817:18;;:::i;:::-;13857:10;13853:2;13846:22;13886:6;13877:15;;13928:9;13915:23;13901:37;;13961:2;13953:6;13950:14;13947:34;;;13977:1;13974;13967:12;13947:34;;14005:46;14047:3;14038:6;14027:9;14023:22;14005:46;:::i;:::-;13997:6;13990:62;;;13515:543;;;;:::o;14063:1504::-;14150:6;14203:2;14191:9;14182:7;14178:23;14174:32;14171:52;;;14219:1;14216;14209:12;14171:52;14259:9;14246:23;-1:-1:-1;;;;;14329:2:404;14321:6;14318:14;14315:34;;;14345:1;14342;14335:12;14315:34;14368:22;;;;14424:4;14406:16;;;14402:27;14399:47;;;14442:1;14439;14432:12;14399:47;14468:22;;:::i;:::-;14528:2;14515:16;14556:2;14546:8;14543:16;14540:36;;;14572:1;14569;14562:12;14540:36;14599:45;14636:7;14625:8;14621:2;14617:17;14599:45;:::i;:::-;14592:5;14585:60;;14691:2;14687;14683:11;14670:25;14720:2;14710:8;14707:16;14704:36;;;14736:1;14733;14726:12;14704:36;14772:45;14809:7;14798:8;14794:2;14790:17;14772:45;:::i;:::-;14767:2;14760:5;14756:14;14749:69;;14864:2;14860;14856:11;14843:25;14893:2;14883:8;14880:16;14877:36;;;14909:1;14906;14899:12;14877:36;14945:56;14993:7;14982:8;14978:2;14974:17;14945:56;:::i;:::-;14940:2;14933:5;14929:14;14922:80;;15048:2;15044;15040:11;15027:25;15077:2;15067:8;15064:16;15061:36;;;15093:1;15090;15083:12;15061:36;15129:57;15178:7;15167:8;15163:2;15159:17;15129:57;:::i;:::-;15124:2;15117:5;15113:14;15106:81;;15233:3;15229:2;15225:12;15212:26;15263:2;15253:8;15250:16;15247:36;;;15279:1;15276;15269:12;15247:36;15316:45;15353:7;15342:8;15338:2;15334:17;15316:45;:::i;:::-;15310:3;15303:5;15299:15;15292:70;;15408:3;15404:2;15400:12;15387:26;15438:2;15428:8;15425:16;15422:36;;;15454:1;15451;15444:12;15422:36;15491:45;15528:7;15517:8;15513:2;15509:17;15491:45;:::i;:::-;15485:3;15474:15;;15467:70;-1:-1:-1;15478:5:404;14063:1504;-1:-1:-1;;;;;14063:1504:404:o;15572:184::-;15642:6;15695:2;15683:9;15674:7;15670:23;15666:32;15663:52;;;15711:1;15708;15701:12;15663:52;-1:-1:-1;15734:16:404;;15572:184;-1:-1:-1;15572:184:404:o;15761:232::-;15800:3;15821:17;;;15818:140;;15880:10;15875:3;15871:20;15868:1;15861:31;15915:4;15912:1;15905:15;15943:4;15940:1;15933:15;15818:140;-1:-1:-1;15985:1:404;15974:13;;15761:232::o;15998:250::-;16083:1;16093:113;16107:6;16104:1;16101:13;16093:113;;;16183:11;;;16177:18;16164:11;;;16157:39;16129:2;16122:10;16093:113;;;-1:-1:-1;;16240:1:404;16222:16;;16215:27;15998:250::o;16253:271::-;16295:3;16333:5;16327:12;16360:6;16355:3;16348:19;16376:76;16445:6;16438:4;16433:3;16429:14;16422:4;16415:5;16411:16;16376:76;:::i;:::-;16506:2;16485:15;-1:-1:-1;;16481:29:404;16472:39;;;;16513:4;16468:50;;16253:271;-1:-1:-1;;16253:271:404:o;16529:809::-;16850:3;16839:9;16832:22;16813:4;16877:46;16918:3;16907:9;16903:19;16895:6;16877:46;:::i;:::-;16971:9;16963:6;16959:22;16954:2;16943:9;16939:18;16932:50;17005:33;17031:6;17023;17005:33;:::i;:::-;-1:-1:-1;;;;;17074:32:404;;17069:2;17054:18;;17047:60;17143:22;;;17138:2;17123:18;;17116:50;16991:47;-1:-1:-1;17189:33:404;16991:47;17207:6;17189:33;:::i;:::-;17175:47;;17271:9;17263:6;17259:22;17253:3;17242:9;17238:19;17231:51;17299:33;17325:6;17317;17299:33;:::i;:::-;17291:41;16529:809;-1:-1:-1;;;;;;;;16529:809:404:o;17343:127::-;17404:10;17399:3;17395:20;17392:1;17385:31;17435:4;17432:1;17425:15;17459:4;17456:1;17449:15;17475:658;17646:2;17698:21;;;17768:13;;17671:18;;;17790:22;;;17617:4;;17646:2;17869:15;;;;17843:2;17828:18;;;17617:4;17912:195;17926:6;17923:1;17920:13;17912:195;;;17991:13;;-1:-1:-1;;;;;17987:39:404;17975:52;;18082:15;;;;18047:12;;;;18023:1;17941:9;17912:195;;;-1:-1:-1;18124:3:404;;17475:658;-1:-1:-1;;;;;;17475:658:404:o;18518:337::-;-1:-1:-1;;;;;18715:32:404;;18697:51;;18784:2;18779;18764:18;;18757:30;;;-1:-1:-1;;18804:45:404;;18830:18;;18822:6;18804:45;:::i;18860:492::-;19035:3;19073:6;19067:13;19089:66;19148:6;19143:3;19136:4;19128:6;19124:17;19089:66;:::i;:::-;19218:13;;19177:16;;;;19240:70;19218:13;19177:16;19287:4;19275:17;;19240:70;:::i;:::-;19326:20;;18860:492;-1:-1:-1;;;;18860:492:404:o;19357:287::-;19482:1;19478;19473:3;19469:11;19465:19;19457:5;19451:12;19447:38;19442:3;19435:51;19417:3;19532:4;19525:5;19521:16;19515:23;19570:4;19563;19558:3;19554:14;19547:28;19591:47;19632:4;19627:3;19623:14;19609:12;19591:47;:::i;19649:1690::-;20046:2;20035:9;20028:21;20009:4;20072:45;20113:2;20102:9;20098:18;20090:6;20072:45;:::i;:::-;20136:2;20186:9;20178:6;20174:22;20169:2;20158:9;20154:18;20147:50;20217:6;20252;20246:13;20283:6;20275;20268:22;20318:2;20310:6;20306:15;20299:22;;20377:2;20367:6;20364:1;20360:14;20352:6;20348:27;20344:36;20415:2;20407:6;20403:15;20436:1;20446:252;20460:6;20457:1;20454:13;20446:252;;;20550:2;20546:7;20537:6;20529;20525:19;20521:33;20516:3;20509:46;20578:40;20611:6;20602;20596:13;20578:40;:::i;:::-;20676:12;;;;20568:50;-1:-1:-1;20641:15:404;;;;20482:1;20475:9;20446:252;;;-1:-1:-1;;20734:22:404;;;20729:2;20714:18;;20707:50;20810:13;;20832:24;;;20874:15;;;;-1:-1:-1;20810:13:404;-1:-1:-1;20932:1:404;20928:16;;;20916:29;;20912:38;;;-1:-1:-1;20975:15:404;;;21010:1;21020:290;21036:8;21031:3;21028:17;21020:290;;;21134:2;21130:7;21121:6;21113;21109:19;21105:33;21098:5;21091:48;21162:60;21215:6;21204:8;21198:15;21162:60;:::i;:::-;21286:14;;;;21152:70;-1:-1:-1;21247:17:404;;;;21064:1;21055:11;21020:290;;;-1:-1:-1;21327:6:404;;19649:1690;-1:-1:-1;;;;;;;;;;19649:1690:404:o;21344:361::-;21573:6;21562:9;21555:25;21616:2;21611;21600:9;21596:18;21589:30;21536:4;21636:63;21695:2;21684:9;21680:18;21672:6;21636:63;:::i;21710:127::-;21771:10;21766:3;21762:20;21759:1;21752:31;21802:4;21799:1;21792:15;21826:4;21823:1;21816:15;21842:126;21936:1;21929:5;21926:12;21916:46;;21942:18;;:::i;21973:807::-;22040:3;22078:5;22072:12;22105:6;22100:3;22093:19;22131:4;22160;22155:3;22151:14;22144:21;;22199:4;22192:5;22188:16;22222:1;22232:523;22246:6;22243:1;22240:13;22232:523;;;22311:6;22305:13;22347:2;22341:9;22380:1;22376:2;22373:9;22363:43;;22386:18;;:::i;:::-;22419:15;;22474:11;;;22468:18;22454:12;;;22447:40;22510:4;22558:11;;;22552:18;-1:-1:-1;;;;;22548:44:404;22534:12;;;22527:66;22616:4;22660:11;;;22654:18;22640:12;;;22633:40;22702:4;22693:14;;;;22730:15;;;;22589:1;22261:9;22232:523;;;-1:-1:-1;22771:3:404;;21973:807;-1:-1:-1;;;;;21973:807:404:o;22785:797::-;22854:3;22892:5;22886:12;22919:6;22914:3;22907:19;22945:4;22974;22969:3;22965:14;22958:21;;23013:4;23006:5;23002:16;23036:1;23046:511;23060:6;23057:1;23054:13;23046:511;;;23125:6;23119:13;23161:2;23155:9;23177:47;23221:2;23177:47;:::i;:::-;23237:15;;23291:11;;;23285:18;23326:4;23364:21;;;23350:12;;;23343:43;23409:4;23457:11;;;23451:18;23447:27;23433:12;;;23426:49;23504:4;23495:14;;;;23532:15;;;;23082:1;23075:9;23046:511;;23587:1338;23762:2;23773:21;;;23865:13;;23914:4;23894:18;;;23887:32;23968:19;;23832:3;23817:19;;23996:22;;;23733:4;;23762:2;24076:21;;;23733:4;;24049:3;24034:19;;;24125:352;24139:6;24136:1;24133:13;24125:352;;;24204:6;24198:13;24240:2;24234:9;24256:47;24300:2;24256:47;:::i;:::-;24316:15;;24375:11;;24369:18;24389:4;24365:29;24351:12;;;24344:51;24452:15;;;;24161:1;24154:9;;;;;24424:4;24415:14;;;;24125:352;;;24129:3;24526:2;24518:6;24514:15;24508:22;24486:44;;24553:2;24549:7;24539:17;;24619:2;24607:9;24602:3;24598:19;24594:28;24587:4;24576:9;24572:20;24565:58;24646:63;24705:3;24689:14;24646:63;:::i;:::-;24632:77;;;;24758:4;24750:6;24746:17;24740:24;24830:2;24818:9;24810:6;24806:22;24802:31;24795:4;24784:9;24780:20;24773:61;24851:68;24912:6;24896:14;24851:68;:::i;:::-;24843:76;23587:1338;-1:-1:-1;;;;;;23587:1338:404:o;25237:297::-;25355:12;;25402:4;25391:16;;;25385:23;;25355:12;25420:16;;25417:111;;;25514:1;25510:6;25500;25494:4;25490:17;25487:1;25483:25;25479:38;25472:5;25468:50;25459:59;;25417:111;;25237:297;;;:::o;25539:834::-;25794:6;25783:9;25776:25;25757:4;25820:2;25858;25853;25842:9;25838:18;25831:30;25884:45;25925:2;25914:9;25910:18;25902:6;25884:45;:::i;:::-;25965:22;;;25960:2;25945:18;;25938:50;26037:13;;26059:22;;;26109:2;26135:15;;;;26097;;26168:1;26178:169;26192:6;26189:1;26186:13;26178:169;;;26253:13;;26241:26;;26322:15;;;;26287:12;;;;26214:1;26207:9;26178:169;;;-1:-1:-1;26364:3:404;;25539:834;-1:-1:-1;;;;;;;;25539:834:404:o;26835:1849::-;27193:4;27239:1;27235;27230:3;27226:11;27222:19;27280:2;27272:6;27268:15;27257:9;27250:34;27348:10;27343:3;27339:20;27330:6;27324:13;27320:40;27315:2;27304:9;27300:18;27293:68;27425:2;27419;27411:6;27407:15;27401:22;27397:31;27392:2;27381:9;27377:18;27370:59;27484:2;27475:6;27469:13;27465:22;27460:2;27449:9;27445:18;27438:50;;27543:2;27535:6;27531:15;27525:22;27519:3;27508:9;27504:19;27497:51;27585:3;27579;27568:9;27564:19;27557:32;27624:6;27618:13;27650:6;27693:2;27687:3;27676:9;27672:19;27665:31;27719:52;27766:3;27755:9;27751:19;27737:12;27719:52;:::i;:::-;27705:66;;27820:2;27812:6;27808:15;27802:22;27893:3;27889:8;27877:9;27869:6;27865:22;27861:37;27855:3;27844:9;27840:19;27833:66;27922:41;27956:6;27940:14;27922:41;:::i;:::-;27908:55;;;28000:2;27992:6;27988:15;27982:22;28023:3;28062:2;28057;28046:9;28042:18;28035:30;28119:2;28111:6;28107:15;28101:22;28096:2;28085:9;28081:18;28074:50;28173:3;28165:6;28161:16;28155:23;28133:45;;28187:54;28236:3;28225:9;28221:19;28205:14;-1:-1:-1;;;;;26793:30:404;26781:43;;26728:102;28187:54;28290:3;28278:16;;28272:23;-1:-1:-1;;;;;727:31:404;;;28354:3;28339:19;;715:44;28408:3;28396:16;;28390:23;727:31;;28472:3;28457:19;;715:44;28532:3;28520:16;;28514:23;28508:3;28493:19;;28486:52;28575:15;;;28569:22;727:31;;;28650:3;28635:19;;715:44;28569:22;-1:-1:-1;28600:55:404;;-1:-1:-1;661:104:404","linkReferences":{}},"methodIdentifiers":{"__Architect_init(address,address,address)":"dc1b9f23","createSpace((string,string,((string,string,uint256,uint256,uint64,address,address,uint256,address),(bool,address[],((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[])),string[]),(string),string,string))":"ef009225","getSpaceArchitectImplementations()":"545efb2d","getSpaceByTokenId(uint256)":"673f0dd5","getTokenIdBySpace(address)":"c0bc6796","setSpaceArchitectImplementations(address,address,address)":"8bfc94b9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Architect__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Architect__InvalidNetworkId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Architect__InvalidStringLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Architect__NotContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Factory__FailedDeployment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_InInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_NotInInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_AlreadySupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_NotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Ownable__NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Ownable__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__NotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__Paused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuard__ReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Validator__InvalidAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"}],\"name\":\"SpaceCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract ISpaceOwner\",\"name\":\"ownerImplementation\",\"type\":\"address\"},{\"internalType\":\"contract IUserEntitlement\",\"name\":\"userEntitlementImplementation\",\"type\":\"address\"},{\"internalType\":\"contract IRuleEntitlement\",\"name\":\"ruleEntitlementImplementation\",\"type\":\"address\"}],\"name\":\"__Architect_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"freeAllocation\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"pricingModule\",\"type\":\"address\"}],\"internalType\":\"struct IMembershipBase.Membership\",\"name\":\"settings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"everyone\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"users\",\"type\":\"address[]\"},{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlement.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlement.RuleData\",\"name\":\"ruleData\",\"type\":\"tuple\"}],\"internalType\":\"struct IArchitectBase.MembershipRequirements\",\"name\":\"requirements\",\"type\":\"tuple\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"}],\"internalType\":\"struct IArchitectBase.Membership\",\"name\":\"membership\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"}],\"internalType\":\"struct IArchitectBase.ChannelInfo\",\"name\":\"channel\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"shortDescription\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"longDescription\",\"type\":\"string\"}],\"internalType\":\"struct IArchitectBase.SpaceInfo\",\"name\":\"spaceInfo\",\"type\":\"tuple\"}],\"name\":\"createSpace\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSpaceArchitectImplementations\",\"outputs\":[{\"internalType\":\"contract ISpaceOwner\",\"name\":\"spaceToken\",\"type\":\"address\"},{\"internalType\":\"contract IUserEntitlement\",\"name\":\"userEntitlementImplementation\",\"type\":\"address\"},{\"internalType\":\"contract IRuleEntitlement\",\"name\":\"ruleEntitlementImplementation\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getSpaceByTokenId\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"}],\"name\":\"getTokenIdBySpace\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISpaceOwner\",\"name\":\"spaceToken\",\"type\":\"address\"},{\"internalType\":\"contract IUserEntitlement\",\"name\":\"userEntitlementImplementation\",\"type\":\"address\"},{\"internalType\":\"contract IRuleEntitlement\",\"name\":\"ruleEntitlementImplementation\",\"type\":\"address\"}],\"name\":\"setSpaceArchitectImplementations\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"OwnershipTransferred(address,address)\":{\"details\":\"This emits when ownership of a contract changes.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"InterfaceAdded(bytes4)\":{\"notice\":\"Emitted when an interface is added to the contract via `_addInterface`.\"},\"InterfaceRemoved(bytes4)\":{\"notice\":\"Emitted when an interface is removed from the contract via `_removeInterface`.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/factory/facets/architect/Architect.sol\":\"Architect\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/checker/IEntitlementChecker.sol\":{\"keccak256\":\"0xbeb7bfa236f19172b29eac53be03a3b377de3524b2d836192b0c64ebe708c204\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d5a103a2b7b6be1ffa6662db6081763bcd210216fefc25307b835c555e0cf4d\",\"dweb:/ipfs/QmUCvhZdZpVnyJuZVgd2qGduTf11384TmmBJb2RaEBHxhh\"]},\"contracts/src/diamond/facets/Facet.sol\":{\"keccak256\":\"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863\",\"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc\"]},\"contracts/src/diamond/facets/initializable/Initializable.sol\":{\"keccak256\":\"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552\",\"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC\"]},\"contracts/src/diamond/facets/initializable/InitializableStorage.sol\":{\"keccak256\":\"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4\",\"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg\"]},\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/introspection/IntrospectionBase.sol\":{\"keccak256\":\"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1\",\"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw\"]},\"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol\":{\"keccak256\":\"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91\",\"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM\"]},\"contracts/src/diamond/facets/ownable/IERC173.sol\":{\"keccak256\":\"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b\",\"dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd\"]},\"contracts/src/diamond/facets/ownable/OwnableBase.sol\":{\"keccak256\":\"0x272abaecc104d5f23d77a623cf1548620d24b0f447eb2a12144e27561ff489f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcb8c20ff7346bdc5dba82e6680cc0ea64087460a12153e3b6c3416f6addf875\",\"dweb:/ipfs/QmfEEufJBzudSDekQteQkb3CzmnzUPT3GDhNgVpHNC9xaf\"]},\"contracts/src/diamond/facets/ownable/OwnableStorage.sol\":{\"keccak256\":\"0xda650482ce08c04110366cb01408aaabd01383d9c504b7cacfb2674aae688dcd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://694f42ffb353fccaa1eadf91dee3a3cee7253e3f357bcba2b175fd7be701e27e\",\"dweb:/ipfs/QmPxxVerATSYrNLp7snnSvNVsbLPm1wzHULhBbtR333eik\"]},\"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol\":{\"keccak256\":\"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb\",\"dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol\":{\"keccak256\":\"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb\",\"dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol\":{\"keccak256\":\"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf\",\"dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F\"]},\"contracts/src/diamond/facets/pausable/IPausable.sol\":{\"keccak256\":\"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684\",\"dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ\"]},\"contracts/src/diamond/facets/pausable/PausableBase.sol\":{\"keccak256\":\"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3\",\"dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V\"]},\"contracts/src/diamond/facets/pausable/PausableStorage.sol\":{\"keccak256\":\"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd\",\"dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj\"]},\"contracts/src/diamond/facets/reentrancy/IReentrancyGuard.sol\":{\"keccak256\":\"0x89ad30ac5476efd023189fca20b13214fe5541ea5fff11760e00f229c62c896e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc04fb0c48333cb0f4b84b01e50498d60510d52495c3772f0bf632773ec47a7d\",\"dweb:/ipfs/QmQUuYriat7eRRsPUHTeD2CDEwHzYxqW6qix7xf44kWByo\"]},\"contracts/src/diamond/facets/reentrancy/ReentrancyGuard.sol\":{\"keccak256\":\"0xb481ee6684d1589254563cb5c318b1eb75f6f15f96baecbd5f5e42b72b7a5003\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e1bafcd0779c6241ee7716ae2058dd6f7d5a75bb211f5bfcb9aefa434228f8\",\"dweb:/ipfs/QmSbsdGjL1be4VBjgWrk5CodWGvszXZt5HX32PxhvXTZ5Y\"]},\"contracts/src/diamond/facets/reentrancy/ReentrancyGuardStorage.sol\":{\"keccak256\":\"0xe4a08e5712446357756a6da7b65ae80845732dfebac180bd478caaf64dfc790e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09f5691ae9aedbe094cc83a0e8a4272c4d6dd5f57e69fec5870b148f2d94395e\",\"dweb:/ipfs/QmTLHQWuRp1L45oRV8oWWbk4Y4MMNYW1Rp9WUJ86gzVVRv\"]},\"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol\":{\"keccak256\":\"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615\",\"dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol\":{\"keccak256\":\"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba\",\"dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol\":{\"keccak256\":\"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04\",\"dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey\"]},\"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol\":{\"keccak256\":\"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d\",\"dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz\"]},\"contracts/src/diamond/proxy/IProxy.sol\":{\"keccak256\":\"0x94506109e5e47fafba65c94f2d74d0c7860e5911fe90fbe3b49817afda3b2145\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://969f73c692e96091ef4565e5e7f9d4114ce6d51a619a75f9b1a0703f737e4ceb\",\"dweb:/ipfs/QmbohRzHyVrD36w3b7UdM1jqpPMViSx3DVCHWuXTLkG3bM\"]},\"contracts/src/diamond/proxy/Proxy.sol\":{\"keccak256\":\"0x9e3a60886852d03e7a09bd0daac7f524d9aebf7d26a19e6bd726ecb84404f9cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e469174f1f9e9a5afa47fd7e8fc0c64065704b2397eb187037a3a508da6fa90d\",\"dweb:/ipfs/QmUQwmPLvo5yJ2aGz5JGGTL1AVUPbF1gK4nBBH6M49HBrD\"]},\"contracts/src/diamond/proxy/managed/IManagedProxy.sol\":{\"keccak256\":\"0xf064a056a73233ef207e7206ac910616210f6729147f29912bdb4abc69906d01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://befb3501cc4b180ed3c5b156bde2700a6de26f17e828bdb8e8ff9615268f91e1\",\"dweb:/ipfs/QmP2qGhFpySb1efhpbRBXDxzxLjVTF2UmF2KRCM8hGrsPV\"]},\"contracts/src/diamond/proxy/managed/ManagedProxyBase.sol\":{\"keccak256\":\"0x0cc3fa005591526a9eaddc4111064685cf0d8fcbbcdf5d920dd751a038029552\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36eb108c5307d842cf1de83e5466affa2d70286e29fabce23e07c22a83c73203\",\"dweb:/ipfs/QmY55RPvgjLMNeHN4vF2XzapzpQ1ffR7ozwQKkWsUWpjRp\"]},\"contracts/src/diamond/proxy/managed/ManagedProxyStorage.sol\":{\"keccak256\":\"0x2f09ac0009d994e8095003f5a95512b28d008613571861cb0ede96a6af532b1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d2160d94085d44c9cae45b051f680a82c865a856e3c7f1ac50c6b6c31243b206\",\"dweb:/ipfs/QmXUzx5RKLmAFKgT1aygcpBmrWS5RzhEZT6fsS8YqdG68J\"]},\"contracts/src/diamond/proxy/manager/IProxyManager.sol\":{\"keccak256\":\"0x01f8bfb90685f0bc76eefc19f868b106c4acc098336874a751917858c54c1f7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://766eba3ae42116b15d3d52e54a13dfd8229098e5e50b66145a9db39c6b94d64c\",\"dweb:/ipfs/QmXsuwKLXLWPTDZH1UjCF2cRgn6fYr6qHLMY5nb6GWb8kP\"]},\"contracts/src/diamond/utils/multicall/IMulticall.sol\":{\"keccak256\":\"0x6dc9ea0a61c25be2ccf2812ae27c4044d2471b113862f242ef5d11fba1167ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31d7c5626cb8817e9a638b42dac9d19eafdbb5e7db50a54a667bf9a8e469e0e8\",\"dweb:/ipfs/Qmex9vaHpj8wPwG31Rvft9oXtdLeK1JRCrzgGSVMqszRGZ\"]},\"contracts/src/diamond/utils/multicall/Multicall.sol\":{\"keccak256\":\"0xd033d4a233fbfee42239cea898cfb995d1e3aa2585aee8def257703cd00a3b5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03cb097e17b5443b71058d028b3409db07a7ecad1d1edc360c72ed32cbd9c0dd\",\"dweb:/ipfs/QmTbqyWToxcJynYhRBioTTPHucUExeEiriKekZ1vBToUpg\"]},\"contracts/src/factory/facets/architect/Architect.sol\":{\"keccak256\":\"0x546e407119ca047d99f622d77fe017f893e4148a0ab1b32938113815083204af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f32d3dbaa7f2317db849eae44be1a1408abbb461e667ad08087ee220ac577888\",\"dweb:/ipfs/Qmf4cmkXNY4Wh8vrk1S39LGr35JkHTR7Mdr4MXXETqt7fW\"]},\"contracts/src/factory/facets/architect/ArchitectBase.sol\":{\"keccak256\":\"0x4676216deb8678864044c22050d05c0860a6b0a9e324aa232167f88dbe79c0ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e16ca2c87ccf1fb7761694353586b1f712e29b2def92edbb2eb429792b08bfe4\",\"dweb:/ipfs/QmbfsL35mBjHuq9bwMnhB9UdZ2dqpuopPNSDBYRf2ATkhP\"]},\"contracts/src/factory/facets/architect/ArchitectStorage.sol\":{\"keccak256\":\"0xc62e53da3472373306030cd9bb5621f895b5ebbab23ab5d03311c237fe3fb19c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bc61d6591c8c621fa635c988cdf10716037a0cbaed5fac650ed77af6c7d8561\",\"dweb:/ipfs/QmVwXUiJppdHAU5STPsZjFFGqFNosjyxP5R2NJQSp3yTsd\"]},\"contracts/src/factory/facets/architect/IArchitect.sol\":{\"keccak256\":\"0xdc01eb58a1778852dc48091aa5e2155f13be6089a337ac4e5196a378ffbce195\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31fc4dc1923f3484729151de58f0a43839ce4b65d846b0aa2dd8f4416914e714\",\"dweb:/ipfs/QmNb5NiKSHwkmHb6hWNhu9GnPaEFJGdUMy4Tzv4KDmap1u\"]},\"contracts/src/factory/facets/architect/ImplementationStorage.sol\":{\"keccak256\":\"0x539f0fc6ea9638bf9db3ec27511ee3775671ac0a538ff341563e3518468a8907\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b904a1779579e3facc6d9b27a007deb35dce71403ca6d27d63a3d3906fcf9de\",\"dweb:/ipfs/Qmab9yzwbmRy5znzDVZ5kTT98j4EkkaZ8bRoFizdwiHy4S\"]},\"contracts/src/factory/facets/architect/pricing/IPricingModules.sol\":{\"keccak256\":\"0xa45fcd2bb5037c0b9b80bb02a3a4bd00fa99598a8d9e0a5ee2dff7a04c670171\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f95100f32791a9aa2e3cc47fb9cd58542e9250834bfc38756012cc4baaa786\",\"dweb:/ipfs/QmYGPF6HQLoq5bCgMYW1AyT2Vz1H12Lt8LDdmzTadN5Ppm\"]},\"contracts/src/factory/facets/platform/requirements/IPlatformRequirements.sol\":{\"keccak256\":\"0xd1c61d42973382822d0b8256b5d308ad693dfa59240864cce0bec1bd4208e4c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bff6d50557810f7aa9de451f6ac2b279fe5983eefc0b38ef8be7ebb2ffde0f86\",\"dweb:/ipfs/QmS6DXYXtPTfePgtrUxH1vmPycsVoumBQRJZugjGButowT\"]},\"contracts/src/factory/facets/registry/IImplementationRegistry.sol\":{\"keccak256\":\"0xb447f7654cd152c29718c95983b62e390a59658d7d1a22b97f79d0aee9fb5de7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://756a9a38364c01937088ba927f09af2726d2df207eea4e0e2842e3fc66ccd32c\",\"dweb:/ipfs/QmbxBRXgtkEQsGtxq1uSM6vX38FkjPq6tpodCdtBmdEmXA\"]},\"contracts/src/factory/facets/wallet-link/IWalletLink.sol\":{\"keccak256\":\"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0\",\"dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5\"]},\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":{\"keccak256\":\"0x28650d058077713dfc28d5c613998d9f1e895a6f5f6b0d93467d25455fc3ea1d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2446b7958f8b5f2713860e2826acf1b123c6b24719f844c7811d1e3f5a87c86\",\"dweb:/ipfs/Qmesso9ftmVUCHi6w2gkJs9tEjGG5ZZgqhAenkyTDgFPC2\"]},\"contracts/src/spaces/entitlements/user/IUserEntitlement.sol\":{\"keccak256\":\"0x573a718650f7088b84fe0bc6ec0b85c354c58c842691c66b2e682912455161c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b41f88dd0e806b3f61b72f340dbdc53710827b1c8de9bcba6ba11fd1f8ae25a\",\"dweb:/ipfs/QmZZtrWAgx3aLFA2dXuoHtujBqEuxAkHZkMP4FdmEAcQRx\"]},\"contracts/src/spaces/facets/Permissions.sol\":{\"keccak256\":\"0xaeec9c70d231be9debb15660bf6939746532d0012c80d5518e8207dd33653de2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bab7c5dd8f55f03f48d3908b8d6732b3e2d93f36312a0c3408ff10be258c165a\",\"dweb:/ipfs/QmevmAc6tzP3kFoH84cRtipSq4ryqbrP3H4VB8mRZgnRxn\"]},\"contracts/src/spaces/facets/channels/IChannel.sol\":{\"keccak256\":\"0x8f461ec8c49234f27257fc5cf20dd5e9fdb4692d9b17075be63e8ee6db854554\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52673312b7dfe3fa2b0e8b603a368036f3b428b303f9e539b558ccfdf5490b54\",\"dweb:/ipfs/Qme3LoUvB1Axz9ZJZ8Erv6Cw6GLPQB7PNghMQ3FUYfA4VV\"]},\"contracts/src/spaces/facets/entitlements/IEntitlementsManager.sol\":{\"keccak256\":\"0x3be8ab93ad7f1417c0b0f6aa3f74dca36034464085d40fd2e94f3b31ff5be03d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e97436fca686896a1ffc56dd64f58997775bef504e0568c62ba4d103a99939c\",\"dweb:/ipfs/QmWn5wvuuEFDhnqXJcJVb69ndDmhUMXWdUGYKR2VBfLsEw\"]},\"contracts/src/spaces/facets/gated/EntitlementGatedBase.sol\":{\"keccak256\":\"0xcefa5c3c81c73fefaa7da433ddd5c419dc4c31cd86e8c31f47894663ca7269e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27fe60a48a69d5be67fdf17f5aac1e90ef0234da564ec4f6e2cbfe53fbb9ba0c\",\"dweb:/ipfs/QmPemsjAUmjjjyLWbHzVmqLxyBAN7CFi6DViy9uQEM3wjt\"]},\"contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol\":{\"keccak256\":\"0xb058672a61d2742e8232232cc66f052443d82beb8b2cdc681f10c23a49351b84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f39d39a3bd3e39c2f6a5b21b82a7339176c163d82335f901a64c57dd73ffa5a3\",\"dweb:/ipfs/QmP8RmYv79xX8hLmrvjfceW9mdRYCYxMaxpywRpR281tMo\"]},\"contracts/src/spaces/facets/gated/IEntitlementGated.sol\":{\"keccak256\":\"0x948de1018f7f78366263a40e0f8269e10941216bd03a9996edb24a6230959e74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc985539ce639f39fd68723acca6424a78deac6cec3693c9d8e1084a487c83ec\",\"dweb:/ipfs/QmQujX5rmDwhJZurp11FTiPLb7ev9swLTtdkagA8wydZiT\"]},\"contracts/src/spaces/facets/membership/IMembership.sol\":{\"keccak256\":\"0x7fbf37c681ae95610ed376a30d68808b9da602a3225dbe1724dfe7c1c82de672\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa8d56cca2d01883595cfbd1a6aa3b63202ed25fb56ac1e57d3cf645665dd77\",\"dweb:/ipfs/QmbLF87ZZCovJn3enbs78mcJu39zXi8FYum72fTufZt3e4\"]},\"contracts/src/spaces/facets/membership/MembershipBase.sol\":{\"keccak256\":\"0x4f42c9176fb345d3da7825e0045e57707396d52bb8e208c81ed81e9d76bd90eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fac0c230acd543d90c1b88174e3dcdc9a135e7217741a32580b250941ad30bf\",\"dweb:/ipfs/QmXaLoyaFmomPPZCcJiY3dzsRjZiWoVkNdKtDa67vh16CR\"]},\"contracts/src/spaces/facets/membership/MembershipStorage.sol\":{\"keccak256\":\"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a\",\"dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa\"]},\"contracts/src/spaces/facets/membership/pricing/IMembershipPricing.sol\":{\"keccak256\":\"0x9e3b6766b92d0e48b4b23a024f9622923f30d90f6f8673ded81e423171ec30c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6f76b6045a8c6eeb24d6a9a42f82495cb1cb125dd90921d16a949b00a6f52dc\",\"dweb:/ipfs/QmPbRy4sAabTkEnZBoubzPqH2ycPevEzcEJ4NYJsCWmTFF\"]},\"contracts/src/spaces/facets/owner/ISpaceOwner.sol\":{\"keccak256\":\"0x75fef729920165a9cc37f7c212da288bc983bb11e39544a59c657cd9fa2e204a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1baac2d168e5ee3269b0b6b59ce7df29e63c38ef3d484850ed05f0a56ab59464\",\"dweb:/ipfs/QmZPxAByZ4PiQFUq45AM8LEJ2YC6n8XxE6nRHgf8Kg7nxZ\"]},\"contracts/src/spaces/facets/prepay/IPrepay.sol\":{\"keccak256\":\"0x4cc23cd204f20bd4a094d9292aaa494f73478d27c8f59e646454cbba11d781fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f54c224f56396ac03335c95c4808acbeec6366f0c475d29edb2461cd53bcd15\",\"dweb:/ipfs/QmdDKUR8VVXJuR5Fj29SZxvR9GwxXeNQ6rtAT3TxX8VjwT\"]},\"contracts/src/spaces/facets/proxy/SpaceProxy.sol\":{\"keccak256\":\"0x0abbcfe10500b16399e91aefced93c460a0916e43738b06701c6994aff0e7c4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://074691333cc1da44a2768dcd7c6d8ec62cf119449114e1cde7516285cccfed7b\",\"dweb:/ipfs/QmQ7bwLuNgHpnPGbzMH9CNtG8ap4neP6pwEGmVJT5nrD8J\"]},\"contracts/src/spaces/facets/roles/IRoles.sol\":{\"keccak256\":\"0xa69cfbcd989b8794187a56a93deffbefaee8ca456e381ce30f85897893c50272\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf8e9b2711f66eefb949f5b5ead4d72005f1845cd63f22b287fdba3339101bd4\",\"dweb:/ipfs/Qmf7sPY4BgmvZf7p4GBsyVyd4o66yJXMgAmEgpdQAQyBdx\"]},\"contracts/src/utils/Factory.sol\":{\"keccak256\":\"0x150045213e6284abce967c3f6abc8989952d181c43540acf92709486aebec3ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://282730a1c005f83c5eb11d2f19ca5a8c2ab1bba4e4a403eb651f6a232a874791\",\"dweb:/ipfs/QmcPLz1uWkCukNsSwu69i8BVmjF7g9pg47cAmD3swaaFTY\"]},\"contracts/src/utils/StringSet.sol\":{\"keccak256\":\"0x2b9880e846f275864e847e8c7079d29a02c4a060c5a9d580fb153ff0e7b49ff6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df9c170f28318746eab23befba1318735652c7d198e273a322a0ff2702680605\",\"dweb:/ipfs/QmanQQi9YiPHb9Cn4wpfQ9VYUi7UZ9iQibLL6V46JPibLu\"]},\"contracts/src/utils/Validator.sol\":{\"keccak256\":\"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306\",\"dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt\"]},\"contracts/src/utils/interfaces/IWETH.sol\":{\"keccak256\":\"0xb0a9a284b02664b2ceda4ed7cc8e7dbdd39cc09292b65b97a3417ba5b1440dd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://701edb4dbdb8ab50ed2fdb568cc0956c07184e1f4e7d63854efc158408fa72a5\",\"dweb:/ipfs/QmV58ikDDcTC92hGEuQKerfsygnPg5cwCVLuMh9R9uYXb6\"]},\"contracts/src/utils/libraries/BasisPoints.sol\":{\"keccak256\":\"0xfaa5790726afc20e29f2a00e67693a59ae85a045beaa95f8f58bcbcef01ed87b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2da5e15739fc7093ea7b935c6542f7c01d9c33843a3d1a1d8895db404f8160e\",\"dweb:/ipfs/QmYVUkSh3QX7u9rnKfqLeb9Rh8tko5Q3Gpry6KnhTRF58L\"]},\"contracts/src/utils/libraries/CurrencyTransfer.sol\":{\"keccak256\":\"0x3242d518aedc3ca9a49fb4221de4596ee219b9569abf0548d28dbbecd569a336\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2260078d61b0ee998b54f60c4db4bc8e8a9afdf351018a343c82fa984aca88d\",\"dweb:/ipfs/QmT83nFPb4JzsWCPf9j58xTsaDvuMmq5MH1z8GrEWtBLcx\"]},\"lib/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"lib/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"lib/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Architect__InvalidAddress"},{"inputs":[],"type":"error","name":"Architect__InvalidNetworkId"},{"inputs":[],"type":"error","name":"Architect__InvalidStringLength"},{"inputs":[],"type":"error","name":"Architect__NotContract"},{"inputs":[],"type":"error","name":"Factory__FailedDeployment"},{"inputs":[],"type":"error","name":"Initializable_InInitializingState"},{"inputs":[],"type":"error","name":"Initializable_NotInInitializingState"},{"inputs":[],"type":"error","name":"Introspection_AlreadySupported"},{"inputs":[],"type":"error","name":"Introspection_NotSupported"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"Ownable__NotOwner"},{"inputs":[],"type":"error","name":"Ownable__ZeroAddress"},{"inputs":[],"type":"error","name":"Pausable__NotPaused"},{"inputs":[],"type":"error","name":"Pausable__Paused"},{"inputs":[],"type":"error","name":"ReentrancyGuard__ReentrantCall"},{"inputs":[],"type":"error","name":"Validator__InvalidAddress"},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceAdded","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"address","name":"space","type":"address","indexed":true}],"type":"event","name":"SpaceCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"contract ISpaceOwner","name":"ownerImplementation","type":"address"},{"internalType":"contract IUserEntitlement","name":"userEntitlementImplementation","type":"address"},{"internalType":"contract IRuleEntitlement","name":"ruleEntitlementImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"__Architect_init"},{"inputs":[{"internalType":"struct IArchitectBase.SpaceInfo","name":"spaceInfo","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"uri","type":"string"},{"internalType":"struct IArchitectBase.Membership","name":"membership","type":"tuple","components":[{"internalType":"struct IMembershipBase.Membership","name":"settings","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"uint64","name":"duration","type":"uint64"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"uint256","name":"freeAllocation","type":"uint256"},{"internalType":"address","name":"pricingModule","type":"address"}]},{"internalType":"struct IArchitectBase.MembershipRequirements","name":"requirements","type":"tuple","components":[{"internalType":"bool","name":"everyone","type":"bool"},{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"struct IRuleEntitlement.RuleData","name":"ruleData","type":"tuple","components":[{"internalType":"struct IRuleEntitlement.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlement.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlement.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}]},{"internalType":"string[]","name":"permissions","type":"string[]"}]},{"internalType":"struct IArchitectBase.ChannelInfo","name":"channel","type":"tuple","components":[{"internalType":"string","name":"metadata","type":"string"}]},{"internalType":"string","name":"shortDescription","type":"string"},{"internalType":"string","name":"longDescription","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"createSpace","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSpaceArchitectImplementations","outputs":[{"internalType":"contract ISpaceOwner","name":"spaceToken","type":"address"},{"internalType":"contract IUserEntitlement","name":"userEntitlementImplementation","type":"address"},{"internalType":"contract IRuleEntitlement","name":"ruleEntitlementImplementation","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSpaceByTokenId","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"space","type":"address"}],"stateMutability":"view","type":"function","name":"getTokenIdBySpace","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract ISpaceOwner","name":"spaceToken","type":"address"},{"internalType":"contract IUserEntitlement","name":"userEntitlementImplementation","type":"address"},{"internalType":"contract IRuleEntitlement","name":"ruleEntitlementImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSpaceArchitectImplementations"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/factory/facets/architect/Architect.sol":"Architect"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/checker/IEntitlementChecker.sol":{"keccak256":"0xbeb7bfa236f19172b29eac53be03a3b377de3524b2d836192b0c64ebe708c204","urls":["bzz-raw://3d5a103a2b7b6be1ffa6662db6081763bcd210216fefc25307b835c555e0cf4d","dweb:/ipfs/QmUCvhZdZpVnyJuZVgd2qGduTf11384TmmBJb2RaEBHxhh"],"license":"MIT"},"contracts/src/diamond/facets/Facet.sol":{"keccak256":"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57","urls":["bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863","dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"],"license":"MIT"},"contracts/src/diamond/facets/initializable/Initializable.sol":{"keccak256":"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90","urls":["bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552","dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"],"license":"MIT"},"contracts/src/diamond/facets/initializable/InitializableStorage.sol":{"keccak256":"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a","urls":["bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4","dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionBase.sol":{"keccak256":"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f","urls":["bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1","dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol":{"keccak256":"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763","urls":["bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91","dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"],"license":"MIT"},"contracts/src/diamond/facets/ownable/IERC173.sol":{"keccak256":"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303","urls":["bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b","dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd"],"license":"MIT"},"contracts/src/diamond/facets/ownable/OwnableBase.sol":{"keccak256":"0x272abaecc104d5f23d77a623cf1548620d24b0f447eb2a12144e27561ff489f2","urls":["bzz-raw://fcb8c20ff7346bdc5dba82e6680cc0ea64087460a12153e3b6c3416f6addf875","dweb:/ipfs/QmfEEufJBzudSDekQteQkb3CzmnzUPT3GDhNgVpHNC9xaf"],"license":"MIT"},"contracts/src/diamond/facets/ownable/OwnableStorage.sol":{"keccak256":"0xda650482ce08c04110366cb01408aaabd01383d9c504b7cacfb2674aae688dcd","urls":["bzz-raw://694f42ffb353fccaa1eadf91dee3a3cee7253e3f357bcba2b175fd7be701e27e","dweb:/ipfs/QmPxxVerATSYrNLp7snnSvNVsbLPm1wzHULhBbtR333eik"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol":{"keccak256":"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816","urls":["bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb","dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol":{"keccak256":"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4","urls":["bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb","dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol":{"keccak256":"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479","urls":["bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf","dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F"],"license":"MIT"},"contracts/src/diamond/facets/pausable/IPausable.sol":{"keccak256":"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1","urls":["bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684","dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableBase.sol":{"keccak256":"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0","urls":["bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3","dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableStorage.sol":{"keccak256":"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f","urls":["bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd","dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/IReentrancyGuard.sol":{"keccak256":"0x89ad30ac5476efd023189fca20b13214fe5541ea5fff11760e00f229c62c896e","urls":["bzz-raw://fc04fb0c48333cb0f4b84b01e50498d60510d52495c3772f0bf632773ec47a7d","dweb:/ipfs/QmQUuYriat7eRRsPUHTeD2CDEwHzYxqW6qix7xf44kWByo"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/ReentrancyGuard.sol":{"keccak256":"0xb481ee6684d1589254563cb5c318b1eb75f6f15f96baecbd5f5e42b72b7a5003","urls":["bzz-raw://70e1bafcd0779c6241ee7716ae2058dd6f7d5a75bb211f5bfcb9aefa434228f8","dweb:/ipfs/QmSbsdGjL1be4VBjgWrk5CodWGvszXZt5HX32PxhvXTZ5Y"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/ReentrancyGuardStorage.sol":{"keccak256":"0xe4a08e5712446357756a6da7b65ae80845732dfebac180bd478caaf64dfc790e","urls":["bzz-raw://09f5691ae9aedbe094cc83a0e8a4272c4d6dd5f57e69fec5870b148f2d94395e","dweb:/ipfs/QmTLHQWuRp1L45oRV8oWWbk4Y4MMNYW1Rp9WUJ86gzVVRv"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol":{"keccak256":"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224","urls":["bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615","dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol":{"keccak256":"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62","urls":["bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba","dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol":{"keccak256":"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4","urls":["bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04","dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol":{"keccak256":"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782","urls":["bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d","dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz"],"license":"MIT"},"contracts/src/diamond/proxy/IProxy.sol":{"keccak256":"0x94506109e5e47fafba65c94f2d74d0c7860e5911fe90fbe3b49817afda3b2145","urls":["bzz-raw://969f73c692e96091ef4565e5e7f9d4114ce6d51a619a75f9b1a0703f737e4ceb","dweb:/ipfs/QmbohRzHyVrD36w3b7UdM1jqpPMViSx3DVCHWuXTLkG3bM"],"license":"MIT"},"contracts/src/diamond/proxy/Proxy.sol":{"keccak256":"0x9e3a60886852d03e7a09bd0daac7f524d9aebf7d26a19e6bd726ecb84404f9cd","urls":["bzz-raw://e469174f1f9e9a5afa47fd7e8fc0c64065704b2397eb187037a3a508da6fa90d","dweb:/ipfs/QmUQwmPLvo5yJ2aGz5JGGTL1AVUPbF1gK4nBBH6M49HBrD"],"license":"MIT"},"contracts/src/diamond/proxy/managed/IManagedProxy.sol":{"keccak256":"0xf064a056a73233ef207e7206ac910616210f6729147f29912bdb4abc69906d01","urls":["bzz-raw://befb3501cc4b180ed3c5b156bde2700a6de26f17e828bdb8e8ff9615268f91e1","dweb:/ipfs/QmP2qGhFpySb1efhpbRBXDxzxLjVTF2UmF2KRCM8hGrsPV"],"license":"MIT"},"contracts/src/diamond/proxy/managed/ManagedProxyBase.sol":{"keccak256":"0x0cc3fa005591526a9eaddc4111064685cf0d8fcbbcdf5d920dd751a038029552","urls":["bzz-raw://36eb108c5307d842cf1de83e5466affa2d70286e29fabce23e07c22a83c73203","dweb:/ipfs/QmY55RPvgjLMNeHN4vF2XzapzpQ1ffR7ozwQKkWsUWpjRp"],"license":"MIT"},"contracts/src/diamond/proxy/managed/ManagedProxyStorage.sol":{"keccak256":"0x2f09ac0009d994e8095003f5a95512b28d008613571861cb0ede96a6af532b1b","urls":["bzz-raw://d2160d94085d44c9cae45b051f680a82c865a856e3c7f1ac50c6b6c31243b206","dweb:/ipfs/QmXUzx5RKLmAFKgT1aygcpBmrWS5RzhEZT6fsS8YqdG68J"],"license":"MIT"},"contracts/src/diamond/proxy/manager/IProxyManager.sol":{"keccak256":"0x01f8bfb90685f0bc76eefc19f868b106c4acc098336874a751917858c54c1f7b","urls":["bzz-raw://766eba3ae42116b15d3d52e54a13dfd8229098e5e50b66145a9db39c6b94d64c","dweb:/ipfs/QmXsuwKLXLWPTDZH1UjCF2cRgn6fYr6qHLMY5nb6GWb8kP"],"license":"MIT"},"contracts/src/diamond/utils/multicall/IMulticall.sol":{"keccak256":"0x6dc9ea0a61c25be2ccf2812ae27c4044d2471b113862f242ef5d11fba1167ec1","urls":["bzz-raw://31d7c5626cb8817e9a638b42dac9d19eafdbb5e7db50a54a667bf9a8e469e0e8","dweb:/ipfs/Qmex9vaHpj8wPwG31Rvft9oXtdLeK1JRCrzgGSVMqszRGZ"],"license":"MIT"},"contracts/src/diamond/utils/multicall/Multicall.sol":{"keccak256":"0xd033d4a233fbfee42239cea898cfb995d1e3aa2585aee8def257703cd00a3b5b","urls":["bzz-raw://03cb097e17b5443b71058d028b3409db07a7ecad1d1edc360c72ed32cbd9c0dd","dweb:/ipfs/QmTbqyWToxcJynYhRBioTTPHucUExeEiriKekZ1vBToUpg"],"license":"MIT"},"contracts/src/factory/facets/architect/Architect.sol":{"keccak256":"0x546e407119ca047d99f622d77fe017f893e4148a0ab1b32938113815083204af","urls":["bzz-raw://f32d3dbaa7f2317db849eae44be1a1408abbb461e667ad08087ee220ac577888","dweb:/ipfs/Qmf4cmkXNY4Wh8vrk1S39LGr35JkHTR7Mdr4MXXETqt7fW"],"license":"MIT"},"contracts/src/factory/facets/architect/ArchitectBase.sol":{"keccak256":"0x4676216deb8678864044c22050d05c0860a6b0a9e324aa232167f88dbe79c0ad","urls":["bzz-raw://e16ca2c87ccf1fb7761694353586b1f712e29b2def92edbb2eb429792b08bfe4","dweb:/ipfs/QmbfsL35mBjHuq9bwMnhB9UdZ2dqpuopPNSDBYRf2ATkhP"],"license":"MIT"},"contracts/src/factory/facets/architect/ArchitectStorage.sol":{"keccak256":"0xc62e53da3472373306030cd9bb5621f895b5ebbab23ab5d03311c237fe3fb19c","urls":["bzz-raw://1bc61d6591c8c621fa635c988cdf10716037a0cbaed5fac650ed77af6c7d8561","dweb:/ipfs/QmVwXUiJppdHAU5STPsZjFFGqFNosjyxP5R2NJQSp3yTsd"],"license":"MIT"},"contracts/src/factory/facets/architect/IArchitect.sol":{"keccak256":"0xdc01eb58a1778852dc48091aa5e2155f13be6089a337ac4e5196a378ffbce195","urls":["bzz-raw://31fc4dc1923f3484729151de58f0a43839ce4b65d846b0aa2dd8f4416914e714","dweb:/ipfs/QmNb5NiKSHwkmHb6hWNhu9GnPaEFJGdUMy4Tzv4KDmap1u"],"license":"MIT"},"contracts/src/factory/facets/architect/ImplementationStorage.sol":{"keccak256":"0x539f0fc6ea9638bf9db3ec27511ee3775671ac0a538ff341563e3518468a8907","urls":["bzz-raw://5b904a1779579e3facc6d9b27a007deb35dce71403ca6d27d63a3d3906fcf9de","dweb:/ipfs/Qmab9yzwbmRy5znzDVZ5kTT98j4EkkaZ8bRoFizdwiHy4S"],"license":"MIT"},"contracts/src/factory/facets/architect/pricing/IPricingModules.sol":{"keccak256":"0xa45fcd2bb5037c0b9b80bb02a3a4bd00fa99598a8d9e0a5ee2dff7a04c670171","urls":["bzz-raw://15f95100f32791a9aa2e3cc47fb9cd58542e9250834bfc38756012cc4baaa786","dweb:/ipfs/QmYGPF6HQLoq5bCgMYW1AyT2Vz1H12Lt8LDdmzTadN5Ppm"],"license":"MIT"},"contracts/src/factory/facets/platform/requirements/IPlatformRequirements.sol":{"keccak256":"0xd1c61d42973382822d0b8256b5d308ad693dfa59240864cce0bec1bd4208e4c6","urls":["bzz-raw://bff6d50557810f7aa9de451f6ac2b279fe5983eefc0b38ef8be7ebb2ffde0f86","dweb:/ipfs/QmS6DXYXtPTfePgtrUxH1vmPycsVoumBQRJZugjGButowT"],"license":"MIT"},"contracts/src/factory/facets/registry/IImplementationRegistry.sol":{"keccak256":"0xb447f7654cd152c29718c95983b62e390a59658d7d1a22b97f79d0aee9fb5de7","urls":["bzz-raw://756a9a38364c01937088ba927f09af2726d2df207eea4e0e2842e3fc66ccd32c","dweb:/ipfs/QmbxBRXgtkEQsGtxq1uSM6vX38FkjPq6tpodCdtBmdEmXA"],"license":"MIT"},"contracts/src/factory/facets/wallet-link/IWalletLink.sol":{"keccak256":"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee","urls":["bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0","dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5"],"license":"MIT"},"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":{"keccak256":"0x28650d058077713dfc28d5c613998d9f1e895a6f5f6b0d93467d25455fc3ea1d","urls":["bzz-raw://e2446b7958f8b5f2713860e2826acf1b123c6b24719f844c7811d1e3f5a87c86","dweb:/ipfs/Qmesso9ftmVUCHi6w2gkJs9tEjGG5ZZgqhAenkyTDgFPC2"],"license":"MIT"},"contracts/src/spaces/entitlements/user/IUserEntitlement.sol":{"keccak256":"0x573a718650f7088b84fe0bc6ec0b85c354c58c842691c66b2e682912455161c9","urls":["bzz-raw://5b41f88dd0e806b3f61b72f340dbdc53710827b1c8de9bcba6ba11fd1f8ae25a","dweb:/ipfs/QmZZtrWAgx3aLFA2dXuoHtujBqEuxAkHZkMP4FdmEAcQRx"],"license":"MIT"},"contracts/src/spaces/facets/Permissions.sol":{"keccak256":"0xaeec9c70d231be9debb15660bf6939746532d0012c80d5518e8207dd33653de2","urls":["bzz-raw://bab7c5dd8f55f03f48d3908b8d6732b3e2d93f36312a0c3408ff10be258c165a","dweb:/ipfs/QmevmAc6tzP3kFoH84cRtipSq4ryqbrP3H4VB8mRZgnRxn"],"license":"MIT"},"contracts/src/spaces/facets/channels/IChannel.sol":{"keccak256":"0x8f461ec8c49234f27257fc5cf20dd5e9fdb4692d9b17075be63e8ee6db854554","urls":["bzz-raw://52673312b7dfe3fa2b0e8b603a368036f3b428b303f9e539b558ccfdf5490b54","dweb:/ipfs/Qme3LoUvB1Axz9ZJZ8Erv6Cw6GLPQB7PNghMQ3FUYfA4VV"],"license":"MIT"},"contracts/src/spaces/facets/entitlements/IEntitlementsManager.sol":{"keccak256":"0x3be8ab93ad7f1417c0b0f6aa3f74dca36034464085d40fd2e94f3b31ff5be03d","urls":["bzz-raw://4e97436fca686896a1ffc56dd64f58997775bef504e0568c62ba4d103a99939c","dweb:/ipfs/QmWn5wvuuEFDhnqXJcJVb69ndDmhUMXWdUGYKR2VBfLsEw"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGatedBase.sol":{"keccak256":"0xcefa5c3c81c73fefaa7da433ddd5c419dc4c31cd86e8c31f47894663ca7269e8","urls":["bzz-raw://27fe60a48a69d5be67fdf17f5aac1e90ef0234da564ec4f6e2cbfe53fbb9ba0c","dweb:/ipfs/QmPemsjAUmjjjyLWbHzVmqLxyBAN7CFi6DViy9uQEM3wjt"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol":{"keccak256":"0xb058672a61d2742e8232232cc66f052443d82beb8b2cdc681f10c23a49351b84","urls":["bzz-raw://f39d39a3bd3e39c2f6a5b21b82a7339176c163d82335f901a64c57dd73ffa5a3","dweb:/ipfs/QmP8RmYv79xX8hLmrvjfceW9mdRYCYxMaxpywRpR281tMo"],"license":"MIT"},"contracts/src/spaces/facets/gated/IEntitlementGated.sol":{"keccak256":"0x948de1018f7f78366263a40e0f8269e10941216bd03a9996edb24a6230959e74","urls":["bzz-raw://dc985539ce639f39fd68723acca6424a78deac6cec3693c9d8e1084a487c83ec","dweb:/ipfs/QmQujX5rmDwhJZurp11FTiPLb7ev9swLTtdkagA8wydZiT"],"license":"MIT"},"contracts/src/spaces/facets/membership/IMembership.sol":{"keccak256":"0x7fbf37c681ae95610ed376a30d68808b9da602a3225dbe1724dfe7c1c82de672","urls":["bzz-raw://afa8d56cca2d01883595cfbd1a6aa3b63202ed25fb56ac1e57d3cf645665dd77","dweb:/ipfs/QmbLF87ZZCovJn3enbs78mcJu39zXi8FYum72fTufZt3e4"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipBase.sol":{"keccak256":"0x4f42c9176fb345d3da7825e0045e57707396d52bb8e208c81ed81e9d76bd90eb","urls":["bzz-raw://1fac0c230acd543d90c1b88174e3dcdc9a135e7217741a32580b250941ad30bf","dweb:/ipfs/QmXaLoyaFmomPPZCcJiY3dzsRjZiWoVkNdKtDa67vh16CR"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipStorage.sol":{"keccak256":"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0","urls":["bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a","dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa"],"license":"MIT"},"contracts/src/spaces/facets/membership/pricing/IMembershipPricing.sol":{"keccak256":"0x9e3b6766b92d0e48b4b23a024f9622923f30d90f6f8673ded81e423171ec30c4","urls":["bzz-raw://e6f76b6045a8c6eeb24d6a9a42f82495cb1cb125dd90921d16a949b00a6f52dc","dweb:/ipfs/QmPbRy4sAabTkEnZBoubzPqH2ycPevEzcEJ4NYJsCWmTFF"],"license":"MIT"},"contracts/src/spaces/facets/owner/ISpaceOwner.sol":{"keccak256":"0x75fef729920165a9cc37f7c212da288bc983bb11e39544a59c657cd9fa2e204a","urls":["bzz-raw://1baac2d168e5ee3269b0b6b59ce7df29e63c38ef3d484850ed05f0a56ab59464","dweb:/ipfs/QmZPxAByZ4PiQFUq45AM8LEJ2YC6n8XxE6nRHgf8Kg7nxZ"],"license":"MIT"},"contracts/src/spaces/facets/prepay/IPrepay.sol":{"keccak256":"0x4cc23cd204f20bd4a094d9292aaa494f73478d27c8f59e646454cbba11d781fa","urls":["bzz-raw://4f54c224f56396ac03335c95c4808acbeec6366f0c475d29edb2461cd53bcd15","dweb:/ipfs/QmdDKUR8VVXJuR5Fj29SZxvR9GwxXeNQ6rtAT3TxX8VjwT"],"license":"MIT"},"contracts/src/spaces/facets/proxy/SpaceProxy.sol":{"keccak256":"0x0abbcfe10500b16399e91aefced93c460a0916e43738b06701c6994aff0e7c4f","urls":["bzz-raw://074691333cc1da44a2768dcd7c6d8ec62cf119449114e1cde7516285cccfed7b","dweb:/ipfs/QmQ7bwLuNgHpnPGbzMH9CNtG8ap4neP6pwEGmVJT5nrD8J"],"license":"MIT"},"contracts/src/spaces/facets/roles/IRoles.sol":{"keccak256":"0xa69cfbcd989b8794187a56a93deffbefaee8ca456e381ce30f85897893c50272","urls":["bzz-raw://cf8e9b2711f66eefb949f5b5ead4d72005f1845cd63f22b287fdba3339101bd4","dweb:/ipfs/Qmf7sPY4BgmvZf7p4GBsyVyd4o66yJXMgAmEgpdQAQyBdx"],"license":"MIT"},"contracts/src/utils/Factory.sol":{"keccak256":"0x150045213e6284abce967c3f6abc8989952d181c43540acf92709486aebec3ce","urls":["bzz-raw://282730a1c005f83c5eb11d2f19ca5a8c2ab1bba4e4a403eb651f6a232a874791","dweb:/ipfs/QmcPLz1uWkCukNsSwu69i8BVmjF7g9pg47cAmD3swaaFTY"],"license":"MIT"},"contracts/src/utils/StringSet.sol":{"keccak256":"0x2b9880e846f275864e847e8c7079d29a02c4a060c5a9d580fb153ff0e7b49ff6","urls":["bzz-raw://df9c170f28318746eab23befba1318735652c7d198e273a322a0ff2702680605","dweb:/ipfs/QmanQQi9YiPHb9Cn4wpfQ9VYUi7UZ9iQibLL6V46JPibLu"],"license":"MIT"},"contracts/src/utils/Validator.sol":{"keccak256":"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f","urls":["bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306","dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt"],"license":"MIT"},"contracts/src/utils/interfaces/IWETH.sol":{"keccak256":"0xb0a9a284b02664b2ceda4ed7cc8e7dbdd39cc09292b65b97a3417ba5b1440dd0","urls":["bzz-raw://701edb4dbdb8ab50ed2fdb568cc0956c07184e1f4e7d63854efc158408fa72a5","dweb:/ipfs/QmV58ikDDcTC92hGEuQKerfsygnPg5cwCVLuMh9R9uYXb6"],"license":"MIT"},"contracts/src/utils/libraries/BasisPoints.sol":{"keccak256":"0xfaa5790726afc20e29f2a00e67693a59ae85a045beaa95f8f58bcbcef01ed87b","urls":["bzz-raw://a2da5e15739fc7093ea7b935c6542f7c01d9c33843a3d1a1d8895db404f8160e","dweb:/ipfs/QmYVUkSh3QX7u9rnKfqLeb9Rh8tko5Q3Gpry6KnhTRF58L"],"license":"MIT"},"contracts/src/utils/libraries/CurrencyTransfer.sol":{"keccak256":"0x3242d518aedc3ca9a49fb4221de4596ee219b9569abf0548d28dbbecd569a336","urls":["bzz-raw://c2260078d61b0ee998b54f60c4db4bc8e8a9afdf351018a343c82fa984aca88d","dweb:/ipfs/QmT83nFPb4JzsWCPf9j58xTsaDvuMmq5MH1z8GrEWtBLcx"],"license":"MIT"},"lib/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec","urls":["bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c","dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV"],"license":"MIT"},"lib/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/@openzeppelin/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":151} \ No newline at end of file +{"abi":[{"type":"function","name":"__Architect_init","inputs":[{"name":"ownerImplementation","type":"address","internalType":"contract ISpaceOwner"},{"name":"userEntitlementImplementation","type":"address","internalType":"contract IUserEntitlement"},{"name":"ruleEntitlementImplementation","type":"address","internalType":"contract IRuleEntitlement"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createSpace","inputs":[{"name":"spaceInfo","type":"tuple","internalType":"struct IArchitectBase.SpaceInfo","components":[{"name":"name","type":"string","internalType":"string"},{"name":"uri","type":"string","internalType":"string"},{"name":"membership","type":"tuple","internalType":"struct IArchitectBase.Membership","components":[{"name":"settings","type":"tuple","internalType":"struct IMembershipBase.Membership","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"maxSupply","type":"uint256","internalType":"uint256"},{"name":"duration","type":"uint64","internalType":"uint64"},{"name":"currency","type":"address","internalType":"address"},{"name":"feeRecipient","type":"address","internalType":"address"},{"name":"freeAllocation","type":"uint256","internalType":"uint256"},{"name":"pricingModule","type":"address","internalType":"address"}]},{"name":"requirements","type":"tuple","internalType":"struct IArchitectBase.MembershipRequirements","components":[{"name":"everyone","type":"bool","internalType":"bool"},{"name":"users","type":"address[]","internalType":"address[]"},{"name":"ruleData","type":"tuple","internalType":"struct IRuleEntitlementBase.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlementBase.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}]},{"name":"permissions","type":"string[]","internalType":"string[]"}]},{"name":"channel","type":"tuple","internalType":"struct IArchitectBase.ChannelInfo","components":[{"name":"metadata","type":"string","internalType":"string"}]},{"name":"shortDescription","type":"string","internalType":"string"},{"name":"longDescription","type":"string","internalType":"string"}]}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"getSpaceArchitectImplementations","inputs":[],"outputs":[{"name":"spaceToken","type":"address","internalType":"contract ISpaceOwner"},{"name":"userEntitlementImplementation","type":"address","internalType":"contract IUserEntitlement"},{"name":"ruleEntitlementImplementation","type":"address","internalType":"contract IRuleEntitlement"}],"stateMutability":"view"},{"type":"function","name":"getSpaceByTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTokenIdBySpace","inputs":[{"name":"space","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"setSpaceArchitectImplementations","inputs":[{"name":"spaceToken","type":"address","internalType":"contract ISpaceOwner"},{"name":"userEntitlementImplementation","type":"address","internalType":"contract IUserEntitlement"},{"name":"ruleEntitlementImplementation","type":"address","internalType":"contract IRuleEntitlement"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"InterfaceAdded","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"InterfaceRemoved","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SpaceCreated","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"space","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"Architect__InvalidAddress","inputs":[]},{"type":"error","name":"Architect__InvalidNetworkId","inputs":[]},{"type":"error","name":"Architect__InvalidStringLength","inputs":[]},{"type":"error","name":"Architect__NotContract","inputs":[]},{"type":"error","name":"Factory__FailedDeployment","inputs":[]},{"type":"error","name":"Initializable_InInitializingState","inputs":[]},{"type":"error","name":"Initializable_NotInInitializingState","inputs":[]},{"type":"error","name":"Introspection_AlreadySupported","inputs":[]},{"type":"error","name":"Introspection_NotSupported","inputs":[]},{"type":"error","name":"Ownable__NotOwner","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Ownable__ZeroAddress","inputs":[]},{"type":"error","name":"Pausable__NotPaused","inputs":[]},{"type":"error","name":"Pausable__Paused","inputs":[]},{"type":"error","name":"ReentrancyGuard__ReentrantCall","inputs":[]},{"type":"error","name":"Validator__InvalidAddress","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001961001e565b6100c4565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff161561006a576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156100c157805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b613be880620000d46000396000f3fe60806040523480156200001157600080fd5b50600436106200006a5760003560e01c8063545efb2d146200006f578063673f0dd514620000a85780638bfc94b914620000d8578063c0bc679614620000f1578063dc1b9f231462000117578063ef009225146200012e575b600080fd5b6200007962000145565b604080516001600160a01b03948516815292841660208401529216918101919091526060015b60405180910390f35b620000bf620000b93660046200129d565b620001c2565b6040516001600160a01b0390911681526020016200009f565b620000ef620000e9366004620012cd565b62000200565b005b62000108620001023660046200132c565b62000263565b6040519081526020016200009f565b620000ef62000128366004620012cd565b620002a1565b620000bf6200013f36600462001b21565b620002ec565b6000806000620001b760008051602062003bc8833981519152547f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d01547f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d02546001600160a01b0392831693918316921690565b925092509250909192565b60008181527f06bd04a817647c31ee485c8a0baab96facd62dbfd4b475796bb17ca2c12f000260205260408120546001600160a01b03165b92915050565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b0316331462000251576040516365f4906560e01b815233600482015260240160405180910390fd5b6200025e838383620003db565b505050565b6001600160a01b03811660009081527f06bd04a817647c31ee485c8a0baab96facd62dbfd4b475796bb17ca2c12f00016020526040812054620001fa565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff166200025157604051630ef4733760e31b815260040160405180910390fd5b600060027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0054036200033157604051635db5c7cd60e11b815260040160405180910390fd5b6200035b60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b7fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff16156200039f576040516302ca8ced60e11b815260040160405180910390fd5b620003aa82620004ea565b9050620003d660017f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b919050565b826001600160a01b03163b60000362000407576040516302f3d00b60e01b815260040160405180910390fd5b816001600160a01b03163b60000362000433576040516302f3d00b60e01b815260040160405180910390fd5b806001600160a01b03163b6000036200045f576040516302f3d00b60e01b815260040160405180910390fd5b60008051602062003bc883398151915280546001600160a01b039485166001600160a01b0319918216179091557f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d018054938516938216939093179092557f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d028054919093169116179055565b60008051602062003bc8833981519152805460408051631d5e528f60e21b815290516000937f06bd04a817647c31ee485c8a0baab96facd62dbfd4b475796bb17ca2c12f000093909285926001600160a01b03909216916375794a3c916004808201926020929091908290030181865afa1580156200056d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000593919062001c58565b9050620005a581866040015162000899565b8354909450836000620005b88362001c72565b90915550506000818152600284016020908152604080832080546001600160a01b0319166001600160a01b03898116918217909255845260018701835292819020849055845488519289015160808a015160a08b01519351630efd6e3d60e21b81529290951694633bf5b8f494620006399490938b92919060040162001cee565b6020604051808303816000875af115801562000659573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200067f919062001c58565b5060018201546000906200069d906001600160a01b031686620008c3565b6002840154909150600090620006bd906001600160a01b031687620008c3565b60408051600280825260608201835292935060009290916020830190803683370190505090508281600081518110620006fa57620006fa62001d5e565b60200260200101906001600160a01b031690816001600160a01b031681525050818160018151811062000731576200073162001d5e565b6001600160a01b039283166020918202929092010152604051638bfc820f60e01b815290881690638bfc820f906200076e90849060040162001d74565b600060405180830381600087803b1580156200078957600080fd5b505af11580156200079e573d6000803e3d6000fd5b50505050620007b88784848b604001516020015162000980565b50604080890151805151910151600091620007d7918a91908762000db3565b9050620007ea88828b6060015162000f43565b8554604051632142170760e11b8152306004820152336024820152604481018790526001600160a01b03909116906342842e0e90606401600060405180830381600087803b1580156200083c57600080fd5b505af115801562000851573d6000803e3d6000fd5b50506040516001600160a01b038b16925087915033907fe50fc3942f8a2d7e5a7c8fb9488499eba5255b41e18bc3f1b4791402976d1d0b90600090a450505050505050919050565b6000806000620008aa858562001044565b91509150620008ba8282620011e1565b95945050505050565b60008060405180602001620008d89062001281565b601f1982820381018352601f9091011660408190526001600160a01b0385166024820152859060440160408051601f19818403018152918152602080830180516001600160e01b031663189acdbd60e31b17905290516200093c9392910162001dc3565b60408051601f19818403018152908290526200095c929160200162001de9565b604051602081830303815290604052905062000978816200121c565b949350505050565b604080516001808252818301909252600091829190816020015b60608152602001906001900390816200099a579050509050604051806040016040528060098152602001684a6f696e537061636560b81b81525081600081518110620009ea57620009ea62001d5e565b6020026020010181905250856001600160a01b0316638fcd793d6040518060400160405280600681526020016526b4b73a32b960d11b8152508360006001600160401b0381111562000a405762000a4062001353565b60405190808252806020026020018201604052801562000a8857816020015b60408051808201909152600081526060602082015281526020019060019003908162000a5f5790505b506040518463ffffffff1660e01b815260040162000aa99392919062001e45565b6020604051808303816000875af115801562000ac9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aef919062001c58565b83519092501562000bfd576040805160018082528183019092526000916020808301908036833701905050905060018160008151811062000b345762000b3462001d5e565b60200260200101906001600160a01b031690816001600160a01b031681525050866001600160a01b031663ba201ba88460405180604001604052808a6001600160a01b031681526020018560405160200162000b91919062001d74565b6040516020818303038152906040528152506040518363ffffffff1660e01b815260040162000bc292919062001f17565b600060405180830381600087803b15801562000bdd57600080fd5b505af115801562000bf2573d6000803e3d6000fd5b505050505062000daa565b6020830151511562000cf65760005b83602001515181101562000c4e5762000c458460200151828151811062000c375762000c3762001d5e565b602002602001015162001256565b60010162000c0c565b50856001600160a01b031663ba201ba8836040518060400160405280896001600160a01b03168152602001876020015160405160200162000c90919062001d74565b6040516020818303038152906040528152506040518363ffffffff1660e01b815260040162000cc192919062001f17565b600060405180830381600087803b15801562000cdc57600080fd5b505af115801562000cf1573d6000803e3d6000fd5b505050505b604083015151511562000daa57856001600160a01b031663ba201ba8836040518060400160405280886001600160a01b03168152602001876040015160405160200162000d4491906200202f565b6040516020818303038152906040528152506040518363ffffffff1660e01b815260040162000d7592919062001f17565b600060405180830381600087803b15801562000d9057600080fd5b505af115801562000da5573d6000803e3d6000fd5b505050505b50949350505050565b6040805160018082528183019092526000918291906020808301908036833701905050905060018160008151811062000df05762000df062001d5e565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b60408051808201909152600081526060602082015281526020019060019003908162000e20579050509050838160008151811062000e625762000e6262001d5e565b6020908102919091018101516001600160a01b0390921690915260405162000e8d9184910162001d74565b6040516020818303038152906040528160008151811062000eb25762000eb262001d5e565b6020908102919091018101510152604051638fcd793d60e01b81526001600160a01b03881690638fcd793d9062000ef29089908990869060040162001e45565b6020604051808303816000875af115801562000f12573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f38919062001c58565b979650505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811062000f7c5762000f7c62001d5e565b602090810291909101810191909152604051600160fd1b918101919091526bffffffffffffffffffffffff19606086901b16602182015260009060350160405160208183030381529060405262000fd390620020da565b835160405163921f717560e01b81529192506001600160a01b0387169163921f7175916200100991859190879060040162002102565b600060405180830381600087803b1580156200102457600080fd5b505af115801562001039573d6000803e3d6000fd5b505050505050505050565b606060008060008051602062003bc883398151915260408051336020820152908101879052426060820152909150608001604051602081830303815290604052805190602001209150604051806020016200109f906200128f565b601f19828203810183526040601f90920116818101825263dc9cc64560e01b8152306020828101919091528251808401845285546001600160a01b0390811682528183018b90528451610120810186528a515181528a518401519381019390935289518501519483019490945288516060908101519083015288516080908101516001600160401b031690830152885160a090810151851690830152885160c09081015133959293929183019116156200115f57895160c0015162001161565b335b6001600160a01b03168152602001896000015160e001518152602001896000015161010001516001600160a01b0316815250604051602001620011a8949392919062002163565b60408051601f1981840301815290829052620011c8929160200162001de9565b6040516020818303038152906040529250509250929050565b60008260200183518381836000f59250506001600160a01b0382169050620001fa5760405163ef35ca1960e01b815260040160405180910390fd5b600081602001825180826000f09250506001600160a01b0382169050620003d65760405163ef35ca1960e01b815260040160405180910390fd5b6001600160a01b0381166200127e576040516302e47d1560e41b815260040160405180910390fd5b50565b6103d4806200225f83390190565b611595806200263383390190565b600060208284031215620012b057600080fd5b5035919050565b6001600160a01b03811681146200127e57600080fd5b600080600060608486031215620012e357600080fd5b8335620012f081620012b7565b925060208401356200130281620012b7565b915060408401356200131481620012b7565b809150509250925092565b8035620003d681620012b7565b6000602082840312156200133f57600080fd5b81356200134c81620012b7565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156200138e576200138e62001353565b60405290565b604051606081016001600160401b03811182821017156200138e576200138e62001353565b604080519081016001600160401b03811182821017156200138e576200138e62001353565b60405161012081016001600160401b03811182821017156200138e576200138e62001353565b60405160c081016001600160401b03811182821017156200138e576200138e62001353565b604051601f8201601f191681016001600160401b038111828210171562001454576200145462001353565b604052919050565b600082601f8301126200146e57600080fd5b81356001600160401b038111156200148a576200148a62001353565b6200149f601f8201601f191660200162001429565b818152846020838601011115620014b557600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160401b0381168114620003d657600080fd5b60006001600160401b0382111562001506576200150662001353565b5060051b60200190565b600381106200127e57600080fd5b803560ff81168114620003d657600080fd5b600082601f8301126200154257600080fd5b813560206200155b6200155583620014ea565b62001429565b82815260079290921b840181019181810190868411156200157b57600080fd5b8286015b84811015620015ed57608081890312156200159a5760008081fd5b620015a462001369565b813560068110620015b55760008081fd5b81528185013585820152604080830135620015d081620012b7565b90820152606082810135908201528352918301916080016200157f565b509695505050505050565b600082601f8301126200160a57600080fd5b813560206200161d6200155583620014ea565b828152606092830285018201928282019190878511156200163d57600080fd5b8387015b85811015620016a65781818a0312156200165b5760008081fd5b6200166562001394565b8135620016728162001510565b8152620016818287016200151e565b868201526040620016948184016200151e565b90820152845292840192810162001641565b5090979650505050505050565b600060608284031215620016c657600080fd5b620016d062001394565b905081356001600160401b0380821115620016ea57600080fd5b818401915084601f830112620016ff57600080fd5b81356020620017126200155583620014ea565b82815260069290921b840181019181810190888411156200173257600080fd5b948201945b838610156200178f576040868a031215620017525760008081fd5b6200175c620013b9565b8635620017698162001510565b8152620017788785016200151e565b818501528252604095909501949082019062001737565b86525085810135935082841115620017a657600080fd5b620017b48785880162001530565b90850152506040840135915080821115620017ce57600080fd5b50620017dd84828501620015f8565b60408301525092915050565b600060608284031215620017fc57600080fd5b6200180662001394565b9050813580151581146200181957600080fd5b81526020828101356001600160401b03808211156200183757600080fd5b818501915085601f8301126200184c57600080fd5b81356200185d6200155582620014ea565b81815260059190911b830184019084810190888311156200187d57600080fd5b938501935b82851015620018a85784356200189881620012b7565b8252938501939085019062001882565b80868801525050506040850135925080831115620018c557600080fd5b5050620017dd84828501620016b3565b600082601f830112620018e757600080fd5b81356020620018fa6200155583620014ea565b82815260059290921b840181019181810190868411156200191a57600080fd5b8286015b84811015620015ed5780356001600160401b038111156200193f5760008081fd5b6200194f8986838b01016200145c565b8452509183019183016200191e565b6000606082840312156200197157600080fd5b6200197b62001394565b905081356001600160401b03808211156200199557600080fd5b908301906101208286031215620019ab57600080fd5b620019b5620013de565b823582811115620019c557600080fd5b620019d3878286016200145c565b825250602083013582811115620019e957600080fd5b620019f7878286016200145c565b602083015250604083013560408201526060830135606082015262001a1f60808401620014d2565b608082015262001a3260a084016200131f565b60a082015262001a4560c084016200131f565b60c082015260e083013560e082015261010062001a648185016200131f565b908201528352602084013591508082111562001a7f57600080fd5b62001a8d85838601620017e9565b6020840152604084013591508082111562001aa757600080fd5b50620017dd84828501620018d5565b60006020828403121562001ac957600080fd5b604051602081016001600160401b03828210818311171562001aef5762001aef62001353565b81604052829350843591508082111562001b0857600080fd5b5062001b17858286016200145c565b8252505092915050565b60006020828403121562001b3457600080fd5b81356001600160401b038082111562001b4c57600080fd5b9083019060c0828603121562001b6157600080fd5b62001b6b62001404565b82358281111562001b7b57600080fd5b62001b89878286016200145c565b82525060208301358281111562001b9f57600080fd5b62001bad878286016200145c565b60208301525060408301358281111562001bc657600080fd5b62001bd4878286016200195e565b60408301525060608301358281111562001bed57600080fd5b62001bfb8782860162001ab6565b60608301525060808301358281111562001c1457600080fd5b62001c22878286016200145c565b60808301525060a08301358281111562001c3b57600080fd5b62001c49878286016200145c565b60a08301525095945050505050565b60006020828403121562001c6b57600080fd5b5051919050565b60006001820162001c9357634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b8381101562001cb757818101518382015260200162001c9d565b50506000910152565b6000815180845262001cda81602086016020860162001c9a565b601f01601f19169290920160200192915050565b60a08152600062001d0360a083018862001cc0565b828103602084015262001d17818862001cc0565b6001600160a01b03871660408501528381036060850152905062001d3c818662001cc0565b9050828103608084015262001d52818562001cc0565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101562001db75783516001600160a01b03168352928401929184019160010162001d90565b50909695505050505050565b6001600160a01b0383168152604060208201819052600090620009789083018462001cc0565b6000835162001dfd81846020880162001c9a565b83519083019062001e1381836020880162001c9a565b01949350505050565b60018060a01b038151168252600060208201516040602085015262000978604085018262001cc0565b60608152600062001e5a606083018662001cc0565b6020838203818501528186518084528284019150828160051b85010183890160005b8381101562001eae57601f1987840301855262001e9b83835162001cc0565b9486019492509085019060010162001e7c565b50508681036040880152875180825284820195509250600583901b81018401915083880160005b8481101562001f0757601f1983850301875262001ef484835162001e1c565b9686019693509085019060010162001ed5565b50919a9950505050505050505050565b82815260406020820152600062000978604083018462001e1c565b634e487b7160e01b600052602160045260246000fd5b600381106200127e576200127e62001f32565b60008151808452602080850194506020840160005b8381101562001fca57815180516006811062001f905762001f9062001f32565b885280840151848901526040808201516001600160a01b031690890152606090810151908801526080909601959082019060010162001f70565b509495945050505050565b60008151808452602080850194506020840160005b8381101562001fca5781518051620020028162001f48565b88528084015160ff908116858a015260409182015116908801526060909601959082019060010162001fea565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156200208f57835180516200206c8162001f48565b835285015160ff1685830152928401926001929092019160409091019062002054565b50838701519350601f19925082868203016040870152620020b1818562001f5b565b93505050604085015181858403016060860152620020d0838262001fd5565b9695505050505050565b80516020808301519190811015620020fc576000198160200360031b1b821691505b50919050565b83815260006020606060208401526200211f606084018662001cc0565b83810360408501528451808252602080870192019060005b81811015620021555783518352928401929184019160010162002137565b509098975050505050505050565b600060018060a01b03808716835263ffffffff60e01b8651166020840152806020870151166040840152808551166060840152506020840151608083015260c060a083015282516101208060c0850152620021c36101e085018362001cc0565b9150602085015160bf198584030160e0860152620021e2838262001cc0565b9250506040850151610100818187015260608701518387015260808701519250620022196101408701846001600160401b03169052565b60a08701516001600160a01b0390811661016088015260c0880151811661018088015260e08801516101a0880152908701519081166101c08701529150620015ed905056fe60806040526040516103d43803806103d483398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6074806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fd60806040523480156200001157600080fd5b506040516200159538038062001595833981016040819052620000349162000cec565b6200003e62000160565b620000a58380517f9c16cba5b9f2fcbd952b38bec34079e93cbe107475c15fc20705f4e704198a0080546020909301516001600160a01b03166001600160a01b031960e09390931c600160a01b02929092166001600160c01b031990931692909217179055565b81517fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60080546001600160a01b0319166001600160a01b0390921691909117905560208201517fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60155805160208201516200011f919062000174565b62000135818460200151620001cb60201b60201c565b6200014284600162000381565b6200014c620003a7565b620001566200047c565b5050505062000ff5565b620001726301ffc9a760e01b620004d1565b565b600080516020620015158339815191527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df02620001b1848262000e52565b5060038101620001c2838262000e52565b50600090555050565b6000805160206200153583398151915280546001600160a01b038381166001600160a01b0319928316179092556101008401517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608805491909316908216179091557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb604805490911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee17905560608201517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035560e08201517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb607819055600080516020620015758339815191529015620002e15760e0830151620002e190620005b1565b610100830151620002f2906200065f565b6040830151156200037c5760408301516200030d9062000731565b600881015460408085015190516391b7f5ed60e01b81526001600160a01b03909216916391b7f5ed91620003479160040190815260200190565b600060405180830381600087803b1580156200036257600080fd5b505af115801562000377573d6000803e3d6000fd5b505050505b505050565b620003a3828260405180602001604052806000815250620007dc60201b60201c565b5050565b60007f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00905060006000805160206200157583398151915260060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa15801562000437573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045d919062000f1e565b82546001600160a01b0319166001600160a01b03919091161790915550565b6200048e6380ac58cd60e01b620004d1565b620004a0635b5e139f60e01b620004d1565b620004b2638c65f84d60e01b620004d1565b620004c46307f5828d60e41b620004d1565b620001726322fa1fe560e21b5b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16151560011462000560576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff1916600117905562000579565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b600080516020620015358339815191525460408051632cbb9d1360e01b8152905160008051602062001575833981519152926001600160a01b031691632cbb9d139160048083019260209291908290030181865afa15801562000618573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200063e919062000f43565b821115620003a35760405163c3983b9160e01b815260040160405180910390fd5b6001600160a01b0381166200068757604051630e88bf4b60e01b815260040160405180910390fd5b60008051602062001535833981519152546001600160a01b03166040516346fc05eb60e11b81526001600160a01b0383811660048301529190911690638df80bd690602401602060405180830381865afa158015620006ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000710919062000f5d565b6200072e57604051630e88bf4b60e01b815260040160405180910390fd5b50565b60006200075460008051602062001535833981519152546001600160a01b031690565b6001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000792573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007b8919062000f43565b905080821015620003a357604051631a23d64760e11b815260040160405180910390fd5b620007e883836200086e565b6001600160a01b0383163b156200037c5760008051602062001515833981519152548281035b60018101906200082490600090879086620009a8565b62000842576040516368d2bf6b60e11b815260040160405180910390fd5b8181106200080e57816000805160206200151583398151915254146200086757600080fd5b5050505050565b60008051602062001515833981519152546000829003620008a25760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b17831790558284019083908390600080516020620015558339815191528180a4600183015b8181146200096f578083600060008051602062001555833981519152600080a460010162000946565b50816000036200099157604051622e076360e81b815260040160405180910390fd5b600080516020620015158339815191525550505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290620009df90339089908890889060040162000f81565b6020604051808303816000875af192505050801562000a1d575060408051601f3d908101601f1916820190925262000a1a9181019062000fd7565b60015b62000a7f573d80801562000a4e576040519150601f19603f3d011682016040523d82523d6000602084013e62000a53565b606091505b50805160000362000a77576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b80516001600160a01b038116811462000ab457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171562000af55762000af562000ab9565b60405290565b604080519081016001600160401b038111828210171562000af55762000af562000ab9565b80516001600160e01b03198116811462000ab457600080fd5b60005b8381101562000b5657818101518382015260200162000b3c565b50506000910152565b600082601f83011262000b7157600080fd5b81516001600160401b038082111562000b8e5762000b8e62000ab9565b604051601f8301601f19908116603f0116810190828211818310171562000bb95762000bb962000ab9565b8160405283815286602085880101111562000bd357600080fd5b62000be684602083016020890162000b39565b9695505050505050565b80516001600160401b038116811462000ab457600080fd5b6000610120828403121562000c1c57600080fd5b62000c2662000acf565b82519091506001600160401b038082111562000c4157600080fd5b62000c4f8583860162000b5f565b8352602084015191508082111562000c6657600080fd5b5062000c758482850162000b5f565b602083015250604082015160408201526060820151606082015262000c9d6080830162000bf0565b608082015262000cb060a0830162000a9c565b60a082015262000cc360c0830162000a9c565b60c082015260e082015160e082015261010062000ce281840162000a9c565b9082015292915050565b60008060008084860360c081121562000d0457600080fd5b62000d0f8662000a9c565b94506040601f198201121562000d2457600080fd5b62000d2e62000afb565b62000d3c6020880162000b20565b815262000d4c6040880162000a9c565b602082015293506040605f198201121562000d6657600080fd5b5062000d7162000afb565b62000d7f6060870162000a9c565b81526080860151602082015260a08601519092506001600160401b0381111562000da857600080fd5b62000db68782880162000c08565b91505092959194509250565b600181811c9082168062000dd757607f821691505b60208210810362000df857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200037c576000816000526020600020601f850160051c8101602086101562000e295750805b601f850160051c820191505b8181101562000e4a5782815560010162000e35565b505050505050565b81516001600160401b0381111562000e6e5762000e6e62000ab9565b62000e868162000e7f845462000dc2565b8462000dfe565b602080601f83116001811462000ebe576000841562000ea55750858301515b600019600386901b1c1916600185901b17855562000e4a565b600085815260208120601f198616915b8281101562000eef5788860151825594840194600190910190840162000ece565b508582101562000f0e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000f3157600080fd5b62000f3c8262000a9c565b9392505050565b60006020828403121562000f5657600080fd5b5051919050565b60006020828403121562000f7057600080fd5b8151801515811462000f3c57600080fd5b600060018060a01b03808716835280861660208401525083604083015260806060830152825180608084015262000fc08160a085016020870162000b39565b601f01601f19169190910160a00195945050505050565b60006020828403121562000fea57600080fd5b62000f3c8262000b20565b61051080620010056000396000f3fe6080604052600436106100225760003560e01c8063ac9650d81461003357610029565b3661002957005b610031610069565b005b34801561003f57600080fd5b5061005361004e366004610327565b6100c4565b60405161006091906103c0565b60405180910390f35b60006100736101e1565b9050806001600160a01b03163b6000036100a0576040516321f27f0d60e21b815260040160405180910390fd5b3660008037600080366000845af43d6000803e8080156100bf573d6000f35b3d6000fd5b6060818067ffffffffffffffff8111156100e0576100e061043a565b60405190808252806020026020018201604052801561011357816020015b60608152602001906001900390816100fe5790505b50915060005b818110156101d9576000803087878581811061013757610137610450565b90506020028101906101499190610466565b6040516101579291906104b4565b600060405180830381855af49150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b509150915081156101c557808584815181106101b5576101b5610450565b60200260200101819052506101cf565b3d6000803e3d6000fd5b5050600101610119565b505092915050565b7f9c16cba5b9f2fcbd952b38bec34079e93cbe107475c15fc20705f4e704198a0054600090600160a01b900460e01b81806102437f9c16cba5b9f2fcbd952b38bec34079e93cbe107475c15fc20705f4e704198a00546001600160a01b031690565b6040516001600160e01b03196000351660248201526001600160a01b039190911690849060440160408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516102a891906104c4565b600060405180830381855afa9150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091508161030b5760405163391aa44560e01b815260040160405180910390fd5b8080602001905181019061031f91906104e0565b935050505090565b6000806020838503121561033a57600080fd5b823567ffffffffffffffff8082111561035257600080fd5b818501915085601f83011261036657600080fd5b81358181111561037557600080fd5b8660208260051b850101111561038a57600080fd5b60209290920196919550909350505050565b60005b838110156103b757818101518382015260200161039f565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561042d57878503603f190184528151805180875261040e818989018a850161039c565b601f01601f1916959095018601945092850192908501906001016103e7565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261047d57600080fd5b83018035915067ffffffffffffffff82111561049857600080fd5b6020019150368190038213156104ad57600080fd5b9250929050565b8183823760009101908152919050565b600082516104d681846020870161039c565b9190910192915050565b6000602082840312156104f257600080fd5b81516001600160a01b038116811461050957600080fd5b9392505050566569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00c21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d00","sourceMap":"823:1802:150:-:0;;;;;;;;;;;;-1:-1:-1;378:22:68;:20;:22::i;:::-;823:1802:150;;1653:314:83;296:66:84;1779:14:83;;;;;;;1775:62;;;1802:35;;-1:-1:-1;;;1802:35:83;;;;;;;;;;;1775:62;1848:9;;1860:16;1848:9;;;:28;1844:119;;;1886:28;;-1:-1:-1;;1886:28:83;1898:16;1886:28;;;;;1927:29;;158:42:402;;;1927:29:83;;146:2:402;131:18;1927:29:83;;;;;;;1844:119;1694:273;1653:314::o;14:192:402:-;823:1802:150;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b50600436106200006a5760003560e01c8063545efb2d146200006f578063673f0dd514620000a85780638bfc94b914620000d8578063c0bc679614620000f1578063dc1b9f231462000117578063ef009225146200012e575b600080fd5b6200007962000145565b604080516001600160a01b03948516815292841660208401529216918101919091526060015b60405180910390f35b620000bf620000b93660046200129d565b620001c2565b6040516001600160a01b0390911681526020016200009f565b620000ef620000e9366004620012cd565b62000200565b005b62000108620001023660046200132c565b62000263565b6040519081526020016200009f565b620000ef62000128366004620012cd565b620002a1565b620000bf6200013f36600462001b21565b620002ec565b6000806000620001b760008051602062003bc8833981519152547f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d01547f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d02546001600160a01b0392831693918316921690565b925092509250909192565b60008181527f06bd04a817647c31ee485c8a0baab96facd62dbfd4b475796bb17ca2c12f000260205260408120546001600160a01b03165b92915050565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b0316331462000251576040516365f4906560e01b815233600482015260240160405180910390fd5b6200025e838383620003db565b505050565b6001600160a01b03811660009081527f06bd04a817647c31ee485c8a0baab96facd62dbfd4b475796bb17ca2c12f00016020526040812054620001fa565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff166200025157604051630ef4733760e31b815260040160405180910390fd5b600060027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0054036200033157604051635db5c7cd60e11b815260040160405180910390fd5b6200035b60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b7fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff16156200039f576040516302ca8ced60e11b815260040160405180910390fd5b620003aa82620004ea565b9050620003d660017f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b919050565b826001600160a01b03163b60000362000407576040516302f3d00b60e01b815260040160405180910390fd5b816001600160a01b03163b60000362000433576040516302f3d00b60e01b815260040160405180910390fd5b806001600160a01b03163b6000036200045f576040516302f3d00b60e01b815260040160405180910390fd5b60008051602062003bc883398151915280546001600160a01b039485166001600160a01b0319918216179091557f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d018054938516938216939093179092557f9e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d028054919093169116179055565b60008051602062003bc8833981519152805460408051631d5e528f60e21b815290516000937f06bd04a817647c31ee485c8a0baab96facd62dbfd4b475796bb17ca2c12f000093909285926001600160a01b03909216916375794a3c916004808201926020929091908290030181865afa1580156200056d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000593919062001c58565b9050620005a581866040015162000899565b8354909450836000620005b88362001c72565b90915550506000818152600284016020908152604080832080546001600160a01b0319166001600160a01b03898116918217909255845260018701835292819020849055845488519289015160808a015160a08b01519351630efd6e3d60e21b81529290951694633bf5b8f494620006399490938b92919060040162001cee565b6020604051808303816000875af115801562000659573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200067f919062001c58565b5060018201546000906200069d906001600160a01b031686620008c3565b6002840154909150600090620006bd906001600160a01b031687620008c3565b60408051600280825260608201835292935060009290916020830190803683370190505090508281600081518110620006fa57620006fa62001d5e565b60200260200101906001600160a01b031690816001600160a01b031681525050818160018151811062000731576200073162001d5e565b6001600160a01b039283166020918202929092010152604051638bfc820f60e01b815290881690638bfc820f906200076e90849060040162001d74565b600060405180830381600087803b1580156200078957600080fd5b505af11580156200079e573d6000803e3d6000fd5b50505050620007b88784848b604001516020015162000980565b50604080890151805151910151600091620007d7918a91908762000db3565b9050620007ea88828b6060015162000f43565b8554604051632142170760e11b8152306004820152336024820152604481018790526001600160a01b03909116906342842e0e90606401600060405180830381600087803b1580156200083c57600080fd5b505af115801562000851573d6000803e3d6000fd5b50506040516001600160a01b038b16925087915033907fe50fc3942f8a2d7e5a7c8fb9488499eba5255b41e18bc3f1b4791402976d1d0b90600090a450505050505050919050565b6000806000620008aa858562001044565b91509150620008ba8282620011e1565b95945050505050565b60008060405180602001620008d89062001281565b601f1982820381018352601f9091011660408190526001600160a01b0385166024820152859060440160408051601f19818403018152918152602080830180516001600160e01b031663189acdbd60e31b17905290516200093c9392910162001dc3565b60408051601f19818403018152908290526200095c929160200162001de9565b604051602081830303815290604052905062000978816200121c565b949350505050565b604080516001808252818301909252600091829190816020015b60608152602001906001900390816200099a579050509050604051806040016040528060098152602001684a6f696e537061636560b81b81525081600081518110620009ea57620009ea62001d5e565b6020026020010181905250856001600160a01b0316638fcd793d6040518060400160405280600681526020016526b4b73a32b960d11b8152508360006001600160401b0381111562000a405762000a4062001353565b60405190808252806020026020018201604052801562000a8857816020015b60408051808201909152600081526060602082015281526020019060019003908162000a5f5790505b506040518463ffffffff1660e01b815260040162000aa99392919062001e45565b6020604051808303816000875af115801562000ac9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aef919062001c58565b83519092501562000bfd576040805160018082528183019092526000916020808301908036833701905050905060018160008151811062000b345762000b3462001d5e565b60200260200101906001600160a01b031690816001600160a01b031681525050866001600160a01b031663ba201ba88460405180604001604052808a6001600160a01b031681526020018560405160200162000b91919062001d74565b6040516020818303038152906040528152506040518363ffffffff1660e01b815260040162000bc292919062001f17565b600060405180830381600087803b15801562000bdd57600080fd5b505af115801562000bf2573d6000803e3d6000fd5b505050505062000daa565b6020830151511562000cf65760005b83602001515181101562000c4e5762000c458460200151828151811062000c375762000c3762001d5e565b602002602001015162001256565b60010162000c0c565b50856001600160a01b031663ba201ba8836040518060400160405280896001600160a01b03168152602001876020015160405160200162000c90919062001d74565b6040516020818303038152906040528152506040518363ffffffff1660e01b815260040162000cc192919062001f17565b600060405180830381600087803b15801562000cdc57600080fd5b505af115801562000cf1573d6000803e3d6000fd5b505050505b604083015151511562000daa57856001600160a01b031663ba201ba8836040518060400160405280886001600160a01b03168152602001876040015160405160200162000d4491906200202f565b6040516020818303038152906040528152506040518363ffffffff1660e01b815260040162000d7592919062001f17565b600060405180830381600087803b15801562000d9057600080fd5b505af115801562000da5573d6000803e3d6000fd5b505050505b50949350505050565b6040805160018082528183019092526000918291906020808301908036833701905050905060018160008151811062000df05762000df062001d5e565b6001600160a01b039290921660209283029190910190910152604080516001808252818301909252600091816020015b60408051808201909152600081526060602082015281526020019060019003908162000e20579050509050838160008151811062000e625762000e6262001d5e565b6020908102919091018101516001600160a01b0390921690915260405162000e8d9184910162001d74565b6040516020818303038152906040528160008151811062000eb25762000eb262001d5e565b6020908102919091018101510152604051638fcd793d60e01b81526001600160a01b03881690638fcd793d9062000ef29089908990869060040162001e45565b6020604051808303816000875af115801562000f12573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f38919062001c58565b979650505050505050565b60408051600180825281830190925260009160208083019080368337019050509050828160008151811062000f7c5762000f7c62001d5e565b602090810291909101810191909152604051600160fd1b918101919091526bffffffffffffffffffffffff19606086901b16602182015260009060350160405160208183030381529060405262000fd390620020da565b835160405163921f717560e01b81529192506001600160a01b0387169163921f7175916200100991859190879060040162002102565b600060405180830381600087803b1580156200102457600080fd5b505af115801562001039573d6000803e3d6000fd5b505050505050505050565b606060008060008051602062003bc883398151915260408051336020820152908101879052426060820152909150608001604051602081830303815290604052805190602001209150604051806020016200109f906200128f565b601f19828203810183526040601f90920116818101825263dc9cc64560e01b8152306020828101919091528251808401845285546001600160a01b0390811682528183018b90528451610120810186528a515181528a518401519381019390935289518501519483019490945288516060908101519083015288516080908101516001600160401b031690830152885160a090810151851690830152885160c09081015133959293929183019116156200115f57895160c0015162001161565b335b6001600160a01b03168152602001896000015160e001518152602001896000015161010001516001600160a01b0316815250604051602001620011a8949392919062002163565b60408051601f1981840301815290829052620011c8929160200162001de9565b6040516020818303038152906040529250509250929050565b60008260200183518381836000f59250506001600160a01b0382169050620001fa5760405163ef35ca1960e01b815260040160405180910390fd5b600081602001825180826000f09250506001600160a01b0382169050620003d65760405163ef35ca1960e01b815260040160405180910390fd5b6001600160a01b0381166200127e576040516302e47d1560e41b815260040160405180910390fd5b50565b6103d4806200225f83390190565b611595806200263383390190565b600060208284031215620012b057600080fd5b5035919050565b6001600160a01b03811681146200127e57600080fd5b600080600060608486031215620012e357600080fd5b8335620012f081620012b7565b925060208401356200130281620012b7565b915060408401356200131481620012b7565b809150509250925092565b8035620003d681620012b7565b6000602082840312156200133f57600080fd5b81356200134c81620012b7565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156200138e576200138e62001353565b60405290565b604051606081016001600160401b03811182821017156200138e576200138e62001353565b604080519081016001600160401b03811182821017156200138e576200138e62001353565b60405161012081016001600160401b03811182821017156200138e576200138e62001353565b60405160c081016001600160401b03811182821017156200138e576200138e62001353565b604051601f8201601f191681016001600160401b038111828210171562001454576200145462001353565b604052919050565b600082601f8301126200146e57600080fd5b81356001600160401b038111156200148a576200148a62001353565b6200149f601f8201601f191660200162001429565b818152846020838601011115620014b557600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160401b0381168114620003d657600080fd5b60006001600160401b0382111562001506576200150662001353565b5060051b60200190565b600381106200127e57600080fd5b803560ff81168114620003d657600080fd5b600082601f8301126200154257600080fd5b813560206200155b6200155583620014ea565b62001429565b82815260079290921b840181019181810190868411156200157b57600080fd5b8286015b84811015620015ed57608081890312156200159a5760008081fd5b620015a462001369565b813560068110620015b55760008081fd5b81528185013585820152604080830135620015d081620012b7565b90820152606082810135908201528352918301916080016200157f565b509695505050505050565b600082601f8301126200160a57600080fd5b813560206200161d6200155583620014ea565b828152606092830285018201928282019190878511156200163d57600080fd5b8387015b85811015620016a65781818a0312156200165b5760008081fd5b6200166562001394565b8135620016728162001510565b8152620016818287016200151e565b868201526040620016948184016200151e565b90820152845292840192810162001641565b5090979650505050505050565b600060608284031215620016c657600080fd5b620016d062001394565b905081356001600160401b0380821115620016ea57600080fd5b818401915084601f830112620016ff57600080fd5b81356020620017126200155583620014ea565b82815260069290921b840181019181810190888411156200173257600080fd5b948201945b838610156200178f576040868a031215620017525760008081fd5b6200175c620013b9565b8635620017698162001510565b8152620017788785016200151e565b818501528252604095909501949082019062001737565b86525085810135935082841115620017a657600080fd5b620017b48785880162001530565b90850152506040840135915080821115620017ce57600080fd5b50620017dd84828501620015f8565b60408301525092915050565b600060608284031215620017fc57600080fd5b6200180662001394565b9050813580151581146200181957600080fd5b81526020828101356001600160401b03808211156200183757600080fd5b818501915085601f8301126200184c57600080fd5b81356200185d6200155582620014ea565b81815260059190911b830184019084810190888311156200187d57600080fd5b938501935b82851015620018a85784356200189881620012b7565b8252938501939085019062001882565b80868801525050506040850135925080831115620018c557600080fd5b5050620017dd84828501620016b3565b600082601f830112620018e757600080fd5b81356020620018fa6200155583620014ea565b82815260059290921b840181019181810190868411156200191a57600080fd5b8286015b84811015620015ed5780356001600160401b038111156200193f5760008081fd5b6200194f8986838b01016200145c565b8452509183019183016200191e565b6000606082840312156200197157600080fd5b6200197b62001394565b905081356001600160401b03808211156200199557600080fd5b908301906101208286031215620019ab57600080fd5b620019b5620013de565b823582811115620019c557600080fd5b620019d3878286016200145c565b825250602083013582811115620019e957600080fd5b620019f7878286016200145c565b602083015250604083013560408201526060830135606082015262001a1f60808401620014d2565b608082015262001a3260a084016200131f565b60a082015262001a4560c084016200131f565b60c082015260e083013560e082015261010062001a648185016200131f565b908201528352602084013591508082111562001a7f57600080fd5b62001a8d85838601620017e9565b6020840152604084013591508082111562001aa757600080fd5b50620017dd84828501620018d5565b60006020828403121562001ac957600080fd5b604051602081016001600160401b03828210818311171562001aef5762001aef62001353565b81604052829350843591508082111562001b0857600080fd5b5062001b17858286016200145c565b8252505092915050565b60006020828403121562001b3457600080fd5b81356001600160401b038082111562001b4c57600080fd5b9083019060c0828603121562001b6157600080fd5b62001b6b62001404565b82358281111562001b7b57600080fd5b62001b89878286016200145c565b82525060208301358281111562001b9f57600080fd5b62001bad878286016200145c565b60208301525060408301358281111562001bc657600080fd5b62001bd4878286016200195e565b60408301525060608301358281111562001bed57600080fd5b62001bfb8782860162001ab6565b60608301525060808301358281111562001c1457600080fd5b62001c22878286016200145c565b60808301525060a08301358281111562001c3b57600080fd5b62001c49878286016200145c565b60a08301525095945050505050565b60006020828403121562001c6b57600080fd5b5051919050565b60006001820162001c9357634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b8381101562001cb757818101518382015260200162001c9d565b50506000910152565b6000815180845262001cda81602086016020860162001c9a565b601f01601f19169290920160200192915050565b60a08152600062001d0360a083018862001cc0565b828103602084015262001d17818862001cc0565b6001600160a01b03871660408501528381036060850152905062001d3c818662001cc0565b9050828103608084015262001d52818562001cc0565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b8181101562001db75783516001600160a01b03168352928401929184019160010162001d90565b50909695505050505050565b6001600160a01b0383168152604060208201819052600090620009789083018462001cc0565b6000835162001dfd81846020880162001c9a565b83519083019062001e1381836020880162001c9a565b01949350505050565b60018060a01b038151168252600060208201516040602085015262000978604085018262001cc0565b60608152600062001e5a606083018662001cc0565b6020838203818501528186518084528284019150828160051b85010183890160005b8381101562001eae57601f1987840301855262001e9b83835162001cc0565b9486019492509085019060010162001e7c565b50508681036040880152875180825284820195509250600583901b81018401915083880160005b8481101562001f0757601f1983850301875262001ef484835162001e1c565b9686019693509085019060010162001ed5565b50919a9950505050505050505050565b82815260406020820152600062000978604083018462001e1c565b634e487b7160e01b600052602160045260246000fd5b600381106200127e576200127e62001f32565b60008151808452602080850194506020840160005b8381101562001fca57815180516006811062001f905762001f9062001f32565b885280840151848901526040808201516001600160a01b031690890152606090810151908801526080909601959082019060010162001f70565b509495945050505050565b60008151808452602080850194506020840160005b8381101562001fca5781518051620020028162001f48565b88528084015160ff908116858a015260409182015116908801526060909601959082019060010162001fea565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156200208f57835180516200206c8162001f48565b835285015160ff1685830152928401926001929092019160409091019062002054565b50838701519350601f19925082868203016040870152620020b1818562001f5b565b93505050604085015181858403016060860152620020d0838262001fd5565b9695505050505050565b80516020808301519190811015620020fc576000198160200360031b1b821691505b50919050565b83815260006020606060208401526200211f606084018662001cc0565b83810360408501528451808252602080870192019060005b81811015620021555783518352928401929184019160010162002137565b509098975050505050505050565b600060018060a01b03808716835263ffffffff60e01b8651166020840152806020870151166040840152808551166060840152506020840151608083015260c060a083015282516101208060c0850152620021c36101e085018362001cc0565b9150602085015160bf198584030160e0860152620021e2838262001cc0565b9250506040850151610100818187015260608701518387015260808701519250620022196101408701846001600160401b03169052565b60a08701516001600160a01b0390811661016088015260c0880151811661018088015260e08801516101a0880152908701519081166101c08701529150620015ed905056fe60806040526040516103d43803806103d483398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6074806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fd60806040523480156200001157600080fd5b506040516200159538038062001595833981016040819052620000349162000cec565b6200003e62000160565b620000a58380517f9c16cba5b9f2fcbd952b38bec34079e93cbe107475c15fc20705f4e704198a0080546020909301516001600160a01b03166001600160a01b031960e09390931c600160a01b02929092166001600160c01b031990931692909217179055565b81517fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60080546001600160a01b0319166001600160a01b0390921691909117905560208201517fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60155805160208201516200011f919062000174565b62000135818460200151620001cb60201b60201c565b6200014284600162000381565b6200014c620003a7565b620001566200047c565b5050505062000ff5565b620001726301ffc9a760e01b620004d1565b565b600080516020620015158339815191527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df02620001b1848262000e52565b5060038101620001c2838262000e52565b50600090555050565b6000805160206200153583398151915280546001600160a01b038381166001600160a01b0319928316179092556101008401517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608805491909316908216179091557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb604805490911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee17905560608201517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035560e08201517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb607819055600080516020620015758339815191529015620002e15760e0830151620002e190620005b1565b610100830151620002f2906200065f565b6040830151156200037c5760408301516200030d9062000731565b600881015460408085015190516391b7f5ed60e01b81526001600160a01b03909216916391b7f5ed91620003479160040190815260200190565b600060405180830381600087803b1580156200036257600080fd5b505af115801562000377573d6000803e3d6000fd5b505050505b505050565b620003a3828260405180602001604052806000815250620007dc60201b60201c565b5050565b60007f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00905060006000805160206200157583398151915260060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa15801562000437573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045d919062000f1e565b82546001600160a01b0319166001600160a01b03919091161790915550565b6200048e6380ac58cd60e01b620004d1565b620004a0635b5e139f60e01b620004d1565b620004b2638c65f84d60e01b620004d1565b620004c46307f5828d60e41b620004d1565b620001726322fa1fe560e21b5b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16151560011462000560576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff1916600117905562000579565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b600080516020620015358339815191525460408051632cbb9d1360e01b8152905160008051602062001575833981519152926001600160a01b031691632cbb9d139160048083019260209291908290030181865afa15801562000618573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200063e919062000f43565b821115620003a35760405163c3983b9160e01b815260040160405180910390fd5b6001600160a01b0381166200068757604051630e88bf4b60e01b815260040160405180910390fd5b60008051602062001535833981519152546001600160a01b03166040516346fc05eb60e11b81526001600160a01b0383811660048301529190911690638df80bd690602401602060405180830381865afa158015620006ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000710919062000f5d565b6200072e57604051630e88bf4b60e01b815260040160405180910390fd5b50565b60006200075460008051602062001535833981519152546001600160a01b031690565b6001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000792573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007b8919062000f43565b905080821015620003a357604051631a23d64760e11b815260040160405180910390fd5b620007e883836200086e565b6001600160a01b0383163b156200037c5760008051602062001515833981519152548281035b60018101906200082490600090879086620009a8565b62000842576040516368d2bf6b60e11b815260040160405180910390fd5b8181106200080e57816000805160206200151583398151915254146200086757600080fd5b5050505050565b60008051602062001515833981519152546000829003620008a25760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b17831790558284019083908390600080516020620015558339815191528180a4600183015b8181146200096f578083600060008051602062001555833981519152600080a460010162000946565b50816000036200099157604051622e076360e81b815260040160405180910390fd5b600080516020620015158339815191525550505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290620009df90339089908890889060040162000f81565b6020604051808303816000875af192505050801562000a1d575060408051601f3d908101601f1916820190925262000a1a9181019062000fd7565b60015b62000a7f573d80801562000a4e576040519150601f19603f3d011682016040523d82523d6000602084013e62000a53565b606091505b50805160000362000a77576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b80516001600160a01b038116811462000ab457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171562000af55762000af562000ab9565b60405290565b604080519081016001600160401b038111828210171562000af55762000af562000ab9565b80516001600160e01b03198116811462000ab457600080fd5b60005b8381101562000b5657818101518382015260200162000b3c565b50506000910152565b600082601f83011262000b7157600080fd5b81516001600160401b038082111562000b8e5762000b8e62000ab9565b604051601f8301601f19908116603f0116810190828211818310171562000bb95762000bb962000ab9565b8160405283815286602085880101111562000bd357600080fd5b62000be684602083016020890162000b39565b9695505050505050565b80516001600160401b038116811462000ab457600080fd5b6000610120828403121562000c1c57600080fd5b62000c2662000acf565b82519091506001600160401b038082111562000c4157600080fd5b62000c4f8583860162000b5f565b8352602084015191508082111562000c6657600080fd5b5062000c758482850162000b5f565b602083015250604082015160408201526060820151606082015262000c9d6080830162000bf0565b608082015262000cb060a0830162000a9c565b60a082015262000cc360c0830162000a9c565b60c082015260e082015160e082015261010062000ce281840162000a9c565b9082015292915050565b60008060008084860360c081121562000d0457600080fd5b62000d0f8662000a9c565b94506040601f198201121562000d2457600080fd5b62000d2e62000afb565b62000d3c6020880162000b20565b815262000d4c6040880162000a9c565b602082015293506040605f198201121562000d6657600080fd5b5062000d7162000afb565b62000d7f6060870162000a9c565b81526080860151602082015260a08601519092506001600160401b0381111562000da857600080fd5b62000db68782880162000c08565b91505092959194509250565b600181811c9082168062000dd757607f821691505b60208210810362000df857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200037c576000816000526020600020601f850160051c8101602086101562000e295750805b601f850160051c820191505b8181101562000e4a5782815560010162000e35565b505050505050565b81516001600160401b0381111562000e6e5762000e6e62000ab9565b62000e868162000e7f845462000dc2565b8462000dfe565b602080601f83116001811462000ebe576000841562000ea55750858301515b600019600386901b1c1916600185901b17855562000e4a565b600085815260208120601f198616915b8281101562000eef5788860151825594840194600190910190840162000ece565b508582101562000f0e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121562000f3157600080fd5b62000f3c8262000a9c565b9392505050565b60006020828403121562000f5657600080fd5b5051919050565b60006020828403121562000f7057600080fd5b8151801515811462000f3c57600080fd5b600060018060a01b03808716835280861660208401525083604083015260806060830152825180608084015262000fc08160a085016020870162000b39565b601f01601f19169190910160a00195945050505050565b60006020828403121562000fea57600080fd5b62000f3c8262000b20565b61051080620010056000396000f3fe6080604052600436106100225760003560e01c8063ac9650d81461003357610029565b3661002957005b610031610069565b005b34801561003f57600080fd5b5061005361004e366004610327565b6100c4565b60405161006091906103c0565b60405180910390f35b60006100736101e1565b9050806001600160a01b03163b6000036100a0576040516321f27f0d60e21b815260040160405180910390fd5b3660008037600080366000845af43d6000803e8080156100bf573d6000f35b3d6000fd5b6060818067ffffffffffffffff8111156100e0576100e061043a565b60405190808252806020026020018201604052801561011357816020015b60608152602001906001900390816100fe5790505b50915060005b818110156101d9576000803087878581811061013757610137610450565b90506020028101906101499190610466565b6040516101579291906104b4565b600060405180830381855af49150503d8060008114610192576040519150601f19603f3d011682016040523d82523d6000602084013e610197565b606091505b509150915081156101c557808584815181106101b5576101b5610450565b60200260200101819052506101cf565b3d6000803e3d6000fd5b5050600101610119565b505092915050565b7f9c16cba5b9f2fcbd952b38bec34079e93cbe107475c15fc20705f4e704198a0054600090600160a01b900460e01b81806102437f9c16cba5b9f2fcbd952b38bec34079e93cbe107475c15fc20705f4e704198a00546001600160a01b031690565b6040516001600160e01b03196000351660248201526001600160a01b039190911690849060440160408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516102a891906104c4565b600060405180830381855afa9150503d80600081146102e3576040519150601f19603f3d011682016040523d82523d6000602084013e6102e8565b606091505b50915091508161030b5760405163391aa44560e01b815260040160405180910390fd5b8080602001905181019061031f91906104e0565b935050505090565b6000806020838503121561033a57600080fd5b823567ffffffffffffffff8082111561035257600080fd5b818501915085601f83011261036657600080fd5b81358181111561037557600080fd5b8660208260051b850101111561038a57600080fd5b60209290920196919550909350505050565b60005b838110156103b757818101518382015260200161039f565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561042d57878503603f190184528151805180875261040e818989018a850161039c565b601f01601f1916959095018601945092850192908501906001016103e7565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261047d57600080fd5b83018035915067ffffffffffffffff82111561049857600080fd5b6020019150368190038213156104ad57600080fd5b9250929050565b8183823760009101908152919050565b600082516104d681846020870161039c565b9190910192915050565b6000602082840312156104f257600080fd5b81516001600160a01b038116811461050957600080fd5b9392505050566569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00c21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009e34afa7b4d27d347d25d9d9dab4f1a106fa081382e6c4243e834d093e787d00","sourceMap":"823:1802:150:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2359:264;;;:::i;:::-;;;;-1:-1:-1;;;;;345:15:402;;;327:34;;397:15;;;392:2;377:18;;370:43;449:15;;429:18;;;422:43;;;;277:2;262:18;2359:264:150;;;;;;;;1604:121;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;934:32:402;;;916:51;;904:2;889:18;1604:121:150;770:203:402;2030:325:150;;;;;;:::i;:::-;;:::i;:::-;;1729:117;;;;;;:::i;:::-;;:::i;:::-;;;2336:25:402;;;2324:2;2309:18;1729:117:150;2190:177:402;938:334:150;;;;;;:::i;:::-;;:::i;1448:152::-;;;;;;:::i;:::-;;:::i;2359:264::-;2445:22;2475:46;2529;2597:21;-1:-1:-1;;;;;;;;;;;5974:13:151;5989:18;;6009;;-1:-1:-1;;;;;5974:13:151;;;;5989:18;;;;6009;;5669:364;2597:21:150;2590:28;;;;;;2359:264;;;:::o;1604:121::-;1671:7;2623:49:151;;;:40;:49;;;;;;-1:-1:-1;;;;;2623:49:151;1693:27:150;1686:34;1604:121;-1:-1:-1;;1604:121:150:o;2030:325::-;284:66:97;438:29:95;-1:-1:-1;;;;;438:29:95;279:10;:22;275:79;;318:29;;-1:-1:-1;;;318:29:95;;336:10;318:29;;;916:51:402;889:18;;318:29:95;;;;;;;275:79;2233:117:150::1;2260:10;2278:29;2315;2233:19;:117::i;:::-;2030:325:::0;;;:::o;1729:117::-;-1:-1:-1;;;;;2477:47:151;;1794:7:150;2477:47:151;;;:40;:47;;;;;;1816:25:150;2389:140:151;938:334:150;296:66:84;1263:42:83;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:83;;;;;;;;;;;1448:152:150;1550:7;408:1:112;295:66:113;508:38:112;:66;504:117;;589:32;;-1:-1:-1;;;589:32:112;;;;;;;;;;;504:117;627:22;408:1;295:66:113;825:65:112;770:125;627:22;286:66:109;519:31:107;;;286:55:::1;;;316:18;;-1:-1:-1::0;;;316:18:107::1;;;;;;;;;;;286:55;1572:23:150::2;1585:9;1572:12;:23::i;:::-;1565:30;;662:24:112::0;468:1;295:66:113;825:65:112;770:125;662:24;1448:152:150;;;:::o;5060:605:151:-;5224:10;-1:-1:-1;;;;;5216:31:151;;5251:1;5216:36;5212:73;;5261:24;;-1:-1:-1;;;5261:24:151;;;;;;;;;;;5212:73;5303:15;-1:-1:-1;;;;;5295:36:151;;5335:1;5295:41;5291:84;;5351:24;;-1:-1:-1;;;5351:24:151;;;;;;;;;;;5291:84;5393:15;-1:-1:-1;;;;;5385:36:151;;5425:1;5385:41;5381:84;;5441:24;;-1:-1:-1;;;5441:24:151;;;;;;;;;;;5381:84;-1:-1:-1;;;;;;;;;;;5550:26:151;;-1:-1:-1;;;;;5550:26:151;;;-1:-1:-1;;;;;;5550:26:151;;;;;;;5582:18;:36;;;;;;;;;;;;;;;5624:18;:36;;;;;;;;;;;5060:605::o;2681:2193::-;-1:-1:-1;;;;;;;;;;;2998:14:151;;:28;;;-1:-1:-1;;;2998:28:151;;;;2757:20;;274:66:152;;765::154;;2757:20:151;;-1:-1:-1;;;;;2998:14:151;;;;:26;;:28;;;;;;;;;;;;;;;:14;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2975:51;;3068:48;3081:12;3095:9;:20;;;3068:12;:48::i;:::-;3157:15;;3053:63;;-1:-1:-1;3157:2:151;:13;:15;;;:::i;:::-;;;;-1:-1:-1;;3203:31:151;;;;:17;;;:31;;;;;;;;:46;;-1:-1:-1;;;;;;3203:46:151;-1:-1:-1;;;;;3203:46:151;;;;;;;;;3255:31;;-1:-1:-1;3255:17:151;;:31;;;;;;:46;;;3355:14;;3387;;3409:13;;;;3450:26;;;;3484:25;;;;3355:160;;-1:-1:-1;;;3355:160:151;;:14;;;;;:24;;:160;;3387:14;;3203:46;;3450:26;3484:25;3355:160;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3631:19:151;;;;3553:32;;3612:53;;-1:-1:-1;;;;;3631:19:151;3652:12;3612:18;:53::i;:::-;3788:19;;;;3553:118;;-1:-1:-1;3710:32:151;;3769:53;;-1:-1:-1;;;;;3788:19:151;3809:12;3769:18;:53::i;:::-;3867:16;;;3881:1;3867:16;;;;;;;;3710:118;;-1:-1:-1;3835:29:151;;3867:16;;;;;;;;;;;;-1:-1:-1;3867:16:151;3835:48;;3915:15;3889:12;3902:1;3889:15;;;;;;;;:::i;:::-;;;;;;:42;-1:-1:-1;;;;;3889:42:151;;;-1:-1:-1;;;;;3889:42:151;;;;;3963:15;3937:12;3950:1;3937:15;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3937:42:151;;;:15;;;;;;;;;:42;4023:73;;-1:-1:-1;;;4023:73:151;;:59;;;;;;:73;;4083:12;;4023:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:137;4179:12;4199:15;4222;4245:9;:20;;;:33;;;4147:24;:137::i;:::-;-1:-1:-1;4427:20:151;;;;;:29;;:34;4469:32;;;4352:20;;4375:155;;4407:12;;4427:34;4509:15;4375:24;:155::i;:::-;4352:178;;4567:68;4589:12;4603;4617:9;:17;;;4567:21;:68::i;:::-;4689:14;;4672:115;;-1:-1:-1;;;4672:115:151;;4738:4;4672:115;;;18378:34:402;4751:10:151;18428:18:402;;;18421:43;18480:18;;;18473:34;;;-1:-1:-1;;;;;4689:14:151;;;;4672:50;;18313:18:402;;4672:115:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4817:52:151;;-1:-1:-1;;;;;4817:52:151;;;-1:-1:-1;4842:12:151;;-1:-1:-1;4830:10:151;;4817:52;;;;;2779:2095;;;;;;;2681:2193;;;:::o;9193:300::-;9297:13;9346:21;9369:12;9385:67;9416:12;9436:10;9385:23;:67::i;:::-;9345:107;;;;9465:23;9473:8;9483:4;9465:7;:23::i;:::-;9458:30;9193:300;-1:-1:-1;;;;;9193:300:151:o;9497:381::-;9603:7;9645:21;9693:31;;;;;;;;:::i;:::-;-1:-1:-1;;9693:31:151;;;;;;;;;;;;;;;;-1:-1:-1;;;;;934:32:402;;9773:55:151;;;916:51:402;9752:11:151;;889:18:402;;9773:55:151;;;-1:-1:-1;;9773:55:151;;;;;;;;;;;;;;;-1:-1:-1;;;;;9773:55:151;-1:-1:-1;;;9773:55:151;;;9732:104;;;;;9773:55;9732:104;;:::i;:::-;;;;-1:-1:-1;;9732:104:151;;;;;;;;;;9669:173;;;9732:104;9669:173;;:::i;:::-;;;;;;;;;;;;;9645:197;;9856:17;9864:8;9856:7;:17::i;:::-;9849:24;9497:381;-1:-1:-1;;;;9497:381:151:o;6815:1589::-;7077:15;;;7090:1;7077:15;;;;;;;;;7021:14;;;;7077:15;;;;;;;;;;;;;;;;;;;;;7043:49;;7119:21;;;;;;;;;;;;;-1:-1:-1;;;7119:21:151;;;7098:15;7114:1;7098:18;;;;;;;;:::i;:::-;;;;;;:42;;;;7163:12;-1:-1:-1;;;;;7156:31:151;;7195:11;;;;;;;;;;;;;-1:-1:-1;;;7195:11:151;;;7214:15;7272:1;-1:-1:-1;;;;;7237:37:151;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;7237:37:151;;;;;;;;;;;;;;;;7156:124;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7291:21;;7147:133;;-1:-1:-1;7287:1094:151;;;7347:16;;;7361:1;7347:16;;;;;;;;;7322:22;;7347:16;;;;;;;;;;;-1:-1:-1;7347:16:151;7322:41;;2109:1;7371:5;7377:1;7371:8;;;;;;;;:::i;:::-;;;;;;:27;-1:-1:-1;;;;;7371:27:151;;;-1:-1:-1;;;;;7371:27:151;;;;;7414:12;-1:-1:-1;;;;;7407:41:151;;7458:6;7474:110;;;;;;;;7523:15;-1:-1:-1;;;;;7474:110:151;;;;;7567:5;7556:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;7474:110;;;7407:185;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7314:285;7287:1094;;;7617:18;;;;:25;:30;7613:473;;7690:9;7685:172;7709:12;:18;;;:25;7705:1;:29;7685:172;;;7750:45;7773:12;:18;;;7792:1;7773:21;;;;;;;;:::i;:::-;;;;;;;7750:22;:45::i;:::-;7831:3;;7685:172;;;;7874:12;-1:-1:-1;;;;;7867:41:151;;7920:6;7938:129;;;;;;;;7989:15;-1:-1:-1;;;;;7938:129:151;;;;;8035:12;:18;;;8024:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;7938:129;;;7867:210;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7613:473;8098:21;;;;:32;:39;:43;8094:281;;8160:12;-1:-1:-1;;;;;8153:41:151;;8206:6;8224:132;;;;;;;;8275:15;-1:-1:-1;;;;;8224:132:151;;;;;8321:12;:21;;;8310:33;;;;;;;;:::i;:::-;;;;;;;;;;;;;8224:132;;;8153:213;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8094:281;8386:13;6815:1589;;;;;;:::o;8408:601::-;8644:16;;;8658:1;8644:16;;;;;;;;;8597:14;;;;8644:16;;;;;;;;;;;;-1:-1:-1;8644:16:151;8619:41;;2109:1;8666:5;8672:1;8666:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;8666:27:151;;;;:8;;;;;;;;;;;:27;8759:37;;;8794:1;8759:37;;;;;;;;;8700:56;;8759:37;;;;-1:-1:-1;;;;;;;;;;;;;;;;;8759:37:151;;;;;;;;;;;;;;;8700:96;;8827:15;8802:12;8815:1;8802:15;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;8802:40:151;;;;;;8871:17;;;;8882:5;;8871:17;;:::i;:::-;;;;;;;;;;;;;8848:12;8861:1;8848:15;;;;;;;;:::i;:::-;;;;;;;;;;;;:20;:40;8904:100;;-1:-1:-1;;;8904:100:151;;-1:-1:-1;;;;;8904:31:151;;;;;:100;;8943:10;;8961:17;;8986:12;;8904:100;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8895:109;8408:601;-1:-1:-1;;;;;;;8408:601:151:o;6219:406::-;6371:16;;;6385:1;6371:16;;;;;;;;;6344:24;;6371:16;;;;;;;;;;;-1:-1:-1;6371:16:151;6344:43;;6406:6;6393:7;6401:1;6393:10;;;;;;;;:::i;:::-;;;;;;;;;;;:19;;;;6461:44;;-1:-1:-1;;;6461:44:151;;;25085:39:402;;;;-1:-1:-1;;6490:14:151;;;;25153:44:402;25140:11;;;25133:65;6419:24:151;;25214:12:402;;6461:44:151;;;;;;;;;;;;6446:65;;;:::i;:::-;6579:20;;6518:102;;-1:-1:-1;;;6518:102:151;;6419:92;;-1:-1:-1;;;;;;6518:29:151;;;;;:102;;6419:92;;6579:20;6607:7;;6518:102;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6338:287;;6219:406;;;:::o;9882:1374::-;10002:21;10025:12;;-1:-1:-1;;;;;;;;;;;10163:53:151;;;10174:10;10163:53;;;26580:51:402;26647:18;;;26640:34;;;10200:15:151;26690:18:402;;;26683:34;10045:72:151;;-1:-1:-1;26553:18:402;;10163:53:151;;;;;;;;;;;;10153:64;;;;;;10146:71;;10286:29;;;;;;;;:::i;:::-;-1:-1:-1;;10286:29:151;;;;;;;;;;;;;10363:145;;;;;-1:-1:-1;;;10363:145:151;;10492:4;10286:29;10363:145;;;;;;;10518:121;;;;;;;10581:13;;-1:-1:-1;;;;;10581:13:151;;;10518:121;;;;;;;;10649:588;;;;;;;10694:19;;:24;10649:588;;10738:19;;:26;;;10649:588;;;;;;;10783:19;;:25;;;10649:588;;;;;;;10831:19;;10649:588;10831:29;;;;10649:588;;;;10882:19;;10649:588;10882:28;;;;-1:-1:-1;;;;;10649:588:151;;;;;10932:19;;10649:588;10932:28;;;;10649:588;;;;;;10986:19;;10649:588;10986:32;;;;10343:10;;10518:121;;10649:588;;;;;10986:46;;:118;;11072:19;;:32;;;10986:118;;;11047:10;10986:118;-1:-1:-1;;;;;10649:588:151;;;;;11132:10;:19;;;:34;;;10649:588;;;;11193:10;:19;;;:33;;;-1:-1:-1;;;;;10649:588:151;;;;10323:922;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;10323:922:151;;;;;;;;;;10262:989;;;10323:922;10262:989;;:::i;:::-;;;;;;;;;;;;;10251:1000;;10039:1217;9882:1374;;;;;:::o;1054:354:253:-;1138:18;1211:8;1205:4;1201:19;1253:8;1247:15;1322:4;1308:12;1294;1291:1;1283:44;1269:58;-1:-1:-1;;;;;;;1343:24:253;;;-1:-1:-1;1339:64:253;;1376:27;;-1:-1:-1;;;1376:27:253;;;;;;;;;;;394:329;460:18;533:8;527:4;523:19;575:8;569:15;629:12;615;612:1;605:37;591:51;-1:-1:-1;;;;;;;658:24:253;;;-1:-1:-1;654:64:253;;691:27;;-1:-1:-1;;;691:27:253;;;;;;;;;;;737:119:255;-1:-1:-1;;;;;797:18:255;;793:58;;824:27;;-1:-1:-1;;;824:27:255;;;;;;;;;;;793:58;737:119;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;476:180:402:-;535:6;588:2;576:9;567:7;563:23;559:32;556:52;;;604:1;601;594:12;556:52;-1:-1:-1;627:23:402;;476:180;-1:-1:-1;476:180:402:o;978:144::-;-1:-1:-1;;;;;1066:31:402;;1056:42;;1046:70;;1112:1;1109;1102:12;1127:641;1277:6;1285;1293;1346:2;1334:9;1325:7;1321:23;1317:32;1314:52;;;1362:1;1359;1352:12;1314:52;1401:9;1388:23;1420:44;1458:5;1420:44;:::i;:::-;1483:5;-1:-1:-1;1540:2:402;1525:18;;1512:32;1553:46;1512:32;1553:46;:::i;:::-;1618:7;-1:-1:-1;1677:2:402;1662:18;;1649:32;1690:46;1649:32;1690:46;:::i;:::-;1755:7;1745:17;;;1127:641;;;;;:::o;1773:147::-;1841:20;;1870:44;1841:20;1870:44;:::i;1925:260::-;1984:6;2037:2;2025:9;2016:7;2012:23;2008:32;2005:52;;;2053:1;2050;2043:12;2005:52;2092:9;2079:23;2111:44;2149:5;2111:44;:::i;:::-;2174:5;1925:260;-1:-1:-1;;;1925:260:402:o;2372:127::-;2433:10;2428:3;2424:20;2421:1;2414:31;2464:4;2461:1;2454:15;2488:4;2485:1;2478:15;2504:253;2576:2;2570:9;2618:4;2606:17;;-1:-1:-1;;;;;2638:34:402;;2674:22;;;2635:62;2632:88;;;2700:18;;:::i;:::-;2736:2;2729:22;2504:253;:::o;2762:::-;2834:2;2828:9;2876:4;2864:17;;-1:-1:-1;;;;;2896:34:402;;2932:22;;;2893:62;2890:88;;;2958:18;;:::i;3020:257::-;3092:4;3086:11;;;3124:17;;-1:-1:-1;;;;;3156:34:402;;3192:22;;;3153:62;3150:88;;;3218:18;;:::i;3282:255::-;3354:2;3348:9;3396:6;3384:19;;-1:-1:-1;;;;;3418:34:402;;3454:22;;;3415:62;3412:88;;;3480:18;;:::i;3542:253::-;3614:2;3608:9;3656:4;3644:17;;-1:-1:-1;;;;;3676:34:402;;3712:22;;;3673:62;3670:88;;;3738:18;;:::i;3800:275::-;3871:2;3865:9;3936:2;3917:13;;-1:-1:-1;;3913:27:402;3901:40;;-1:-1:-1;;;;;3956:34:402;;3992:22;;;3953:62;3950:88;;;4018:18;;:::i;:::-;4054:2;4047:22;3800:275;;-1:-1:-1;3800:275:402:o;4080:531::-;4123:5;4176:3;4169:4;4161:6;4157:17;4153:27;4143:55;;4194:1;4191;4184:12;4143:55;4230:6;4217:20;-1:-1:-1;;;;;4252:2:402;4249:26;4246:52;;;4278:18;;:::i;:::-;4322:55;4365:2;4346:13;;-1:-1:-1;;4342:27:402;4371:4;4338:38;4322:55;:::i;:::-;4402:2;4393:7;4386:19;4448:3;4441:4;4436:2;4428:6;4424:15;4420:26;4417:35;4414:55;;;4465:1;4462;4455:12;4414:55;4530:2;4523:4;4515:6;4511:17;4504:4;4495:7;4491:18;4478:55;4578:1;4553:16;;;4571:4;4549:27;4542:38;;;;4557:7;4080:531;-1:-1:-1;;;4080:531:402:o;4616:171::-;4683:20;;-1:-1:-1;;;;;4732:30:402;;4722:41;;4712:69;;4777:1;4774;4767:12;4792:183;4852:4;-1:-1:-1;;;;;4877:6:402;4874:30;4871:56;;;4907:18;;:::i;:::-;-1:-1:-1;4952:1:402;4948:14;4964:4;4944:25;;4792:183::o;4980:120::-;5074:1;5067:5;5064:12;5054:40;;5090:1;5087;5080:12;5105:156;5171:20;;5231:4;5220:16;;5210:27;;5200:55;;5251:1;5248;5241:12;5266:1379;5334:5;5387:3;5380:4;5372:6;5368:17;5364:27;5354:55;;5405:1;5402;5395:12;5354:55;5441:6;5428:20;5467:4;5491:60;5507:43;5547:2;5507:43;:::i;:::-;5491:60;:::i;:::-;5585:15;;;5671:1;5667:10;;;;5655:23;;5651:32;;;5616:12;;;;5695:15;;;5692:35;;;5723:1;5720;5713:12;5692:35;5759:2;5751:6;5747:15;5771:845;5787:6;5782:3;5779:15;5771:845;;;5865:4;5859:3;5854;5850:13;5846:24;5843:114;;;5911:1;5940:2;5936;5929:14;5843:114;5983:22;;:::i;:::-;6046:3;6033:17;6085:1;6076:7;6073:14;6063:112;;6129:1;6158:2;6154;6147:14;6063:112;6188:22;;6259:12;;;6246:26;6230:14;;;6223:50;6296:2;6339:12;;;6326:26;6365:46;6326:26;6365:46;:::i;:::-;6431:14;;;6424:31;6478:2;6529:12;;;6516:26;6500:14;;;6493:50;6556:18;;6594:12;;;;5813:4;5804:14;5771:845;;;-1:-1:-1;6634:5:402;5266:1379;-1:-1:-1;;;;;;5266:1379:402:o;6650:1169::-;6720:5;6773:3;6766:4;6758:6;6754:17;6750:27;6740:55;;6791:1;6788;6781:12;6740:55;6827:6;6814:20;6853:4;6877:60;6893:43;6933:2;6893:43;:::i;6877:60::-;6971:15;;;7033:4;7076:13;;;7064:26;;7060:35;;;7002:12;;;;6959:3;7107:15;;;7104:35;;;7135:1;7132;7125:12;7104:35;7171:2;7163:6;7159:15;7183:607;7199:6;7194:3;7191:15;7183:607;;;7275:2;7269:3;7264;7260:13;7256:22;7253:112;;;7319:1;7348:2;7344;7337:14;7253:112;7391:22;;:::i;:::-;7454:3;7441:17;7471:52;7515:7;7471:52;:::i;:::-;7536:22;;7594:30;7611:12;;;7594:30;:::i;:::-;7589:2;7582:5;7578:14;7571:54;7648:2;7686:30;7712:2;7707:3;7703:12;7686:30;:::i;:::-;7670:14;;;7663:54;7730:18;;7768:12;;;;7216;;7183:607;;;-1:-1:-1;7808:5:402;;6650:1169;-1:-1:-1;;;;;;;6650:1169:402:o;7824:1726::-;7879:5;7927:4;7915:9;7910:3;7906:19;7902:30;7899:50;;;7945:1;7942;7935:12;7899:50;7967:22;;:::i;:::-;7958:31;;8025:9;8012:23;-1:-1:-1;;;;;8095:2:402;8087:6;8084:14;8081:34;;;8111:1;8108;8101:12;8081:34;8149:6;8138:9;8134:22;8124:32;;8194:3;8187:4;8183:2;8179:13;8175:23;8165:51;;8212:1;8209;8202:12;8165:51;8248:2;8235:16;8270:4;8294:60;8310:43;8350:2;8310:43;:::i;8294:60::-;8388:15;;;8470:1;8466:10;;;;8458:19;;8454:28;;;8419:12;;;;8494:15;;;8491:35;;;8522:1;8519;8512:12;8491:35;8546:11;;;;8566:527;8582:6;8577:3;8574:15;8566:527;;;8660:4;8654:3;8649;8645:13;8641:24;8638:114;;;8706:1;8735:2;8731;8724:14;8638:114;8780:22;;:::i;:::-;8843:3;8830:17;8860:52;8904:7;8860:52;:::i;:::-;8925:24;;8987:30;9004:12;;;8987:30;:::i;:::-;8969:16;;;8962:56;9031:20;;8608:4;8599:14;;;;;9071:12;;;;8566:527;;;9102:20;;-1:-1:-1;9160:18:402;;;9147:32;;-1:-1:-1;9191:16:402;;;9188:36;;;9220:1;9217;9210:12;9188:36;9256:73;9325:3;9314:8;9303:9;9299:24;9256:73;:::i;:::-;9240:14;;;9233:97;-1:-1:-1;9383:4:402;9368:20;;9355:34;;-1:-1:-1;9401:16:402;;;9398:36;;;9430:1;9427;9420:12;9398:36;;9468:75;9539:3;9528:8;9517:9;9513:24;9468:75;:::i;:::-;9461:4;9454:5;9450:16;9443:101;;7824:1726;;;;:::o;9555:1386::-;9624:5;9672:4;9660:9;9655:3;9651:19;9647:30;9644:50;;;9690:1;9687;9680:12;9644:50;9712:22;;:::i;:::-;9703:31;;9771:9;9758:23;9826:7;9819:15;9812:23;9803:7;9800:36;9790:64;;9850:1;9847;9840:12;9790:64;9863:22;;9904:2;9942:18;;;9929:32;-1:-1:-1;;;;;10010:14:402;;;10007:34;;;10037:1;10034;10027:12;10007:34;10075:6;10064:9;10060:22;10050:32;;10120:3;10113:4;10109:2;10105:13;10101:23;10091:51;;10138:1;10135;10128:12;10091:51;10174:2;10161:16;10197:60;10213:43;10253:2;10213:43;:::i;10197:60::-;10291:15;;;10373:1;10369:10;;;;10361:19;;10357:28;;;10322:12;;;;10397:15;;;10394:35;;;10425:1;10422;10415:12;10394:35;10449:11;;;;10469:236;10485:6;10480:3;10477:15;10469:236;;;10567:3;10554:17;10584:46;10622:7;10584:46;:::i;:::-;10643:20;;10502:12;;;;10683;;;;10469:236;;;10737:5;10732:2;10725:5;10721:14;10714:29;;;;10796:2;10785:9;10781:18;10768:32;10752:48;;10825:2;10815:8;10812:16;10809:36;;;10841:1;10838;10831:12;10809:36;;;10877:57;10930:3;10919:8;10908:9;10904:24;10877:57;:::i;10946:888::-;10999:5;11052:3;11045:4;11037:6;11033:17;11029:27;11019:55;;11070:1;11067;11060:12;11019:55;11106:6;11093:20;11132:4;11156:60;11172:43;11212:2;11172:43;:::i;11156:60::-;11250:15;;;11336:1;11332:10;;;;11320:23;;11316:32;;;11281:12;;;;11360:15;;;11357:35;;;11388:1;11385;11378:12;11357:35;11424:2;11416:6;11412:15;11436:369;11452:6;11447:3;11444:15;11436:369;;;11538:3;11525:17;-1:-1:-1;;;;;11561:11:402;11558:35;11555:125;;;11634:1;11663:2;11659;11652:14;11555:125;11705:57;11758:3;11753:2;11739:11;11731:6;11727:24;11723:33;11705:57;:::i;:::-;11693:70;;-1:-1:-1;11783:12:402;;;;11469;;11436:369;;11839:1671;11896:5;11944:4;11932:9;11927:3;11923:19;11919:30;11916:50;;;11962:1;11959;11952:12;11916:50;11984:22;;:::i;:::-;11975:31;;12042:9;12029:23;-1:-1:-1;;;;;12112:2:402;12104:6;12101:14;12098:34;;;12128:1;12125;12118:12;12098:34;12151:22;;;;12203:6;12189:12;;;12185:25;12182:45;;;12223:1;12220;12213:12;12182:45;12251:22;;:::i;:::-;12311:2;12298:16;12339:2;12329:8;12326:16;12323:36;;;12355:1;12352;12345:12;12323:36;12384:41;12421:3;12410:8;12406:2;12402:17;12384:41;:::i;:::-;12375:7;12368:58;;12472:2;12468;12464:11;12451:25;12501:2;12491:8;12488:16;12485:36;;;12517:1;12514;12507:12;12485:36;12555:41;12592:3;12581:8;12577:2;12573:17;12555:41;:::i;:::-;12550:2;12541:7;12537:16;12530:67;;12652:2;12648;12644:11;12631:25;12626:2;12617:7;12613:16;12606:51;12714:4;12710:2;12706:13;12693:27;12686:4;12677:7;12673:18;12666:55;12756:31;12782:3;12778:2;12774:12;12756:31;:::i;:::-;12750:3;12741:7;12737:17;12730:58;12823:32;12850:3;12846:2;12842:12;12823:32;:::i;:::-;12817:3;12808:7;12804:17;12797:59;12891:32;12918:3;12914:2;12910:12;12891:32;:::i;:::-;12885:3;12876:7;12872:17;12865:59;12980:3;12976:2;12972:12;12959:26;12953:3;12944:7;12940:17;12933:53;13005:3;13042:31;13069:2;13065;13061:11;13042:31;:::i;:::-;13024:16;;;13017:57;13083:22;;13158:2;13143:18;;13130:32;;-1:-1:-1;13174:16:402;;;13171:36;;;13203:1;13200;13193:12;13171:36;13239:71;13306:3;13295:8;13284:9;13280:24;13239:71;:::i;:::-;13234:2;13227:5;13223:14;13216:95;13364:2;13353:9;13349:18;13336:32;13320:48;;13393:2;13383:8;13380:16;13377:36;;;13409:1;13406;13399:12;13377:36;;13445:58;13499:3;13488:8;13477:9;13473:24;13445:58;:::i;13515:543::-;13573:5;13621:4;13609:9;13604:3;13600:19;13596:30;13593:50;;;13639:1;13636;13629:12;13593:50;13672:2;13666:9;13714:4;13706:6;13702:17;-1:-1:-1;;;;;13806:6:402;13794:10;13791:22;13786:2;13774:10;13771:18;13768:46;13765:72;;;13817:18;;:::i;:::-;13857:10;13853:2;13846:22;13886:6;13877:15;;13928:9;13915:23;13901:37;;13961:2;13953:6;13950:14;13947:34;;;13977:1;13974;13967:12;13947:34;;14005:46;14047:3;14038:6;14027:9;14023:22;14005:46;:::i;:::-;13997:6;13990:62;;;13515:543;;;;:::o;14063:1504::-;14150:6;14203:2;14191:9;14182:7;14178:23;14174:32;14171:52;;;14219:1;14216;14209:12;14171:52;14259:9;14246:23;-1:-1:-1;;;;;14329:2:402;14321:6;14318:14;14315:34;;;14345:1;14342;14335:12;14315:34;14368:22;;;;14424:4;14406:16;;;14402:27;14399:47;;;14442:1;14439;14432:12;14399:47;14468:22;;:::i;:::-;14528:2;14515:16;14556:2;14546:8;14543:16;14540:36;;;14572:1;14569;14562:12;14540:36;14599:45;14636:7;14625:8;14621:2;14617:17;14599:45;:::i;:::-;14592:5;14585:60;;14691:2;14687;14683:11;14670:25;14720:2;14710:8;14707:16;14704:36;;;14736:1;14733;14726:12;14704:36;14772:45;14809:7;14798:8;14794:2;14790:17;14772:45;:::i;:::-;14767:2;14760:5;14756:14;14749:69;;14864:2;14860;14856:11;14843:25;14893:2;14883:8;14880:16;14877:36;;;14909:1;14906;14899:12;14877:36;14945:56;14993:7;14982:8;14978:2;14974:17;14945:56;:::i;:::-;14940:2;14933:5;14929:14;14922:80;;15048:2;15044;15040:11;15027:25;15077:2;15067:8;15064:16;15061:36;;;15093:1;15090;15083:12;15061:36;15129:57;15178:7;15167:8;15163:2;15159:17;15129:57;:::i;:::-;15124:2;15117:5;15113:14;15106:81;;15233:3;15229:2;15225:12;15212:26;15263:2;15253:8;15250:16;15247:36;;;15279:1;15276;15269:12;15247:36;15316:45;15353:7;15342:8;15338:2;15334:17;15316:45;:::i;:::-;15310:3;15303:5;15299:15;15292:70;;15408:3;15404:2;15400:12;15387:26;15438:2;15428:8;15425:16;15422:36;;;15454:1;15451;15444:12;15422:36;15491:45;15528:7;15517:8;15513:2;15509:17;15491:45;:::i;:::-;15485:3;15474:15;;15467:70;-1:-1:-1;15478:5:402;14063:1504;-1:-1:-1;;;;;14063:1504:402:o;15572:184::-;15642:6;15695:2;15683:9;15674:7;15670:23;15666:32;15663:52;;;15711:1;15708;15701:12;15663:52;-1:-1:-1;15734:16:402;;15572:184;-1:-1:-1;15572:184:402:o;15761:232::-;15800:3;15821:17;;;15818:140;;15880:10;15875:3;15871:20;15868:1;15861:31;15915:4;15912:1;15905:15;15943:4;15940:1;15933:15;15818:140;-1:-1:-1;15985:1:402;15974:13;;15761:232::o;15998:250::-;16083:1;16093:113;16107:6;16104:1;16101:13;16093:113;;;16183:11;;;16177:18;16164:11;;;16157:39;16129:2;16122:10;16093:113;;;-1:-1:-1;;16240:1:402;16222:16;;16215:27;15998:250::o;16253:271::-;16295:3;16333:5;16327:12;16360:6;16355:3;16348:19;16376:76;16445:6;16438:4;16433:3;16429:14;16422:4;16415:5;16411:16;16376:76;:::i;:::-;16506:2;16485:15;-1:-1:-1;;16481:29:402;16472:39;;;;16513:4;16468:50;;16253:271;-1:-1:-1;;16253:271:402:o;16529:809::-;16850:3;16839:9;16832:22;16813:4;16877:46;16918:3;16907:9;16903:19;16895:6;16877:46;:::i;:::-;16971:9;16963:6;16959:22;16954:2;16943:9;16939:18;16932:50;17005:33;17031:6;17023;17005:33;:::i;:::-;-1:-1:-1;;;;;17074:32:402;;17069:2;17054:18;;17047:60;17143:22;;;17138:2;17123:18;;17116:50;16991:47;-1:-1:-1;17189:33:402;16991:47;17207:6;17189:33;:::i;:::-;17175:47;;17271:9;17263:6;17259:22;17253:3;17242:9;17238:19;17231:51;17299:33;17325:6;17317;17299:33;:::i;:::-;17291:41;16529:809;-1:-1:-1;;;;;;;;16529:809:402:o;17343:127::-;17404:10;17399:3;17395:20;17392:1;17385:31;17435:4;17432:1;17425:15;17459:4;17456:1;17449:15;17475:658;17646:2;17698:21;;;17768:13;;17671:18;;;17790:22;;;17617:4;;17646:2;17869:15;;;;17843:2;17828:18;;;17617:4;17912:195;17926:6;17923:1;17920:13;17912:195;;;17991:13;;-1:-1:-1;;;;;17987:39:402;17975:52;;18082:15;;;;18047:12;;;;18023:1;17941:9;17912:195;;;-1:-1:-1;18124:3:402;;17475:658;-1:-1:-1;;;;;;17475:658:402:o;18518:337::-;-1:-1:-1;;;;;18715:32:402;;18697:51;;18784:2;18779;18764:18;;18757:30;;;-1:-1:-1;;18804:45:402;;18830:18;;18822:6;18804:45;:::i;18860:492::-;19035:3;19073:6;19067:13;19089:66;19148:6;19143:3;19136:4;19128:6;19124:17;19089:66;:::i;:::-;19218:13;;19177:16;;;;19240:70;19218:13;19177:16;19287:4;19275:17;;19240:70;:::i;:::-;19326:20;;18860:492;-1:-1:-1;;;;18860:492:402:o;19357:287::-;19482:1;19478;19473:3;19469:11;19465:19;19457:5;19451:12;19447:38;19442:3;19435:51;19417:3;19532:4;19525:5;19521:16;19515:23;19570:4;19563;19558:3;19554:14;19547:28;19591:47;19632:4;19627:3;19623:14;19609:12;19591:47;:::i;19649:1690::-;20046:2;20035:9;20028:21;20009:4;20072:45;20113:2;20102:9;20098:18;20090:6;20072:45;:::i;:::-;20136:2;20186:9;20178:6;20174:22;20169:2;20158:9;20154:18;20147:50;20217:6;20252;20246:13;20283:6;20275;20268:22;20318:2;20310:6;20306:15;20299:22;;20377:2;20367:6;20364:1;20360:14;20352:6;20348:27;20344:36;20415:2;20407:6;20403:15;20436:1;20446:252;20460:6;20457:1;20454:13;20446:252;;;20550:2;20546:7;20537:6;20529;20525:19;20521:33;20516:3;20509:46;20578:40;20611:6;20602;20596:13;20578:40;:::i;:::-;20676:12;;;;20568:50;-1:-1:-1;20641:15:402;;;;20482:1;20475:9;20446:252;;;-1:-1:-1;;20734:22:402;;;20729:2;20714:18;;20707:50;20810:13;;20832:24;;;20874:15;;;;-1:-1:-1;20810:13:402;-1:-1:-1;20932:1:402;20928:16;;;20916:29;;20912:38;;;-1:-1:-1;20975:15:402;;;21010:1;21020:290;21036:8;21031:3;21028:17;21020:290;;;21134:2;21130:7;21121:6;21113;21109:19;21105:33;21098:5;21091:48;21162:60;21215:6;21204:8;21198:15;21162:60;:::i;:::-;21286:14;;;;21152:70;-1:-1:-1;21247:17:402;;;;21064:1;21055:11;21020:290;;;-1:-1:-1;21327:6:402;;19649:1690;-1:-1:-1;;;;;;;;;;19649:1690:402:o;21344:361::-;21573:6;21562:9;21555:25;21616:2;21611;21600:9;21596:18;21589:30;21536:4;21636:63;21695:2;21684:9;21680:18;21672:6;21636:63;:::i;21710:127::-;21771:10;21766:3;21762:20;21759:1;21752:31;21802:4;21799:1;21792:15;21826:4;21823:1;21816:15;21842:126;21936:1;21929:5;21926:12;21916:46;;21942:18;;:::i;21973:807::-;22040:3;22078:5;22072:12;22105:6;22100:3;22093:19;22131:4;22160;22155:3;22151:14;22144:21;;22199:4;22192:5;22188:16;22222:1;22232:523;22246:6;22243:1;22240:13;22232:523;;;22311:6;22305:13;22347:2;22341:9;22380:1;22376:2;22373:9;22363:43;;22386:18;;:::i;:::-;22419:15;;22474:11;;;22468:18;22454:12;;;22447:40;22510:4;22558:11;;;22552:18;-1:-1:-1;;;;;22548:44:402;22534:12;;;22527:66;22616:4;22660:11;;;22654:18;22640:12;;;22633:40;22702:4;22693:14;;;;22730:15;;;;22589:1;22261:9;22232:523;;;-1:-1:-1;22771:3:402;;21973:807;-1:-1:-1;;;;;21973:807:402:o;22785:797::-;22854:3;22892:5;22886:12;22919:6;22914:3;22907:19;22945:4;22974;22969:3;22965:14;22958:21;;23013:4;23006:5;23002:16;23036:1;23046:511;23060:6;23057:1;23054:13;23046:511;;;23125:6;23119:13;23161:2;23155:9;23177:47;23221:2;23177:47;:::i;:::-;23237:15;;23291:11;;;23285:18;23326:4;23364:21;;;23350:12;;;23343:43;23409:4;23457:11;;;23451:18;23447:27;23433:12;;;23426:49;23504:4;23495:14;;;;23532:15;;;;23082:1;23075:9;23046:511;;23587:1338;23762:2;23773:21;;;23865:13;;23914:4;23894:18;;;23887:32;23968:19;;23832:3;23817:19;;23996:22;;;23733:4;;23762:2;24076:21;;;23733:4;;24049:3;24034:19;;;24125:352;24139:6;24136:1;24133:13;24125:352;;;24204:6;24198:13;24240:2;24234:9;24256:47;24300:2;24256:47;:::i;:::-;24316:15;;24375:11;;24369:18;24389:4;24365:29;24351:12;;;24344:51;24452:15;;;;24161:1;24154:9;;;;;24424:4;24415:14;;;;24125:352;;;24129:3;24526:2;24518:6;24514:15;24508:22;24486:44;;24553:2;24549:7;24539:17;;24619:2;24607:9;24602:3;24598:19;24594:28;24587:4;24576:9;24572:20;24565:58;24646:63;24705:3;24689:14;24646:63;:::i;:::-;24632:77;;;;24758:4;24750:6;24746:17;24740:24;24830:2;24818:9;24810:6;24806:22;24802:31;24795:4;24784:9;24780:20;24773:61;24851:68;24912:6;24896:14;24851:68;:::i;:::-;24843:76;23587:1338;-1:-1:-1;;;;;;23587:1338:402:o;25237:297::-;25355:12;;25402:4;25391:16;;;25385:23;;25355:12;25420:16;;25417:111;;;25514:1;25510:6;25500;25494:4;25490:17;25487:1;25483:25;25479:38;25472:5;25468:50;25459:59;;25417:111;;25237:297;;;:::o;25539:834::-;25794:6;25783:9;25776:25;25757:4;25820:2;25858;25853;25842:9;25838:18;25831:30;25884:45;25925:2;25914:9;25910:18;25902:6;25884:45;:::i;:::-;25965:22;;;25960:2;25945:18;;25938:50;26037:13;;26059:22;;;26109:2;26135:15;;;;26097;;26168:1;26178:169;26192:6;26189:1;26186:13;26178:169;;;26253:13;;26241:26;;26322:15;;;;26287:12;;;;26214:1;26207:9;26178:169;;;-1:-1:-1;26364:3:402;;25539:834;-1:-1:-1;;;;;;;;25539:834:402:o;26835:1849::-;27193:4;27239:1;27235;27230:3;27226:11;27222:19;27280:2;27272:6;27268:15;27257:9;27250:34;27348:10;27343:3;27339:20;27330:6;27324:13;27320:40;27315:2;27304:9;27300:18;27293:68;27425:2;27419;27411:6;27407:15;27401:22;27397:31;27392:2;27381:9;27377:18;27370:59;27484:2;27475:6;27469:13;27465:22;27460:2;27449:9;27445:18;27438:50;;27543:2;27535:6;27531:15;27525:22;27519:3;27508:9;27504:19;27497:51;27585:3;27579;27568:9;27564:19;27557:32;27624:6;27618:13;27650:6;27693:2;27687:3;27676:9;27672:19;27665:31;27719:52;27766:3;27755:9;27751:19;27737:12;27719:52;:::i;:::-;27705:66;;27820:2;27812:6;27808:15;27802:22;27893:3;27889:8;27877:9;27869:6;27865:22;27861:37;27855:3;27844:9;27840:19;27833:66;27922:41;27956:6;27940:14;27922:41;:::i;:::-;27908:55;;;28000:2;27992:6;27988:15;27982:22;28023:3;28062:2;28057;28046:9;28042:18;28035:30;28119:2;28111:6;28107:15;28101:22;28096:2;28085:9;28081:18;28074:50;28173:3;28165:6;28161:16;28155:23;28133:45;;28187:54;28236:3;28225:9;28221:19;28205:14;-1:-1:-1;;;;;26793:30:402;26781:43;;26728:102;28187:54;28290:3;28278:16;;28272:23;-1:-1:-1;;;;;727:31:402;;;28354:3;28339:19;;715:44;28408:3;28396:16;;28390:23;727:31;;28472:3;28457:19;;715:44;28532:3;28520:16;;28514:23;28508:3;28493:19;;28486:52;28575:15;;;28569:22;727:31;;;28650:3;28635:19;;715:44;28569:22;-1:-1:-1;28600:55:402;;-1:-1:-1;661:104:402","linkReferences":{}},"methodIdentifiers":{"__Architect_init(address,address,address)":"dc1b9f23","createSpace((string,string,((string,string,uint256,uint256,uint64,address,address,uint256,address),(bool,address[],((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[])),string[]),(string),string,string))":"ef009225","getSpaceArchitectImplementations()":"545efb2d","getSpaceByTokenId(uint256)":"673f0dd5","getTokenIdBySpace(address)":"c0bc6796","setSpaceArchitectImplementations(address,address,address)":"8bfc94b9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Architect__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Architect__InvalidNetworkId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Architect__InvalidStringLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Architect__NotContract\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Factory__FailedDeployment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_InInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_NotInInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_AlreadySupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_NotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Ownable__NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Ownable__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__NotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__Paused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuard__ReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Validator__InvalidAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"}],\"name\":\"SpaceCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract ISpaceOwner\",\"name\":\"ownerImplementation\",\"type\":\"address\"},{\"internalType\":\"contract IUserEntitlement\",\"name\":\"userEntitlementImplementation\",\"type\":\"address\"},{\"internalType\":\"contract IRuleEntitlement\",\"name\":\"ruleEntitlementImplementation\",\"type\":\"address\"}],\"name\":\"__Architect_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"freeAllocation\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"pricingModule\",\"type\":\"address\"}],\"internalType\":\"struct IMembershipBase.Membership\",\"name\":\"settings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"everyone\",\"type\":\"bool\"},{\"internalType\":\"address[]\",\"name\":\"users\",\"type\":\"address[]\"},{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlementBase.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlementBase.RuleData\",\"name\":\"ruleData\",\"type\":\"tuple\"}],\"internalType\":\"struct IArchitectBase.MembershipRequirements\",\"name\":\"requirements\",\"type\":\"tuple\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"}],\"internalType\":\"struct IArchitectBase.Membership\",\"name\":\"membership\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"}],\"internalType\":\"struct IArchitectBase.ChannelInfo\",\"name\":\"channel\",\"type\":\"tuple\"},{\"internalType\":\"string\",\"name\":\"shortDescription\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"longDescription\",\"type\":\"string\"}],\"internalType\":\"struct IArchitectBase.SpaceInfo\",\"name\":\"spaceInfo\",\"type\":\"tuple\"}],\"name\":\"createSpace\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSpaceArchitectImplementations\",\"outputs\":[{\"internalType\":\"contract ISpaceOwner\",\"name\":\"spaceToken\",\"type\":\"address\"},{\"internalType\":\"contract IUserEntitlement\",\"name\":\"userEntitlementImplementation\",\"type\":\"address\"},{\"internalType\":\"contract IRuleEntitlement\",\"name\":\"ruleEntitlementImplementation\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getSpaceByTokenId\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"}],\"name\":\"getTokenIdBySpace\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISpaceOwner\",\"name\":\"spaceToken\",\"type\":\"address\"},{\"internalType\":\"contract IUserEntitlement\",\"name\":\"userEntitlementImplementation\",\"type\":\"address\"},{\"internalType\":\"contract IRuleEntitlement\",\"name\":\"ruleEntitlementImplementation\",\"type\":\"address\"}],\"name\":\"setSpaceArchitectImplementations\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"OwnershipTransferred(address,address)\":{\"details\":\"This emits when ownership of a contract changes.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"InterfaceAdded(bytes4)\":{\"notice\":\"Emitted when an interface is added to the contract via `_addInterface`.\"},\"InterfaceRemoved(bytes4)\":{\"notice\":\"Emitted when an interface is removed from the contract via `_removeInterface`.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/factory/facets/architect/Architect.sol\":\"Architect\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/checker/IEntitlementChecker.sol\":{\"keccak256\":\"0xbeb7bfa236f19172b29eac53be03a3b377de3524b2d836192b0c64ebe708c204\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d5a103a2b7b6be1ffa6662db6081763bcd210216fefc25307b835c555e0cf4d\",\"dweb:/ipfs/QmUCvhZdZpVnyJuZVgd2qGduTf11384TmmBJb2RaEBHxhh\"]},\"contracts/src/diamond/facets/Facet.sol\":{\"keccak256\":\"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863\",\"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc\"]},\"contracts/src/diamond/facets/initializable/Initializable.sol\":{\"keccak256\":\"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552\",\"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC\"]},\"contracts/src/diamond/facets/initializable/InitializableStorage.sol\":{\"keccak256\":\"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4\",\"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg\"]},\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/introspection/IntrospectionBase.sol\":{\"keccak256\":\"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1\",\"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw\"]},\"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol\":{\"keccak256\":\"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91\",\"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM\"]},\"contracts/src/diamond/facets/ownable/IERC173.sol\":{\"keccak256\":\"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b\",\"dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd\"]},\"contracts/src/diamond/facets/ownable/OwnableBase.sol\":{\"keccak256\":\"0x272abaecc104d5f23d77a623cf1548620d24b0f447eb2a12144e27561ff489f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcb8c20ff7346bdc5dba82e6680cc0ea64087460a12153e3b6c3416f6addf875\",\"dweb:/ipfs/QmfEEufJBzudSDekQteQkb3CzmnzUPT3GDhNgVpHNC9xaf\"]},\"contracts/src/diamond/facets/ownable/OwnableStorage.sol\":{\"keccak256\":\"0xda650482ce08c04110366cb01408aaabd01383d9c504b7cacfb2674aae688dcd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://694f42ffb353fccaa1eadf91dee3a3cee7253e3f357bcba2b175fd7be701e27e\",\"dweb:/ipfs/QmPxxVerATSYrNLp7snnSvNVsbLPm1wzHULhBbtR333eik\"]},\"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol\":{\"keccak256\":\"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb\",\"dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol\":{\"keccak256\":\"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb\",\"dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol\":{\"keccak256\":\"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf\",\"dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F\"]},\"contracts/src/diamond/facets/pausable/IPausable.sol\":{\"keccak256\":\"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684\",\"dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ\"]},\"contracts/src/diamond/facets/pausable/PausableBase.sol\":{\"keccak256\":\"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3\",\"dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V\"]},\"contracts/src/diamond/facets/pausable/PausableStorage.sol\":{\"keccak256\":\"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd\",\"dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj\"]},\"contracts/src/diamond/facets/reentrancy/IReentrancyGuard.sol\":{\"keccak256\":\"0x89ad30ac5476efd023189fca20b13214fe5541ea5fff11760e00f229c62c896e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc04fb0c48333cb0f4b84b01e50498d60510d52495c3772f0bf632773ec47a7d\",\"dweb:/ipfs/QmQUuYriat7eRRsPUHTeD2CDEwHzYxqW6qix7xf44kWByo\"]},\"contracts/src/diamond/facets/reentrancy/ReentrancyGuard.sol\":{\"keccak256\":\"0xb481ee6684d1589254563cb5c318b1eb75f6f15f96baecbd5f5e42b72b7a5003\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e1bafcd0779c6241ee7716ae2058dd6f7d5a75bb211f5bfcb9aefa434228f8\",\"dweb:/ipfs/QmSbsdGjL1be4VBjgWrk5CodWGvszXZt5HX32PxhvXTZ5Y\"]},\"contracts/src/diamond/facets/reentrancy/ReentrancyGuardStorage.sol\":{\"keccak256\":\"0xe4a08e5712446357756a6da7b65ae80845732dfebac180bd478caaf64dfc790e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09f5691ae9aedbe094cc83a0e8a4272c4d6dd5f57e69fec5870b148f2d94395e\",\"dweb:/ipfs/QmTLHQWuRp1L45oRV8oWWbk4Y4MMNYW1Rp9WUJ86gzVVRv\"]},\"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol\":{\"keccak256\":\"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615\",\"dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol\":{\"keccak256\":\"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba\",\"dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol\":{\"keccak256\":\"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04\",\"dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey\"]},\"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol\":{\"keccak256\":\"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d\",\"dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz\"]},\"contracts/src/diamond/proxy/IProxy.sol\":{\"keccak256\":\"0x94506109e5e47fafba65c94f2d74d0c7860e5911fe90fbe3b49817afda3b2145\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://969f73c692e96091ef4565e5e7f9d4114ce6d51a619a75f9b1a0703f737e4ceb\",\"dweb:/ipfs/QmbohRzHyVrD36w3b7UdM1jqpPMViSx3DVCHWuXTLkG3bM\"]},\"contracts/src/diamond/proxy/Proxy.sol\":{\"keccak256\":\"0x9e3a60886852d03e7a09bd0daac7f524d9aebf7d26a19e6bd726ecb84404f9cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e469174f1f9e9a5afa47fd7e8fc0c64065704b2397eb187037a3a508da6fa90d\",\"dweb:/ipfs/QmUQwmPLvo5yJ2aGz5JGGTL1AVUPbF1gK4nBBH6M49HBrD\"]},\"contracts/src/diamond/proxy/managed/IManagedProxy.sol\":{\"keccak256\":\"0xf064a056a73233ef207e7206ac910616210f6729147f29912bdb4abc69906d01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://befb3501cc4b180ed3c5b156bde2700a6de26f17e828bdb8e8ff9615268f91e1\",\"dweb:/ipfs/QmP2qGhFpySb1efhpbRBXDxzxLjVTF2UmF2KRCM8hGrsPV\"]},\"contracts/src/diamond/proxy/managed/ManagedProxyBase.sol\":{\"keccak256\":\"0x0cc3fa005591526a9eaddc4111064685cf0d8fcbbcdf5d920dd751a038029552\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36eb108c5307d842cf1de83e5466affa2d70286e29fabce23e07c22a83c73203\",\"dweb:/ipfs/QmY55RPvgjLMNeHN4vF2XzapzpQ1ffR7ozwQKkWsUWpjRp\"]},\"contracts/src/diamond/proxy/managed/ManagedProxyStorage.sol\":{\"keccak256\":\"0x2f09ac0009d994e8095003f5a95512b28d008613571861cb0ede96a6af532b1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d2160d94085d44c9cae45b051f680a82c865a856e3c7f1ac50c6b6c31243b206\",\"dweb:/ipfs/QmXUzx5RKLmAFKgT1aygcpBmrWS5RzhEZT6fsS8YqdG68J\"]},\"contracts/src/diamond/proxy/manager/IProxyManager.sol\":{\"keccak256\":\"0x01f8bfb90685f0bc76eefc19f868b106c4acc098336874a751917858c54c1f7b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://766eba3ae42116b15d3d52e54a13dfd8229098e5e50b66145a9db39c6b94d64c\",\"dweb:/ipfs/QmXsuwKLXLWPTDZH1UjCF2cRgn6fYr6qHLMY5nb6GWb8kP\"]},\"contracts/src/diamond/utils/multicall/IMulticall.sol\":{\"keccak256\":\"0x6dc9ea0a61c25be2ccf2812ae27c4044d2471b113862f242ef5d11fba1167ec1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31d7c5626cb8817e9a638b42dac9d19eafdbb5e7db50a54a667bf9a8e469e0e8\",\"dweb:/ipfs/Qmex9vaHpj8wPwG31Rvft9oXtdLeK1JRCrzgGSVMqszRGZ\"]},\"contracts/src/diamond/utils/multicall/Multicall.sol\":{\"keccak256\":\"0xd033d4a233fbfee42239cea898cfb995d1e3aa2585aee8def257703cd00a3b5b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03cb097e17b5443b71058d028b3409db07a7ecad1d1edc360c72ed32cbd9c0dd\",\"dweb:/ipfs/QmTbqyWToxcJynYhRBioTTPHucUExeEiriKekZ1vBToUpg\"]},\"contracts/src/factory/facets/architect/Architect.sol\":{\"keccak256\":\"0x546e407119ca047d99f622d77fe017f893e4148a0ab1b32938113815083204af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f32d3dbaa7f2317db849eae44be1a1408abbb461e667ad08087ee220ac577888\",\"dweb:/ipfs/Qmf4cmkXNY4Wh8vrk1S39LGr35JkHTR7Mdr4MXXETqt7fW\"]},\"contracts/src/factory/facets/architect/ArchitectBase.sol\":{\"keccak256\":\"0x4676216deb8678864044c22050d05c0860a6b0a9e324aa232167f88dbe79c0ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e16ca2c87ccf1fb7761694353586b1f712e29b2def92edbb2eb429792b08bfe4\",\"dweb:/ipfs/QmbfsL35mBjHuq9bwMnhB9UdZ2dqpuopPNSDBYRf2ATkhP\"]},\"contracts/src/factory/facets/architect/ArchitectStorage.sol\":{\"keccak256\":\"0xc62e53da3472373306030cd9bb5621f895b5ebbab23ab5d03311c237fe3fb19c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bc61d6591c8c621fa635c988cdf10716037a0cbaed5fac650ed77af6c7d8561\",\"dweb:/ipfs/QmVwXUiJppdHAU5STPsZjFFGqFNosjyxP5R2NJQSp3yTsd\"]},\"contracts/src/factory/facets/architect/IArchitect.sol\":{\"keccak256\":\"0xdc01eb58a1778852dc48091aa5e2155f13be6089a337ac4e5196a378ffbce195\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://31fc4dc1923f3484729151de58f0a43839ce4b65d846b0aa2dd8f4416914e714\",\"dweb:/ipfs/QmNb5NiKSHwkmHb6hWNhu9GnPaEFJGdUMy4Tzv4KDmap1u\"]},\"contracts/src/factory/facets/architect/ImplementationStorage.sol\":{\"keccak256\":\"0x539f0fc6ea9638bf9db3ec27511ee3775671ac0a538ff341563e3518468a8907\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b904a1779579e3facc6d9b27a007deb35dce71403ca6d27d63a3d3906fcf9de\",\"dweb:/ipfs/Qmab9yzwbmRy5znzDVZ5kTT98j4EkkaZ8bRoFizdwiHy4S\"]},\"contracts/src/factory/facets/architect/pricing/IPricingModules.sol\":{\"keccak256\":\"0xa45fcd2bb5037c0b9b80bb02a3a4bd00fa99598a8d9e0a5ee2dff7a04c670171\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f95100f32791a9aa2e3cc47fb9cd58542e9250834bfc38756012cc4baaa786\",\"dweb:/ipfs/QmYGPF6HQLoq5bCgMYW1AyT2Vz1H12Lt8LDdmzTadN5Ppm\"]},\"contracts/src/factory/facets/platform/requirements/IPlatformRequirements.sol\":{\"keccak256\":\"0xd1c61d42973382822d0b8256b5d308ad693dfa59240864cce0bec1bd4208e4c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bff6d50557810f7aa9de451f6ac2b279fe5983eefc0b38ef8be7ebb2ffde0f86\",\"dweb:/ipfs/QmS6DXYXtPTfePgtrUxH1vmPycsVoumBQRJZugjGButowT\"]},\"contracts/src/factory/facets/registry/IImplementationRegistry.sol\":{\"keccak256\":\"0xb447f7654cd152c29718c95983b62e390a59658d7d1a22b97f79d0aee9fb5de7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://756a9a38364c01937088ba927f09af2726d2df207eea4e0e2842e3fc66ccd32c\",\"dweb:/ipfs/QmbxBRXgtkEQsGtxq1uSM6vX38FkjPq6tpodCdtBmdEmXA\"]},\"contracts/src/factory/facets/wallet-link/IWalletLink.sol\":{\"keccak256\":\"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0\",\"dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5\"]},\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":{\"keccak256\":\"0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd\",\"dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j\"]},\"contracts/src/spaces/entitlements/user/IUserEntitlement.sol\":{\"keccak256\":\"0x573a718650f7088b84fe0bc6ec0b85c354c58c842691c66b2e682912455161c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b41f88dd0e806b3f61b72f340dbdc53710827b1c8de9bcba6ba11fd1f8ae25a\",\"dweb:/ipfs/QmZZtrWAgx3aLFA2dXuoHtujBqEuxAkHZkMP4FdmEAcQRx\"]},\"contracts/src/spaces/facets/Permissions.sol\":{\"keccak256\":\"0x08f1d02cacf8b8adcb38219623f999d15908185eefca4e3d0ea2c3486091d08c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6b021cd9adfed316fc1f43b99e5430d75469ef13d252fa5eb25057155908b77\",\"dweb:/ipfs/QmYAhL8hWcbtHARsAY9nauyRB4BERUi9s7SSRYkb1e1kCh\"]},\"contracts/src/spaces/facets/channels/IChannel.sol\":{\"keccak256\":\"0x8f461ec8c49234f27257fc5cf20dd5e9fdb4692d9b17075be63e8ee6db854554\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52673312b7dfe3fa2b0e8b603a368036f3b428b303f9e539b558ccfdf5490b54\",\"dweb:/ipfs/Qme3LoUvB1Axz9ZJZ8Erv6Cw6GLPQB7PNghMQ3FUYfA4VV\"]},\"contracts/src/spaces/facets/entitlements/IEntitlementsManager.sol\":{\"keccak256\":\"0x3be8ab93ad7f1417c0b0f6aa3f74dca36034464085d40fd2e94f3b31ff5be03d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e97436fca686896a1ffc56dd64f58997775bef504e0568c62ba4d103a99939c\",\"dweb:/ipfs/QmWn5wvuuEFDhnqXJcJVb69ndDmhUMXWdUGYKR2VBfLsEw\"]},\"contracts/src/spaces/facets/gated/EntitlementGatedBase.sol\":{\"keccak256\":\"0xcefa5c3c81c73fefaa7da433ddd5c419dc4c31cd86e8c31f47894663ca7269e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27fe60a48a69d5be67fdf17f5aac1e90ef0234da564ec4f6e2cbfe53fbb9ba0c\",\"dweb:/ipfs/QmPemsjAUmjjjyLWbHzVmqLxyBAN7CFi6DViy9uQEM3wjt\"]},\"contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol\":{\"keccak256\":\"0xb058672a61d2742e8232232cc66f052443d82beb8b2cdc681f10c23a49351b84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f39d39a3bd3e39c2f6a5b21b82a7339176c163d82335f901a64c57dd73ffa5a3\",\"dweb:/ipfs/QmP8RmYv79xX8hLmrvjfceW9mdRYCYxMaxpywRpR281tMo\"]},\"contracts/src/spaces/facets/gated/IEntitlementGated.sol\":{\"keccak256\":\"0x948de1018f7f78366263a40e0f8269e10941216bd03a9996edb24a6230959e74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc985539ce639f39fd68723acca6424a78deac6cec3693c9d8e1084a487c83ec\",\"dweb:/ipfs/QmQujX5rmDwhJZurp11FTiPLb7ev9swLTtdkagA8wydZiT\"]},\"contracts/src/spaces/facets/membership/IMembership.sol\":{\"keccak256\":\"0x7fbf37c681ae95610ed376a30d68808b9da602a3225dbe1724dfe7c1c82de672\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa8d56cca2d01883595cfbd1a6aa3b63202ed25fb56ac1e57d3cf645665dd77\",\"dweb:/ipfs/QmbLF87ZZCovJn3enbs78mcJu39zXi8FYum72fTufZt3e4\"]},\"contracts/src/spaces/facets/membership/MembershipBase.sol\":{\"keccak256\":\"0x4f42c9176fb345d3da7825e0045e57707396d52bb8e208c81ed81e9d76bd90eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fac0c230acd543d90c1b88174e3dcdc9a135e7217741a32580b250941ad30bf\",\"dweb:/ipfs/QmXaLoyaFmomPPZCcJiY3dzsRjZiWoVkNdKtDa67vh16CR\"]},\"contracts/src/spaces/facets/membership/MembershipStorage.sol\":{\"keccak256\":\"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a\",\"dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa\"]},\"contracts/src/spaces/facets/membership/pricing/IMembershipPricing.sol\":{\"keccak256\":\"0x9e3b6766b92d0e48b4b23a024f9622923f30d90f6f8673ded81e423171ec30c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6f76b6045a8c6eeb24d6a9a42f82495cb1cb125dd90921d16a949b00a6f52dc\",\"dweb:/ipfs/QmPbRy4sAabTkEnZBoubzPqH2ycPevEzcEJ4NYJsCWmTFF\"]},\"contracts/src/spaces/facets/owner/ISpaceOwner.sol\":{\"keccak256\":\"0x75fef729920165a9cc37f7c212da288bc983bb11e39544a59c657cd9fa2e204a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1baac2d168e5ee3269b0b6b59ce7df29e63c38ef3d484850ed05f0a56ab59464\",\"dweb:/ipfs/QmZPxAByZ4PiQFUq45AM8LEJ2YC6n8XxE6nRHgf8Kg7nxZ\"]},\"contracts/src/spaces/facets/prepay/IPrepay.sol\":{\"keccak256\":\"0x4cc23cd204f20bd4a094d9292aaa494f73478d27c8f59e646454cbba11d781fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f54c224f56396ac03335c95c4808acbeec6366f0c475d29edb2461cd53bcd15\",\"dweb:/ipfs/QmdDKUR8VVXJuR5Fj29SZxvR9GwxXeNQ6rtAT3TxX8VjwT\"]},\"contracts/src/spaces/facets/proxy/SpaceProxy.sol\":{\"keccak256\":\"0x0abbcfe10500b16399e91aefced93c460a0916e43738b06701c6994aff0e7c4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://074691333cc1da44a2768dcd7c6d8ec62cf119449114e1cde7516285cccfed7b\",\"dweb:/ipfs/QmQ7bwLuNgHpnPGbzMH9CNtG8ap4neP6pwEGmVJT5nrD8J\"]},\"contracts/src/spaces/facets/roles/IRoles.sol\":{\"keccak256\":\"0xa69cfbcd989b8794187a56a93deffbefaee8ca456e381ce30f85897893c50272\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf8e9b2711f66eefb949f5b5ead4d72005f1845cd63f22b287fdba3339101bd4\",\"dweb:/ipfs/Qmf7sPY4BgmvZf7p4GBsyVyd4o66yJXMgAmEgpdQAQyBdx\"]},\"contracts/src/utils/Factory.sol\":{\"keccak256\":\"0x150045213e6284abce967c3f6abc8989952d181c43540acf92709486aebec3ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://282730a1c005f83c5eb11d2f19ca5a8c2ab1bba4e4a403eb651f6a232a874791\",\"dweb:/ipfs/QmcPLz1uWkCukNsSwu69i8BVmjF7g9pg47cAmD3swaaFTY\"]},\"contracts/src/utils/StringSet.sol\":{\"keccak256\":\"0x2b9880e846f275864e847e8c7079d29a02c4a060c5a9d580fb153ff0e7b49ff6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df9c170f28318746eab23befba1318735652c7d198e273a322a0ff2702680605\",\"dweb:/ipfs/QmanQQi9YiPHb9Cn4wpfQ9VYUi7UZ9iQibLL6V46JPibLu\"]},\"contracts/src/utils/Validator.sol\":{\"keccak256\":\"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306\",\"dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt\"]},\"contracts/src/utils/interfaces/IWETH.sol\":{\"keccak256\":\"0xb0a9a284b02664b2ceda4ed7cc8e7dbdd39cc09292b65b97a3417ba5b1440dd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://701edb4dbdb8ab50ed2fdb568cc0956c07184e1f4e7d63854efc158408fa72a5\",\"dweb:/ipfs/QmV58ikDDcTC92hGEuQKerfsygnPg5cwCVLuMh9R9uYXb6\"]},\"contracts/src/utils/libraries/BasisPoints.sol\":{\"keccak256\":\"0xfaa5790726afc20e29f2a00e67693a59ae85a045beaa95f8f58bcbcef01ed87b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2da5e15739fc7093ea7b935c6542f7c01d9c33843a3d1a1d8895db404f8160e\",\"dweb:/ipfs/QmYVUkSh3QX7u9rnKfqLeb9Rh8tko5Q3Gpry6KnhTRF58L\"]},\"contracts/src/utils/libraries/CurrencyTransfer.sol\":{\"keccak256\":\"0x3242d518aedc3ca9a49fb4221de4596ee219b9569abf0548d28dbbecd569a336\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2260078d61b0ee998b54f60c4db4bc8e8a9afdf351018a343c82fa984aca88d\",\"dweb:/ipfs/QmT83nFPb4JzsWCPf9j58xTsaDvuMmq5MH1z8GrEWtBLcx\"]},\"lib/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c\",\"dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV\"]},\"lib/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a\",\"dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE\"]},\"lib/@openzeppelin/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"lib/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"lib/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"Architect__InvalidAddress"},{"inputs":[],"type":"error","name":"Architect__InvalidNetworkId"},{"inputs":[],"type":"error","name":"Architect__InvalidStringLength"},{"inputs":[],"type":"error","name":"Architect__NotContract"},{"inputs":[],"type":"error","name":"Factory__FailedDeployment"},{"inputs":[],"type":"error","name":"Initializable_InInitializingState"},{"inputs":[],"type":"error","name":"Initializable_NotInInitializingState"},{"inputs":[],"type":"error","name":"Introspection_AlreadySupported"},{"inputs":[],"type":"error","name":"Introspection_NotSupported"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"Ownable__NotOwner"},{"inputs":[],"type":"error","name":"Ownable__ZeroAddress"},{"inputs":[],"type":"error","name":"Pausable__NotPaused"},{"inputs":[],"type":"error","name":"Pausable__Paused"},{"inputs":[],"type":"error","name":"ReentrancyGuard__ReentrantCall"},{"inputs":[],"type":"error","name":"Validator__InvalidAddress"},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceAdded","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"address","name":"space","type":"address","indexed":true}],"type":"event","name":"SpaceCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"contract ISpaceOwner","name":"ownerImplementation","type":"address"},{"internalType":"contract IUserEntitlement","name":"userEntitlementImplementation","type":"address"},{"internalType":"contract IRuleEntitlement","name":"ruleEntitlementImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"__Architect_init"},{"inputs":[{"internalType":"struct IArchitectBase.SpaceInfo","name":"spaceInfo","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"uri","type":"string"},{"internalType":"struct IArchitectBase.Membership","name":"membership","type":"tuple","components":[{"internalType":"struct IMembershipBase.Membership","name":"settings","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"uint64","name":"duration","type":"uint64"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"uint256","name":"freeAllocation","type":"uint256"},{"internalType":"address","name":"pricingModule","type":"address"}]},{"internalType":"struct IArchitectBase.MembershipRequirements","name":"requirements","type":"tuple","components":[{"internalType":"bool","name":"everyone","type":"bool"},{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"struct IRuleEntitlementBase.RuleData","name":"ruleData","type":"tuple","components":[{"internalType":"struct IRuleEntitlementBase.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlementBase.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlementBase.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}]},{"internalType":"string[]","name":"permissions","type":"string[]"}]},{"internalType":"struct IArchitectBase.ChannelInfo","name":"channel","type":"tuple","components":[{"internalType":"string","name":"metadata","type":"string"}]},{"internalType":"string","name":"shortDescription","type":"string"},{"internalType":"string","name":"longDescription","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"createSpace","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSpaceArchitectImplementations","outputs":[{"internalType":"contract ISpaceOwner","name":"spaceToken","type":"address"},{"internalType":"contract IUserEntitlement","name":"userEntitlementImplementation","type":"address"},{"internalType":"contract IRuleEntitlement","name":"ruleEntitlementImplementation","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSpaceByTokenId","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"space","type":"address"}],"stateMutability":"view","type":"function","name":"getTokenIdBySpace","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"contract ISpaceOwner","name":"spaceToken","type":"address"},{"internalType":"contract IUserEntitlement","name":"userEntitlementImplementation","type":"address"},{"internalType":"contract IRuleEntitlement","name":"ruleEntitlementImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSpaceArchitectImplementations"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/factory/facets/architect/Architect.sol":"Architect"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/checker/IEntitlementChecker.sol":{"keccak256":"0xbeb7bfa236f19172b29eac53be03a3b377de3524b2d836192b0c64ebe708c204","urls":["bzz-raw://3d5a103a2b7b6be1ffa6662db6081763bcd210216fefc25307b835c555e0cf4d","dweb:/ipfs/QmUCvhZdZpVnyJuZVgd2qGduTf11384TmmBJb2RaEBHxhh"],"license":"MIT"},"contracts/src/diamond/facets/Facet.sol":{"keccak256":"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57","urls":["bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863","dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"],"license":"MIT"},"contracts/src/diamond/facets/initializable/Initializable.sol":{"keccak256":"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90","urls":["bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552","dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"],"license":"MIT"},"contracts/src/diamond/facets/initializable/InitializableStorage.sol":{"keccak256":"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a","urls":["bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4","dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionBase.sol":{"keccak256":"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f","urls":["bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1","dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol":{"keccak256":"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763","urls":["bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91","dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"],"license":"MIT"},"contracts/src/diamond/facets/ownable/IERC173.sol":{"keccak256":"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303","urls":["bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b","dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd"],"license":"MIT"},"contracts/src/diamond/facets/ownable/OwnableBase.sol":{"keccak256":"0x272abaecc104d5f23d77a623cf1548620d24b0f447eb2a12144e27561ff489f2","urls":["bzz-raw://fcb8c20ff7346bdc5dba82e6680cc0ea64087460a12153e3b6c3416f6addf875","dweb:/ipfs/QmfEEufJBzudSDekQteQkb3CzmnzUPT3GDhNgVpHNC9xaf"],"license":"MIT"},"contracts/src/diamond/facets/ownable/OwnableStorage.sol":{"keccak256":"0xda650482ce08c04110366cb01408aaabd01383d9c504b7cacfb2674aae688dcd","urls":["bzz-raw://694f42ffb353fccaa1eadf91dee3a3cee7253e3f357bcba2b175fd7be701e27e","dweb:/ipfs/QmPxxVerATSYrNLp7snnSvNVsbLPm1wzHULhBbtR333eik"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol":{"keccak256":"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816","urls":["bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb","dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol":{"keccak256":"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4","urls":["bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb","dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol":{"keccak256":"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479","urls":["bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf","dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F"],"license":"MIT"},"contracts/src/diamond/facets/pausable/IPausable.sol":{"keccak256":"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1","urls":["bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684","dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableBase.sol":{"keccak256":"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0","urls":["bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3","dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableStorage.sol":{"keccak256":"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f","urls":["bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd","dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/IReentrancyGuard.sol":{"keccak256":"0x89ad30ac5476efd023189fca20b13214fe5541ea5fff11760e00f229c62c896e","urls":["bzz-raw://fc04fb0c48333cb0f4b84b01e50498d60510d52495c3772f0bf632773ec47a7d","dweb:/ipfs/QmQUuYriat7eRRsPUHTeD2CDEwHzYxqW6qix7xf44kWByo"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/ReentrancyGuard.sol":{"keccak256":"0xb481ee6684d1589254563cb5c318b1eb75f6f15f96baecbd5f5e42b72b7a5003","urls":["bzz-raw://70e1bafcd0779c6241ee7716ae2058dd6f7d5a75bb211f5bfcb9aefa434228f8","dweb:/ipfs/QmSbsdGjL1be4VBjgWrk5CodWGvszXZt5HX32PxhvXTZ5Y"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/ReentrancyGuardStorage.sol":{"keccak256":"0xe4a08e5712446357756a6da7b65ae80845732dfebac180bd478caaf64dfc790e","urls":["bzz-raw://09f5691ae9aedbe094cc83a0e8a4272c4d6dd5f57e69fec5870b148f2d94395e","dweb:/ipfs/QmTLHQWuRp1L45oRV8oWWbk4Y4MMNYW1Rp9WUJ86gzVVRv"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol":{"keccak256":"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224","urls":["bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615","dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol":{"keccak256":"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62","urls":["bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba","dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol":{"keccak256":"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4","urls":["bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04","dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol":{"keccak256":"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782","urls":["bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d","dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz"],"license":"MIT"},"contracts/src/diamond/proxy/IProxy.sol":{"keccak256":"0x94506109e5e47fafba65c94f2d74d0c7860e5911fe90fbe3b49817afda3b2145","urls":["bzz-raw://969f73c692e96091ef4565e5e7f9d4114ce6d51a619a75f9b1a0703f737e4ceb","dweb:/ipfs/QmbohRzHyVrD36w3b7UdM1jqpPMViSx3DVCHWuXTLkG3bM"],"license":"MIT"},"contracts/src/diamond/proxy/Proxy.sol":{"keccak256":"0x9e3a60886852d03e7a09bd0daac7f524d9aebf7d26a19e6bd726ecb84404f9cd","urls":["bzz-raw://e469174f1f9e9a5afa47fd7e8fc0c64065704b2397eb187037a3a508da6fa90d","dweb:/ipfs/QmUQwmPLvo5yJ2aGz5JGGTL1AVUPbF1gK4nBBH6M49HBrD"],"license":"MIT"},"contracts/src/diamond/proxy/managed/IManagedProxy.sol":{"keccak256":"0xf064a056a73233ef207e7206ac910616210f6729147f29912bdb4abc69906d01","urls":["bzz-raw://befb3501cc4b180ed3c5b156bde2700a6de26f17e828bdb8e8ff9615268f91e1","dweb:/ipfs/QmP2qGhFpySb1efhpbRBXDxzxLjVTF2UmF2KRCM8hGrsPV"],"license":"MIT"},"contracts/src/diamond/proxy/managed/ManagedProxyBase.sol":{"keccak256":"0x0cc3fa005591526a9eaddc4111064685cf0d8fcbbcdf5d920dd751a038029552","urls":["bzz-raw://36eb108c5307d842cf1de83e5466affa2d70286e29fabce23e07c22a83c73203","dweb:/ipfs/QmY55RPvgjLMNeHN4vF2XzapzpQ1ffR7ozwQKkWsUWpjRp"],"license":"MIT"},"contracts/src/diamond/proxy/managed/ManagedProxyStorage.sol":{"keccak256":"0x2f09ac0009d994e8095003f5a95512b28d008613571861cb0ede96a6af532b1b","urls":["bzz-raw://d2160d94085d44c9cae45b051f680a82c865a856e3c7f1ac50c6b6c31243b206","dweb:/ipfs/QmXUzx5RKLmAFKgT1aygcpBmrWS5RzhEZT6fsS8YqdG68J"],"license":"MIT"},"contracts/src/diamond/proxy/manager/IProxyManager.sol":{"keccak256":"0x01f8bfb90685f0bc76eefc19f868b106c4acc098336874a751917858c54c1f7b","urls":["bzz-raw://766eba3ae42116b15d3d52e54a13dfd8229098e5e50b66145a9db39c6b94d64c","dweb:/ipfs/QmXsuwKLXLWPTDZH1UjCF2cRgn6fYr6qHLMY5nb6GWb8kP"],"license":"MIT"},"contracts/src/diamond/utils/multicall/IMulticall.sol":{"keccak256":"0x6dc9ea0a61c25be2ccf2812ae27c4044d2471b113862f242ef5d11fba1167ec1","urls":["bzz-raw://31d7c5626cb8817e9a638b42dac9d19eafdbb5e7db50a54a667bf9a8e469e0e8","dweb:/ipfs/Qmex9vaHpj8wPwG31Rvft9oXtdLeK1JRCrzgGSVMqszRGZ"],"license":"MIT"},"contracts/src/diamond/utils/multicall/Multicall.sol":{"keccak256":"0xd033d4a233fbfee42239cea898cfb995d1e3aa2585aee8def257703cd00a3b5b","urls":["bzz-raw://03cb097e17b5443b71058d028b3409db07a7ecad1d1edc360c72ed32cbd9c0dd","dweb:/ipfs/QmTbqyWToxcJynYhRBioTTPHucUExeEiriKekZ1vBToUpg"],"license":"MIT"},"contracts/src/factory/facets/architect/Architect.sol":{"keccak256":"0x546e407119ca047d99f622d77fe017f893e4148a0ab1b32938113815083204af","urls":["bzz-raw://f32d3dbaa7f2317db849eae44be1a1408abbb461e667ad08087ee220ac577888","dweb:/ipfs/Qmf4cmkXNY4Wh8vrk1S39LGr35JkHTR7Mdr4MXXETqt7fW"],"license":"MIT"},"contracts/src/factory/facets/architect/ArchitectBase.sol":{"keccak256":"0x4676216deb8678864044c22050d05c0860a6b0a9e324aa232167f88dbe79c0ad","urls":["bzz-raw://e16ca2c87ccf1fb7761694353586b1f712e29b2def92edbb2eb429792b08bfe4","dweb:/ipfs/QmbfsL35mBjHuq9bwMnhB9UdZ2dqpuopPNSDBYRf2ATkhP"],"license":"MIT"},"contracts/src/factory/facets/architect/ArchitectStorage.sol":{"keccak256":"0xc62e53da3472373306030cd9bb5621f895b5ebbab23ab5d03311c237fe3fb19c","urls":["bzz-raw://1bc61d6591c8c621fa635c988cdf10716037a0cbaed5fac650ed77af6c7d8561","dweb:/ipfs/QmVwXUiJppdHAU5STPsZjFFGqFNosjyxP5R2NJQSp3yTsd"],"license":"MIT"},"contracts/src/factory/facets/architect/IArchitect.sol":{"keccak256":"0xdc01eb58a1778852dc48091aa5e2155f13be6089a337ac4e5196a378ffbce195","urls":["bzz-raw://31fc4dc1923f3484729151de58f0a43839ce4b65d846b0aa2dd8f4416914e714","dweb:/ipfs/QmNb5NiKSHwkmHb6hWNhu9GnPaEFJGdUMy4Tzv4KDmap1u"],"license":"MIT"},"contracts/src/factory/facets/architect/ImplementationStorage.sol":{"keccak256":"0x539f0fc6ea9638bf9db3ec27511ee3775671ac0a538ff341563e3518468a8907","urls":["bzz-raw://5b904a1779579e3facc6d9b27a007deb35dce71403ca6d27d63a3d3906fcf9de","dweb:/ipfs/Qmab9yzwbmRy5znzDVZ5kTT98j4EkkaZ8bRoFizdwiHy4S"],"license":"MIT"},"contracts/src/factory/facets/architect/pricing/IPricingModules.sol":{"keccak256":"0xa45fcd2bb5037c0b9b80bb02a3a4bd00fa99598a8d9e0a5ee2dff7a04c670171","urls":["bzz-raw://15f95100f32791a9aa2e3cc47fb9cd58542e9250834bfc38756012cc4baaa786","dweb:/ipfs/QmYGPF6HQLoq5bCgMYW1AyT2Vz1H12Lt8LDdmzTadN5Ppm"],"license":"MIT"},"contracts/src/factory/facets/platform/requirements/IPlatformRequirements.sol":{"keccak256":"0xd1c61d42973382822d0b8256b5d308ad693dfa59240864cce0bec1bd4208e4c6","urls":["bzz-raw://bff6d50557810f7aa9de451f6ac2b279fe5983eefc0b38ef8be7ebb2ffde0f86","dweb:/ipfs/QmS6DXYXtPTfePgtrUxH1vmPycsVoumBQRJZugjGButowT"],"license":"MIT"},"contracts/src/factory/facets/registry/IImplementationRegistry.sol":{"keccak256":"0xb447f7654cd152c29718c95983b62e390a59658d7d1a22b97f79d0aee9fb5de7","urls":["bzz-raw://756a9a38364c01937088ba927f09af2726d2df207eea4e0e2842e3fc66ccd32c","dweb:/ipfs/QmbxBRXgtkEQsGtxq1uSM6vX38FkjPq6tpodCdtBmdEmXA"],"license":"MIT"},"contracts/src/factory/facets/wallet-link/IWalletLink.sol":{"keccak256":"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee","urls":["bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0","dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5"],"license":"MIT"},"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":{"keccak256":"0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27","urls":["bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd","dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j"],"license":"MIT"},"contracts/src/spaces/entitlements/user/IUserEntitlement.sol":{"keccak256":"0x573a718650f7088b84fe0bc6ec0b85c354c58c842691c66b2e682912455161c9","urls":["bzz-raw://5b41f88dd0e806b3f61b72f340dbdc53710827b1c8de9bcba6ba11fd1f8ae25a","dweb:/ipfs/QmZZtrWAgx3aLFA2dXuoHtujBqEuxAkHZkMP4FdmEAcQRx"],"license":"MIT"},"contracts/src/spaces/facets/Permissions.sol":{"keccak256":"0x08f1d02cacf8b8adcb38219623f999d15908185eefca4e3d0ea2c3486091d08c","urls":["bzz-raw://b6b021cd9adfed316fc1f43b99e5430d75469ef13d252fa5eb25057155908b77","dweb:/ipfs/QmYAhL8hWcbtHARsAY9nauyRB4BERUi9s7SSRYkb1e1kCh"],"license":"MIT"},"contracts/src/spaces/facets/channels/IChannel.sol":{"keccak256":"0x8f461ec8c49234f27257fc5cf20dd5e9fdb4692d9b17075be63e8ee6db854554","urls":["bzz-raw://52673312b7dfe3fa2b0e8b603a368036f3b428b303f9e539b558ccfdf5490b54","dweb:/ipfs/Qme3LoUvB1Axz9ZJZ8Erv6Cw6GLPQB7PNghMQ3FUYfA4VV"],"license":"MIT"},"contracts/src/spaces/facets/entitlements/IEntitlementsManager.sol":{"keccak256":"0x3be8ab93ad7f1417c0b0f6aa3f74dca36034464085d40fd2e94f3b31ff5be03d","urls":["bzz-raw://4e97436fca686896a1ffc56dd64f58997775bef504e0568c62ba4d103a99939c","dweb:/ipfs/QmWn5wvuuEFDhnqXJcJVb69ndDmhUMXWdUGYKR2VBfLsEw"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGatedBase.sol":{"keccak256":"0xcefa5c3c81c73fefaa7da433ddd5c419dc4c31cd86e8c31f47894663ca7269e8","urls":["bzz-raw://27fe60a48a69d5be67fdf17f5aac1e90ef0234da564ec4f6e2cbfe53fbb9ba0c","dweb:/ipfs/QmPemsjAUmjjjyLWbHzVmqLxyBAN7CFi6DViy9uQEM3wjt"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol":{"keccak256":"0xb058672a61d2742e8232232cc66f052443d82beb8b2cdc681f10c23a49351b84","urls":["bzz-raw://f39d39a3bd3e39c2f6a5b21b82a7339176c163d82335f901a64c57dd73ffa5a3","dweb:/ipfs/QmP8RmYv79xX8hLmrvjfceW9mdRYCYxMaxpywRpR281tMo"],"license":"MIT"},"contracts/src/spaces/facets/gated/IEntitlementGated.sol":{"keccak256":"0x948de1018f7f78366263a40e0f8269e10941216bd03a9996edb24a6230959e74","urls":["bzz-raw://dc985539ce639f39fd68723acca6424a78deac6cec3693c9d8e1084a487c83ec","dweb:/ipfs/QmQujX5rmDwhJZurp11FTiPLb7ev9swLTtdkagA8wydZiT"],"license":"MIT"},"contracts/src/spaces/facets/membership/IMembership.sol":{"keccak256":"0x7fbf37c681ae95610ed376a30d68808b9da602a3225dbe1724dfe7c1c82de672","urls":["bzz-raw://afa8d56cca2d01883595cfbd1a6aa3b63202ed25fb56ac1e57d3cf645665dd77","dweb:/ipfs/QmbLF87ZZCovJn3enbs78mcJu39zXi8FYum72fTufZt3e4"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipBase.sol":{"keccak256":"0x4f42c9176fb345d3da7825e0045e57707396d52bb8e208c81ed81e9d76bd90eb","urls":["bzz-raw://1fac0c230acd543d90c1b88174e3dcdc9a135e7217741a32580b250941ad30bf","dweb:/ipfs/QmXaLoyaFmomPPZCcJiY3dzsRjZiWoVkNdKtDa67vh16CR"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipStorage.sol":{"keccak256":"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0","urls":["bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a","dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa"],"license":"MIT"},"contracts/src/spaces/facets/membership/pricing/IMembershipPricing.sol":{"keccak256":"0x9e3b6766b92d0e48b4b23a024f9622923f30d90f6f8673ded81e423171ec30c4","urls":["bzz-raw://e6f76b6045a8c6eeb24d6a9a42f82495cb1cb125dd90921d16a949b00a6f52dc","dweb:/ipfs/QmPbRy4sAabTkEnZBoubzPqH2ycPevEzcEJ4NYJsCWmTFF"],"license":"MIT"},"contracts/src/spaces/facets/owner/ISpaceOwner.sol":{"keccak256":"0x75fef729920165a9cc37f7c212da288bc983bb11e39544a59c657cd9fa2e204a","urls":["bzz-raw://1baac2d168e5ee3269b0b6b59ce7df29e63c38ef3d484850ed05f0a56ab59464","dweb:/ipfs/QmZPxAByZ4PiQFUq45AM8LEJ2YC6n8XxE6nRHgf8Kg7nxZ"],"license":"MIT"},"contracts/src/spaces/facets/prepay/IPrepay.sol":{"keccak256":"0x4cc23cd204f20bd4a094d9292aaa494f73478d27c8f59e646454cbba11d781fa","urls":["bzz-raw://4f54c224f56396ac03335c95c4808acbeec6366f0c475d29edb2461cd53bcd15","dweb:/ipfs/QmdDKUR8VVXJuR5Fj29SZxvR9GwxXeNQ6rtAT3TxX8VjwT"],"license":"MIT"},"contracts/src/spaces/facets/proxy/SpaceProxy.sol":{"keccak256":"0x0abbcfe10500b16399e91aefced93c460a0916e43738b06701c6994aff0e7c4f","urls":["bzz-raw://074691333cc1da44a2768dcd7c6d8ec62cf119449114e1cde7516285cccfed7b","dweb:/ipfs/QmQ7bwLuNgHpnPGbzMH9CNtG8ap4neP6pwEGmVJT5nrD8J"],"license":"MIT"},"contracts/src/spaces/facets/roles/IRoles.sol":{"keccak256":"0xa69cfbcd989b8794187a56a93deffbefaee8ca456e381ce30f85897893c50272","urls":["bzz-raw://cf8e9b2711f66eefb949f5b5ead4d72005f1845cd63f22b287fdba3339101bd4","dweb:/ipfs/Qmf7sPY4BgmvZf7p4GBsyVyd4o66yJXMgAmEgpdQAQyBdx"],"license":"MIT"},"contracts/src/utils/Factory.sol":{"keccak256":"0x150045213e6284abce967c3f6abc8989952d181c43540acf92709486aebec3ce","urls":["bzz-raw://282730a1c005f83c5eb11d2f19ca5a8c2ab1bba4e4a403eb651f6a232a874791","dweb:/ipfs/QmcPLz1uWkCukNsSwu69i8BVmjF7g9pg47cAmD3swaaFTY"],"license":"MIT"},"contracts/src/utils/StringSet.sol":{"keccak256":"0x2b9880e846f275864e847e8c7079d29a02c4a060c5a9d580fb153ff0e7b49ff6","urls":["bzz-raw://df9c170f28318746eab23befba1318735652c7d198e273a322a0ff2702680605","dweb:/ipfs/QmanQQi9YiPHb9Cn4wpfQ9VYUi7UZ9iQibLL6V46JPibLu"],"license":"MIT"},"contracts/src/utils/Validator.sol":{"keccak256":"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f","urls":["bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306","dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt"],"license":"MIT"},"contracts/src/utils/interfaces/IWETH.sol":{"keccak256":"0xb0a9a284b02664b2ceda4ed7cc8e7dbdd39cc09292b65b97a3417ba5b1440dd0","urls":["bzz-raw://701edb4dbdb8ab50ed2fdb568cc0956c07184e1f4e7d63854efc158408fa72a5","dweb:/ipfs/QmV58ikDDcTC92hGEuQKerfsygnPg5cwCVLuMh9R9uYXb6"],"license":"MIT"},"contracts/src/utils/libraries/BasisPoints.sol":{"keccak256":"0xfaa5790726afc20e29f2a00e67693a59ae85a045beaa95f8f58bcbcef01ed87b","urls":["bzz-raw://a2da5e15739fc7093ea7b935c6542f7c01d9c33843a3d1a1d8895db404f8160e","dweb:/ipfs/QmYVUkSh3QX7u9rnKfqLeb9Rh8tko5Q3Gpry6KnhTRF58L"],"license":"MIT"},"contracts/src/utils/libraries/CurrencyTransfer.sol":{"keccak256":"0x3242d518aedc3ca9a49fb4221de4596ee219b9569abf0548d28dbbecd569a336","urls":["bzz-raw://c2260078d61b0ee998b54f60c4db4bc8e8a9afdf351018a343c82fa984aca88d","dweb:/ipfs/QmT83nFPb4JzsWCPf9j58xTsaDvuMmq5MH1z8GrEWtBLcx"],"license":"MIT"},"lib/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xbfb6695731de677140fbf76c772ab08c4233a122fb51ac28ac120fc49bbbc4ec","urls":["bzz-raw://68f8fded7cc318efa15874b7c6a983fe17a4a955d72d240353a9a4ca1e1b824c","dweb:/ipfs/QmdcmBL9Qo4Tk3Dby4wFYabGyot9JNeLPxpSXZUgUm92BV"],"license":"MIT"},"lib/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x06a78f9b3ee3e6d0eb4e4cd635ba49960bea34cac1db8c0a27c75f2319f1fd65","urls":["bzz-raw://547d21aa17f4f3f1a1a7edf7167beff8dd9496a0348d5588f15cc8a4b29d052a","dweb:/ipfs/QmT16JtRQSWNpLo9W23jr6CzaMuTAcQcjJJcdRd8HLJ6cE"],"license":"MIT"},"lib/@openzeppelin/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418","urls":["bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c","dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":150} \ No newline at end of file diff --git a/packages/generated/dev/abis/Architect.metadata.json b/packages/generated/dev/abis/Architect.metadata.json index 5db533316..0f18039d1 100644 --- a/packages/generated/dev/abis/Architect.metadata.json +++ b/packages/generated/dev/abis/Architect.metadata.json @@ -307,17 +307,17 @@ "type": "address[]" }, { - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "name": "ruleData", "type": "tuple", "components": [ { - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "name": "operations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CombinedOperationType", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType", "name": "opType", "type": "uint8" }, @@ -329,12 +329,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "name": "checkOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CheckOperationType", + "internalType": "enum IRuleEntitlementBase.CheckOperationType", "name": "opType", "type": "uint8" }, @@ -356,12 +356,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "name": "logicalOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.LogicalOperationType", + "internalType": "enum IRuleEntitlementBase.LogicalOperationType", "name": "logOpType", "type": "uint8" }, @@ -874,10 +874,10 @@ "license": "MIT" }, "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol": { - "keccak256": "0x28650d058077713dfc28d5c613998d9f1e895a6f5f6b0d93467d25455fc3ea1d", + "keccak256": "0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27", "urls": [ - "bzz-raw://e2446b7958f8b5f2713860e2826acf1b123c6b24719f844c7811d1e3f5a87c86", - "dweb:/ipfs/Qmesso9ftmVUCHi6w2gkJs9tEjGG5ZZgqhAenkyTDgFPC2" + "bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd", + "dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j" ], "license": "MIT" }, @@ -890,10 +890,10 @@ "license": "MIT" }, "contracts/src/spaces/facets/Permissions.sol": { - "keccak256": "0xaeec9c70d231be9debb15660bf6939746532d0012c80d5518e8207dd33653de2", + "keccak256": "0x08f1d02cacf8b8adcb38219623f999d15908185eefca4e3d0ea2c3486091d08c", "urls": [ - "bzz-raw://bab7c5dd8f55f03f48d3908b8d6732b3e2d93f36312a0c3408ff10be258c165a", - "dweb:/ipfs/QmevmAc6tzP3kFoH84cRtipSq4ryqbrP3H4VB8mRZgnRxn" + "bzz-raw://b6b021cd9adfed316fc1f43b99e5430d75469ef13d252fa5eb25057155908b77", + "dweb:/ipfs/QmYAhL8hWcbtHARsAY9nauyRB4BERUi9s7SSRYkb1e1kCh" ], "license": "MIT" }, diff --git a/packages/generated/dev/abis/Channels.json b/packages/generated/dev/abis/Channels.json index 0ad93ca96..957bea336 100644 --- a/packages/generated/dev/abis/Channels.json +++ b/packages/generated/dev/abis/Channels.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addRoleToChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"metadata","type":"string","internalType":"string"},{"name":"roleIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"channel","type":"tuple","internalType":"struct IChannelBase.Channel","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"disabled","type":"bool","internalType":"bool"},{"name":"metadata","type":"string","internalType":"string"},{"name":"roleIds","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"getChannels","inputs":[],"outputs":[{"name":"channels","type":"tuple[]","internalType":"struct IChannelBase.Channel[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"disabled","type":"bool","internalType":"bool"},{"name":"metadata","type":"string","internalType":"string"},{"name":"roleIds","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"getRolesByChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"roleIds","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"removeChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeRoleFromChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"metadata","type":"string","internalType":"string"},{"name":"disabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Banned","inputs":[{"name":"moderator","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ChannelCreated","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"channelId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ChannelRemoved","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"channelId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ChannelRoleAdded","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"channelId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"roleId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ChannelRoleRemoved","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"channelId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"roleId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ChannelUpdated","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"channelId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ConsecutiveTransfer","inputs":[{"name":"fromTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"InterfaceAdded","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"InterfaceRemoved","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubscriptionUpdate","inputs":[{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"expiration","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unbanned","inputs":[{"name":"moderator","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ApprovalCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"ApprovalQueryForNonexistentToken","inputs":[]},{"type":"error","name":"BalanceQueryForZeroAddress","inputs":[]},{"type":"error","name":"Banning__AlreadyBanned","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Banning__CannotBanOwner","inputs":[]},{"type":"error","name":"Banning__CannotBanSelf","inputs":[]},{"type":"error","name":"Banning__InvalidTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Banning__NotBanned","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ChannelService__ChannelAlreadyExists","inputs":[]},{"type":"error","name":"ChannelService__ChannelDisabled","inputs":[]},{"type":"error","name":"ChannelService__ChannelDoesNotExist","inputs":[]},{"type":"error","name":"ChannelService__RoleAlreadyExists","inputs":[]},{"type":"error","name":"ChannelService__RoleDoesNotExist","inputs":[]},{"type":"error","name":"ERC5643__DurationZero","inputs":[]},{"type":"error","name":"ERC5643__InvalidTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC5643__NotApprovedOrOwner","inputs":[]},{"type":"error","name":"ERC5643__SubscriptionNotRenewable","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Entitlement__InvalidValue","inputs":[]},{"type":"error","name":"Entitlement__NotAllowed","inputs":[]},{"type":"error","name":"Entitlement__NotMember","inputs":[]},{"type":"error","name":"Entitlement__ValueAlreadyExists","inputs":[]},{"type":"error","name":"Initializable_InInitializingState","inputs":[]},{"type":"error","name":"Introspection_AlreadySupported","inputs":[]},{"type":"error","name":"Introspection_NotSupported","inputs":[]},{"type":"error","name":"MintERC2309QuantityExceedsLimit","inputs":[]},{"type":"error","name":"MintToZeroAddress","inputs":[]},{"type":"error","name":"MintZeroQuantity","inputs":[]},{"type":"error","name":"Ownable__NotOwner","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Ownable__ZeroAddress","inputs":[]},{"type":"error","name":"OwnerQueryForNonexistentToken","inputs":[]},{"type":"error","name":"OwnershipNotInitializedForExtraData","inputs":[]},{"type":"error","name":"Pausable__NotPaused","inputs":[]},{"type":"error","name":"Pausable__Paused","inputs":[]},{"type":"error","name":"TransferCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"TransferFromIncorrectOwner","inputs":[]},{"type":"error","name":"TransferToNonERC721ReceiverImplementer","inputs":[]},{"type":"error","name":"TransferToZeroAddress","inputs":[]},{"type":"error","name":"URIQueryForNonexistentToken","inputs":[]},{"type":"error","name":"Validator__InvalidStringLength","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001961001e565b6100c4565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff161561006a576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156100c157805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b611e2a806100d36000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80639575f6ac1161005b5780639575f6ac146100f15780639935218314610106578063b9de615914610126578063ef86d6961461013957600080fd5b806302da0e511461008d57806337644cf7146100a2578063831c2b82146100b5578063921f7175146100de575b600080fd5b6100a061009b36600461169a565b61014c565b005b6100a06100b03660046116b3565b61018a565b6100c86100c336600461169a565b6101cb565b6040516100d59190611792565b60405180910390f35b6100a06100ec366004611880565b6101fd565b6100f961023f565b6040516100d59190611948565b61011961011436600461169a565b61024e565b6040516100d591906119ac565b6100a06101343660046116b3565b610259565b6100a06101473660046119fe565b610296565b61017e6040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b8152506102d3565b610187816102fb565b50565b6101bd826040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b81525061033c565b6101c78282610363565b5050565b60408051608081018252600080825260208201526060918101829052818101919091526101f7826103ad565b92915050565b61022f6040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b8152506102d3565b61023a838383610414565b505050565b6060610249610465565b905090565b60606101f78261059d565b61028c826040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b81525061033c565b6101c782826105a8565b6102c86040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b8152506102d3565b61023a8383836105ea565b6102de600082610627565b61018757604051630ce39a4b60e21b815260040160405180910390fd5b610304816106ab565b60405181815233907f3a3f387aa42656bc1732adfc7aea5cde9ccc05a59f9af9c29ebfa68e66383e939060200160405180910390a250565b6103468282610627565b6101c757604051630ce39a4b60e21b815260040160405180910390fd5b61036d82826107a2565b604080518381526020810183905233917f2b10481523b59a7978f8ab73b237349b0f38c801f6094bdc8994d379c067d71391015b60405180910390a25050565b60408051608081018252600080825260208201526060918101829052818101919091526000806103dc84610833565b925092505060006103ec85610953565b6040805160808101825296875292151560208701529185019290925260608401525090919050565b61041f8260006109ab565b61042a8383836109cf565b60405183815233907fdd6c5b83be3557f8b2674712946f9f05dcd882b82bfd58b9539b9706efd35d8c906020015b60405180910390a2505050565b60606000610471610b09565b90506000815167ffffffffffffffff81111561048f5761048f6117a5565b6040519080825280602002602001820160405280156104e357816020015b60408051608081018252600080825260208201526060918101829052818101919091528152602001906001900390816104ad5790505b50905060005b825181101561059657600080600061051986858151811061050c5761050c611a59565b6020026020010151610833565b925092509250600061054387868151811061053657610536611a59565b6020026020010151610953565b9050604051806080016040528085815260200183151581526020018481526020018281525086868151811061057a5761057a611a59565b60200260200101819052505050505080806001019150506104e9565b5092915050565b60606101f782610953565b6105b28282610b29565b604080518381526020810183905233917faee688d80dbf97230e5d2b4b06aa7074bfe38ddd8abf856551177db30395612991016103a1565b6105f5838383610bb9565b60405183815233907f94af4a611b3fb1eaa653a6b29f82b71bcea25ca378171c5f059010fa18e0716e90602001610458565b60003380610633610c6e565b6001600160a01b031614806106a357507fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff161580156106a357506106a38482856040516020016106869190611a6f565b60405160208183030381529060405261069e90611a8b565b610d32565b949350505050565b6106b481610fdf565b600080516020611e0a8339815191526106cd8183611016565b5060408051602080820183526000808352858152600280860190925292909220909101906106fb9082611b33565b50600082815260028083016020526040822060018101805460ff19169055828155919061072a9083018261164c565b50506000828152600382016020526040812061074590611022565b905060005b815181101561079c5761079382828151811061076857610768611a59565b602002602001015184600301600087815260200190815260200160002061101690919063ffffffff16565b5060010161074a565b50505050565b6107ab82610fdf565b6107b48261102f565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020611e0a833981519152906107fb9083611091565b15610819576040516302369ff360e41b815260040160405180910390fd5b6000838152600382016020526040902061079c90836110a9565b60006060600061084284610fdf565b60008481527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430260209081526040808320815160608101835281548152600182015460ff16151593810193909352600281018054600080516020611e0a833981519152959493840191906108b490611aaf565b80601f01602080910402602001604051908101604052809291908181526020018280546108e090611aaf565b801561092d5780601f106109025761010080835404028352916020019161092d565b820191906000526020600020905b81548152906001019060200180831161091057829003601f168201915b505050919092525050815160408301516020909301519099929850965090945050505050565b606061095e82610fdf565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020611e0a833981519152906109a490611022565b9392505050565b8151829082111561023a576040516374eb20a760e01b815260040160405180910390fd5b6109d8836110b5565b600080516020611e0a8339815191526109f181856110a9565b50604080516060810182528581526000602080830182815283850188815289845260028781019093529490922083518155915160018301805460ff191691151591909117905592519192909190820190610a4b9082611b33565b5090505060005b8251811015610b0257610a9b838281518110610a7057610a70611a59565b602002602001015183600301600088815260200190815260200160002061109190919063ffffffff16565b15610ab9576040516302369ff360e41b815260040160405180910390fd5b610af9838281518110610ace57610ace611a59565b60200260200101518360030160008881526020019081526020016000206110a990919063ffffffff16565b50600101610a52565b5050505050565b6060600080516020611e0a833981519152610b2381611022565b91505090565b610b3282610fdf565b610b3b8261102f565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020611e0a83398151915290610b829083611091565b610b9f576040516333cb039f60e11b815260040160405180910390fd5b6000838152600382016020526040902061079c9083611016565b610bc283610fdf565b60008381527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090208251600080516020611e0a833981519152919015801590610c2f575080600201604051610c1c9190611bf3565b6040518091039020848051906020012014155b15610c445760028101610c428582611b33565b505b600181015460ff16151583151514610b0257600101805460ff191692151592909217909155505050565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015610d0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b239190611c85565b600080610d3d610c6e565b90506000610d4a856110eb565b80519091506000610d5961136d565b805190915060005b83811015610e18576000858281518110610d7d57610d7d611a59565b60200260200101519050866001600160a01b0316816001600160a01b031603610db05760019750505050505050506109a4565b60005b83811015610e0e57816001600160a01b0316610de7868381518110610dda57610dda611a59565b6020026020010151611398565b6001600160a01b031603610e06576000985050505050505050506109a4565b600101610db3565b5050600101610d61565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006000610e657fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931016113a3565b905060005b81811015610fcd5760008381610e8360018301856113ad565b6001600160a01b03908116825260208083019390935260409182016000208251606081018452905491821680825260ff600160a01b84048116151583870152600160a81b9093049092161515818401528251630b86d87960e21b815292519094509092632e1b61e492600480820193918290030181865afa158015610f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f309190611ca0565b158015610fad575080600001516001600160a01b0316630cf0b5338e8a8e6040518463ffffffff1660e01b8152600401610f6c93929190611cbd565b602060405180830381865afa158015610f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fad9190611ca0565b15610fc457600199505050505050505050506109a4565b50600101610e6a565b5060009b9a5050505050505050505050565b610ff981600080516020611e0a8339815191525b90611091565b6101875760405163560b4b4160e11b815260040160405180910390fd5b60006109a483836113b9565b606060006109a4836114ac565b60008181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043026020526040902060010154600080516020611e0a8339815191529060ff16156101c757604051636ce0028960e11b815260040160405180910390fd5b600081815260018301602052604081205415156109a4565b60006109a48383611508565b6110cd81600080516020611e0a833981519152610ff3565b1561018757604051632324f7d960e21b815260040160405180910390fd5b606060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6006006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa158015611160573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111889190810190611d1f565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa1580156111d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f89190611c85565b90508151600014801561121357506001600160a01b03811615155b1561128d5760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015611262573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261128a9190810190611d1f565b91505b8151600061129c826001611dcd565b67ffffffffffffffff8111156112b4576112b46117a5565b6040519080825280602002602001820160405280156112dd578160200160208202803683370190505b50905060005b82811015611337578481815181106112fd576112fd611a59565b602002602001015182828151811061131757611317611a59565b6001600160a01b03909216602092830291909101909101526001016112e3565b508681838151811061134b5761134b611a59565b6001600160a01b03909216602092830291909101909101529695505050505050565b60606102497f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf00611022565b60006101f782611557565b60006101f7825490565b60006109a48383611622565b600081815260018301602052604081205480156114a25760006113dd600183611de0565b85549091506000906113f190600190611de0565b905080821461145657600086600001828154811061141157611411611a59565b906000526020600020015490508087600001848154811061143457611434611a59565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061146757611467611df3565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506101f7565b60009150506101f7565b6060816000018054806020026020016040519081016040528092919081815260200182805480156114fc57602002820191906000526020600020905b8154815260200190600101908083116114e8575b50505050509050919050565b600081815260018301602052604081205461154f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556101f7565b5060006101f7565b60008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090600160e01b83169003611608578160000361160257805483106115de57604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156115df575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b600082600001828154811061163957611639611a59565b9060005260206000200154905092915050565b50805461165890611aaf565b6000825580601f10611668575050565b601f01602090049060005260206000209081019061018791905b808211156116965760008155600101611682565b5090565b6000602082840312156116ac57600080fd5b5035919050565b600080604083850312156116c657600080fd5b50508035926020909101359150565b60005b838110156116f05781810151838201526020016116d8565b50506000910152565b805182526000602080830151151581850152604083015160806040860152805180608087015261172f8160a088018585016116d5565b601f19601f820116860191505060a08101606085015160a087840301606088015281815180845260c0850191508583019450600093505b808410156117865784518252938501936001939093019290850190611766565b50979650505050505050565b6020815260006109a460208301846116f9565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156117e4576117e46117a5565b604052919050565b600082601f8301126117fd57600080fd5b813567ffffffffffffffff811115611817576118176117a5565b61182a601f8201601f19166020016117bb565b81815284602083860101111561183f57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff821115611876576118766117a5565b5060051b60200190565b60008060006060848603121561189557600080fd5b8335925060208085013567ffffffffffffffff808211156118b557600080fd5b6118c1888389016117ec565b945060408701359150808211156118d757600080fd5b508501601f810187136118e957600080fd5b80356118fc6118f78261185c565b6117bb565b81815260059190911b8201830190838101908983111561191b57600080fd5b928401925b8284101561193957833582529284019290840190611920565b80955050505050509250925092565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561199f57603f1988860301845261198d8583516116f9565b94509285019290850190600101611971565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156119e4578351835292840192918401916001016119c8565b50909695505050505050565b801515811461018757600080fd5b600080600060608486031215611a1357600080fd5b83359250602084013567ffffffffffffffff811115611a3157600080fd5b611a3d868287016117ec565b9250506040840135611a4e816119f0565b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b60008251611a818184602087016116d5565b9190910192915050565b805160208083015191908110156116025760001960209190910360031b1b16919050565b600181811c90821680611ac357607f821691505b60208210810361160257634e487b7160e01b600052602260045260246000fd5b601f82111561023a576000816000526020600020601f850160051c81016020861015611b0c5750805b601f850160051c820191505b81811015611b2b57828155600101611b18565b505050505050565b815167ffffffffffffffff811115611b4d57611b4d6117a5565b611b6181611b5b8454611aaf565b84611ae3565b602080601f831160018114611b965760008415611b7e5750858301515b600019600386901b1c1916600185901b178555611b2b565b600085815260208120601f198616915b82811015611bc557888601518255948401946001909101908401611ba6565b5085821015611be35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808354611c0181611aaf565b60018281168015611c195760018114611c2e57611c5d565b60ff1984168752821515830287019450611c5d565b8760005260208060002060005b85811015611c545781548a820152908401908201611c3b565b50505082870194505b50929695505050505050565b80516001600160a01b0381168114611c8057600080fd5b919050565b600060208284031215611c9757600080fd5b6109a482611c69565b600060208284031215611cb257600080fd5b81516109a4816119f0565b60006060820185835260206060602085015281865180845260808601915060208801935060005b81811015611d095784516001600160a01b031683529383019391830191600101611ce4565b5050809350505050826040830152949350505050565b60006020808385031215611d3257600080fd5b825167ffffffffffffffff811115611d4957600080fd5b8301601f81018513611d5a57600080fd5b8051611d686118f78261185c565b81815260059190911b82018301908381019087831115611d8757600080fd5b928401925b82841015611dac57611d9d84611c69565b82529284019290840190611d8c565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101f7576101f7611db7565b818103818111156101f7576101f7611db7565b634e487b7160e01b600052603160045260246000fdfe804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300","sourceMap":"391:1449:198:-:0;;;;;;;;;;;;-1:-1:-1;378:22:72;:20;:22::i;:::-;391:1449:198;;1653:314:87;296:66:88;1779:14:87;;;;;;;1775:62;;;1802:35;;-1:-1:-1;;;1802:35:87;;;;;;;;;;;1775:62;1848:9;;1860:16;1848:9;;;:28;1844:119;;;1886:28;;-1:-1:-1;;1886:28:87;1898:16;1886:28;;;;;1927:29;;158:42:419;;;1927:29:87;;146:2:419;131:18;1927:29:87;;;;;;;1844:119;1694:273;1653:314::o;14:192:419:-;391:1449:198;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c80639575f6ac1161005b5780639575f6ac146100f15780639935218314610106578063b9de615914610126578063ef86d6961461013957600080fd5b806302da0e511461008d57806337644cf7146100a2578063831c2b82146100b5578063921f7175146100de575b600080fd5b6100a061009b36600461169a565b61014c565b005b6100a06100b03660046116b3565b61018a565b6100c86100c336600461169a565b6101cb565b6040516100d59190611792565b60405180910390f35b6100a06100ec366004611880565b6101fd565b6100f961023f565b6040516100d59190611948565b61011961011436600461169a565b61024e565b6040516100d591906119ac565b6100a06101343660046116b3565b610259565b6100a06101473660046119fe565b610296565b61017e6040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b8152506102d3565b610187816102fb565b50565b6101bd826040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b81525061033c565b6101c78282610363565b5050565b60408051608081018252600080825260208201526060918101829052818101919091526101f7826103ad565b92915050565b61022f6040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b8152506102d3565b61023a838383610414565b505050565b6060610249610465565b905090565b60606101f78261059d565b61028c826040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b81525061033c565b6101c782826105a8565b6102c86040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b8152506102d3565b61023a8383836105ea565b6102de600082610627565b61018757604051630ce39a4b60e21b815260040160405180910390fd5b610304816106ab565b60405181815233907f3a3f387aa42656bc1732adfc7aea5cde9ccc05a59f9af9c29ebfa68e66383e939060200160405180910390a250565b6103468282610627565b6101c757604051630ce39a4b60e21b815260040160405180910390fd5b61036d82826107a2565b604080518381526020810183905233917f2b10481523b59a7978f8ab73b237349b0f38c801f6094bdc8994d379c067d71391015b60405180910390a25050565b60408051608081018252600080825260208201526060918101829052818101919091526000806103dc84610833565b925092505060006103ec85610953565b6040805160808101825296875292151560208701529185019290925260608401525090919050565b61041f8260006109ab565b61042a8383836109cf565b60405183815233907fdd6c5b83be3557f8b2674712946f9f05dcd882b82bfd58b9539b9706efd35d8c906020015b60405180910390a2505050565b60606000610471610b09565b90506000815167ffffffffffffffff81111561048f5761048f6117a5565b6040519080825280602002602001820160405280156104e357816020015b60408051608081018252600080825260208201526060918101829052818101919091528152602001906001900390816104ad5790505b50905060005b825181101561059657600080600061051986858151811061050c5761050c611a59565b6020026020010151610833565b925092509250600061054387868151811061053657610536611a59565b6020026020010151610953565b9050604051806080016040528085815260200183151581526020018481526020018281525086868151811061057a5761057a611a59565b60200260200101819052505050505080806001019150506104e9565b5092915050565b60606101f782610953565b6105b28282610b29565b604080518381526020810183905233917faee688d80dbf97230e5d2b4b06aa7074bfe38ddd8abf856551177db30395612991016103a1565b6105f5838383610bb9565b60405183815233907f94af4a611b3fb1eaa653a6b29f82b71bcea25ca378171c5f059010fa18e0716e90602001610458565b60003380610633610c6e565b6001600160a01b031614806106a357507fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff161580156106a357506106a38482856040516020016106869190611a6f565b60405160208183030381529060405261069e90611a8b565b610d32565b949350505050565b6106b481610fdf565b600080516020611e0a8339815191526106cd8183611016565b5060408051602080820183526000808352858152600280860190925292909220909101906106fb9082611b33565b50600082815260028083016020526040822060018101805460ff19169055828155919061072a9083018261164c565b50506000828152600382016020526040812061074590611022565b905060005b815181101561079c5761079382828151811061076857610768611a59565b602002602001015184600301600087815260200190815260200160002061101690919063ffffffff16565b5060010161074a565b50505050565b6107ab82610fdf565b6107b48261102f565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020611e0a833981519152906107fb9083611091565b15610819576040516302369ff360e41b815260040160405180910390fd5b6000838152600382016020526040902061079c90836110a9565b60006060600061084284610fdf565b60008481527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430260209081526040808320815160608101835281548152600182015460ff16151593810193909352600281018054600080516020611e0a833981519152959493840191906108b490611aaf565b80601f01602080910402602001604051908101604052809291908181526020018280546108e090611aaf565b801561092d5780601f106109025761010080835404028352916020019161092d565b820191906000526020600020905b81548152906001019060200180831161091057829003601f168201915b505050919092525050815160408301516020909301519099929850965090945050505050565b606061095e82610fdf565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020611e0a833981519152906109a490611022565b9392505050565b8151829082111561023a576040516374eb20a760e01b815260040160405180910390fd5b6109d8836110b5565b600080516020611e0a8339815191526109f181856110a9565b50604080516060810182528581526000602080830182815283850188815289845260028781019093529490922083518155915160018301805460ff191691151591909117905592519192909190820190610a4b9082611b33565b5090505060005b8251811015610b0257610a9b838281518110610a7057610a70611a59565b602002602001015183600301600088815260200190815260200160002061109190919063ffffffff16565b15610ab9576040516302369ff360e41b815260040160405180910390fd5b610af9838281518110610ace57610ace611a59565b60200260200101518360030160008881526020019081526020016000206110a990919063ffffffff16565b50600101610a52565b5050505050565b6060600080516020611e0a833981519152610b2381611022565b91505090565b610b3282610fdf565b610b3b8261102f565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020611e0a83398151915290610b829083611091565b610b9f576040516333cb039f60e11b815260040160405180910390fd5b6000838152600382016020526040902061079c9083611016565b610bc283610fdf565b60008381527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090208251600080516020611e0a833981519152919015801590610c2f575080600201604051610c1c9190611bf3565b6040518091039020848051906020012014155b15610c445760028101610c428582611b33565b505b600181015460ff16151583151514610b0257600101805460ff191692151592909217909155505050565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015610d0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b239190611c85565b600080610d3d610c6e565b90506000610d4a856110eb565b80519091506000610d5961136d565b805190915060005b83811015610e18576000858281518110610d7d57610d7d611a59565b60200260200101519050866001600160a01b0316816001600160a01b031603610db05760019750505050505050506109a4565b60005b83811015610e0e57816001600160a01b0316610de7868381518110610dda57610dda611a59565b6020026020010151611398565b6001600160a01b031603610e06576000985050505050505050506109a4565b600101610db3565b5050600101610d61565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006000610e657fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931016113a3565b905060005b81811015610fcd5760008381610e8360018301856113ad565b6001600160a01b03908116825260208083019390935260409182016000208251606081018452905491821680825260ff600160a01b84048116151583870152600160a81b9093049092161515818401528251630b86d87960e21b815292519094509092632e1b61e492600480820193918290030181865afa158015610f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f309190611ca0565b158015610fad575080600001516001600160a01b0316630cf0b5338e8a8e6040518463ffffffff1660e01b8152600401610f6c93929190611cbd565b602060405180830381865afa158015610f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fad9190611ca0565b15610fc457600199505050505050505050506109a4565b50600101610e6a565b5060009b9a5050505050505050505050565b610ff981600080516020611e0a8339815191525b90611091565b6101875760405163560b4b4160e11b815260040160405180910390fd5b60006109a483836113b9565b606060006109a4836114ac565b60008181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043026020526040902060010154600080516020611e0a8339815191529060ff16156101c757604051636ce0028960e11b815260040160405180910390fd5b600081815260018301602052604081205415156109a4565b60006109a48383611508565b6110cd81600080516020611e0a833981519152610ff3565b1561018757604051632324f7d960e21b815260040160405180910390fd5b606060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6006006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa158015611160573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111889190810190611d1f565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa1580156111d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f89190611c85565b90508151600014801561121357506001600160a01b03811615155b1561128d5760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015611262573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261128a9190810190611d1f565b91505b8151600061129c826001611dcd565b67ffffffffffffffff8111156112b4576112b46117a5565b6040519080825280602002602001820160405280156112dd578160200160208202803683370190505b50905060005b82811015611337578481815181106112fd576112fd611a59565b602002602001015182828151811061131757611317611a59565b6001600160a01b03909216602092830291909101909101526001016112e3565b508681838151811061134b5761134b611a59565b6001600160a01b03909216602092830291909101909101529695505050505050565b60606102497f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf00611022565b60006101f782611557565b60006101f7825490565b60006109a48383611622565b600081815260018301602052604081205480156114a25760006113dd600183611de0565b85549091506000906113f190600190611de0565b905080821461145657600086600001828154811061141157611411611a59565b906000526020600020015490508087600001848154811061143457611434611a59565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061146757611467611df3565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506101f7565b60009150506101f7565b6060816000018054806020026020016040519081016040528092919081815260200182805480156114fc57602002820191906000526020600020905b8154815260200190600101908083116114e8575b50505050509050919050565b600081815260018301602052604081205461154f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556101f7565b5060006101f7565b60008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090600160e01b83169003611608578160000361160257805483106115de57604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156115df575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b600082600001828154811061163957611639611a59565b9060005260206000200154905092915050565b50805461165890611aaf565b6000825580601f10611668575050565b601f01602090049060005260206000209081019061018791905b808211156116965760008155600101611682565b5090565b6000602082840312156116ac57600080fd5b5035919050565b600080604083850312156116c657600080fd5b50508035926020909101359150565b60005b838110156116f05781810151838201526020016116d8565b50506000910152565b805182526000602080830151151581850152604083015160806040860152805180608087015261172f8160a088018585016116d5565b601f19601f820116860191505060a08101606085015160a087840301606088015281815180845260c0850191508583019450600093505b808410156117865784518252938501936001939093019290850190611766565b50979650505050505050565b6020815260006109a460208301846116f9565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156117e4576117e46117a5565b604052919050565b600082601f8301126117fd57600080fd5b813567ffffffffffffffff811115611817576118176117a5565b61182a601f8201601f19166020016117bb565b81815284602083860101111561183f57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff821115611876576118766117a5565b5060051b60200190565b60008060006060848603121561189557600080fd5b8335925060208085013567ffffffffffffffff808211156118b557600080fd5b6118c1888389016117ec565b945060408701359150808211156118d757600080fd5b508501601f810187136118e957600080fd5b80356118fc6118f78261185c565b6117bb565b81815260059190911b8201830190838101908983111561191b57600080fd5b928401925b8284101561193957833582529284019290840190611920565b80955050505050509250925092565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561199f57603f1988860301845261198d8583516116f9565b94509285019290850190600101611971565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156119e4578351835292840192918401916001016119c8565b50909695505050505050565b801515811461018757600080fd5b600080600060608486031215611a1357600080fd5b83359250602084013567ffffffffffffffff811115611a3157600080fd5b611a3d868287016117ec565b9250506040840135611a4e816119f0565b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b60008251611a818184602087016116d5565b9190910192915050565b805160208083015191908110156116025760001960209190910360031b1b16919050565b600181811c90821680611ac357607f821691505b60208210810361160257634e487b7160e01b600052602260045260246000fd5b601f82111561023a576000816000526020600020601f850160051c81016020861015611b0c5750805b601f850160051c820191505b81811015611b2b57828155600101611b18565b505050505050565b815167ffffffffffffffff811115611b4d57611b4d6117a5565b611b6181611b5b8454611aaf565b84611ae3565b602080601f831160018114611b965760008415611b7e5750858301515b600019600386901b1c1916600185901b178555611b2b565b600085815260208120601f198616915b82811015611bc557888601518255948401946001909101908401611ba6565b5085821015611be35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808354611c0181611aaf565b60018281168015611c195760018114611c2e57611c5d565b60ff1984168752821515830287019450611c5d565b8760005260208060002060005b85811015611c545781548a820152908401908201611c3b565b50505082870194505b50929695505050505050565b80516001600160a01b0381168114611c8057600080fd5b919050565b600060208284031215611c9757600080fd5b6109a482611c69565b600060208284031215611cb257600080fd5b81516109a4816119f0565b60006060820185835260206060602085015281865180845260808601915060208801935060005b81811015611d095784516001600160a01b031683529383019391830191600101611ce4565b5050809350505050826040830152949350505050565b60006020808385031215611d3257600080fd5b825167ffffffffffffffff811115611d4957600080fd5b8301601f81018513611d5a57600080fd5b8051611d686118f78261185c565b81815260059190911b82018301908381019087831115611d8757600080fd5b928401925b82841015611dac57611d9d84611c69565b82529284019290840190611d8c565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101f7576101f7611db7565b818103818111156101f7576101f7611db7565b634e487b7160e01b600052603160045260246000fdfe804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300","sourceMap":"391:1449:198:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1150:140;;;;;;:::i;:::-;;:::i;:::-;;1294:188;;;;;;:::i;:::-;;:::i;684:134::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;455:225;;;;;;:::i;:::-;;:::i;822:105::-;;;:::i;:::-;;;;;;;:::i;1486:150::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1640:198::-;;;;;;:::i;:::-;;:::i;931:215::-;;;;;;:::i;:::-;;:::i;1150:140::-;1207:47;1227:26;;;;;;;;;;;;;-1:-1:-1;;;1227:26:198;;;1207:19;:47::i;:::-;1260:25;1275:9;1260:14;:25::i;:::-;1150:140;:::o;1294:188::-;1370:65;1397:9;1408:26;;;;;;;;;;;;;-1:-1:-1;;;1408:26:198;;;1370;:65::i;:::-;1441:36;1459:9;1470:6;1441:17;:36::i;:::-;1294:188;;:::o;684:134::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:22:198;803:9;791:11;:22::i;:::-;784:29;684:134;-1:-1:-1;;684:134:198:o;455:225::-;578:47;598:26;;;;;;;;;;;;;-1:-1:-1;;;598:26:198;;;578:19;:47::i;:::-;631:44;646:9;657:8;667:7;631:14;:44::i;:::-;455:225;;;:::o;822:105::-;868:25;908:14;:12;:14::i;:::-;901:21;;822:105;:::o;1486:150::-;1563:24;1602:29;1621:9;1602:18;:29::i;1640:198::-;1721:65;1748:9;1759:26;;;;;;;;;;;;;-1:-1:-1;;;1759:26:198;;;1721;:65::i;:::-;1792:41;1815:9;1826:6;1792:22;:41::i;931:215::-;1043:47;1063:26;;;;;;;;;;;;;-1:-1:-1;;;1063:26:198;;;1043:19;:47::i;:::-;1096:45;1111:9;1122:8;1132;1096:14;:45::i;3802:164:189:-;3882:31;1438:3;3902:10;3882;:31::i;:::-;3877:85;;3930:25;;-1:-1:-1;;;3930:25:189;;;;;;;;;;;1876:150:195;1934:39;1963:9;1934:28;:39::i;:::-;1984:37;;6633:25:419;;;1999:10:195;;1984:37;;6621:2:419;6606:18;1984:37:195;;;;;;;1876:150;:::o;4333:204:189:-;4451:33;4462:9;4473:10;4451;:33::i;:::-;4446:87;;4501:25;;-1:-1:-1;;;4501:25:189;;;;;;;;;;;2191:190:195;2268:50;2300:9;2311:6;2268:31;:50::i;:::-;2329:47;;;6843:25:419;;;6899:2;6884:18;;6877:34;;;2346:10:195;;2329:47;;6816:18:419;2329:47:195;;;;;;;;2191:190;;:::o;588:417::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;692:22:195;716:13;733:48;766:9;733:25;:48::i;:::-;689:92;;;;;788:24;815:43;848:9;815:32;:43::i;:::-;878:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;878:122:195;;588:417;-1:-1:-1;588:417:195:o;309:275::-;433:34;455:8;465:1;433:21;:34::i;:::-;473:58;502:9;513:8;523:7;473:28;:58::i;:::-;542:37;;6633:25:419;;;557:10:195;;542:37;;6621:2:419;6606:18;542:37:195;;;;;;;;309:275;;;:::o;1009:634::-;1056:16;1080:27;1110:30;:28;:30::i;:::-;1080:60;;1147:25;1189:10;:17;1175:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1175:32:195;;;;;;;;;;;;;;;;1147:60;;1219:9;1214:403;1238:10;:17;1234:1;:21;1214:403;;;1271:10;1283:22;1307:13;1324:49;1359:10;1370:1;1359:13;;;;;;;;:::i;:::-;;;;;;;1324:34;:49::i;:::-;1270:103;;;;;;1382:24;1409:63;1451:10;1462:1;1451:13;;;;;;;;:::i;:::-;;;;;;;1409:32;:63::i;:::-;1382:90;;1495:115;;;;;;;;1517:2;1495:115;;;;1539:8;1495:115;;;;;;1567:8;1495:115;;;;1594:7;1495:115;;;1481:8;1490:1;1481:11;;;;;;;;:::i;:::-;;;;;;:129;;;;1262:355;;;;1257:3;;;;;;;1214:403;;;-1:-1:-1;1630:8:195;1009:634;-1:-1:-1;;1009:634:195:o;2030:157::-;2108:16;2139:43;2172:9;2139:32;:43::i;2385:202::-;2467:55;2504:9;2515:6;2467:36;:55::i;:::-;2533:49;;;6843:25:419;;;6899:2;6884:18;;6877:34;;;2552:10:195;;2533:49;;6816:18:419;2533:49:195;6669:248:419;1647:225:195;1760:59;1789:9;1800:8;1810;1760:28;:59::i;:::-;1830:37;;6633:25:419;;;1845:10:195;;1830:37;;6621:2:419;6606:18;1830:37:195;6487:177:419;3513:285:189;3613:4;3642:10;;3672:8;:6;:8::i;:::-;-1:-1:-1;;;;;3672:18:189;;:121;;;-1:-1:-1;286:66:113;519:31:111;;;3701:10:189;:91;;;;;3723:69;3735:9;3746:6;3779:10;3762:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;3754:37;;;:::i;:::-;3723:11;:69::i;:::-;3659:134;3513:285;-1:-1:-1;;;;3513:285:189:o;2485:579:196:-;2542:29;2561:9;2542:18;:29::i;:::-;-1:-1:-1;;;;;;;;;;;2648:36:196;370:66:197;2674:9:196;2648:25;:36::i;:::-;-1:-1:-1;2690:44:196;;;;;;;;;-1:-1:-1;2690:44:196;;;:30;;;:19;;;;:30;;;;;;;:39;;;;:44;;:39;:44;:::i;:::-;-1:-1:-1;2782:5:196;2740:30;;;:19;;;;:30;;;;;:39;;;:47;;-1:-1:-1;;2740:47:196;;;2793:37;;;2740:30;2782:5;2793:37;;;;2782:5;2793:37;:::i;:::-;-1:-1:-1;;2874:22:196;2899:35;;;:24;;;:35;;;;;:44;;:42;:44::i;:::-;2874:69;;2955:9;2950:110;2974:5;:12;2970:1;:16;2950:110;;;3001:52;3044:5;3050:1;3044:8;;;;;;;;:::i;:::-;;;;;;;3001:7;:24;;:35;3026:9;3001:35;;;;;;;;;;;:42;;:52;;;;:::i;:::-;-1:-1:-1;2988:3:196;;2950:110;;;;2536:528;;2485:579;:::o;4052:438::-;4128:29;4147:9;4128:18;:29::i;:::-;4163:34;4187:9;4163:23;:34::i;:::-;4204:37;4321:35;;;:24;:35;;;;;-1:-1:-1;;;;;;;;;;;370:66:197;4321:52:196;;4366:6;4321:44;:52::i;:::-;4317:115;;;4390:35;;-1:-1:-1;;;4390:35:196;;;;;;;;;;;4317:115;4438:35;;;;:24;;;:35;;;;;:47;;4478:6;4438:39;:47::i;1504:411::-;1574:10;1586:22;1610:13;1631:29;1650:9;1631:18;:29::i;:::-;1667:37;1780:30;;;:19;:30;;;;;;;;1736:74;;;;;;;;;;;;;;;;;;;;;;;;;;1780:19;1736:74;;;;-1:-1:-1;;;;;;;;;;;370:66:197;1667:37:196;1736:74;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1736:74:196;;;;-1:-1:-1;;1822:14:196;;1853:20;;;;1890;;;;;1822:14;;1853:20;;-1:-1:-1;1890:20:196;-1:-1:-1;1504:411:196;;-1:-1:-1;;;;;1504:411:196:o;4936:262::-;5013:16;5037:29;5056:9;5037:18;:29::i;:::-;5073:37;5149:35;;;:24;:35;;;;;-1:-1:-1;;;;;;;;;;;370:66:197;5149:44:196;;:42;:44::i;:::-;5142:51;4936:262;-1:-1:-1;;;4936:262:196:o;418:183:269:-;534:15;;519:4;;534:21;-1:-1:-1;530:66:269;;;564:32;;-1:-1:-1;;;564:32:269;;;;;;;;;;;814:686:196;937:23;950:9;937:12;:23::i;:::-;-1:-1:-1;;;;;;;;;;;1037:33:196;370:66:197;1060:9:196;1037:22;:33::i;:::-;-1:-1:-1;1109:100:196;;;;;;;;;;;-1:-1:-1;1109:100:196;;;;;;;;;;;;;1076:30;;;:19;;;;:30;;;;;;;:133;;;;;;1109:100;1076:133;;;;-1:-1:-1;;1076:133:196;;;;;;;;;;;;1109:100;;1076:30;;:133;;;;;;;;:::i;:::-;;;;;1221:9;1216:280;1240:7;:14;1236:1;:18;1216:280;;;1322:56;1367:7;1375:1;1367:10;;;;;;;;:::i;:::-;;;;;;;1322:7;:24;;:35;1347:9;1322:35;;;;;;;;;;;:44;;:56;;;;:::i;:::-;1318:112;;;1395:35;;-1:-1:-1;;;1395:35:196;;;;;;;;;;;1318:112;1438:51;1478:7;1486:1;1478:10;;;;;;;;:::i;:::-;;;;;;;1438:7;:24;;:35;1463:9;1438:35;;;;;;;;;;;:39;;:51;;;;:::i;:::-;-1:-1:-1;1256:3:196;;1216:280;;;;931:569;814:686;;;:::o;3068:180::-;3116:16;-1:-1:-1;;;;;;;;;;;3216:27:196;370:66:197;3216:25:196;:27::i;:::-;3209:34;;;3068:180;:::o;4494:438::-;4575:29;4594:9;4575:18;:29::i;:::-;4610:34;4634:9;4610:23;:34::i;:::-;4650:37;4761:35;;;:24;:35;;;;;-1:-1:-1;;;;;;;;;;;370:66:197;4761:52:196;;4806:6;4761:44;:52::i;:::-;4756:115;;4830:34;;-1:-1:-1;;;4830:34:196;;;;;;;;;;;4756:115;4877:35;;;;:24;;;:35;;;;;:50;;4920:6;4877:42;:50::i;1919:562::-;2031:29;2050:9;2031:18;:29::i;:::-;2067:37;2182:30;;;:19;:30;;;;;2230:22;;-1:-1:-1;;;;;;;;;;;370:66:197;2182:30:196;2230:26;;;;:104;;;2312:11;:20;;2296:38;;;;;;:::i;:::-;;;;;;;;2282:8;2266:26;;;;;;:68;;2230:104;2219:168;;;2349:20;;;:31;2372:8;2349:20;:31;:::i;:::-;;2219:168;2397:20;;;;;;:32;;;;;;2393:84;;2439:20;;:31;;-1:-1:-1;;2439:31:196;;;;;;;;;;;-1:-1:-1;;;1919:562:196:o;717:189:107:-;779:67;;;;;;;;295:66:109;779:67:107;-1:-1:-1;;;;;779:67:107;;;;;;;;;;;;;859:42;;-1:-1:-1;;;859:42:107;;;;;6633:25:419;;;;859:42:107;;758:13;;859:30;;6606:18:419;;;;;859:42:107;;;;;;779:67;859:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1559:1252:189:-;1672:4;1684:13;1700:8;:6;:8::i;:::-;1684:24;;1715;1742:31;1768:4;1742:25;:31::i;:::-;1809:14;;1715:58;;-1:-1:-1;1779:27:189;1862:17;:15;:17::i;:::-;1911:19;;1830:49;;-1:-1:-1;1885:23:189;1937:320;1961:19;1957:1;:23;1937:320;;;1995:14;2012:7;2020:1;2012:10;;;;;;;;:::i;:::-;;;;;;;1995:27;;2045:5;-1:-1:-1;;;;;2035:15:189;:6;-1:-1:-1;;;;;2035:15:189;;2031:51;;2069:4;2062:11;;;;;;;;;;;2031:51;2120:9;2115:136;2135:15;2131:1;:19;2115:136;;;2200:6;-1:-1:-1;;;;;2171:35:189;:25;2180:12;2193:1;2180:15;;;;;;;;:::i;:::-;;;;;;;2171:8;:25::i;:::-;-1:-1:-1;;;;;2171:35:189;;2167:76;;2227:5;2220:12;;;;;;;;;;;;2167:76;2152:3;;2115:136;;;-1:-1:-1;;1982:3:189;;1937:320;;;-1:-1:-1;476:66:208;2301:44:189;2425:24;:15;:22;:24::i;:::-;2396:53;;2461:9;2456:332;2480:18;2476:1;:22;2456:332;;;2513:47;2563:2;2513:47;2596:21;:15;;;2615:1;2596:18;:21::i;:::-;-1:-1:-1;;;;;2563:62:189;;;;;;;;;;;;;;;;;-1:-1:-1;2563:62:189;2513:112;;;;;;;;;;;;;;;;-1:-1:-1;;;2513:112:189;;;;;;;;;;-1:-1:-1;;;2513:112:189;;;;;;;;;;;;2647:28;;-1:-1:-1;;;2647:28:189;;;;2513:112;;-1:-1:-1;2513:112:189;;2647:26;;:28;;;;;;;;;;;2513:112;2647:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2646:29;:97;;;;;2687:1;:13;;;-1:-1:-1;;;;;2687:24:189;;2712:9;2723:7;2732:10;2687:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2633:149;;;2769:4;2762:11;;;;;;;;;;;;;2633:149;-1:-1:-1;2500:3:189;;2456:332;;;-1:-1:-1;2801:5:189;;1559:1252;-1:-1:-1;;;;;;;;;;;1559:1252:189:o;5848:224:196:-;5953:54;5997:9;-1:-1:-1;;;;;;;;;;;5953:23:196;:34;:43;:54::i;:::-;5948:120;;6024:37;;-1:-1:-1;;;6024:37:196;;;;;;;;;;;6221:129:371;6294:4;6317:26;6325:3;6337:5;6317:7;:26::i;12671:297::-;12731:16;12759:22;12784:19;12792:3;12784:7;:19::i;5376:246:196:-;5448:37;5522:30;;;:19;:30;;;;;:39;;;-1:-1:-1;;;;;;;;;;;370:66:197;5522:39:196;;5518:100;;;5578:33;;-1:-1:-1;;;5578:33:196;;;;;;;;;;;11317:144:371;11394:4;4360:21;;;:14;;;:21;;;;;;:26;;11417:37;4264:129;10804;10871:4;10894:32;10899:3;10919:5;10894:4;:32::i;5626:218:196:-;5724:54;5768:9;-1:-1:-1;;;;;;;;;;;5724:23:196;714:141:197;5724:54:196;5720:120;;;5795:38;;-1:-1:-1;;;5795:38:196;;;;;;;;;;;4541:861:189;4624:16;4648:14;287:66:223;4677:39:189;;;4756:31;;-1:-1:-1;;;4756:31:189;;-1:-1:-1;;;;;12877:32:419;;;4756:31:189;;;12859:51:419;4677:39:189;;;;-1:-1:-1;4677:39:189;;;;4756:22;;12832:18:419;;4756:31:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4756:31:189;;;;;;;;;;;;:::i;:::-;4908;;-1:-1:-1;;;4908:31:189;;-1:-1:-1;;;;;12877:32:419;;;4908:31:189;;;12859:51:419;4723:64:189;;-1:-1:-1;4881:24:189;;4908:22;;;;;12832:18:419;;4908:31:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4881:58;;4949:13;:20;4973:1;4949:25;:59;;;;-1:-1:-1;;;;;;4978:30:189;;;;4949:59;4945:161;;;5068:31;;-1:-1:-1;;;5068:31:189;;-1:-1:-1;;;;;12877:32:419;;;5068:31:189;;;12859:51:419;5028:16:189;;-1:-1:-1;5028:16:189;;5068:22;;;;;12832:18:419;;5068:31:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5068:31:189;;;;;;;;;;;;:::i;:::-;5052:47;;4945:161;5142:20;;5112:27;5210:23;5142:20;5232:1;5210:23;:::i;:::-;5196:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5196:38:189;;5169:65;;5245:9;5240:94;5264:19;5260:1;:23;5240:94;;;5311:13;5325:1;5311:16;;;;;;;;:::i;:::-;;;;;;;5298:7;5306:1;5298:10;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5298:29:189;;;:10;;;;;;;;;;;:29;5285:3;;5240:94;;;;5370:7;5339;5347:19;5339:28;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5339:38:189;;;:28;;;;;;;;;;;:38;5390:7;4541:861;-1:-1:-1;;;;;;4541:861:189:o;1221:128:192:-;1271:16;1302:42;370:66:193;1302:40:192;:42::i;22038:138:129:-;22104:7;22142:27;22161:7;22142:18;:27::i;9117:115:371:-;9180:7;9206:19;9214:3;4556:18;;4474:107;9574:156;9648:7;9698:22;9702:3;9714:5;9698:3;:22::i;2815:1368::-;2881:4;3010:21;;;:14;;;:21;;;;;;3046:13;;3042:1135;;3413:18;3434:12;3445:1;3434:8;:12;:::i;:::-;3480:18;;3413:33;;-1:-1:-1;3460:17:371;;3480:22;;3501:1;;3480:22;:::i;:::-;3460:42;;3535:9;3521:10;:23;3517:378;;3564:17;3584:3;:11;;3596:9;3584:22;;;;;;;;:::i;:::-;;;;;;;;;3564:42;;3731:9;3705:3;:11;;3717:10;3705:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;;3844:25;;;:14;;;:25;;;;;:36;;;3517:378;3973:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4076:3;:14;;:21;4091:5;4076:21;;;;;;;;;;;4069:28;;;4119:4;4112:11;;;;;;;3042:1135;4161:5;4154:12;;;;;5581:109;5637:16;5672:3;:11;;5665:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:109;;;:::o;2241:406::-;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:371;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;2320:321;-1:-1:-1;2625:5:371;2618:12;;7829:1501:129;7967:32;8043:29;;;:20;:29;;;;;;;293:66:131;;-1:-1:-1;;;8108:24:129;;:29;;8104:1172;;8229:6;8239:1;8229:11;8225:791;;8269:16;;8258:27;;8254:83;;8306:31;;-1:-1:-1;;;8306:31:129;;;;;;;;;;;8254:83;8824:182;-1:-1:-1;;8903:9:129;;;8882:31;;;;:20;;;:31;;;;;;8903:9;;8882:31;;-1:-1:-1;8941:25:129;;8824:182;8941:25;;8980:13;7829:1501;;;:::o;8104:1172::-;7959:1323;9294:31;;-1:-1:-1;;;9294:31:129;;;;;;;;;;;4923:118:371;4990:7;5016:3;:11;;5028:5;5016:18;;;;;;;;:::i;:::-;;;;;;;;;5009:25;;4923:118;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:419:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:419;;14:180;-1:-1:-1;14:180:419:o;199:248::-;267:6;275;328:2;316:9;307:7;303:23;299:32;296:52;;;344:1;341;334:12;296:52;-1:-1:-1;;367:23:419;;;437:2;422:18;;;409:32;;-1:-1:-1;199:248:419:o;452:250::-;537:1;547:113;561:6;558:1;555:13;547:113;;;637:11;;;631:18;618:11;;;611:39;583:2;576:10;547:113;;;-1:-1:-1;;694:1:419;676:16;;669:27;452:250::o;707:1057::-;793:5;787:12;782:3;775:25;757:3;819:4;884:2;877:5;873:14;867:21;860:29;853:37;848:2;843:3;839:12;832:59;937:4;930:5;926:16;920:23;975:4;968;963:3;959:14;952:28;1009:12;1003:19;1054:6;1047:4;1042:3;1038:14;1031:30;1070:80;1143:6;1137:3;1132;1128:13;1123:2;1109:12;1105:21;1070:80;:::i;:::-;1203:2;1199:7;1194:2;1186:6;1182:15;1178:29;1173:3;1169:39;1159:49;;;1238:3;1234:2;1230:12;1290:4;1283:5;1279:16;1273:23;1346:3;1340;1336:2;1332:12;1328:22;1321:4;1316:3;1312:14;1305:46;1373:5;1409:14;1403:21;1447:8;1440:5;1433:23;1482:3;1478:2;1474:12;1465:21;;1529:2;1513:14;1509:23;1495:37;;1550:1;1541:10;;1560:177;1574:8;1571:1;1568:15;1560:177;;;1639:13;;1625:28;;1712:15;;;;1598:1;1591:9;;;;;1675:14;;;;1560:177;;;-1:-1:-1;1753:5:419;707:1057;-1:-1:-1;;;;;;;707:1057:419:o;1769:260::-;1950:2;1939:9;1932:21;1913:4;1970:53;2019:2;2008:9;2004:18;1996:6;1970:53;:::i;2034:127::-;2095:10;2090:3;2086:20;2083:1;2076:31;2126:4;2123:1;2116:15;2150:4;2147:1;2140:15;2166:275;2237:2;2231:9;2302:2;2283:13;;-1:-1:-1;;2279:27:419;2267:40;;2337:18;2322:34;;2358:22;;;2319:62;2316:88;;;2384:18;;:::i;:::-;2420:2;2413:22;2166:275;;-1:-1:-1;2166:275:419:o;2446:531::-;2489:5;2542:3;2535:4;2527:6;2523:17;2519:27;2509:55;;2560:1;2557;2550:12;2509:55;2596:6;2583:20;2622:18;2618:2;2615:26;2612:52;;;2644:18;;:::i;:::-;2688:55;2731:2;2712:13;;-1:-1:-1;;2708:27:419;2737:4;2704:38;2688:55;:::i;:::-;2768:2;2759:7;2752:19;2814:3;2807:4;2802:2;2794:6;2790:15;2786:26;2783:35;2780:55;;;2831:1;2828;2821:12;2780:55;2896:2;2889:4;2881:6;2877:17;2870:4;2861:7;2857:18;2844:55;2944:1;2919:16;;;2937:4;2915:27;2908:38;;;;2923:7;2446:531;-1:-1:-1;;;2446:531:419:o;2982:183::-;3042:4;3075:18;3067:6;3064:30;3061:56;;;3097:18;;:::i;:::-;-1:-1:-1;3142:1:419;3138:14;3154:4;3134:25;;2982:183::o;3170:1180::-;3282:6;3290;3298;3351:2;3339:9;3330:7;3326:23;3322:32;3319:52;;;3367:1;3364;3357:12;3319:52;3403:9;3390:23;3380:33;;3432:2;3485;3474:9;3470:18;3457:32;3508:18;3549:2;3541:6;3538:14;3535:34;;;3565:1;3562;3555:12;3535:34;3588:50;3630:7;3621:6;3610:9;3606:22;3588:50;:::i;:::-;3578:60;;3691:2;3680:9;3676:18;3663:32;3647:48;;3720:2;3710:8;3707:16;3704:36;;;3736:1;3733;3726:12;3704:36;-1:-1:-1;3759:24:419;;3814:4;3806:13;;3802:27;-1:-1:-1;3792:55:419;;3843:1;3840;3833:12;3792:55;3879:2;3866:16;3902:60;3918:43;3958:2;3918:43;:::i;:::-;3902:60;:::i;:::-;3996:15;;;4078:1;4074:10;;;;4066:19;;4062:28;;;4027:12;;;;4102:19;;;4099:39;;;4134:1;4131;4124:12;4099:39;4158:11;;;;4178:142;4194:6;4189:3;4186:15;4178:142;;;4260:17;;4248:30;;4211:12;;;;4298;;;;4178:142;;;4339:5;4329:15;;;;;;;3170:1180;;;;;:::o;4355:843::-;4549:4;4578:2;4618;4607:9;4603:18;4648:2;4637:9;4630:21;4671:6;4706;4700:13;4737:6;4729;4722:22;4775:2;4764:9;4760:18;4753:25;;4837:2;4827:6;4824:1;4820:14;4809:9;4805:30;4801:39;4787:53;;4875:2;4867:6;4863:15;4896:1;4906:263;4920:6;4917:1;4914:13;4906:263;;;5013:2;5009:7;4997:9;4989:6;4985:22;4981:36;4976:3;4969:49;5041:48;5082:6;5073;5067:13;5041:48;:::i;:::-;5031:58;-1:-1:-1;5147:12:419;;;;5112:15;;;;4942:1;4935:9;4906:263;;;-1:-1:-1;5186:6:419;;4355:843;-1:-1:-1;;;;;;;4355:843:419:o;5203:632::-;5374:2;5426:21;;;5496:13;;5399:18;;;5518:22;;;5345:4;;5374:2;5597:15;;;;5571:2;5556:18;;;5345:4;5640:169;5654:6;5651:1;5648:13;5640:169;;;5715:13;;5703:26;;5784:15;;;;5749:12;;;;5676:1;5669:9;5640:169;;;-1:-1:-1;5826:3:419;;5203:632;-1:-1:-1;;;;;;5203:632:419:o;5840:118::-;5926:5;5919:13;5912:21;5905:5;5902:32;5892:60;;5948:1;5945;5938:12;5963:519;6047:6;6055;6063;6116:2;6104:9;6095:7;6091:23;6087:32;6084:52;;;6132:1;6129;6122:12;6084:52;6168:9;6155:23;6145:33;;6229:2;6218:9;6214:18;6201:32;6256:18;6248:6;6245:30;6242:50;;;6288:1;6285;6278:12;6242:50;6311;6353:7;6344:6;6333:9;6329:22;6311:50;:::i;:::-;6301:60;;;6411:2;6400:9;6396:18;6383:32;6424:28;6446:5;6424:28;:::i;:::-;6471:5;6461:15;;;5963:519;;;;;:::o;6922:127::-;6983:10;6978:3;6974:20;6971:1;6964:31;7014:4;7011:1;7004:15;7038:4;7035:1;7028:15;7054:289;7185:3;7223:6;7217:13;7239:66;7298:6;7293:3;7286:4;7278:6;7274:17;7239:66;:::i;:::-;7321:16;;;;;7054:289;-1:-1:-1;;7054:289:419:o;7348:297::-;7466:12;;7513:4;7502:16;;;7496:23;;7466:12;7531:16;;7528:111;;;-1:-1:-1;;7605:4:419;7601:17;;;;7598:1;7594:25;7590:38;7579:50;;7348:297;-1:-1:-1;7348:297:419:o;7650:380::-;7729:1;7725:12;;;;7772;;;7793:61;;7847:4;7839:6;7835:17;7825:27;;7793:61;7900:2;7892:6;7889:14;7869:18;7866:38;7863:161;;7946:10;7941:3;7937:20;7934:1;7927:31;7981:4;7978:1;7971:15;8009:4;8006:1;7999:15;8161:543;8263:2;8258:3;8255:11;8252:446;;;8299:1;8323:5;8320:1;8313:16;8367:4;8364:1;8354:18;8437:2;8425:10;8421:19;8418:1;8414:27;8408:4;8404:38;8473:4;8461:10;8458:20;8455:47;;;-1:-1:-1;8496:4:419;8455:47;8551:2;8546:3;8542:12;8539:1;8535:20;8529:4;8525:31;8515:41;;8606:82;8624:2;8617:5;8614:13;8606:82;;;8669:17;;;8650:1;8639:13;8606:82;;;8610:3;;;8161:543;;;:::o;8880:1345::-;9006:3;9000:10;9033:18;9025:6;9022:30;9019:56;;;9055:18;;:::i;:::-;9084:97;9174:6;9134:38;9166:4;9160:11;9134:38;:::i;:::-;9128:4;9084:97;:::i;:::-;9236:4;;9293:2;9282:14;;9310:1;9305:663;;;;10012:1;10029:6;10026:89;;;-1:-1:-1;10081:19:419;;;10075:26;10026:89;-1:-1:-1;;8837:1:419;8833:11;;;8829:24;8825:29;8815:40;8861:1;8857:11;;;8812:57;10128:81;;9275:944;;9305:663;8108:1;8101:14;;;8145:4;8132:18;;-1:-1:-1;;9341:20:419;;;9459:236;9473:7;9470:1;9467:14;9459:236;;;9562:19;;;9556:26;9541:42;;9654:27;;;;9622:1;9610:14;;;;9489:19;;9459:236;;;9463:3;9723:6;9714:7;9711:19;9708:201;;;9784:19;;;9778:26;-1:-1:-1;;9867:1:419;9863:14;;;9879:3;9859:24;9855:37;9851:42;9836:58;9821:74;;9708:201;-1:-1:-1;;;;;9955:1:419;9939:14;;;9935:22;9922:36;;-1:-1:-1;8880:1345:419:o;10230:845::-;10360:3;10389:1;10422:6;10416:13;10452:36;10478:9;10452:36;:::i;:::-;10507:1;10524:17;;;10550:133;;;;10697:1;10692:358;;;;10517:533;;10550:133;-1:-1:-1;;10583:24:419;;10571:37;;10656:14;;10649:22;10637:35;;10628:45;;;-1:-1:-1;10550:133:419;;10692:358;10723:6;10720:1;10713:17;10753:4;10798;10795:1;10785:18;10825:1;10839:165;10853:6;10850:1;10847:13;10839:165;;;10931:14;;10918:11;;;10911:35;10974:16;;;;10868:10;;10839:165;;;10843:3;;;11033:6;11028:3;11024:16;11017:23;;10517:533;-1:-1:-1;11066:3:419;;10230:845;-1:-1:-1;;;;;;10230:845:419:o;11262:177::-;11341:13;;-1:-1:-1;;;;;11383:31:419;;11373:42;;11363:70;;11429:1;11426;11419:12;11363:70;11262:177;;;:::o;11444:208::-;11514:6;11567:2;11555:9;11546:7;11542:23;11538:32;11535:52;;;11583:1;11580;11573:12;11535:52;11606:40;11636:9;11606:40;:::i;11657:245::-;11724:6;11777:2;11765:9;11756:7;11752:23;11748:32;11745:52;;;11793:1;11790;11783:12;11745:52;11825:9;11819:16;11844:28;11866:5;11844:28;:::i;11907:801::-;12105:4;12153:2;12142:9;12138:18;12183:6;12172:9;12165:25;12209:2;12247;12242;12231:9;12227:18;12220:30;12270:6;12305;12299:13;12336:6;12328;12321:22;12374:3;12363:9;12359:19;12352:26;;12413:2;12405:6;12401:15;12387:29;;12434:1;12444:195;12458:6;12455:1;12452:13;12444:195;;;12523:13;;-1:-1:-1;;;;;12519:39:419;12507:52;;12614:15;;;;12579:12;;;;12555:1;12473:9;12444:195;;;12448:3;;12656;12648:11;;;;;12695:6;12690:2;12679:9;12675:18;12668:34;11907:801;;;;;;:::o;12921:905::-;13016:6;13047:2;13090;13078:9;13069:7;13065:23;13061:32;13058:52;;;13106:1;13103;13096:12;13058:52;13139:9;13133:16;13172:18;13164:6;13161:30;13158:50;;;13204:1;13201;13194:12;13158:50;13227:22;;13280:4;13272:13;;13268:27;-1:-1:-1;13258:55:419;;13309:1;13306;13299:12;13258:55;13338:2;13332:9;13361:60;13377:43;13417:2;13377:43;:::i;13361:60::-;13455:15;;;13537:1;13533:10;;;;13525:19;;13521:28;;;13486:12;;;;13561:19;;;13558:39;;;13593:1;13590;13583:12;13558:39;13617:11;;;;13637:159;13653:6;13648:3;13645:15;13637:159;;;13719:34;13749:3;13719:34;:::i;:::-;13707:47;;13670:12;;;;13774;;;;13637:159;;;13815:5;12921:905;-1:-1:-1;;;;;;;12921:905:419:o;13831:127::-;13892:10;13887:3;13883:20;13880:1;13873:31;13923:4;13920:1;13913:15;13947:4;13944:1;13937:15;13963:125;14028:9;;;14049:10;;;14046:36;;;14062:18;;:::i;14093:128::-;14160:9;;;14181:11;;;14178:37;;;14195:18;;:::i;14226:127::-;14287:10;14282:3;14278:20;14275:1;14268:31;14318:4;14315:1;14308:15;14342:4;14339:1;14332:15","linkReferences":{}},"methodIdentifiers":{"addRoleToChannel(bytes32,uint256)":"37644cf7","createChannel(bytes32,string,uint256[])":"921f7175","getChannel(bytes32)":"831c2b82","getChannels()":"9575f6ac","getRolesByChannel(bytes32)":"99352183","removeChannel(bytes32)":"02da0e51","removeRoleFromChannel(bytes32,uint256)":"b9de6159","updateChannel(bytes32,string,bool)":"ef86d696"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__AlreadyBanned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banning__CannotBanOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banning__CannotBanSelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__NotBanned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__ChannelAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__ChannelDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__ChannelDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__RoleAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__RoleDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC5643__DurationZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC5643__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC5643__NotApprovedOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC5643__SubscriptionNotRenewable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__ValueAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_InInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_AlreadySupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_NotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintERC2309QuantityExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintZeroQuantity\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Ownable__NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Ownable__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnershipNotInitializedForExtraData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__NotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__Paused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"URIQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Validator__InvalidStringLength\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"moderator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"ChannelCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"ChannelRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"ChannelRoleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"ChannelRoleRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"ChannelUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"ConsecutiveTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"expiration\",\"type\":\"uint64\"}],\"name\":\"SubscriptionUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"moderator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Unbanned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"addRoleToChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"roleIds\",\"type\":\"uint256[]\"}],\"name\":\"createChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"getChannel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"disabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"roleIds\",\"type\":\"uint256[]\"}],\"internalType\":\"struct IChannelBase.Channel\",\"name\":\"channel\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChannels\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"disabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"roleIds\",\"type\":\"uint256[]\"}],\"internalType\":\"struct IChannelBase.Channel[]\",\"name\":\"channels\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"getRolesByChannel\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"roleIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"removeChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"removeRoleFromChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"disabled\",\"type\":\"bool\"}],\"name\":\"updateChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"ConsecutiveTransfer(uint256,uint256,address,address)\":{\"details\":\"Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, as defined in the [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. See {_mintERC2309} for more details.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"This emits when ownership of a contract changes.\"},\"SubscriptionUpdate(uint256,uint64)\":{\"details\":\"When a subscription is canceled, the expiration value should also be 0.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"addRoleToChannel(bytes32,uint256)\":{\"params\":{\"channelId\":\"the channelId to add the role to\",\"roleId\":\"the roleId to add to the channel\"}},\"createChannel(bytes32,string,uint256[])\":{\"params\":{\"channelId\":\"the channelId of the channel\",\"metadata\":\"the metadata of the channel\",\"roleIds\":\"the roleIds to add to the channel\"}},\"getChannel(bytes32)\":{\"params\":{\"channelId\":\"the channelId to get\"},\"returns\":{\"channel\":\"the channel\"}},\"getChannels()\":{\"returns\":{\"channels\":\"an array of all channels\"}},\"getRolesByChannel(bytes32)\":{\"params\":{\"channelId\":\"the channelId to get the roles for\"},\"returns\":{\"roleIds\":\"an array of roleIds for the channel\"}},\"removeChannel(bytes32)\":{\"params\":{\"channelId\":\"the channelId to remove\"}},\"removeRoleFromChannel(bytes32,uint256)\":{\"params\":{\"channelId\":\"the channelId to remove the role from\",\"roleId\":\"the roleId to remove from the channel\"}},\"updateChannel(bytes32,string,bool)\":{\"params\":{\"channelId\":\"the channelId to update\",\"disabled\":\"whether or not the channel is disabled\",\"metadata\":\"the new metadata of the channel\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"ApprovalCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"ApprovalQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"BalanceQueryForZeroAddress()\":[{\"notice\":\"Cannot query the balance for the zero address.\"}],\"MintERC2309QuantityExceedsLimit()\":[{\"notice\":\"The `quantity` minted with ERC2309 exceeds the safety limit.\"}],\"MintToZeroAddress()\":[{\"notice\":\"Cannot mint to the zero address.\"}],\"MintZeroQuantity()\":[{\"notice\":\"The quantity of tokens minted must be more than zero.\"}],\"OwnerQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"OwnershipNotInitializedForExtraData()\":[{\"notice\":\"The `extraData` cannot be set on an unintialized ownership slot.\"}],\"TransferCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"TransferFromIncorrectOwner()\":[{\"notice\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"notice\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"notice\":\"Cannot transfer to the zero address.\"}],\"URIQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}]},\"events\":{\"InterfaceAdded(bytes4)\":{\"notice\":\"Emitted when an interface is added to the contract via `_addInterface`.\"},\"InterfaceRemoved(bytes4)\":{\"notice\":\"Emitted when an interface is removed from the contract via `_removeInterface`.\"},\"SubscriptionUpdate(uint256,uint64)\":{\"notice\":\"Emitted when a subscription expiration changes\"}},\"kind\":\"user\",\"methods\":{\"addRoleToChannel(bytes32,uint256)\":{\"notice\":\"adds a role to a channel\"},\"createChannel(bytes32,string,uint256[])\":{\"notice\":\"creates a channel\"},\"getChannel(bytes32)\":{\"notice\":\"gets a channel\"},\"getChannels()\":{\"notice\":\"gets all channels\"},\"getRolesByChannel(bytes32)\":{\"notice\":\"gets all roles for a channel\"},\"removeChannel(bytes32)\":{\"notice\":\"removes a channel\"},\"removeRoleFromChannel(bytes32,uint256)\":{\"notice\":\"removes a role from a channel\"},\"updateChannel(bytes32,string,bool)\":{\"notice\":\"updates a channel\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/facets/channels/Channels.sol\":\"Channels\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/diamond/facets/Facet.sol\":{\"keccak256\":\"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863\",\"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc\"]},\"contracts/src/diamond/facets/initializable/Initializable.sol\":{\"keccak256\":\"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552\",\"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC\"]},\"contracts/src/diamond/facets/initializable/InitializableStorage.sol\":{\"keccak256\":\"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4\",\"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg\"]},\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/introspection/IntrospectionBase.sol\":{\"keccak256\":\"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1\",\"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw\"]},\"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol\":{\"keccak256\":\"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91\",\"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM\"]},\"contracts/src/diamond/facets/ownable/IERC173.sol\":{\"keccak256\":\"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b\",\"dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd\"]},\"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol\":{\"keccak256\":\"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb\",\"dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol\":{\"keccak256\":\"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb\",\"dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol\":{\"keccak256\":\"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf\",\"dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F\"]},\"contracts/src/diamond/facets/pausable/IPausable.sol\":{\"keccak256\":\"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684\",\"dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ\"]},\"contracts/src/diamond/facets/pausable/PausableBase.sol\":{\"keccak256\":\"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3\",\"dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V\"]},\"contracts/src/diamond/facets/pausable/PausableStorage.sol\":{\"keccak256\":\"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd\",\"dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj\"]},\"contracts/src/diamond/facets/token/ERC5643/ERC5643Base.sol\":{\"keccak256\":\"0x21d3c281732e54c93520a4f2cc72cc5af38c517f2a150ee67aa84704a3d78627\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ce7c061da0142a4d775bb85896410d363d4a28c0275d3171a70872344fc9a4\",\"dweb:/ipfs/Qmdwgs3TaC4b83JVn6RG5pJJdCrxb74ZMRqZbYSe5DuqZf\"]},\"contracts/src/diamond/facets/token/ERC5643/ERC5643Storage.sol\":{\"keccak256\":\"0x68cbff071e6a6a6b91b675af567616799435676fbbbebf4f9226e1226d6128b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2c7aee6ef32477733a50ba667cc510c8c165b9a9e146609b1f800acd0e4832\",\"dweb:/ipfs/QmcWAz74x3AR6kpzWdyPWw3iLQ1yHBT3ZVoK6jT7T3LwXq\"]},\"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol\":{\"keccak256\":\"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615\",\"dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol\":{\"keccak256\":\"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba\",\"dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol\":{\"keccak256\":\"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04\",\"dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey\"]},\"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol\":{\"keccak256\":\"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d\",\"dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz\"]},\"contracts/src/factory/facets/wallet-link/IWalletLink.sol\":{\"keccak256\":\"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0\",\"dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5\"]},\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/facets/Entitled.sol\":{\"keccak256\":\"0x90204085688bf4dd1e1b6ca30684ee37db79210070c405406898c8a77d50bfce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9b194cc9977b03fbccc81529147a0fce7857893c8146927570c1ee5a28aa900\",\"dweb:/ipfs/QmZMvPPj5ZPYaRQaSraBkv3PSMeUZ4wN1tQ9EVvwW6SL4r\"]},\"contracts/src/spaces/facets/Permissions.sol\":{\"keccak256\":\"0xaeec9c70d231be9debb15660bf6939746532d0012c80d5518e8207dd33653de2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bab7c5dd8f55f03f48d3908b8d6732b3e2d93f36312a0c3408ff10be258c165a\",\"dweb:/ipfs/QmevmAc6tzP3kFoH84cRtipSq4ryqbrP3H4VB8mRZgnRxn\"]},\"contracts/src/spaces/facets/banning/BanningBase.sol\":{\"keccak256\":\"0x38c44494221f96568f3efb540a8a6c7af141de95f25caf26df6e8a8333f31249\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1f509347cab5090655ff8272443d18f9716fea5ef27cd86269ccbd2570aa7e\",\"dweb:/ipfs/QmbF8StzLRGnVvVXWYBowvdULoPPqQkU5hZR548cnRzuVs\"]},\"contracts/src/spaces/facets/banning/BanningStorage.sol\":{\"keccak256\":\"0xcfbf5c113056e569abf23158853ff4877744b22a4bf2bf49a282d04dab23ab17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f825e97ca65c9cd3bd5885d2fa8b8e5f8f0dcbe227dec064abbbab645685fbe\",\"dweb:/ipfs/QmXAMntxrjzeNUKh9WcyHvzDmnV89vrJ9PkKRceqxJSxZp\"]},\"contracts/src/spaces/facets/banning/IBanning.sol\":{\"keccak256\":\"0x350ec182a95a86a41335979cd7212132858c5cfcd366602b2f6cd0ec0694b63e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb4ad0c5a1086c38448b3e279733f33edc0cc39648368e5cb43dfff139ff7e8\",\"dweb:/ipfs/QmWYfYE8Haqk9kBRxmLijfQSfqbfxf7LB3wQ24d3pG5PE3\"]},\"contracts/src/spaces/facets/channels/ChannelBase.sol\":{\"keccak256\":\"0xcb9670d1b4b843f0c35c4a753593cd06e364d42155db682bd4ac6e49b7f8d782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42d397f5a0de269ac93cf1cb7e4cfdaa62d98c1ed9f3c5087598ffe742239067\",\"dweb:/ipfs/QmWNQzs1Y2sSSbHBpbHgDXsvU5DEDamSYUU7NwRzCyQsFV\"]},\"contracts/src/spaces/facets/channels/ChannelService.sol\":{\"keccak256\":\"0xdac0460cb66d31e57593154fb31ccd112dd1d51c34ea6e5ce316250ac5548abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56c99fa9d482bd02ea96a01e1a960e1678edbbc1a9580511f68543ca194f6fb5\",\"dweb:/ipfs/QmbUjxxkjLCGXVC3bNtWQDas2vJwUmS5NraTGwWiKJAXvH\"]},\"contracts/src/spaces/facets/channels/ChannelStorage.sol\":{\"keccak256\":\"0xeb4174513a652b1571b3a92cbefa80e9d450144e8d07bfb29c863d7d9de9313c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c3b73c84a2b4a56fcc8bd1fbaa0a8896a2dfc62a7fde07b13c6d8b05dcf8fe6\",\"dweb:/ipfs/QmRPukfmps5ESAR5saLNLJp6GEg1nNCTq5qChGeAjgtLV4\"]},\"contracts/src/spaces/facets/channels/Channels.sol\":{\"keccak256\":\"0xc556d10424e70cf85ed25e6d217f991b2a9a278733d9971406e278bf3884c1ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af936eafbb288acfe5e94c6452016b56d170141b2e161fd95af5ee5ee8f3d180\",\"dweb:/ipfs/QmbGXMtErxmEwaAo8GPyT93TQKXy9LebTu8ApVDkdYFi3w\"]},\"contracts/src/spaces/facets/channels/IChannel.sol\":{\"keccak256\":\"0x8f461ec8c49234f27257fc5cf20dd5e9fdb4692d9b17075be63e8ee6db854554\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52673312b7dfe3fa2b0e8b603a368036f3b428b303f9e539b558ccfdf5490b54\",\"dweb:/ipfs/Qme3LoUvB1Axz9ZJZ8Erv6Cw6GLPQB7PNghMQ3FUYfA4VV\"]},\"contracts/src/spaces/facets/delegation/WalletLinkProxyBase.sol\":{\"keccak256\":\"0xffef403556b46744bd1833e5df57b02eb79e010841b16610e1740bc0dac929b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1afa30929e8c6b0c69528d328774c98789825a8de53e5945a1e95092bee2ad08\",\"dweb:/ipfs/QmTbCqLJTBHgcMuFwWSTbrgR7uaASJqwqYuku4YkGzTWW1\"]},\"contracts/src/spaces/facets/delegation/WalletLinkProxyStorage.sol\":{\"keccak256\":\"0x9667e475b9ad9f1130583840c9b0594a7512f7edd33163b926b3db21f70d9909\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6271ce56258b1e9150378872d250cfaeb4501b5d0288e8f19f02096114c687f\",\"dweb:/ipfs/QmXSBA2CpLL9BdvZb994JYStgB9fJfsHwgcke6gsD3zybW\"]},\"contracts/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol\":{\"keccak256\":\"0x688692231af49bcca80f7da97be12d448b0c20a4338d259d5f654b95c5b046ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be9964e110363bf68fb4bbb8ff230fecf8c26e695077910ba07163db57030a8e\",\"dweb:/ipfs/QmNS3eUqCQU7H48LtW6hrB9xPGy9DrKCqh7JKWsAtje5dK\"]},\"contracts/src/spaces/facets/membership/MembershipStorage.sol\":{\"keccak256\":\"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a\",\"dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa\"]},\"contracts/src/utils/Validator.sol\":{\"keccak256\":\"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306\",\"dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt\"]},\"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"lib/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ApprovalCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"ApprovalQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"BalanceQueryForZeroAddress"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__AlreadyBanned"},{"inputs":[],"type":"error","name":"Banning__CannotBanOwner"},{"inputs":[],"type":"error","name":"Banning__CannotBanSelf"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__InvalidTokenId"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__NotBanned"},{"inputs":[],"type":"error","name":"ChannelService__ChannelAlreadyExists"},{"inputs":[],"type":"error","name":"ChannelService__ChannelDisabled"},{"inputs":[],"type":"error","name":"ChannelService__ChannelDoesNotExist"},{"inputs":[],"type":"error","name":"ChannelService__RoleAlreadyExists"},{"inputs":[],"type":"error","name":"ChannelService__RoleDoesNotExist"},{"inputs":[],"type":"error","name":"ERC5643__DurationZero"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC5643__InvalidTokenId"},{"inputs":[],"type":"error","name":"ERC5643__NotApprovedOrOwner"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC5643__SubscriptionNotRenewable"},{"inputs":[],"type":"error","name":"Entitlement__InvalidValue"},{"inputs":[],"type":"error","name":"Entitlement__NotAllowed"},{"inputs":[],"type":"error","name":"Entitlement__NotMember"},{"inputs":[],"type":"error","name":"Entitlement__ValueAlreadyExists"},{"inputs":[],"type":"error","name":"Initializable_InInitializingState"},{"inputs":[],"type":"error","name":"Introspection_AlreadySupported"},{"inputs":[],"type":"error","name":"Introspection_NotSupported"},{"inputs":[],"type":"error","name":"MintERC2309QuantityExceedsLimit"},{"inputs":[],"type":"error","name":"MintToZeroAddress"},{"inputs":[],"type":"error","name":"MintZeroQuantity"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"Ownable__NotOwner"},{"inputs":[],"type":"error","name":"Ownable__ZeroAddress"},{"inputs":[],"type":"error","name":"OwnerQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"OwnershipNotInitializedForExtraData"},{"inputs":[],"type":"error","name":"Pausable__NotPaused"},{"inputs":[],"type":"error","name":"Pausable__Paused"},{"inputs":[],"type":"error","name":"TransferCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"TransferFromIncorrectOwner"},{"inputs":[],"type":"error","name":"TransferToNonERC721ReceiverImplementer"},{"inputs":[],"type":"error","name":"TransferToZeroAddress"},{"inputs":[],"type":"error","name":"URIQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"Validator__InvalidStringLength"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"moderator","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Banned","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bytes32","name":"channelId","type":"bytes32","indexed":false}],"type":"event","name":"ChannelCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bytes32","name":"channelId","type":"bytes32","indexed":false}],"type":"event","name":"ChannelRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bytes32","name":"channelId","type":"bytes32","indexed":false},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":false}],"type":"event","name":"ChannelRoleAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bytes32","name":"channelId","type":"bytes32","indexed":false},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":false}],"type":"event","name":"ChannelRoleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bytes32","name":"channelId","type":"bytes32","indexed":false}],"type":"event","name":"ChannelUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"toTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"ConsecutiveTransfer","anonymous":false},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceAdded","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint64","name":"expiration","type":"uint64","indexed":false}],"type":"event","name":"SubscriptionUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"moderator","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Unbanned","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addRoleToChannel"},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"uint256[]","name":"roleIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"createChannel"},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getChannel","outputs":[{"internalType":"struct IChannelBase.Channel","name":"channel","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"disabled","type":"bool"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"uint256[]","name":"roleIds","type":"uint256[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChannels","outputs":[{"internalType":"struct IChannelBase.Channel[]","name":"channels","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"disabled","type":"bool"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"uint256[]","name":"roleIds","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRolesByChannel","outputs":[{"internalType":"uint256[]","name":"roleIds","type":"uint256[]"}]},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeChannel"},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeRoleFromChannel"},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"bool","name":"disabled","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"updateChannel"}],"devdoc":{"kind":"dev","methods":{"addRoleToChannel(bytes32,uint256)":{"params":{"channelId":"the channelId to add the role to","roleId":"the roleId to add to the channel"}},"createChannel(bytes32,string,uint256[])":{"params":{"channelId":"the channelId of the channel","metadata":"the metadata of the channel","roleIds":"the roleIds to add to the channel"}},"getChannel(bytes32)":{"params":{"channelId":"the channelId to get"},"returns":{"channel":"the channel"}},"getChannels()":{"returns":{"channels":"an array of all channels"}},"getRolesByChannel(bytes32)":{"params":{"channelId":"the channelId to get the roles for"},"returns":{"roleIds":"an array of roleIds for the channel"}},"removeChannel(bytes32)":{"params":{"channelId":"the channelId to remove"}},"removeRoleFromChannel(bytes32,uint256)":{"params":{"channelId":"the channelId to remove the role from","roleId":"the roleId to remove from the channel"}},"updateChannel(bytes32,string,bool)":{"params":{"channelId":"the channelId to update","disabled":"whether or not the channel is disabled","metadata":"the new metadata of the channel"}}},"version":1},"userdoc":{"kind":"user","methods":{"addRoleToChannel(bytes32,uint256)":{"notice":"adds a role to a channel"},"createChannel(bytes32,string,uint256[])":{"notice":"creates a channel"},"getChannel(bytes32)":{"notice":"gets a channel"},"getChannels()":{"notice":"gets all channels"},"getRolesByChannel(bytes32)":{"notice":"gets all roles for a channel"},"removeChannel(bytes32)":{"notice":"removes a channel"},"removeRoleFromChannel(bytes32,uint256)":{"notice":"removes a role from a channel"},"updateChannel(bytes32,string,bool)":{"notice":"updates a channel"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/facets/channels/Channels.sol":"Channels"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/diamond/facets/Facet.sol":{"keccak256":"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57","urls":["bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863","dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"],"license":"MIT"},"contracts/src/diamond/facets/initializable/Initializable.sol":{"keccak256":"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90","urls":["bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552","dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"],"license":"MIT"},"contracts/src/diamond/facets/initializable/InitializableStorage.sol":{"keccak256":"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a","urls":["bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4","dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionBase.sol":{"keccak256":"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f","urls":["bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1","dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol":{"keccak256":"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763","urls":["bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91","dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"],"license":"MIT"},"contracts/src/diamond/facets/ownable/IERC173.sol":{"keccak256":"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303","urls":["bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b","dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol":{"keccak256":"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816","urls":["bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb","dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol":{"keccak256":"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4","urls":["bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb","dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol":{"keccak256":"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479","urls":["bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf","dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F"],"license":"MIT"},"contracts/src/diamond/facets/pausable/IPausable.sol":{"keccak256":"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1","urls":["bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684","dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableBase.sol":{"keccak256":"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0","urls":["bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3","dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableStorage.sol":{"keccak256":"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f","urls":["bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd","dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/ERC5643Base.sol":{"keccak256":"0x21d3c281732e54c93520a4f2cc72cc5af38c517f2a150ee67aa84704a3d78627","urls":["bzz-raw://52ce7c061da0142a4d775bb85896410d363d4a28c0275d3171a70872344fc9a4","dweb:/ipfs/Qmdwgs3TaC4b83JVn6RG5pJJdCrxb74ZMRqZbYSe5DuqZf"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/ERC5643Storage.sol":{"keccak256":"0x68cbff071e6a6a6b91b675af567616799435676fbbbebf4f9226e1226d6128b2","urls":["bzz-raw://2e2c7aee6ef32477733a50ba667cc510c8c165b9a9e146609b1f800acd0e4832","dweb:/ipfs/QmcWAz74x3AR6kpzWdyPWw3iLQ1yHBT3ZVoK6jT7T3LwXq"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol":{"keccak256":"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224","urls":["bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615","dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol":{"keccak256":"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62","urls":["bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba","dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol":{"keccak256":"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4","urls":["bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04","dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol":{"keccak256":"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782","urls":["bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d","dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz"],"license":"MIT"},"contracts/src/factory/facets/wallet-link/IWalletLink.sol":{"keccak256":"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee","urls":["bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0","dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5"],"license":"MIT"},"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/facets/Entitled.sol":{"keccak256":"0x90204085688bf4dd1e1b6ca30684ee37db79210070c405406898c8a77d50bfce","urls":["bzz-raw://b9b194cc9977b03fbccc81529147a0fce7857893c8146927570c1ee5a28aa900","dweb:/ipfs/QmZMvPPj5ZPYaRQaSraBkv3PSMeUZ4wN1tQ9EVvwW6SL4r"],"license":"MIT"},"contracts/src/spaces/facets/Permissions.sol":{"keccak256":"0xaeec9c70d231be9debb15660bf6939746532d0012c80d5518e8207dd33653de2","urls":["bzz-raw://bab7c5dd8f55f03f48d3908b8d6732b3e2d93f36312a0c3408ff10be258c165a","dweb:/ipfs/QmevmAc6tzP3kFoH84cRtipSq4ryqbrP3H4VB8mRZgnRxn"],"license":"MIT"},"contracts/src/spaces/facets/banning/BanningBase.sol":{"keccak256":"0x38c44494221f96568f3efb540a8a6c7af141de95f25caf26df6e8a8333f31249","urls":["bzz-raw://cf1f509347cab5090655ff8272443d18f9716fea5ef27cd86269ccbd2570aa7e","dweb:/ipfs/QmbF8StzLRGnVvVXWYBowvdULoPPqQkU5hZR548cnRzuVs"],"license":"MIT"},"contracts/src/spaces/facets/banning/BanningStorage.sol":{"keccak256":"0xcfbf5c113056e569abf23158853ff4877744b22a4bf2bf49a282d04dab23ab17","urls":["bzz-raw://4f825e97ca65c9cd3bd5885d2fa8b8e5f8f0dcbe227dec064abbbab645685fbe","dweb:/ipfs/QmXAMntxrjzeNUKh9WcyHvzDmnV89vrJ9PkKRceqxJSxZp"],"license":"MIT"},"contracts/src/spaces/facets/banning/IBanning.sol":{"keccak256":"0x350ec182a95a86a41335979cd7212132858c5cfcd366602b2f6cd0ec0694b63e","urls":["bzz-raw://ecb4ad0c5a1086c38448b3e279733f33edc0cc39648368e5cb43dfff139ff7e8","dweb:/ipfs/QmWYfYE8Haqk9kBRxmLijfQSfqbfxf7LB3wQ24d3pG5PE3"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelBase.sol":{"keccak256":"0xcb9670d1b4b843f0c35c4a753593cd06e364d42155db682bd4ac6e49b7f8d782","urls":["bzz-raw://42d397f5a0de269ac93cf1cb7e4cfdaa62d98c1ed9f3c5087598ffe742239067","dweb:/ipfs/QmWNQzs1Y2sSSbHBpbHgDXsvU5DEDamSYUU7NwRzCyQsFV"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelService.sol":{"keccak256":"0xdac0460cb66d31e57593154fb31ccd112dd1d51c34ea6e5ce316250ac5548abb","urls":["bzz-raw://56c99fa9d482bd02ea96a01e1a960e1678edbbc1a9580511f68543ca194f6fb5","dweb:/ipfs/QmbUjxxkjLCGXVC3bNtWQDas2vJwUmS5NraTGwWiKJAXvH"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelStorage.sol":{"keccak256":"0xeb4174513a652b1571b3a92cbefa80e9d450144e8d07bfb29c863d7d9de9313c","urls":["bzz-raw://6c3b73c84a2b4a56fcc8bd1fbaa0a8896a2dfc62a7fde07b13c6d8b05dcf8fe6","dweb:/ipfs/QmRPukfmps5ESAR5saLNLJp6GEg1nNCTq5qChGeAjgtLV4"],"license":"MIT"},"contracts/src/spaces/facets/channels/Channels.sol":{"keccak256":"0xc556d10424e70cf85ed25e6d217f991b2a9a278733d9971406e278bf3884c1ec","urls":["bzz-raw://af936eafbb288acfe5e94c6452016b56d170141b2e161fd95af5ee5ee8f3d180","dweb:/ipfs/QmbGXMtErxmEwaAo8GPyT93TQKXy9LebTu8ApVDkdYFi3w"],"license":"MIT"},"contracts/src/spaces/facets/channels/IChannel.sol":{"keccak256":"0x8f461ec8c49234f27257fc5cf20dd5e9fdb4692d9b17075be63e8ee6db854554","urls":["bzz-raw://52673312b7dfe3fa2b0e8b603a368036f3b428b303f9e539b558ccfdf5490b54","dweb:/ipfs/Qme3LoUvB1Axz9ZJZ8Erv6Cw6GLPQB7PNghMQ3FUYfA4VV"],"license":"MIT"},"contracts/src/spaces/facets/delegation/WalletLinkProxyBase.sol":{"keccak256":"0xffef403556b46744bd1833e5df57b02eb79e010841b16610e1740bc0dac929b2","urls":["bzz-raw://1afa30929e8c6b0c69528d328774c98789825a8de53e5945a1e95092bee2ad08","dweb:/ipfs/QmTbCqLJTBHgcMuFwWSTbrgR7uaASJqwqYuku4YkGzTWW1"],"license":"MIT"},"contracts/src/spaces/facets/delegation/WalletLinkProxyStorage.sol":{"keccak256":"0x9667e475b9ad9f1130583840c9b0594a7512f7edd33163b926b3db21f70d9909","urls":["bzz-raw://d6271ce56258b1e9150378872d250cfaeb4501b5d0288e8f19f02096114c687f","dweb:/ipfs/QmXSBA2CpLL9BdvZb994JYStgB9fJfsHwgcke6gsD3zybW"],"license":"MIT"},"contracts/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol":{"keccak256":"0x688692231af49bcca80f7da97be12d448b0c20a4338d259d5f654b95c5b046ca","urls":["bzz-raw://be9964e110363bf68fb4bbb8ff230fecf8c26e695077910ba07163db57030a8e","dweb:/ipfs/QmNS3eUqCQU7H48LtW6hrB9xPGy9DrKCqh7JKWsAtje5dK"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipStorage.sol":{"keccak256":"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0","urls":["bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a","dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa"],"license":"MIT"},"contracts/src/utils/Validator.sol":{"keccak256":"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f","urls":["bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306","dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":198} \ No newline at end of file +{"abi":[{"type":"function","name":"addRoleToChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"metadata","type":"string","internalType":"string"},{"name":"roleIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"channel","type":"tuple","internalType":"struct IChannelBase.Channel","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"disabled","type":"bool","internalType":"bool"},{"name":"metadata","type":"string","internalType":"string"},{"name":"roleIds","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"getChannels","inputs":[],"outputs":[{"name":"channels","type":"tuple[]","internalType":"struct IChannelBase.Channel[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"disabled","type":"bool","internalType":"bool"},{"name":"metadata","type":"string","internalType":"string"},{"name":"roleIds","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"getRolesByChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"roleIds","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"removeChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeRoleFromChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateChannel","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"metadata","type":"string","internalType":"string"},{"name":"disabled","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Banned","inputs":[{"name":"moderator","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ChannelCreated","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"channelId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ChannelRemoved","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"channelId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ChannelRoleAdded","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"channelId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"roleId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ChannelRoleRemoved","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"channelId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"roleId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ChannelUpdated","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"channelId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ConsecutiveTransfer","inputs":[{"name":"fromTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"InterfaceAdded","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"InterfaceRemoved","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubscriptionUpdate","inputs":[{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"expiration","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unbanned","inputs":[{"name":"moderator","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ApprovalCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"ApprovalQueryForNonexistentToken","inputs":[]},{"type":"error","name":"BalanceQueryForZeroAddress","inputs":[]},{"type":"error","name":"Banning__AlreadyBanned","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Banning__CannotBanOwner","inputs":[]},{"type":"error","name":"Banning__CannotBanSelf","inputs":[]},{"type":"error","name":"Banning__InvalidTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Banning__NotBanned","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ChannelService__ChannelAlreadyExists","inputs":[]},{"type":"error","name":"ChannelService__ChannelDisabled","inputs":[]},{"type":"error","name":"ChannelService__ChannelDoesNotExist","inputs":[]},{"type":"error","name":"ChannelService__RoleAlreadyExists","inputs":[]},{"type":"error","name":"ChannelService__RoleDoesNotExist","inputs":[]},{"type":"error","name":"ERC5643__DurationZero","inputs":[]},{"type":"error","name":"ERC5643__InvalidTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC5643__NotApprovedOrOwner","inputs":[]},{"type":"error","name":"ERC5643__SubscriptionNotRenewable","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Entitlement__InvalidValue","inputs":[]},{"type":"error","name":"Entitlement__NotAllowed","inputs":[]},{"type":"error","name":"Entitlement__NotMember","inputs":[]},{"type":"error","name":"Entitlement__ValueAlreadyExists","inputs":[]},{"type":"error","name":"Initializable_InInitializingState","inputs":[]},{"type":"error","name":"Introspection_AlreadySupported","inputs":[]},{"type":"error","name":"Introspection_NotSupported","inputs":[]},{"type":"error","name":"MintERC2309QuantityExceedsLimit","inputs":[]},{"type":"error","name":"MintToZeroAddress","inputs":[]},{"type":"error","name":"MintZeroQuantity","inputs":[]},{"type":"error","name":"Ownable__NotOwner","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Ownable__ZeroAddress","inputs":[]},{"type":"error","name":"OwnerQueryForNonexistentToken","inputs":[]},{"type":"error","name":"OwnershipNotInitializedForExtraData","inputs":[]},{"type":"error","name":"Pausable__NotPaused","inputs":[]},{"type":"error","name":"Pausable__Paused","inputs":[]},{"type":"error","name":"TransferCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"TransferFromIncorrectOwner","inputs":[]},{"type":"error","name":"TransferToNonERC721ReceiverImplementer","inputs":[]},{"type":"error","name":"TransferToZeroAddress","inputs":[]},{"type":"error","name":"URIQueryForNonexistentToken","inputs":[]},{"type":"error","name":"Validator__InvalidStringLength","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061001961001e565b6100c4565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff161561006a576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156100c157805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b611e2a806100d36000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80639575f6ac1161005b5780639575f6ac146100f15780639935218314610106578063b9de615914610126578063ef86d6961461013957600080fd5b806302da0e511461008d57806337644cf7146100a2578063831c2b82146100b5578063921f7175146100de575b600080fd5b6100a061009b36600461169a565b61014c565b005b6100a06100b03660046116b3565b61018a565b6100c86100c336600461169a565b6101cb565b6040516100d59190611792565b60405180910390f35b6100a06100ec366004611880565b6101fd565b6100f961023f565b6040516100d59190611948565b61011961011436600461169a565b61024e565b6040516100d591906119ac565b6100a06101343660046116b3565b610259565b6100a06101473660046119fe565b610296565b61017e6040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b8152506102d3565b610187816102fb565b50565b6101bd826040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b81525061033c565b6101c78282610363565b5050565b60408051608081018252600080825260208201526060918101829052818101919091526101f7826103ad565b92915050565b61022f6040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b8152506102d3565b61023a838383610414565b505050565b6060610249610465565b905090565b60606101f78261059d565b61028c826040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b81525061033c565b6101c782826105a8565b6102c86040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b8152506102d3565b61023a8383836105ea565b6102de600082610627565b61018757604051630ce39a4b60e21b815260040160405180910390fd5b610304816106ab565b60405181815233907f3a3f387aa42656bc1732adfc7aea5cde9ccc05a59f9af9c29ebfa68e66383e939060200160405180910390a250565b6103468282610627565b6101c757604051630ce39a4b60e21b815260040160405180910390fd5b61036d82826107a2565b604080518381526020810183905233917f2b10481523b59a7978f8ab73b237349b0f38c801f6094bdc8994d379c067d71391015b60405180910390a25050565b60408051608081018252600080825260208201526060918101829052818101919091526000806103dc84610833565b925092505060006103ec85610953565b6040805160808101825296875292151560208701529185019290925260608401525090919050565b61041f8260006109ab565b61042a8383836109cf565b60405183815233907fdd6c5b83be3557f8b2674712946f9f05dcd882b82bfd58b9539b9706efd35d8c906020015b60405180910390a2505050565b60606000610471610b09565b90506000815167ffffffffffffffff81111561048f5761048f6117a5565b6040519080825280602002602001820160405280156104e357816020015b60408051608081018252600080825260208201526060918101829052818101919091528152602001906001900390816104ad5790505b50905060005b825181101561059657600080600061051986858151811061050c5761050c611a59565b6020026020010151610833565b925092509250600061054387868151811061053657610536611a59565b6020026020010151610953565b9050604051806080016040528085815260200183151581526020018481526020018281525086868151811061057a5761057a611a59565b60200260200101819052505050505080806001019150506104e9565b5092915050565b60606101f782610953565b6105b28282610b29565b604080518381526020810183905233917faee688d80dbf97230e5d2b4b06aa7074bfe38ddd8abf856551177db30395612991016103a1565b6105f5838383610bb9565b60405183815233907f94af4a611b3fb1eaa653a6b29f82b71bcea25ca378171c5f059010fa18e0716e90602001610458565b60003380610633610c6e565b6001600160a01b031614806106a357507fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff161580156106a357506106a38482856040516020016106869190611a6f565b60405160208183030381529060405261069e90611a8b565b610d32565b949350505050565b6106b481610fdf565b600080516020611e0a8339815191526106cd8183611016565b5060408051602080820183526000808352858152600280860190925292909220909101906106fb9082611b33565b50600082815260028083016020526040822060018101805460ff19169055828155919061072a9083018261164c565b50506000828152600382016020526040812061074590611022565b905060005b815181101561079c5761079382828151811061076857610768611a59565b602002602001015184600301600087815260200190815260200160002061101690919063ffffffff16565b5060010161074a565b50505050565b6107ab82610fdf565b6107b48261102f565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020611e0a833981519152906107fb9083611091565b15610819576040516302369ff360e41b815260040160405180910390fd5b6000838152600382016020526040902061079c90836110a9565b60006060600061084284610fdf565b60008481527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430260209081526040808320815160608101835281548152600182015460ff16151593810193909352600281018054600080516020611e0a833981519152959493840191906108b490611aaf565b80601f01602080910402602001604051908101604052809291908181526020018280546108e090611aaf565b801561092d5780601f106109025761010080835404028352916020019161092d565b820191906000526020600020905b81548152906001019060200180831161091057829003601f168201915b505050919092525050815160408301516020909301519099929850965090945050505050565b606061095e82610fdf565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020611e0a833981519152906109a490611022565b9392505050565b8151829082111561023a576040516374eb20a760e01b815260040160405180910390fd5b6109d8836110b5565b600080516020611e0a8339815191526109f181856110a9565b50604080516060810182528581526000602080830182815283850188815289845260028781019093529490922083518155915160018301805460ff191691151591909117905592519192909190820190610a4b9082611b33565b5090505060005b8251811015610b0257610a9b838281518110610a7057610a70611a59565b602002602001015183600301600088815260200190815260200160002061109190919063ffffffff16565b15610ab9576040516302369ff360e41b815260040160405180910390fd5b610af9838281518110610ace57610ace611a59565b60200260200101518360030160008881526020019081526020016000206110a990919063ffffffff16565b50600101610a52565b5050505050565b6060600080516020611e0a833981519152610b2381611022565b91505090565b610b3282610fdf565b610b3b8261102f565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020611e0a83398151915290610b829083611091565b610b9f576040516333cb039f60e11b815260040160405180910390fd5b6000838152600382016020526040902061079c9083611016565b610bc283610fdf565b60008381527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090208251600080516020611e0a833981519152919015801590610c2f575080600201604051610c1c9190611bf3565b6040518091039020848051906020012014155b15610c445760028101610c428582611b33565b505b600181015460ff16151583151514610b0257600101805460ff191692151592909217909155505050565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015610d0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b239190611c85565b600080610d3d610c6e565b90506000610d4a856110eb565b80519091506000610d5961136d565b805190915060005b83811015610e18576000858281518110610d7d57610d7d611a59565b60200260200101519050866001600160a01b0316816001600160a01b031603610db05760019750505050505050506109a4565b60005b83811015610e0e57816001600160a01b0316610de7868381518110610dda57610dda611a59565b6020026020010151611398565b6001600160a01b031603610e06576000985050505050505050506109a4565b600101610db3565b5050600101610d61565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006000610e657fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931016113a3565b905060005b81811015610fcd5760008381610e8360018301856113ad565b6001600160a01b03908116825260208083019390935260409182016000208251606081018452905491821680825260ff600160a01b84048116151583870152600160a81b9093049092161515818401528251630b86d87960e21b815292519094509092632e1b61e492600480820193918290030181865afa158015610f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f309190611ca0565b158015610fad575080600001516001600160a01b0316630cf0b5338e8a8e6040518463ffffffff1660e01b8152600401610f6c93929190611cbd565b602060405180830381865afa158015610f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fad9190611ca0565b15610fc457600199505050505050505050506109a4565b50600101610e6a565b5060009b9a5050505050505050505050565b610ff981600080516020611e0a8339815191525b90611091565b6101875760405163560b4b4160e11b815260040160405180910390fd5b60006109a483836113b9565b606060006109a4836114ac565b60008181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043026020526040902060010154600080516020611e0a8339815191529060ff16156101c757604051636ce0028960e11b815260040160405180910390fd5b600081815260018301602052604081205415156109a4565b60006109a48383611508565b6110cd81600080516020611e0a833981519152610ff3565b1561018757604051632324f7d960e21b815260040160405180910390fd5b606060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6006006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa158015611160573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111889190810190611d1f565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa1580156111d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f89190611c85565b90508151600014801561121357506001600160a01b03811615155b1561128d5760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015611262573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261128a9190810190611d1f565b91505b8151600061129c826001611dcd565b67ffffffffffffffff8111156112b4576112b46117a5565b6040519080825280602002602001820160405280156112dd578160200160208202803683370190505b50905060005b82811015611337578481815181106112fd576112fd611a59565b602002602001015182828151811061131757611317611a59565b6001600160a01b03909216602092830291909101909101526001016112e3565b508681838151811061134b5761134b611a59565b6001600160a01b03909216602092830291909101909101529695505050505050565b60606102497f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf00611022565b60006101f782611557565b60006101f7825490565b60006109a48383611622565b600081815260018301602052604081205480156114a25760006113dd600183611de0565b85549091506000906113f190600190611de0565b905080821461145657600086600001828154811061141157611411611a59565b906000526020600020015490508087600001848154811061143457611434611a59565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061146757611467611df3565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506101f7565b60009150506101f7565b6060816000018054806020026020016040519081016040528092919081815260200182805480156114fc57602002820191906000526020600020905b8154815260200190600101908083116114e8575b50505050509050919050565b600081815260018301602052604081205461154f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556101f7565b5060006101f7565b60008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090600160e01b83169003611608578160000361160257805483106115de57604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156115df575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b600082600001828154811061163957611639611a59565b9060005260206000200154905092915050565b50805461165890611aaf565b6000825580601f10611668575050565b601f01602090049060005260206000209081019061018791905b808211156116965760008155600101611682565b5090565b6000602082840312156116ac57600080fd5b5035919050565b600080604083850312156116c657600080fd5b50508035926020909101359150565b60005b838110156116f05781810151838201526020016116d8565b50506000910152565b805182526000602080830151151581850152604083015160806040860152805180608087015261172f8160a088018585016116d5565b601f19601f820116860191505060a08101606085015160a087840301606088015281815180845260c0850191508583019450600093505b808410156117865784518252938501936001939093019290850190611766565b50979650505050505050565b6020815260006109a460208301846116f9565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156117e4576117e46117a5565b604052919050565b600082601f8301126117fd57600080fd5b813567ffffffffffffffff811115611817576118176117a5565b61182a601f8201601f19166020016117bb565b81815284602083860101111561183f57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff821115611876576118766117a5565b5060051b60200190565b60008060006060848603121561189557600080fd5b8335925060208085013567ffffffffffffffff808211156118b557600080fd5b6118c1888389016117ec565b945060408701359150808211156118d757600080fd5b508501601f810187136118e957600080fd5b80356118fc6118f78261185c565b6117bb565b81815260059190911b8201830190838101908983111561191b57600080fd5b928401925b8284101561193957833582529284019290840190611920565b80955050505050509250925092565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561199f57603f1988860301845261198d8583516116f9565b94509285019290850190600101611971565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156119e4578351835292840192918401916001016119c8565b50909695505050505050565b801515811461018757600080fd5b600080600060608486031215611a1357600080fd5b83359250602084013567ffffffffffffffff811115611a3157600080fd5b611a3d868287016117ec565b9250506040840135611a4e816119f0565b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b60008251611a818184602087016116d5565b9190910192915050565b805160208083015191908110156116025760001960209190910360031b1b16919050565b600181811c90821680611ac357607f821691505b60208210810361160257634e487b7160e01b600052602260045260246000fd5b601f82111561023a576000816000526020600020601f850160051c81016020861015611b0c5750805b601f850160051c820191505b81811015611b2b57828155600101611b18565b505050505050565b815167ffffffffffffffff811115611b4d57611b4d6117a5565b611b6181611b5b8454611aaf565b84611ae3565b602080601f831160018114611b965760008415611b7e5750858301515b600019600386901b1c1916600185901b178555611b2b565b600085815260208120601f198616915b82811015611bc557888601518255948401946001909101908401611ba6565b5085821015611be35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808354611c0181611aaf565b60018281168015611c195760018114611c2e57611c5d565b60ff1984168752821515830287019450611c5d565b8760005260208060002060005b85811015611c545781548a820152908401908201611c3b565b50505082870194505b50929695505050505050565b80516001600160a01b0381168114611c8057600080fd5b919050565b600060208284031215611c9757600080fd5b6109a482611c69565b600060208284031215611cb257600080fd5b81516109a4816119f0565b60006060820185835260206060602085015281865180845260808601915060208801935060005b81811015611d095784516001600160a01b031683529383019391830191600101611ce4565b5050809350505050826040830152949350505050565b60006020808385031215611d3257600080fd5b825167ffffffffffffffff811115611d4957600080fd5b8301601f81018513611d5a57600080fd5b8051611d686118f78261185c565b81815260059190911b82018301908381019087831115611d8757600080fd5b928401925b82841015611dac57611d9d84611c69565b82529284019290840190611d8c565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101f7576101f7611db7565b818103818111156101f7576101f7611db7565b634e487b7160e01b600052603160045260246000fdfe804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300","sourceMap":"391:1449:184:-:0;;;;;;;;;;;;-1:-1:-1;378:22:68;:20;:22::i;:::-;391:1449:184;;1653:314:83;296:66:84;1779:14:83;;;;;;;1775:62;;;1802:35;;-1:-1:-1;;;1802:35:83;;;;;;;;;;;1775:62;1848:9;;1860:16;1848:9;;;:28;1844:119;;;1886:28;;-1:-1:-1;;1886:28:83;1898:16;1886:28;;;;;1927:29;;158:42:404;;;1927:29:83;;146:2:404;131:18;1927:29:83;;;;;;;1844:119;1694:273;1653:314::o;14:192:404:-;391:1449:184;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100885760003560e01c80639575f6ac1161005b5780639575f6ac146100f15780639935218314610106578063b9de615914610126578063ef86d6961461013957600080fd5b806302da0e511461008d57806337644cf7146100a2578063831c2b82146100b5578063921f7175146100de575b600080fd5b6100a061009b36600461169a565b61014c565b005b6100a06100b03660046116b3565b61018a565b6100c86100c336600461169a565b6101cb565b6040516100d59190611792565b60405180910390f35b6100a06100ec366004611880565b6101fd565b6100f961023f565b6040516100d59190611948565b61011961011436600461169a565b61024e565b6040516100d591906119ac565b6100a06101343660046116b3565b610259565b6100a06101473660046119fe565b610296565b61017e6040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b8152506102d3565b610187816102fb565b50565b6101bd826040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b81525061033c565b6101c78282610363565b5050565b60408051608081018252600080825260208201526060918101829052818101919091526101f7826103ad565b92915050565b61022f6040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b8152506102d3565b61023a838383610414565b505050565b6060610249610465565b905090565b60606101f78261059d565b61028c826040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b81525061033c565b6101c782826105a8565b6102c86040518060400160405280601181526020017041646452656d6f76654368616e6e656c7360781b8152506102d3565b61023a8383836105ea565b6102de600082610627565b61018757604051630ce39a4b60e21b815260040160405180910390fd5b610304816106ab565b60405181815233907f3a3f387aa42656bc1732adfc7aea5cde9ccc05a59f9af9c29ebfa68e66383e939060200160405180910390a250565b6103468282610627565b6101c757604051630ce39a4b60e21b815260040160405180910390fd5b61036d82826107a2565b604080518381526020810183905233917f2b10481523b59a7978f8ab73b237349b0f38c801f6094bdc8994d379c067d71391015b60405180910390a25050565b60408051608081018252600080825260208201526060918101829052818101919091526000806103dc84610833565b925092505060006103ec85610953565b6040805160808101825296875292151560208701529185019290925260608401525090919050565b61041f8260006109ab565b61042a8383836109cf565b60405183815233907fdd6c5b83be3557f8b2674712946f9f05dcd882b82bfd58b9539b9706efd35d8c906020015b60405180910390a2505050565b60606000610471610b09565b90506000815167ffffffffffffffff81111561048f5761048f6117a5565b6040519080825280602002602001820160405280156104e357816020015b60408051608081018252600080825260208201526060918101829052818101919091528152602001906001900390816104ad5790505b50905060005b825181101561059657600080600061051986858151811061050c5761050c611a59565b6020026020010151610833565b925092509250600061054387868151811061053657610536611a59565b6020026020010151610953565b9050604051806080016040528085815260200183151581526020018481526020018281525086868151811061057a5761057a611a59565b60200260200101819052505050505080806001019150506104e9565b5092915050565b60606101f782610953565b6105b28282610b29565b604080518381526020810183905233917faee688d80dbf97230e5d2b4b06aa7074bfe38ddd8abf856551177db30395612991016103a1565b6105f5838383610bb9565b60405183815233907f94af4a611b3fb1eaa653a6b29f82b71bcea25ca378171c5f059010fa18e0716e90602001610458565b60003380610633610c6e565b6001600160a01b031614806106a357507fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff161580156106a357506106a38482856040516020016106869190611a6f565b60405160208183030381529060405261069e90611a8b565b610d32565b949350505050565b6106b481610fdf565b600080516020611e0a8339815191526106cd8183611016565b5060408051602080820183526000808352858152600280860190925292909220909101906106fb9082611b33565b50600082815260028083016020526040822060018101805460ff19169055828155919061072a9083018261164c565b50506000828152600382016020526040812061074590611022565b905060005b815181101561079c5761079382828151811061076857610768611a59565b602002602001015184600301600087815260200190815260200160002061101690919063ffffffff16565b5060010161074a565b50505050565b6107ab82610fdf565b6107b48261102f565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020611e0a833981519152906107fb9083611091565b15610819576040516302369ff360e41b815260040160405180910390fd5b6000838152600382016020526040902061079c90836110a9565b60006060600061084284610fdf565b60008481527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430260209081526040808320815160608101835281548152600182015460ff16151593810193909352600281018054600080516020611e0a833981519152959493840191906108b490611aaf565b80601f01602080910402602001604051908101604052809291908181526020018280546108e090611aaf565b801561092d5780601f106109025761010080835404028352916020019161092d565b820191906000526020600020905b81548152906001019060200180831161091057829003601f168201915b505050919092525050815160408301516020909301519099929850965090945050505050565b606061095e82610fdf565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020611e0a833981519152906109a490611022565b9392505050565b8151829082111561023a576040516374eb20a760e01b815260040160405180910390fd5b6109d8836110b5565b600080516020611e0a8339815191526109f181856110a9565b50604080516060810182528581526000602080830182815283850188815289845260028781019093529490922083518155915160018301805460ff191691151591909117905592519192909190820190610a4b9082611b33565b5090505060005b8251811015610b0257610a9b838281518110610a7057610a70611a59565b602002602001015183600301600088815260200190815260200160002061109190919063ffffffff16565b15610ab9576040516302369ff360e41b815260040160405180910390fd5b610af9838281518110610ace57610ace611a59565b60200260200101518360030160008881526020019081526020016000206110a990919063ffffffff16565b50600101610a52565b5050505050565b6060600080516020611e0a833981519152610b2381611022565b91505090565b610b3282610fdf565b610b3b8261102f565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020611e0a83398151915290610b829083611091565b610b9f576040516333cb039f60e11b815260040160405180910390fd5b6000838152600382016020526040902061079c9083611016565b610bc283610fdf565b60008381527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090208251600080516020611e0a833981519152919015801590610c2f575080600201604051610c1c9190611bf3565b6040518091039020848051906020012014155b15610c445760028101610c428582611b33565b505b600181015460ff16151583151514610b0257600101805460ff191692151592909217909155505050565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015610d0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b239190611c85565b600080610d3d610c6e565b90506000610d4a856110eb565b80519091506000610d5961136d565b805190915060005b83811015610e18576000858281518110610d7d57610d7d611a59565b60200260200101519050866001600160a01b0316816001600160a01b031603610db05760019750505050505050506109a4565b60005b83811015610e0e57816001600160a01b0316610de7868381518110610dda57610dda611a59565b6020026020010151611398565b6001600160a01b031603610e06576000985050505050505050506109a4565b600101610db3565b5050600101610d61565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006000610e657fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931016113a3565b905060005b81811015610fcd5760008381610e8360018301856113ad565b6001600160a01b03908116825260208083019390935260409182016000208251606081018452905491821680825260ff600160a01b84048116151583870152600160a81b9093049092161515818401528251630b86d87960e21b815292519094509092632e1b61e492600480820193918290030181865afa158015610f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f309190611ca0565b158015610fad575080600001516001600160a01b0316630cf0b5338e8a8e6040518463ffffffff1660e01b8152600401610f6c93929190611cbd565b602060405180830381865afa158015610f89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fad9190611ca0565b15610fc457600199505050505050505050506109a4565b50600101610e6a565b5060009b9a5050505050505050505050565b610ff981600080516020611e0a8339815191525b90611091565b6101875760405163560b4b4160e11b815260040160405180910390fd5b60006109a483836113b9565b606060006109a4836114ac565b60008181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043026020526040902060010154600080516020611e0a8339815191529060ff16156101c757604051636ce0028960e11b815260040160405180910390fd5b600081815260018301602052604081205415156109a4565b60006109a48383611508565b6110cd81600080516020611e0a833981519152610ff3565b1561018757604051632324f7d960e21b815260040160405180910390fd5b606060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6006006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa158015611160573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111889190810190611d1f565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa1580156111d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f89190611c85565b90508151600014801561121357506001600160a01b03811615155b1561128d5760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015611262573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261128a9190810190611d1f565b91505b8151600061129c826001611dcd565b67ffffffffffffffff8111156112b4576112b46117a5565b6040519080825280602002602001820160405280156112dd578160200160208202803683370190505b50905060005b82811015611337578481815181106112fd576112fd611a59565b602002602001015182828151811061131757611317611a59565b6001600160a01b03909216602092830291909101909101526001016112e3565b508681838151811061134b5761134b611a59565b6001600160a01b03909216602092830291909101909101529695505050505050565b60606102497f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf00611022565b60006101f782611557565b60006101f7825490565b60006109a48383611622565b600081815260018301602052604081205480156114a25760006113dd600183611de0565b85549091506000906113f190600190611de0565b905080821461145657600086600001828154811061141157611411611a59565b906000526020600020015490508087600001848154811061143457611434611a59565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061146757611467611df3565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506101f7565b60009150506101f7565b6060816000018054806020026020016040519081016040528092919081815260200182805480156114fc57602002820191906000526020600020905b8154815260200190600101908083116114e8575b50505050509050919050565b600081815260018301602052604081205461154f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556101f7565b5060006101f7565b60008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090600160e01b83169003611608578160000361160257805483106115de57604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156115df575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b600082600001828154811061163957611639611a59565b9060005260206000200154905092915050565b50805461165890611aaf565b6000825580601f10611668575050565b601f01602090049060005260206000209081019061018791905b808211156116965760008155600101611682565b5090565b6000602082840312156116ac57600080fd5b5035919050565b600080604083850312156116c657600080fd5b50508035926020909101359150565b60005b838110156116f05781810151838201526020016116d8565b50506000910152565b805182526000602080830151151581850152604083015160806040860152805180608087015261172f8160a088018585016116d5565b601f19601f820116860191505060a08101606085015160a087840301606088015281815180845260c0850191508583019450600093505b808410156117865784518252938501936001939093019290850190611766565b50979650505050505050565b6020815260006109a460208301846116f9565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156117e4576117e46117a5565b604052919050565b600082601f8301126117fd57600080fd5b813567ffffffffffffffff811115611817576118176117a5565b61182a601f8201601f19166020016117bb565b81815284602083860101111561183f57600080fd5b816020850160208301376000918101602001919091529392505050565b600067ffffffffffffffff821115611876576118766117a5565b5060051b60200190565b60008060006060848603121561189557600080fd5b8335925060208085013567ffffffffffffffff808211156118b557600080fd5b6118c1888389016117ec565b945060408701359150808211156118d757600080fd5b508501601f810187136118e957600080fd5b80356118fc6118f78261185c565b6117bb565b81815260059190911b8201830190838101908983111561191b57600080fd5b928401925b8284101561193957833582529284019290840190611920565b80955050505050509250925092565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561199f57603f1988860301845261198d8583516116f9565b94509285019290850190600101611971565b5092979650505050505050565b6020808252825182820181905260009190848201906040850190845b818110156119e4578351835292840192918401916001016119c8565b50909695505050505050565b801515811461018757600080fd5b600080600060608486031215611a1357600080fd5b83359250602084013567ffffffffffffffff811115611a3157600080fd5b611a3d868287016117ec565b9250506040840135611a4e816119f0565b809150509250925092565b634e487b7160e01b600052603260045260246000fd5b60008251611a818184602087016116d5565b9190910192915050565b805160208083015191908110156116025760001960209190910360031b1b16919050565b600181811c90821680611ac357607f821691505b60208210810361160257634e487b7160e01b600052602260045260246000fd5b601f82111561023a576000816000526020600020601f850160051c81016020861015611b0c5750805b601f850160051c820191505b81811015611b2b57828155600101611b18565b505050505050565b815167ffffffffffffffff811115611b4d57611b4d6117a5565b611b6181611b5b8454611aaf565b84611ae3565b602080601f831160018114611b965760008415611b7e5750858301515b600019600386901b1c1916600185901b178555611b2b565b600085815260208120601f198616915b82811015611bc557888601518255948401946001909101908401611ba6565b5085821015611be35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808354611c0181611aaf565b60018281168015611c195760018114611c2e57611c5d565b60ff1984168752821515830287019450611c5d565b8760005260208060002060005b85811015611c545781548a820152908401908201611c3b565b50505082870194505b50929695505050505050565b80516001600160a01b0381168114611c8057600080fd5b919050565b600060208284031215611c9757600080fd5b6109a482611c69565b600060208284031215611cb257600080fd5b81516109a4816119f0565b60006060820185835260206060602085015281865180845260808601915060208801935060005b81811015611d095784516001600160a01b031683529383019391830191600101611ce4565b5050809350505050826040830152949350505050565b60006020808385031215611d3257600080fd5b825167ffffffffffffffff811115611d4957600080fd5b8301601f81018513611d5a57600080fd5b8051611d686118f78261185c565b81815260059190911b82018301908381019087831115611d8757600080fd5b928401925b82841015611dac57611d9d84611c69565b82529284019290840190611d8c565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101f7576101f7611db7565b818103818111156101f7576101f7611db7565b634e487b7160e01b600052603160045260246000fdfe804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300","sourceMap":"391:1449:184:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1150:140;;;;;;:::i;:::-;;:::i;:::-;;1294:188;;;;;;:::i;:::-;;:::i;684:134::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;455:225;;;;;;:::i;:::-;;:::i;822:105::-;;;:::i;:::-;;;;;;;:::i;1486:150::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1640:198::-;;;;;;:::i;:::-;;:::i;931:215::-;;;;;;:::i;:::-;;:::i;1150:140::-;1207:47;1227:26;;;;;;;;;;;;;-1:-1:-1;;;1227:26:184;;;1207:19;:47::i;:::-;1260:25;1275:9;1260:14;:25::i;:::-;1150:140;:::o;1294:188::-;1370:65;1397:9;1408:26;;;;;;;;;;;;;-1:-1:-1;;;1408:26:184;;;1370;:65::i;:::-;1441:36;1459:9;1470:6;1441:17;:36::i;:::-;1294:188;;:::o;684:134::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:22:184;803:9;791:11;:22::i;:::-;784:29;684:134;-1:-1:-1;;684:134:184:o;455:225::-;578:47;598:26;;;;;;;;;;;;;-1:-1:-1;;;598:26:184;;;578:19;:47::i;:::-;631:44;646:9;657:8;667:7;631:14;:44::i;:::-;455:225;;;:::o;822:105::-;868:25;908:14;:12;:14::i;:::-;901:21;;822:105;:::o;1486:150::-;1563:24;1602:29;1621:9;1602:18;:29::i;1640:198::-;1721:65;1748:9;1759:26;;;;;;;;;;;;;-1:-1:-1;;;1759:26:184;;;1721;:65::i;:::-;1792:41;1815:9;1826:6;1792:22;:41::i;931:215::-;1043:47;1063:26;;;;;;;;;;;;;-1:-1:-1;;;1063:26:184;;;1043:19;:47::i;:::-;1096:45;1111:9;1122:8;1132;1096:14;:45::i;3802:164:175:-;3882:31;1438:3;3902:10;3882;:31::i;:::-;3877:85;;3930:25;;-1:-1:-1;;;3930:25:175;;;;;;;;;;;1876:150:181;1934:39;1963:9;1934:28;:39::i;:::-;1984:37;;6633:25:404;;;1999:10:181;;1984:37;;6621:2:404;6606:18;1984:37:181;;;;;;;1876:150;:::o;4333:204:175:-;4451:33;4462:9;4473:10;4451;:33::i;:::-;4446:87;;4501:25;;-1:-1:-1;;;4501:25:175;;;;;;;;;;;2191:190:181;2268:50;2300:9;2311:6;2268:31;:50::i;:::-;2329:47;;;6843:25:404;;;6899:2;6884:18;;6877:34;;;2346:10:181;;2329:47;;6816:18:404;2329:47:181;;;;;;;;2191:190;;:::o;588:417::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;692:22:181;716:13;733:48;766:9;733:25;:48::i;:::-;689:92;;;;;788:24;815:43;848:9;815:32;:43::i;:::-;878:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;878:122:181;;588:417;-1:-1:-1;588:417:181:o;309:275::-;433:34;455:8;465:1;433:21;:34::i;:::-;473:58;502:9;513:8;523:7;473:28;:58::i;:::-;542:37;;6633:25:404;;;557:10:181;;542:37;;6621:2:404;6606:18;542:37:181;;;;;;;;309:275;;;:::o;1009:634::-;1056:16;1080:27;1110:30;:28;:30::i;:::-;1080:60;;1147:25;1189:10;:17;1175:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1175:32:181;;;;;;;;;;;;;;;;1147:60;;1219:9;1214:403;1238:10;:17;1234:1;:21;1214:403;;;1271:10;1283:22;1307:13;1324:49;1359:10;1370:1;1359:13;;;;;;;;:::i;:::-;;;;;;;1324:34;:49::i;:::-;1270:103;;;;;;1382:24;1409:63;1451:10;1462:1;1451:13;;;;;;;;:::i;:::-;;;;;;;1409:32;:63::i;:::-;1382:90;;1495:115;;;;;;;;1517:2;1495:115;;;;1539:8;1495:115;;;;;;1567:8;1495:115;;;;1594:7;1495:115;;;1481:8;1490:1;1481:11;;;;;;;;:::i;:::-;;;;;;:129;;;;1262:355;;;;1257:3;;;;;;;1214:403;;;-1:-1:-1;1630:8:181;1009:634;-1:-1:-1;;1009:634:181:o;2030:157::-;2108:16;2139:43;2172:9;2139:32;:43::i;2385:202::-;2467:55;2504:9;2515:6;2467:36;:55::i;:::-;2533:49;;;6843:25:404;;;6899:2;6884:18;;6877:34;;;2552:10:181;;2533:49;;6816:18:404;2533:49:181;6669:248:404;1647:225:181;1760:59;1789:9;1800:8;1810;1760:28;:59::i;:::-;1830:37;;6633:25:404;;;1845:10:181;;1830:37;;6621:2:404;6606:18;1830:37:181;6487:177:404;3513:285:175;3613:4;3642:10;;3672:8;:6;:8::i;:::-;-1:-1:-1;;;;;3672:18:175;;:121;;;-1:-1:-1;286:66:109;519:31:107;;;3701:10:175;:91;;;;;3723:69;3735:9;3746:6;3779:10;3762:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;3754:37;;;:::i;:::-;3723:11;:69::i;:::-;3659:134;3513:285;-1:-1:-1;;;;3513:285:175:o;2485:579:182:-;2542:29;2561:9;2542:18;:29::i;:::-;-1:-1:-1;;;;;;;;;;;2648:36:182;370:66:183;2674:9:182;2648:25;:36::i;:::-;-1:-1:-1;2690:44:182;;;;;;;;;-1:-1:-1;2690:44:182;;;:30;;;:19;;;;:30;;;;;;;:39;;;;:44;;:39;:44;:::i;:::-;-1:-1:-1;2782:5:182;2740:30;;;:19;;;;:30;;;;;:39;;;:47;;-1:-1:-1;;2740:47:182;;;2793:37;;;2740:30;2782:5;2793:37;;;;2782:5;2793:37;:::i;:::-;-1:-1:-1;;2874:22:182;2899:35;;;:24;;;:35;;;;;:44;;:42;:44::i;:::-;2874:69;;2955:9;2950:110;2974:5;:12;2970:1;:16;2950:110;;;3001:52;3044:5;3050:1;3044:8;;;;;;;;:::i;:::-;;;;;;;3001:7;:24;;:35;3026:9;3001:35;;;;;;;;;;;:42;;:52;;;;:::i;:::-;-1:-1:-1;2988:3:182;;2950:110;;;;2536:528;;2485:579;:::o;4052:438::-;4128:29;4147:9;4128:18;:29::i;:::-;4163:34;4187:9;4163:23;:34::i;:::-;4204:37;4321:35;;;:24;:35;;;;;-1:-1:-1;;;;;;;;;;;370:66:183;4321:52:182;;4366:6;4321:44;:52::i;:::-;4317:115;;;4390:35;;-1:-1:-1;;;4390:35:182;;;;;;;;;;;4317:115;4438:35;;;;:24;;;:35;;;;;:47;;4478:6;4438:39;:47::i;1504:411::-;1574:10;1586:22;1610:13;1631:29;1650:9;1631:18;:29::i;:::-;1667:37;1780:30;;;:19;:30;;;;;;;;1736:74;;;;;;;;;;;;;;;;;;;;;;;;;;1780:19;1736:74;;;;-1:-1:-1;;;;;;;;;;;370:66:183;1667:37:182;1736:74;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1736:74:182;;;;-1:-1:-1;;1822:14:182;;1853:20;;;;1890;;;;;1822:14;;1853:20;;-1:-1:-1;1890:20:182;-1:-1:-1;1504:411:182;;-1:-1:-1;;;;;1504:411:182:o;4936:262::-;5013:16;5037:29;5056:9;5037:18;:29::i;:::-;5073:37;5149:35;;;:24;:35;;;;;-1:-1:-1;;;;;;;;;;;370:66:183;5149:44:182;;:42;:44::i;:::-;5142:51;4936:262;-1:-1:-1;;;4936:262:182:o;418:183:255:-;534:15;;519:4;;534:21;-1:-1:-1;530:66:255;;;564:32;;-1:-1:-1;;;564:32:255;;;;;;;;;;;814:686:182;937:23;950:9;937:12;:23::i;:::-;-1:-1:-1;;;;;;;;;;;1037:33:182;370:66:183;1060:9:182;1037:22;:33::i;:::-;-1:-1:-1;1109:100:182;;;;;;;;;;;-1:-1:-1;1109:100:182;;;;;;;;;;;;;1076:30;;;:19;;;;:30;;;;;;;:133;;;;;;1109:100;1076:133;;;;-1:-1:-1;;1076:133:182;;;;;;;;;;;;1109:100;;1076:30;;:133;;;;;;;;:::i;:::-;;;;;1221:9;1216:280;1240:7;:14;1236:1;:18;1216:280;;;1322:56;1367:7;1375:1;1367:10;;;;;;;;:::i;:::-;;;;;;;1322:7;:24;;:35;1347:9;1322:35;;;;;;;;;;;:44;;:56;;;;:::i;:::-;1318:112;;;1395:35;;-1:-1:-1;;;1395:35:182;;;;;;;;;;;1318:112;1438:51;1478:7;1486:1;1478:10;;;;;;;;:::i;:::-;;;;;;;1438:7;:24;;:35;1463:9;1438:35;;;;;;;;;;;:39;;:51;;;;:::i;:::-;-1:-1:-1;1256:3:182;;1216:280;;;;931:569;814:686;;;:::o;3068:180::-;3116:16;-1:-1:-1;;;;;;;;;;;3216:27:182;370:66:183;3216:25:182;:27::i;:::-;3209:34;;;3068:180;:::o;4494:438::-;4575:29;4594:9;4575:18;:29::i;:::-;4610:34;4634:9;4610:23;:34::i;:::-;4650:37;4761:35;;;:24;:35;;;;;-1:-1:-1;;;;;;;;;;;370:66:183;4761:52:182;;4806:6;4761:44;:52::i;:::-;4756:115;;4830:34;;-1:-1:-1;;;4830:34:182;;;;;;;;;;;4756:115;4877:35;;;;:24;;;:35;;;;;:50;;4920:6;4877:42;:50::i;1919:562::-;2031:29;2050:9;2031:18;:29::i;:::-;2067:37;2182:30;;;:19;:30;;;;;2230:22;;-1:-1:-1;;;;;;;;;;;370:66:183;2182:30:182;2230:26;;;;:104;;;2312:11;:20;;2296:38;;;;;;:::i;:::-;;;;;;;;2282:8;2266:26;;;;;;:68;;2230:104;2219:168;;;2349:20;;;:31;2372:8;2349:20;:31;:::i;:::-;;2219:168;2397:20;;;;;;:32;;;;;;2393:84;;2439:20;;:31;;-1:-1:-1;;2439:31:182;;;;;;;;;;;-1:-1:-1;;;1919:562:182:o;717:189:103:-;779:67;;;;;;;;295:66:105;779:67:103;-1:-1:-1;;;;;779:67:103;;;;;;;;;;;;;859:42;;-1:-1:-1;;;859:42:103;;;;;6633:25:404;;;;859:42:103;;758:13;;859:30;;6606:18:404;;;;;859:42:103;;;;;;779:67;859:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1559:1252:175:-;1672:4;1684:13;1700:8;:6;:8::i;:::-;1684:24;;1715;1742:31;1768:4;1742:25;:31::i;:::-;1809:14;;1715:58;;-1:-1:-1;1779:27:175;1862:17;:15;:17::i;:::-;1911:19;;1830:49;;-1:-1:-1;1885:23:175;1937:320;1961:19;1957:1;:23;1937:320;;;1995:14;2012:7;2020:1;2012:10;;;;;;;;:::i;:::-;;;;;;;1995:27;;2045:5;-1:-1:-1;;;;;2035:15:175;:6;-1:-1:-1;;;;;2035:15:175;;2031:51;;2069:4;2062:11;;;;;;;;;;;2031:51;2120:9;2115:136;2135:15;2131:1;:19;2115:136;;;2200:6;-1:-1:-1;;;;;2171:35:175;:25;2180:12;2193:1;2180:15;;;;;;;;:::i;:::-;;;;;;;2171:8;:25::i;:::-;-1:-1:-1;;;;;2171:35:175;;2167:76;;2227:5;2220:12;;;;;;;;;;;;2167:76;2152:3;;2115:136;;;-1:-1:-1;;1982:3:175;;1937:320;;;-1:-1:-1;476:66:194;2301:44:175;2425:24;:15;:22;:24::i;:::-;2396:53;;2461:9;2456:332;2480:18;2476:1;:22;2456:332;;;2513:47;2563:2;2513:47;2596:21;:15;;;2615:1;2596:18;:21::i;:::-;-1:-1:-1;;;;;2563:62:175;;;;;;;;;;;;;;;;;-1:-1:-1;2563:62:175;2513:112;;;;;;;;;;;;;;;;-1:-1:-1;;;2513:112:175;;;;;;;;;;-1:-1:-1;;;2513:112:175;;;;;;;;;;;;2647:28;;-1:-1:-1;;;2647:28:175;;;;2513:112;;-1:-1:-1;2513:112:175;;2647:26;;:28;;;;;;;;;;;2513:112;2647:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2646:29;:97;;;;;2687:1;:13;;;-1:-1:-1;;;;;2687:24:175;;2712:9;2723:7;2732:10;2687:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2633:149;;;2769:4;2762:11;;;;;;;;;;;;;2633:149;-1:-1:-1;2500:3:175;;2456:332;;;-1:-1:-1;2801:5:175;;1559:1252;-1:-1:-1;;;;;;;;;;;1559:1252:175:o;5848:224:182:-;5953:54;5997:9;-1:-1:-1;;;;;;;;;;;5953:23:182;:34;:43;:54::i;:::-;5948:120;;6024:37;;-1:-1:-1;;;6024:37:182;;;;;;;;;;;6221:129:356;6294:4;6317:26;6325:3;6337:5;6317:7;:26::i;12671:297::-;12731:16;12759:22;12784:19;12792:3;12784:7;:19::i;5376:246:182:-;5448:37;5522:30;;;:19;:30;;;;;:39;;;-1:-1:-1;;;;;;;;;;;370:66:183;5522:39:182;;5518:100;;;5578:33;;-1:-1:-1;;;5578:33:182;;;;;;;;;;;11317:144:356;11394:4;4360:21;;;:14;;;:21;;;;;;:26;;11417:37;4264:129;10804;10871:4;10894:32;10899:3;10919:5;10894:4;:32::i;5626:218:182:-;5724:54;5768:9;-1:-1:-1;;;;;;;;;;;5724:23:182;714:141:183;5724:54:182;5720:120;;;5795:38;;-1:-1:-1;;;5795:38:182;;;;;;;;;;;4541:861:175;4624:16;4648:14;287:66:209;4677:39:175;;;4756:31;;-1:-1:-1;;;4756:31:175;;-1:-1:-1;;;;;12877:32:404;;;4756:31:175;;;12859:51:404;4677:39:175;;;;-1:-1:-1;4677:39:175;;;;4756:22;;12832:18:404;;4756:31:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4756:31:175;;;;;;;;;;;;:::i;:::-;4908;;-1:-1:-1;;;4908:31:175;;-1:-1:-1;;;;;12877:32:404;;;4908:31:175;;;12859:51:404;4723:64:175;;-1:-1:-1;4881:24:175;;4908:22;;;;;12832:18:404;;4908:31:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4881:58;;4949:13;:20;4973:1;4949:25;:59;;;;-1:-1:-1;;;;;;4978:30:175;;;;4949:59;4945:161;;;5068:31;;-1:-1:-1;;;5068:31:175;;-1:-1:-1;;;;;12877:32:404;;;5068:31:175;;;12859:51:404;5028:16:175;;-1:-1:-1;5028:16:175;;5068:22;;;;;12832:18:404;;5068:31:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5068:31:175;;;;;;;;;;;;:::i;:::-;5052:47;;4945:161;5142:20;;5112:27;5210:23;5142:20;5232:1;5210:23;:::i;:::-;5196:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5196:38:175;;5169:65;;5245:9;5240:94;5264:19;5260:1;:23;5240:94;;;5311:13;5325:1;5311:16;;;;;;;;:::i;:::-;;;;;;;5298:7;5306:1;5298:10;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5298:29:175;;;:10;;;;;;;;;;;:29;5285:3;;5240:94;;;;5370:7;5339;5347:19;5339:28;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5339:38:175;;;:28;;;;;;;;;;;:38;5390:7;4541:861;-1:-1:-1;;;;;;4541:861:175:o;1221:128:178:-;1271:16;1302:42;370:66:179;1302:40:178;:42::i;22038:138:125:-;22104:7;22142:27;22161:7;22142:18;:27::i;9117:115:356:-;9180:7;9206:19;9214:3;4556:18;;4474:107;9574:156;9648:7;9698:22;9702:3;9714:5;9698:3;:22::i;2815:1368::-;2881:4;3010:21;;;:14;;;:21;;;;;;3046:13;;3042:1135;;3413:18;3434:12;3445:1;3434:8;:12;:::i;:::-;3480:18;;3413:33;;-1:-1:-1;3460:17:356;;3480:22;;3501:1;;3480:22;:::i;:::-;3460:42;;3535:9;3521:10;:23;3517:378;;3564:17;3584:3;:11;;3596:9;3584:22;;;;;;;;:::i;:::-;;;;;;;;;3564:42;;3731:9;3705:3;:11;;3717:10;3705:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;;3844:25;;;:14;;;:25;;;;;:36;;;3517:378;3973:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4076:3;:14;;:21;4091:5;4076:21;;;;;;;;;;;4069:28;;;4119:4;4112:11;;;;;;;3042:1135;4161:5;4154:12;;;;;5581:109;5637:16;5672:3;:11;;5665:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:109;;;:::o;2241:406::-;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:356;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;2320:321;-1:-1:-1;2625:5:356;2618:12;;7829:1501:125;7967:32;8043:29;;;:20;:29;;;;;;;293:66:127;;-1:-1:-1;;;8108:24:125;;:29;;8104:1172;;8229:6;8239:1;8229:11;8225:791;;8269:16;;8258:27;;8254:83;;8306:31;;-1:-1:-1;;;8306:31:125;;;;;;;;;;;8254:83;8824:182;-1:-1:-1;;8903:9:125;;;8882:31;;;;:20;;;:31;;;;;;8903:9;;8882:31;;-1:-1:-1;8941:25:125;;8824:182;8941:25;;8980:13;7829:1501;;;:::o;8104:1172::-;7959:1323;9294:31;;-1:-1:-1;;;9294:31:125;;;;;;;;;;;4923:118:356;4990:7;5016:3;:11;;5028:5;5016:18;;;;;;;;:::i;:::-;;;;;;;;;5009:25;;4923:118;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:404:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:404;;14:180;-1:-1:-1;14:180:404:o;199:248::-;267:6;275;328:2;316:9;307:7;303:23;299:32;296:52;;;344:1;341;334:12;296:52;-1:-1:-1;;367:23:404;;;437:2;422:18;;;409:32;;-1:-1:-1;199:248:404:o;452:250::-;537:1;547:113;561:6;558:1;555:13;547:113;;;637:11;;;631:18;618:11;;;611:39;583:2;576:10;547:113;;;-1:-1:-1;;694:1:404;676:16;;669:27;452:250::o;707:1057::-;793:5;787:12;782:3;775:25;757:3;819:4;884:2;877:5;873:14;867:21;860:29;853:37;848:2;843:3;839:12;832:59;937:4;930:5;926:16;920:23;975:4;968;963:3;959:14;952:28;1009:12;1003:19;1054:6;1047:4;1042:3;1038:14;1031:30;1070:80;1143:6;1137:3;1132;1128:13;1123:2;1109:12;1105:21;1070:80;:::i;:::-;1203:2;1199:7;1194:2;1186:6;1182:15;1178:29;1173:3;1169:39;1159:49;;;1238:3;1234:2;1230:12;1290:4;1283:5;1279:16;1273:23;1346:3;1340;1336:2;1332:12;1328:22;1321:4;1316:3;1312:14;1305:46;1373:5;1409:14;1403:21;1447:8;1440:5;1433:23;1482:3;1478:2;1474:12;1465:21;;1529:2;1513:14;1509:23;1495:37;;1550:1;1541:10;;1560:177;1574:8;1571:1;1568:15;1560:177;;;1639:13;;1625:28;;1712:15;;;;1598:1;1591:9;;;;;1675:14;;;;1560:177;;;-1:-1:-1;1753:5:404;707:1057;-1:-1:-1;;;;;;;707:1057:404:o;1769:260::-;1950:2;1939:9;1932:21;1913:4;1970:53;2019:2;2008:9;2004:18;1996:6;1970:53;:::i;2034:127::-;2095:10;2090:3;2086:20;2083:1;2076:31;2126:4;2123:1;2116:15;2150:4;2147:1;2140:15;2166:275;2237:2;2231:9;2302:2;2283:13;;-1:-1:-1;;2279:27:404;2267:40;;2337:18;2322:34;;2358:22;;;2319:62;2316:88;;;2384:18;;:::i;:::-;2420:2;2413:22;2166:275;;-1:-1:-1;2166:275:404:o;2446:531::-;2489:5;2542:3;2535:4;2527:6;2523:17;2519:27;2509:55;;2560:1;2557;2550:12;2509:55;2596:6;2583:20;2622:18;2618:2;2615:26;2612:52;;;2644:18;;:::i;:::-;2688:55;2731:2;2712:13;;-1:-1:-1;;2708:27:404;2737:4;2704:38;2688:55;:::i;:::-;2768:2;2759:7;2752:19;2814:3;2807:4;2802:2;2794:6;2790:15;2786:26;2783:35;2780:55;;;2831:1;2828;2821:12;2780:55;2896:2;2889:4;2881:6;2877:17;2870:4;2861:7;2857:18;2844:55;2944:1;2919:16;;;2937:4;2915:27;2908:38;;;;2923:7;2446:531;-1:-1:-1;;;2446:531:404:o;2982:183::-;3042:4;3075:18;3067:6;3064:30;3061:56;;;3097:18;;:::i;:::-;-1:-1:-1;3142:1:404;3138:14;3154:4;3134:25;;2982:183::o;3170:1180::-;3282:6;3290;3298;3351:2;3339:9;3330:7;3326:23;3322:32;3319:52;;;3367:1;3364;3357:12;3319:52;3403:9;3390:23;3380:33;;3432:2;3485;3474:9;3470:18;3457:32;3508:18;3549:2;3541:6;3538:14;3535:34;;;3565:1;3562;3555:12;3535:34;3588:50;3630:7;3621:6;3610:9;3606:22;3588:50;:::i;:::-;3578:60;;3691:2;3680:9;3676:18;3663:32;3647:48;;3720:2;3710:8;3707:16;3704:36;;;3736:1;3733;3726:12;3704:36;-1:-1:-1;3759:24:404;;3814:4;3806:13;;3802:27;-1:-1:-1;3792:55:404;;3843:1;3840;3833:12;3792:55;3879:2;3866:16;3902:60;3918:43;3958:2;3918:43;:::i;:::-;3902:60;:::i;:::-;3996:15;;;4078:1;4074:10;;;;4066:19;;4062:28;;;4027:12;;;;4102:19;;;4099:39;;;4134:1;4131;4124:12;4099:39;4158:11;;;;4178:142;4194:6;4189:3;4186:15;4178:142;;;4260:17;;4248:30;;4211:12;;;;4298;;;;4178:142;;;4339:5;4329:15;;;;;;;3170:1180;;;;;:::o;4355:843::-;4549:4;4578:2;4618;4607:9;4603:18;4648:2;4637:9;4630:21;4671:6;4706;4700:13;4737:6;4729;4722:22;4775:2;4764:9;4760:18;4753:25;;4837:2;4827:6;4824:1;4820:14;4809:9;4805:30;4801:39;4787:53;;4875:2;4867:6;4863:15;4896:1;4906:263;4920:6;4917:1;4914:13;4906:263;;;5013:2;5009:7;4997:9;4989:6;4985:22;4981:36;4976:3;4969:49;5041:48;5082:6;5073;5067:13;5041:48;:::i;:::-;5031:58;-1:-1:-1;5147:12:404;;;;5112:15;;;;4942:1;4935:9;4906:263;;;-1:-1:-1;5186:6:404;;4355:843;-1:-1:-1;;;;;;;4355:843:404:o;5203:632::-;5374:2;5426:21;;;5496:13;;5399:18;;;5518:22;;;5345:4;;5374:2;5597:15;;;;5571:2;5556:18;;;5345:4;5640:169;5654:6;5651:1;5648:13;5640:169;;;5715:13;;5703:26;;5784:15;;;;5749:12;;;;5676:1;5669:9;5640:169;;;-1:-1:-1;5826:3:404;;5203:632;-1:-1:-1;;;;;;5203:632:404:o;5840:118::-;5926:5;5919:13;5912:21;5905:5;5902:32;5892:60;;5948:1;5945;5938:12;5963:519;6047:6;6055;6063;6116:2;6104:9;6095:7;6091:23;6087:32;6084:52;;;6132:1;6129;6122:12;6084:52;6168:9;6155:23;6145:33;;6229:2;6218:9;6214:18;6201:32;6256:18;6248:6;6245:30;6242:50;;;6288:1;6285;6278:12;6242:50;6311;6353:7;6344:6;6333:9;6329:22;6311:50;:::i;:::-;6301:60;;;6411:2;6400:9;6396:18;6383:32;6424:28;6446:5;6424:28;:::i;:::-;6471:5;6461:15;;;5963:519;;;;;:::o;6922:127::-;6983:10;6978:3;6974:20;6971:1;6964:31;7014:4;7011:1;7004:15;7038:4;7035:1;7028:15;7054:289;7185:3;7223:6;7217:13;7239:66;7298:6;7293:3;7286:4;7278:6;7274:17;7239:66;:::i;:::-;7321:16;;;;;7054:289;-1:-1:-1;;7054:289:404:o;7348:297::-;7466:12;;7513:4;7502:16;;;7496:23;;7466:12;7531:16;;7528:111;;;-1:-1:-1;;7605:4:404;7601:17;;;;7598:1;7594:25;7590:38;7579:50;;7348:297;-1:-1:-1;7348:297:404:o;7650:380::-;7729:1;7725:12;;;;7772;;;7793:61;;7847:4;7839:6;7835:17;7825:27;;7793:61;7900:2;7892:6;7889:14;7869:18;7866:38;7863:161;;7946:10;7941:3;7937:20;7934:1;7927:31;7981:4;7978:1;7971:15;8009:4;8006:1;7999:15;8161:543;8263:2;8258:3;8255:11;8252:446;;;8299:1;8323:5;8320:1;8313:16;8367:4;8364:1;8354:18;8437:2;8425:10;8421:19;8418:1;8414:27;8408:4;8404:38;8473:4;8461:10;8458:20;8455:47;;;-1:-1:-1;8496:4:404;8455:47;8551:2;8546:3;8542:12;8539:1;8535:20;8529:4;8525:31;8515:41;;8606:82;8624:2;8617:5;8614:13;8606:82;;;8669:17;;;8650:1;8639:13;8606:82;;;8610:3;;;8161:543;;;:::o;8880:1345::-;9006:3;9000:10;9033:18;9025:6;9022:30;9019:56;;;9055:18;;:::i;:::-;9084:97;9174:6;9134:38;9166:4;9160:11;9134:38;:::i;:::-;9128:4;9084:97;:::i;:::-;9236:4;;9293:2;9282:14;;9310:1;9305:663;;;;10012:1;10029:6;10026:89;;;-1:-1:-1;10081:19:404;;;10075:26;10026:89;-1:-1:-1;;8837:1:404;8833:11;;;8829:24;8825:29;8815:40;8861:1;8857:11;;;8812:57;10128:81;;9275:944;;9305:663;8108:1;8101:14;;;8145:4;8132:18;;-1:-1:-1;;9341:20:404;;;9459:236;9473:7;9470:1;9467:14;9459:236;;;9562:19;;;9556:26;9541:42;;9654:27;;;;9622:1;9610:14;;;;9489:19;;9459:236;;;9463:3;9723:6;9714:7;9711:19;9708:201;;;9784:19;;;9778:26;-1:-1:-1;;9867:1:404;9863:14;;;9879:3;9859:24;9855:37;9851:42;9836:58;9821:74;;9708:201;-1:-1:-1;;;;;9955:1:404;9939:14;;;9935:22;9922:36;;-1:-1:-1;8880:1345:404:o;10230:845::-;10360:3;10389:1;10422:6;10416:13;10452:36;10478:9;10452:36;:::i;:::-;10507:1;10524:17;;;10550:133;;;;10697:1;10692:358;;;;10517:533;;10550:133;-1:-1:-1;;10583:24:404;;10571:37;;10656:14;;10649:22;10637:35;;10628:45;;;-1:-1:-1;10550:133:404;;10692:358;10723:6;10720:1;10713:17;10753:4;10798;10795:1;10785:18;10825:1;10839:165;10853:6;10850:1;10847:13;10839:165;;;10931:14;;10918:11;;;10911:35;10974:16;;;;10868:10;;10839:165;;;10843:3;;;11033:6;11028:3;11024:16;11017:23;;10517:533;-1:-1:-1;11066:3:404;;10230:845;-1:-1:-1;;;;;;10230:845:404:o;11262:177::-;11341:13;;-1:-1:-1;;;;;11383:31:404;;11373:42;;11363:70;;11429:1;11426;11419:12;11363:70;11262:177;;;:::o;11444:208::-;11514:6;11567:2;11555:9;11546:7;11542:23;11538:32;11535:52;;;11583:1;11580;11573:12;11535:52;11606:40;11636:9;11606:40;:::i;11657:245::-;11724:6;11777:2;11765:9;11756:7;11752:23;11748:32;11745:52;;;11793:1;11790;11783:12;11745:52;11825:9;11819:16;11844:28;11866:5;11844:28;:::i;11907:801::-;12105:4;12153:2;12142:9;12138:18;12183:6;12172:9;12165:25;12209:2;12247;12242;12231:9;12227:18;12220:30;12270:6;12305;12299:13;12336:6;12328;12321:22;12374:3;12363:9;12359:19;12352:26;;12413:2;12405:6;12401:15;12387:29;;12434:1;12444:195;12458:6;12455:1;12452:13;12444:195;;;12523:13;;-1:-1:-1;;;;;12519:39:404;12507:52;;12614:15;;;;12579:12;;;;12555:1;12473:9;12444:195;;;12448:3;;12656;12648:11;;;;;12695:6;12690:2;12679:9;12675:18;12668:34;11907:801;;;;;;:::o;12921:905::-;13016:6;13047:2;13090;13078:9;13069:7;13065:23;13061:32;13058:52;;;13106:1;13103;13096:12;13058:52;13139:9;13133:16;13172:18;13164:6;13161:30;13158:50;;;13204:1;13201;13194:12;13158:50;13227:22;;13280:4;13272:13;;13268:27;-1:-1:-1;13258:55:404;;13309:1;13306;13299:12;13258:55;13338:2;13332:9;13361:60;13377:43;13417:2;13377:43;:::i;13361:60::-;13455:15;;;13537:1;13533:10;;;;13525:19;;13521:28;;;13486:12;;;;13561:19;;;13558:39;;;13593:1;13590;13583:12;13558:39;13617:11;;;;13637:159;13653:6;13648:3;13645:15;13637:159;;;13719:34;13749:3;13719:34;:::i;:::-;13707:47;;13670:12;;;;13774;;;;13637:159;;;13815:5;12921:905;-1:-1:-1;;;;;;;12921:905:404:o;13831:127::-;13892:10;13887:3;13883:20;13880:1;13873:31;13923:4;13920:1;13913:15;13947:4;13944:1;13937:15;13963:125;14028:9;;;14049:10;;;14046:36;;;14062:18;;:::i;14093:128::-;14160:9;;;14181:11;;;14178:37;;;14195:18;;:::i;14226:127::-;14287:10;14282:3;14278:20;14275:1;14268:31;14318:4;14315:1;14308:15;14342:4;14339:1;14332:15","linkReferences":{}},"methodIdentifiers":{"addRoleToChannel(bytes32,uint256)":"37644cf7","createChannel(bytes32,string,uint256[])":"921f7175","getChannel(bytes32)":"831c2b82","getChannels()":"9575f6ac","getRolesByChannel(bytes32)":"99352183","removeChannel(bytes32)":"02da0e51","removeRoleFromChannel(bytes32,uint256)":"b9de6159","updateChannel(bytes32,string,bool)":"ef86d696"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__AlreadyBanned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banning__CannotBanOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banning__CannotBanSelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__NotBanned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__ChannelAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__ChannelDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__ChannelDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__RoleAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__RoleDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC5643__DurationZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC5643__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC5643__NotApprovedOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC5643__SubscriptionNotRenewable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__ValueAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_InInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_AlreadySupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_NotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintERC2309QuantityExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintZeroQuantity\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Ownable__NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Ownable__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnershipNotInitializedForExtraData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__NotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__Paused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"URIQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Validator__InvalidStringLength\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"moderator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"ChannelCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"ChannelRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"ChannelRoleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"ChannelRoleRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"ChannelUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"ConsecutiveTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"expiration\",\"type\":\"uint64\"}],\"name\":\"SubscriptionUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"moderator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Unbanned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"addRoleToChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"roleIds\",\"type\":\"uint256[]\"}],\"name\":\"createChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"getChannel\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"disabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"roleIds\",\"type\":\"uint256[]\"}],\"internalType\":\"struct IChannelBase.Channel\",\"name\":\"channel\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChannels\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"disabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"uint256[]\",\"name\":\"roleIds\",\"type\":\"uint256[]\"}],\"internalType\":\"struct IChannelBase.Channel[]\",\"name\":\"channels\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"getRolesByChannel\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"roleIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"}],\"name\":\"removeChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"removeRoleFromChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"disabled\",\"type\":\"bool\"}],\"name\":\"updateChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"ConsecutiveTransfer(uint256,uint256,address,address)\":{\"details\":\"Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, as defined in the [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. See {_mintERC2309} for more details.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"This emits when ownership of a contract changes.\"},\"SubscriptionUpdate(uint256,uint64)\":{\"details\":\"When a subscription is canceled, the expiration value should also be 0.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"addRoleToChannel(bytes32,uint256)\":{\"params\":{\"channelId\":\"the channelId to add the role to\",\"roleId\":\"the roleId to add to the channel\"}},\"createChannel(bytes32,string,uint256[])\":{\"params\":{\"channelId\":\"the channelId of the channel\",\"metadata\":\"the metadata of the channel\",\"roleIds\":\"the roleIds to add to the channel\"}},\"getChannel(bytes32)\":{\"params\":{\"channelId\":\"the channelId to get\"},\"returns\":{\"channel\":\"the channel\"}},\"getChannels()\":{\"returns\":{\"channels\":\"an array of all channels\"}},\"getRolesByChannel(bytes32)\":{\"params\":{\"channelId\":\"the channelId to get the roles for\"},\"returns\":{\"roleIds\":\"an array of roleIds for the channel\"}},\"removeChannel(bytes32)\":{\"params\":{\"channelId\":\"the channelId to remove\"}},\"removeRoleFromChannel(bytes32,uint256)\":{\"params\":{\"channelId\":\"the channelId to remove the role from\",\"roleId\":\"the roleId to remove from the channel\"}},\"updateChannel(bytes32,string,bool)\":{\"params\":{\"channelId\":\"the channelId to update\",\"disabled\":\"whether or not the channel is disabled\",\"metadata\":\"the new metadata of the channel\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"ApprovalCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"ApprovalQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"BalanceQueryForZeroAddress()\":[{\"notice\":\"Cannot query the balance for the zero address.\"}],\"MintERC2309QuantityExceedsLimit()\":[{\"notice\":\"The `quantity` minted with ERC2309 exceeds the safety limit.\"}],\"MintToZeroAddress()\":[{\"notice\":\"Cannot mint to the zero address.\"}],\"MintZeroQuantity()\":[{\"notice\":\"The quantity of tokens minted must be more than zero.\"}],\"OwnerQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"OwnershipNotInitializedForExtraData()\":[{\"notice\":\"The `extraData` cannot be set on an unintialized ownership slot.\"}],\"TransferCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"TransferFromIncorrectOwner()\":[{\"notice\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"notice\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"notice\":\"Cannot transfer to the zero address.\"}],\"URIQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}]},\"events\":{\"InterfaceAdded(bytes4)\":{\"notice\":\"Emitted when an interface is added to the contract via `_addInterface`.\"},\"InterfaceRemoved(bytes4)\":{\"notice\":\"Emitted when an interface is removed from the contract via `_removeInterface`.\"},\"SubscriptionUpdate(uint256,uint64)\":{\"notice\":\"Emitted when a subscription expiration changes\"}},\"kind\":\"user\",\"methods\":{\"addRoleToChannel(bytes32,uint256)\":{\"notice\":\"adds a role to a channel\"},\"createChannel(bytes32,string,uint256[])\":{\"notice\":\"creates a channel\"},\"getChannel(bytes32)\":{\"notice\":\"gets a channel\"},\"getChannels()\":{\"notice\":\"gets all channels\"},\"getRolesByChannel(bytes32)\":{\"notice\":\"gets all roles for a channel\"},\"removeChannel(bytes32)\":{\"notice\":\"removes a channel\"},\"removeRoleFromChannel(bytes32,uint256)\":{\"notice\":\"removes a role from a channel\"},\"updateChannel(bytes32,string,bool)\":{\"notice\":\"updates a channel\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/facets/channels/Channels.sol\":\"Channels\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/diamond/facets/Facet.sol\":{\"keccak256\":\"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863\",\"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc\"]},\"contracts/src/diamond/facets/initializable/Initializable.sol\":{\"keccak256\":\"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552\",\"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC\"]},\"contracts/src/diamond/facets/initializable/InitializableStorage.sol\":{\"keccak256\":\"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4\",\"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg\"]},\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/introspection/IntrospectionBase.sol\":{\"keccak256\":\"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1\",\"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw\"]},\"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol\":{\"keccak256\":\"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91\",\"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM\"]},\"contracts/src/diamond/facets/ownable/IERC173.sol\":{\"keccak256\":\"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b\",\"dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd\"]},\"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol\":{\"keccak256\":\"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb\",\"dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol\":{\"keccak256\":\"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb\",\"dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol\":{\"keccak256\":\"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf\",\"dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F\"]},\"contracts/src/diamond/facets/pausable/IPausable.sol\":{\"keccak256\":\"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684\",\"dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ\"]},\"contracts/src/diamond/facets/pausable/PausableBase.sol\":{\"keccak256\":\"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3\",\"dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V\"]},\"contracts/src/diamond/facets/pausable/PausableStorage.sol\":{\"keccak256\":\"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd\",\"dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj\"]},\"contracts/src/diamond/facets/token/ERC5643/ERC5643Base.sol\":{\"keccak256\":\"0x21d3c281732e54c93520a4f2cc72cc5af38c517f2a150ee67aa84704a3d78627\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ce7c061da0142a4d775bb85896410d363d4a28c0275d3171a70872344fc9a4\",\"dweb:/ipfs/Qmdwgs3TaC4b83JVn6RG5pJJdCrxb74ZMRqZbYSe5DuqZf\"]},\"contracts/src/diamond/facets/token/ERC5643/ERC5643Storage.sol\":{\"keccak256\":\"0x68cbff071e6a6a6b91b675af567616799435676fbbbebf4f9226e1226d6128b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2c7aee6ef32477733a50ba667cc510c8c165b9a9e146609b1f800acd0e4832\",\"dweb:/ipfs/QmcWAz74x3AR6kpzWdyPWw3iLQ1yHBT3ZVoK6jT7T3LwXq\"]},\"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol\":{\"keccak256\":\"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615\",\"dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol\":{\"keccak256\":\"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba\",\"dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol\":{\"keccak256\":\"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04\",\"dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey\"]},\"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol\":{\"keccak256\":\"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d\",\"dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz\"]},\"contracts/src/factory/facets/wallet-link/IWalletLink.sol\":{\"keccak256\":\"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0\",\"dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5\"]},\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/facets/Entitled.sol\":{\"keccak256\":\"0x90204085688bf4dd1e1b6ca30684ee37db79210070c405406898c8a77d50bfce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9b194cc9977b03fbccc81529147a0fce7857893c8146927570c1ee5a28aa900\",\"dweb:/ipfs/QmZMvPPj5ZPYaRQaSraBkv3PSMeUZ4wN1tQ9EVvwW6SL4r\"]},\"contracts/src/spaces/facets/Permissions.sol\":{\"keccak256\":\"0x08f1d02cacf8b8adcb38219623f999d15908185eefca4e3d0ea2c3486091d08c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6b021cd9adfed316fc1f43b99e5430d75469ef13d252fa5eb25057155908b77\",\"dweb:/ipfs/QmYAhL8hWcbtHARsAY9nauyRB4BERUi9s7SSRYkb1e1kCh\"]},\"contracts/src/spaces/facets/banning/BanningBase.sol\":{\"keccak256\":\"0x38c44494221f96568f3efb540a8a6c7af141de95f25caf26df6e8a8333f31249\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1f509347cab5090655ff8272443d18f9716fea5ef27cd86269ccbd2570aa7e\",\"dweb:/ipfs/QmbF8StzLRGnVvVXWYBowvdULoPPqQkU5hZR548cnRzuVs\"]},\"contracts/src/spaces/facets/banning/BanningStorage.sol\":{\"keccak256\":\"0xcfbf5c113056e569abf23158853ff4877744b22a4bf2bf49a282d04dab23ab17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f825e97ca65c9cd3bd5885d2fa8b8e5f8f0dcbe227dec064abbbab645685fbe\",\"dweb:/ipfs/QmXAMntxrjzeNUKh9WcyHvzDmnV89vrJ9PkKRceqxJSxZp\"]},\"contracts/src/spaces/facets/banning/IBanning.sol\":{\"keccak256\":\"0x350ec182a95a86a41335979cd7212132858c5cfcd366602b2f6cd0ec0694b63e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb4ad0c5a1086c38448b3e279733f33edc0cc39648368e5cb43dfff139ff7e8\",\"dweb:/ipfs/QmWYfYE8Haqk9kBRxmLijfQSfqbfxf7LB3wQ24d3pG5PE3\"]},\"contracts/src/spaces/facets/channels/ChannelBase.sol\":{\"keccak256\":\"0xcb9670d1b4b843f0c35c4a753593cd06e364d42155db682bd4ac6e49b7f8d782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42d397f5a0de269ac93cf1cb7e4cfdaa62d98c1ed9f3c5087598ffe742239067\",\"dweb:/ipfs/QmWNQzs1Y2sSSbHBpbHgDXsvU5DEDamSYUU7NwRzCyQsFV\"]},\"contracts/src/spaces/facets/channels/ChannelService.sol\":{\"keccak256\":\"0xdac0460cb66d31e57593154fb31ccd112dd1d51c34ea6e5ce316250ac5548abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56c99fa9d482bd02ea96a01e1a960e1678edbbc1a9580511f68543ca194f6fb5\",\"dweb:/ipfs/QmbUjxxkjLCGXVC3bNtWQDas2vJwUmS5NraTGwWiKJAXvH\"]},\"contracts/src/spaces/facets/channels/ChannelStorage.sol\":{\"keccak256\":\"0xeb4174513a652b1571b3a92cbefa80e9d450144e8d07bfb29c863d7d9de9313c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c3b73c84a2b4a56fcc8bd1fbaa0a8896a2dfc62a7fde07b13c6d8b05dcf8fe6\",\"dweb:/ipfs/QmRPukfmps5ESAR5saLNLJp6GEg1nNCTq5qChGeAjgtLV4\"]},\"contracts/src/spaces/facets/channels/Channels.sol\":{\"keccak256\":\"0xc556d10424e70cf85ed25e6d217f991b2a9a278733d9971406e278bf3884c1ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af936eafbb288acfe5e94c6452016b56d170141b2e161fd95af5ee5ee8f3d180\",\"dweb:/ipfs/QmbGXMtErxmEwaAo8GPyT93TQKXy9LebTu8ApVDkdYFi3w\"]},\"contracts/src/spaces/facets/channels/IChannel.sol\":{\"keccak256\":\"0x8f461ec8c49234f27257fc5cf20dd5e9fdb4692d9b17075be63e8ee6db854554\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52673312b7dfe3fa2b0e8b603a368036f3b428b303f9e539b558ccfdf5490b54\",\"dweb:/ipfs/Qme3LoUvB1Axz9ZJZ8Erv6Cw6GLPQB7PNghMQ3FUYfA4VV\"]},\"contracts/src/spaces/facets/delegation/WalletLinkProxyBase.sol\":{\"keccak256\":\"0xffef403556b46744bd1833e5df57b02eb79e010841b16610e1740bc0dac929b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1afa30929e8c6b0c69528d328774c98789825a8de53e5945a1e95092bee2ad08\",\"dweb:/ipfs/QmTbCqLJTBHgcMuFwWSTbrgR7uaASJqwqYuku4YkGzTWW1\"]},\"contracts/src/spaces/facets/delegation/WalletLinkProxyStorage.sol\":{\"keccak256\":\"0x9667e475b9ad9f1130583840c9b0594a7512f7edd33163b926b3db21f70d9909\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6271ce56258b1e9150378872d250cfaeb4501b5d0288e8f19f02096114c687f\",\"dweb:/ipfs/QmXSBA2CpLL9BdvZb994JYStgB9fJfsHwgcke6gsD3zybW\"]},\"contracts/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol\":{\"keccak256\":\"0x688692231af49bcca80f7da97be12d448b0c20a4338d259d5f654b95c5b046ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be9964e110363bf68fb4bbb8ff230fecf8c26e695077910ba07163db57030a8e\",\"dweb:/ipfs/QmNS3eUqCQU7H48LtW6hrB9xPGy9DrKCqh7JKWsAtje5dK\"]},\"contracts/src/spaces/facets/membership/MembershipStorage.sol\":{\"keccak256\":\"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a\",\"dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa\"]},\"contracts/src/utils/Validator.sol\":{\"keccak256\":\"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306\",\"dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt\"]},\"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"lib/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ApprovalCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"ApprovalQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"BalanceQueryForZeroAddress"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__AlreadyBanned"},{"inputs":[],"type":"error","name":"Banning__CannotBanOwner"},{"inputs":[],"type":"error","name":"Banning__CannotBanSelf"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__InvalidTokenId"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__NotBanned"},{"inputs":[],"type":"error","name":"ChannelService__ChannelAlreadyExists"},{"inputs":[],"type":"error","name":"ChannelService__ChannelDisabled"},{"inputs":[],"type":"error","name":"ChannelService__ChannelDoesNotExist"},{"inputs":[],"type":"error","name":"ChannelService__RoleAlreadyExists"},{"inputs":[],"type":"error","name":"ChannelService__RoleDoesNotExist"},{"inputs":[],"type":"error","name":"ERC5643__DurationZero"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC5643__InvalidTokenId"},{"inputs":[],"type":"error","name":"ERC5643__NotApprovedOrOwner"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC5643__SubscriptionNotRenewable"},{"inputs":[],"type":"error","name":"Entitlement__InvalidValue"},{"inputs":[],"type":"error","name":"Entitlement__NotAllowed"},{"inputs":[],"type":"error","name":"Entitlement__NotMember"},{"inputs":[],"type":"error","name":"Entitlement__ValueAlreadyExists"},{"inputs":[],"type":"error","name":"Initializable_InInitializingState"},{"inputs":[],"type":"error","name":"Introspection_AlreadySupported"},{"inputs":[],"type":"error","name":"Introspection_NotSupported"},{"inputs":[],"type":"error","name":"MintERC2309QuantityExceedsLimit"},{"inputs":[],"type":"error","name":"MintToZeroAddress"},{"inputs":[],"type":"error","name":"MintZeroQuantity"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"Ownable__NotOwner"},{"inputs":[],"type":"error","name":"Ownable__ZeroAddress"},{"inputs":[],"type":"error","name":"OwnerQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"OwnershipNotInitializedForExtraData"},{"inputs":[],"type":"error","name":"Pausable__NotPaused"},{"inputs":[],"type":"error","name":"Pausable__Paused"},{"inputs":[],"type":"error","name":"TransferCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"TransferFromIncorrectOwner"},{"inputs":[],"type":"error","name":"TransferToNonERC721ReceiverImplementer"},{"inputs":[],"type":"error","name":"TransferToZeroAddress"},{"inputs":[],"type":"error","name":"URIQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"Validator__InvalidStringLength"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"moderator","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Banned","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bytes32","name":"channelId","type":"bytes32","indexed":false}],"type":"event","name":"ChannelCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bytes32","name":"channelId","type":"bytes32","indexed":false}],"type":"event","name":"ChannelRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bytes32","name":"channelId","type":"bytes32","indexed":false},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":false}],"type":"event","name":"ChannelRoleAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bytes32","name":"channelId","type":"bytes32","indexed":false},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":false}],"type":"event","name":"ChannelRoleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bytes32","name":"channelId","type":"bytes32","indexed":false}],"type":"event","name":"ChannelUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"toTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"ConsecutiveTransfer","anonymous":false},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceAdded","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint64","name":"expiration","type":"uint64","indexed":false}],"type":"event","name":"SubscriptionUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"moderator","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Unbanned","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addRoleToChannel"},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"uint256[]","name":"roleIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"createChannel"},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getChannel","outputs":[{"internalType":"struct IChannelBase.Channel","name":"channel","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"disabled","type":"bool"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"uint256[]","name":"roleIds","type":"uint256[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChannels","outputs":[{"internalType":"struct IChannelBase.Channel[]","name":"channels","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"disabled","type":"bool"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"uint256[]","name":"roleIds","type":"uint256[]"}]}]},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRolesByChannel","outputs":[{"internalType":"uint256[]","name":"roleIds","type":"uint256[]"}]},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeChannel"},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeRoleFromChannel"},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"string","name":"metadata","type":"string"},{"internalType":"bool","name":"disabled","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"updateChannel"}],"devdoc":{"kind":"dev","methods":{"addRoleToChannel(bytes32,uint256)":{"params":{"channelId":"the channelId to add the role to","roleId":"the roleId to add to the channel"}},"createChannel(bytes32,string,uint256[])":{"params":{"channelId":"the channelId of the channel","metadata":"the metadata of the channel","roleIds":"the roleIds to add to the channel"}},"getChannel(bytes32)":{"params":{"channelId":"the channelId to get"},"returns":{"channel":"the channel"}},"getChannels()":{"returns":{"channels":"an array of all channels"}},"getRolesByChannel(bytes32)":{"params":{"channelId":"the channelId to get the roles for"},"returns":{"roleIds":"an array of roleIds for the channel"}},"removeChannel(bytes32)":{"params":{"channelId":"the channelId to remove"}},"removeRoleFromChannel(bytes32,uint256)":{"params":{"channelId":"the channelId to remove the role from","roleId":"the roleId to remove from the channel"}},"updateChannel(bytes32,string,bool)":{"params":{"channelId":"the channelId to update","disabled":"whether or not the channel is disabled","metadata":"the new metadata of the channel"}}},"version":1},"userdoc":{"kind":"user","methods":{"addRoleToChannel(bytes32,uint256)":{"notice":"adds a role to a channel"},"createChannel(bytes32,string,uint256[])":{"notice":"creates a channel"},"getChannel(bytes32)":{"notice":"gets a channel"},"getChannels()":{"notice":"gets all channels"},"getRolesByChannel(bytes32)":{"notice":"gets all roles for a channel"},"removeChannel(bytes32)":{"notice":"removes a channel"},"removeRoleFromChannel(bytes32,uint256)":{"notice":"removes a role from a channel"},"updateChannel(bytes32,string,bool)":{"notice":"updates a channel"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/facets/channels/Channels.sol":"Channels"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/diamond/facets/Facet.sol":{"keccak256":"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57","urls":["bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863","dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"],"license":"MIT"},"contracts/src/diamond/facets/initializable/Initializable.sol":{"keccak256":"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90","urls":["bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552","dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"],"license":"MIT"},"contracts/src/diamond/facets/initializable/InitializableStorage.sol":{"keccak256":"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a","urls":["bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4","dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionBase.sol":{"keccak256":"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f","urls":["bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1","dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol":{"keccak256":"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763","urls":["bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91","dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"],"license":"MIT"},"contracts/src/diamond/facets/ownable/IERC173.sol":{"keccak256":"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303","urls":["bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b","dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol":{"keccak256":"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816","urls":["bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb","dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol":{"keccak256":"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4","urls":["bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb","dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol":{"keccak256":"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479","urls":["bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf","dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F"],"license":"MIT"},"contracts/src/diamond/facets/pausable/IPausable.sol":{"keccak256":"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1","urls":["bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684","dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableBase.sol":{"keccak256":"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0","urls":["bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3","dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableStorage.sol":{"keccak256":"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f","urls":["bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd","dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/ERC5643Base.sol":{"keccak256":"0x21d3c281732e54c93520a4f2cc72cc5af38c517f2a150ee67aa84704a3d78627","urls":["bzz-raw://52ce7c061da0142a4d775bb85896410d363d4a28c0275d3171a70872344fc9a4","dweb:/ipfs/Qmdwgs3TaC4b83JVn6RG5pJJdCrxb74ZMRqZbYSe5DuqZf"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/ERC5643Storage.sol":{"keccak256":"0x68cbff071e6a6a6b91b675af567616799435676fbbbebf4f9226e1226d6128b2","urls":["bzz-raw://2e2c7aee6ef32477733a50ba667cc510c8c165b9a9e146609b1f800acd0e4832","dweb:/ipfs/QmcWAz74x3AR6kpzWdyPWw3iLQ1yHBT3ZVoK6jT7T3LwXq"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol":{"keccak256":"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224","urls":["bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615","dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol":{"keccak256":"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62","urls":["bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba","dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol":{"keccak256":"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4","urls":["bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04","dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol":{"keccak256":"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782","urls":["bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d","dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz"],"license":"MIT"},"contracts/src/factory/facets/wallet-link/IWalletLink.sol":{"keccak256":"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee","urls":["bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0","dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5"],"license":"MIT"},"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/facets/Entitled.sol":{"keccak256":"0x90204085688bf4dd1e1b6ca30684ee37db79210070c405406898c8a77d50bfce","urls":["bzz-raw://b9b194cc9977b03fbccc81529147a0fce7857893c8146927570c1ee5a28aa900","dweb:/ipfs/QmZMvPPj5ZPYaRQaSraBkv3PSMeUZ4wN1tQ9EVvwW6SL4r"],"license":"MIT"},"contracts/src/spaces/facets/Permissions.sol":{"keccak256":"0x08f1d02cacf8b8adcb38219623f999d15908185eefca4e3d0ea2c3486091d08c","urls":["bzz-raw://b6b021cd9adfed316fc1f43b99e5430d75469ef13d252fa5eb25057155908b77","dweb:/ipfs/QmYAhL8hWcbtHARsAY9nauyRB4BERUi9s7SSRYkb1e1kCh"],"license":"MIT"},"contracts/src/spaces/facets/banning/BanningBase.sol":{"keccak256":"0x38c44494221f96568f3efb540a8a6c7af141de95f25caf26df6e8a8333f31249","urls":["bzz-raw://cf1f509347cab5090655ff8272443d18f9716fea5ef27cd86269ccbd2570aa7e","dweb:/ipfs/QmbF8StzLRGnVvVXWYBowvdULoPPqQkU5hZR548cnRzuVs"],"license":"MIT"},"contracts/src/spaces/facets/banning/BanningStorage.sol":{"keccak256":"0xcfbf5c113056e569abf23158853ff4877744b22a4bf2bf49a282d04dab23ab17","urls":["bzz-raw://4f825e97ca65c9cd3bd5885d2fa8b8e5f8f0dcbe227dec064abbbab645685fbe","dweb:/ipfs/QmXAMntxrjzeNUKh9WcyHvzDmnV89vrJ9PkKRceqxJSxZp"],"license":"MIT"},"contracts/src/spaces/facets/banning/IBanning.sol":{"keccak256":"0x350ec182a95a86a41335979cd7212132858c5cfcd366602b2f6cd0ec0694b63e","urls":["bzz-raw://ecb4ad0c5a1086c38448b3e279733f33edc0cc39648368e5cb43dfff139ff7e8","dweb:/ipfs/QmWYfYE8Haqk9kBRxmLijfQSfqbfxf7LB3wQ24d3pG5PE3"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelBase.sol":{"keccak256":"0xcb9670d1b4b843f0c35c4a753593cd06e364d42155db682bd4ac6e49b7f8d782","urls":["bzz-raw://42d397f5a0de269ac93cf1cb7e4cfdaa62d98c1ed9f3c5087598ffe742239067","dweb:/ipfs/QmWNQzs1Y2sSSbHBpbHgDXsvU5DEDamSYUU7NwRzCyQsFV"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelService.sol":{"keccak256":"0xdac0460cb66d31e57593154fb31ccd112dd1d51c34ea6e5ce316250ac5548abb","urls":["bzz-raw://56c99fa9d482bd02ea96a01e1a960e1678edbbc1a9580511f68543ca194f6fb5","dweb:/ipfs/QmbUjxxkjLCGXVC3bNtWQDas2vJwUmS5NraTGwWiKJAXvH"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelStorage.sol":{"keccak256":"0xeb4174513a652b1571b3a92cbefa80e9d450144e8d07bfb29c863d7d9de9313c","urls":["bzz-raw://6c3b73c84a2b4a56fcc8bd1fbaa0a8896a2dfc62a7fde07b13c6d8b05dcf8fe6","dweb:/ipfs/QmRPukfmps5ESAR5saLNLJp6GEg1nNCTq5qChGeAjgtLV4"],"license":"MIT"},"contracts/src/spaces/facets/channels/Channels.sol":{"keccak256":"0xc556d10424e70cf85ed25e6d217f991b2a9a278733d9971406e278bf3884c1ec","urls":["bzz-raw://af936eafbb288acfe5e94c6452016b56d170141b2e161fd95af5ee5ee8f3d180","dweb:/ipfs/QmbGXMtErxmEwaAo8GPyT93TQKXy9LebTu8ApVDkdYFi3w"],"license":"MIT"},"contracts/src/spaces/facets/channels/IChannel.sol":{"keccak256":"0x8f461ec8c49234f27257fc5cf20dd5e9fdb4692d9b17075be63e8ee6db854554","urls":["bzz-raw://52673312b7dfe3fa2b0e8b603a368036f3b428b303f9e539b558ccfdf5490b54","dweb:/ipfs/Qme3LoUvB1Axz9ZJZ8Erv6Cw6GLPQB7PNghMQ3FUYfA4VV"],"license":"MIT"},"contracts/src/spaces/facets/delegation/WalletLinkProxyBase.sol":{"keccak256":"0xffef403556b46744bd1833e5df57b02eb79e010841b16610e1740bc0dac929b2","urls":["bzz-raw://1afa30929e8c6b0c69528d328774c98789825a8de53e5945a1e95092bee2ad08","dweb:/ipfs/QmTbCqLJTBHgcMuFwWSTbrgR7uaASJqwqYuku4YkGzTWW1"],"license":"MIT"},"contracts/src/spaces/facets/delegation/WalletLinkProxyStorage.sol":{"keccak256":"0x9667e475b9ad9f1130583840c9b0594a7512f7edd33163b926b3db21f70d9909","urls":["bzz-raw://d6271ce56258b1e9150378872d250cfaeb4501b5d0288e8f19f02096114c687f","dweb:/ipfs/QmXSBA2CpLL9BdvZb994JYStgB9fJfsHwgcke6gsD3zybW"],"license":"MIT"},"contracts/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol":{"keccak256":"0x688692231af49bcca80f7da97be12d448b0c20a4338d259d5f654b95c5b046ca","urls":["bzz-raw://be9964e110363bf68fb4bbb8ff230fecf8c26e695077910ba07163db57030a8e","dweb:/ipfs/QmNS3eUqCQU7H48LtW6hrB9xPGy9DrKCqh7JKWsAtje5dK"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipStorage.sol":{"keccak256":"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0","urls":["bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a","dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa"],"license":"MIT"},"contracts/src/utils/Validator.sol":{"keccak256":"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f","urls":["bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306","dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":184} \ No newline at end of file diff --git a/packages/generated/dev/abis/Channels.metadata.json b/packages/generated/dev/abis/Channels.metadata.json index 1dd7244a2..b5af2e0cb 100644 --- a/packages/generated/dev/abis/Channels.metadata.json +++ b/packages/generated/dev/abis/Channels.metadata.json @@ -1068,10 +1068,10 @@ "license": "MIT" }, "contracts/src/spaces/facets/Permissions.sol": { - "keccak256": "0xaeec9c70d231be9debb15660bf6939746532d0012c80d5518e8207dd33653de2", + "keccak256": "0x08f1d02cacf8b8adcb38219623f999d15908185eefca4e3d0ea2c3486091d08c", "urls": [ - "bzz-raw://bab7c5dd8f55f03f48d3908b8d6732b3e2d93f36312a0c3408ff10be258c165a", - "dweb:/ipfs/QmevmAc6tzP3kFoH84cRtipSq4ryqbrP3H4VB8mRZgnRxn" + "bzz-raw://b6b021cd9adfed316fc1f43b99e5430d75469ef13d252fa5eb25057155908b77", + "dweb:/ipfs/QmYAhL8hWcbtHARsAY9nauyRB4BERUi9s7SSRYkb1e1kCh" ], "license": "MIT" }, diff --git a/packages/generated/dev/abis/IEntitlementDataQueryable.abi.json b/packages/generated/dev/abis/IEntitlementDataQueryable.abi.json index 1a00307fd..19b35404c 100644 --- a/packages/generated/dev/abis/IEntitlementDataQueryable.abi.json +++ b/packages/generated/dev/abis/IEntitlementDataQueryable.abi.json @@ -35,6 +35,42 @@ ], "stateMutability": "view" }, + { + "type": "function", + "name": "getCrossChainEntitlementData", + "inputs": [ + { + "name": "transactionId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "roleId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct IEntitlementDataQueryableBase.EntitlementData", + "components": [ + { + "name": "entitlementType", + "type": "string", + "internalType": "string" + }, + { + "name": "entitlementData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "getEntitlementDataByPermission", diff --git a/packages/generated/dev/abis/IEntitlementDataQueryable.abi.ts b/packages/generated/dev/abis/IEntitlementDataQueryable.abi.ts index b5b1e8710..7a17fad54 100644 --- a/packages/generated/dev/abis/IEntitlementDataQueryable.abi.ts +++ b/packages/generated/dev/abis/IEntitlementDataQueryable.abi.ts @@ -35,6 +35,42 @@ export default [ ], "stateMutability": "view" }, + { + "type": "function", + "name": "getCrossChainEntitlementData", + "inputs": [ + { + "name": "transactionId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "roleId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "tuple", + "internalType": "struct IEntitlementDataQueryableBase.EntitlementData", + "components": [ + { + "name": "entitlementType", + "type": "string", + "internalType": "string" + }, + { + "name": "entitlementData", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "stateMutability": "view" + }, { "type": "function", "name": "getEntitlementDataByPermission", diff --git a/packages/generated/dev/abis/IEntitlementDataQueryable.json b/packages/generated/dev/abis/IEntitlementDataQueryable.json index 1a754b170..5df640b1e 100644 --- a/packages/generated/dev/abis/IEntitlementDataQueryable.json +++ b/packages/generated/dev/abis/IEntitlementDataQueryable.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getChannelEntitlementDataByPermission","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"permission","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IEntitlementDataQueryableBase.EntitlementData[]","components":[{"name":"entitlementType","type":"string","internalType":"string"},{"name":"entitlementData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getEntitlementDataByPermission","inputs":[{"name":"permission","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IEntitlementDataQueryableBase.EntitlementData[]","components":[{"name":"entitlementType","type":"string","internalType":"string"},{"name":"entitlementData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getChannelEntitlementDataByPermission(bytes32,string)":"40cd83fb","getEntitlementDataByPermission(string)":"db0a69a8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"permission\",\"type\":\"string\"}],\"name\":\"getChannelEntitlementDataByPermission\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"entitlementType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"entitlementData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntitlementDataQueryableBase.EntitlementData[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"permission\",\"type\":\"string\"}],\"name\":\"getEntitlementDataByPermission\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"entitlementType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"entitlementData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntitlementDataQueryableBase.EntitlementData[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol\":\"IEntitlementDataQueryable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol\":{\"keccak256\":\"0x7b43371418a8298bf582580bc884d3a319c812cd89fae988af19a1935c92c497\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2fd3c564fc93121ea8be125da9d87df2807d53efece4cfb46776eb19caa46c2\",\"dweb:/ipfs/QmW8r4i8e9SRkDWC14Fvdwrc9RgTX9FJ49ymfhd6a5DVNR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"string","name":"permission","type":"string"}],"stateMutability":"view","type":"function","name":"getChannelEntitlementDataByPermission","outputs":[{"internalType":"struct IEntitlementDataQueryableBase.EntitlementData[]","name":"","type":"tuple[]","components":[{"internalType":"string","name":"entitlementType","type":"string"},{"internalType":"bytes","name":"entitlementData","type":"bytes"}]}]},{"inputs":[{"internalType":"string","name":"permission","type":"string"}],"stateMutability":"view","type":"function","name":"getEntitlementDataByPermission","outputs":[{"internalType":"struct IEntitlementDataQueryableBase.EntitlementData[]","name":"","type":"tuple[]","components":[{"internalType":"string","name":"entitlementType","type":"string"},{"internalType":"bytes","name":"entitlementData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol":"IEntitlementDataQueryable"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol":{"keccak256":"0x7b43371418a8298bf582580bc884d3a319c812cd89fae988af19a1935c92c497","urls":["bzz-raw://f2fd3c564fc93121ea8be125da9d87df2807d53efece4cfb46776eb19caa46c2","dweb:/ipfs/QmW8r4i8e9SRkDWC14Fvdwrc9RgTX9FJ49ymfhd6a5DVNR"],"license":"MIT"}},"version":1},"id":235} \ No newline at end of file +{"abi":[{"type":"function","name":"getChannelEntitlementDataByPermission","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"permission","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IEntitlementDataQueryableBase.EntitlementData[]","components":[{"name":"entitlementType","type":"string","internalType":"string"},{"name":"entitlementData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getCrossChainEntitlementData","inputs":[{"name":"transactionId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IEntitlementDataQueryableBase.EntitlementData","components":[{"name":"entitlementType","type":"string","internalType":"string"},{"name":"entitlementData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getEntitlementDataByPermission","inputs":[{"name":"permission","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IEntitlementDataQueryableBase.EntitlementData[]","components":[{"name":"entitlementType","type":"string","internalType":"string"},{"name":"entitlementData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getChannelEntitlementDataByPermission(bytes32,string)":"40cd83fb","getCrossChainEntitlementData(bytes32,uint256)":"0fe44a21","getEntitlementDataByPermission(string)":"db0a69a8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"permission\",\"type\":\"string\"}],\"name\":\"getChannelEntitlementDataByPermission\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"entitlementType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"entitlementData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntitlementDataQueryableBase.EntitlementData[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getCrossChainEntitlementData\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"entitlementType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"entitlementData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntitlementDataQueryableBase.EntitlementData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"permission\",\"type\":\"string\"}],\"name\":\"getEntitlementDataByPermission\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"entitlementType\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"entitlementData\",\"type\":\"bytes\"}],\"internalType\":\"struct IEntitlementDataQueryableBase.EntitlementData[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol\":\"IEntitlementDataQueryable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol\":{\"keccak256\":\"0x408fcf935d47c3696901b138edbe3f862e63227e45a80be0154a21d39d6a4030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dab36eda141004d86570adf5daf5d011186bedea42c183eada86e4a24c3e15f3\",\"dweb:/ipfs/QmbSenMpHd3CW7LASFJmrbVZea7ueTS74NWjymEBMdpHbe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"string","name":"permission","type":"string"}],"stateMutability":"view","type":"function","name":"getChannelEntitlementDataByPermission","outputs":[{"internalType":"struct IEntitlementDataQueryableBase.EntitlementData[]","name":"","type":"tuple[]","components":[{"internalType":"string","name":"entitlementType","type":"string"},{"internalType":"bytes","name":"entitlementData","type":"bytes"}]}]},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getCrossChainEntitlementData","outputs":[{"internalType":"struct IEntitlementDataQueryableBase.EntitlementData","name":"","type":"tuple","components":[{"internalType":"string","name":"entitlementType","type":"string"},{"internalType":"bytes","name":"entitlementData","type":"bytes"}]}]},{"inputs":[{"internalType":"string","name":"permission","type":"string"}],"stateMutability":"view","type":"function","name":"getEntitlementDataByPermission","outputs":[{"internalType":"struct IEntitlementDataQueryableBase.EntitlementData[]","name":"","type":"tuple[]","components":[{"internalType":"string","name":"entitlementType","type":"string"},{"internalType":"bytes","name":"entitlementData","type":"bytes"}]}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol":"IEntitlementDataQueryable"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol":{"keccak256":"0x408fcf935d47c3696901b138edbe3f862e63227e45a80be0154a21d39d6a4030","urls":["bzz-raw://dab36eda141004d86570adf5daf5d011186bedea42c183eada86e4a24c3e15f3","dweb:/ipfs/QmbSenMpHd3CW7LASFJmrbVZea7ueTS74NWjymEBMdpHbe"],"license":"MIT"}},"version":1},"id":198} \ No newline at end of file diff --git a/packages/generated/dev/abis/IEntitlementDataQueryable.metadata.json b/packages/generated/dev/abis/IEntitlementDataQueryable.metadata.json index 848aaec8d..3dc1b50fe 100644 --- a/packages/generated/dev/abis/IEntitlementDataQueryable.metadata.json +++ b/packages/generated/dev/abis/IEntitlementDataQueryable.metadata.json @@ -41,6 +41,42 @@ } ] }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "transactionId", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "roleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getCrossChainEntitlementData", + "outputs": [ + { + "internalType": "struct IEntitlementDataQueryableBase.EntitlementData", + "name": "", + "type": "tuple", + "components": [ + { + "internalType": "string", + "name": "entitlementType", + "type": "string" + }, + { + "internalType": "bytes", + "name": "entitlementData", + "type": "bytes" + } + ] + } + ] + }, { "inputs": [ { @@ -111,10 +147,10 @@ }, "sources": { "contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol": { - "keccak256": "0x7b43371418a8298bf582580bc884d3a319c812cd89fae988af19a1935c92c497", + "keccak256": "0x408fcf935d47c3696901b138edbe3f862e63227e45a80be0154a21d39d6a4030", "urls": [ - "bzz-raw://f2fd3c564fc93121ea8be125da9d87df2807d53efece4cfb46776eb19caa46c2", - "dweb:/ipfs/QmW8r4i8e9SRkDWC14Fvdwrc9RgTX9FJ49ymfhd6a5DVNR" + "bzz-raw://dab36eda141004d86570adf5daf5d011186bedea42c183eada86e4a24c3e15f3", + "dweb:/ipfs/QmbSenMpHd3CW7LASFJmrbVZea7ueTS74NWjymEBMdpHbe" ], "license": "MIT" } diff --git a/packages/generated/dev/abis/IEntitlementDataQueryableBase.json b/packages/generated/dev/abis/IEntitlementDataQueryableBase.json index 64c7eb1a4..135fe8b11 100644 --- a/packages/generated/dev/abis/IEntitlementDataQueryableBase.json +++ b/packages/generated/dev/abis/IEntitlementDataQueryableBase.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol\":\"IEntitlementDataQueryableBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol\":{\"keccak256\":\"0x7b43371418a8298bf582580bc884d3a319c812cd89fae988af19a1935c92c497\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2fd3c564fc93121ea8be125da9d87df2807d53efece4cfb46776eb19caa46c2\",\"dweb:/ipfs/QmW8r4i8e9SRkDWC14Fvdwrc9RgTX9FJ49ymfhd6a5DVNR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol":"IEntitlementDataQueryableBase"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol":{"keccak256":"0x7b43371418a8298bf582580bc884d3a319c812cd89fae988af19a1935c92c497","urls":["bzz-raw://f2fd3c564fc93121ea8be125da9d87df2807d53efece4cfb46776eb19caa46c2","dweb:/ipfs/QmW8r4i8e9SRkDWC14Fvdwrc9RgTX9FJ49ymfhd6a5DVNR"],"license":"MIT"}},"version":1},"id":235} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol\":\"IEntitlementDataQueryableBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol\":{\"keccak256\":\"0x408fcf935d47c3696901b138edbe3f862e63227e45a80be0154a21d39d6a4030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dab36eda141004d86570adf5daf5d011186bedea42c183eada86e4a24c3e15f3\",\"dweb:/ipfs/QmbSenMpHd3CW7LASFJmrbVZea7ueTS74NWjymEBMdpHbe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol":"IEntitlementDataQueryableBase"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol":{"keccak256":"0x408fcf935d47c3696901b138edbe3f862e63227e45a80be0154a21d39d6a4030","urls":["bzz-raw://dab36eda141004d86570adf5daf5d011186bedea42c183eada86e4a24c3e15f3","dweb:/ipfs/QmbSenMpHd3CW7LASFJmrbVZea7ueTS74NWjymEBMdpHbe"],"license":"MIT"}},"version":1},"id":198} \ No newline at end of file diff --git a/packages/generated/dev/abis/IEntitlementDataQueryableBase.metadata.json b/packages/generated/dev/abis/IEntitlementDataQueryableBase.metadata.json index 4af049411..b7d43e230 100644 --- a/packages/generated/dev/abis/IEntitlementDataQueryableBase.metadata.json +++ b/packages/generated/dev/abis/IEntitlementDataQueryableBase.metadata.json @@ -43,10 +43,10 @@ }, "sources": { "contracts/src/spaces/facets/entitlements/extensions/IEntitlementDataQueryable.sol": { - "keccak256": "0x7b43371418a8298bf582580bc884d3a319c812cd89fae988af19a1935c92c497", + "keccak256": "0x408fcf935d47c3696901b138edbe3f862e63227e45a80be0154a21d39d6a4030", "urls": [ - "bzz-raw://f2fd3c564fc93121ea8be125da9d87df2807d53efece4cfb46776eb19caa46c2", - "dweb:/ipfs/QmW8r4i8e9SRkDWC14Fvdwrc9RgTX9FJ49ymfhd6a5DVNR" + "bzz-raw://dab36eda141004d86570adf5daf5d011186bedea42c183eada86e4a24c3e15f3", + "dweb:/ipfs/QmbSenMpHd3CW7LASFJmrbVZea7ueTS74NWjymEBMdpHbe" ], "license": "MIT" } diff --git a/packages/generated/dev/abis/IRuleEntitlement.abi.json b/packages/generated/dev/abis/IRuleEntitlement.abi.json index 5b8d95688..c53141a6e 100644 --- a/packages/generated/dev/abis/IRuleEntitlement.abi.json +++ b/packages/generated/dev/abis/IRuleEntitlement.abi.json @@ -19,17 +19,17 @@ { "name": "data", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -41,12 +41,12 @@ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -68,12 +68,12 @@ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", @@ -132,17 +132,17 @@ { "name": "data", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -154,12 +154,12 @@ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -181,12 +181,12 @@ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", @@ -403,7 +403,7 @@ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" } ] }, diff --git a/packages/generated/dev/abis/IRuleEntitlement.abi.ts b/packages/generated/dev/abis/IRuleEntitlement.abi.ts index c8d264418..b1349ffa1 100644 --- a/packages/generated/dev/abis/IRuleEntitlement.abi.ts +++ b/packages/generated/dev/abis/IRuleEntitlement.abi.ts @@ -19,17 +19,17 @@ export default [ { "name": "data", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -41,12 +41,12 @@ export default [ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -68,12 +68,12 @@ export default [ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", @@ -132,17 +132,17 @@ export default [ { "name": "data", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -154,12 +154,12 @@ export default [ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -181,12 +181,12 @@ export default [ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", @@ -403,7 +403,7 @@ export default [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" } ] }, diff --git a/packages/generated/dev/abis/IRuleEntitlement.json b/packages/generated/dev/abis/IRuleEntitlement.json index b74935156..6175b60ca 100644 --- a/packages/generated/dev/abis/IRuleEntitlement.json +++ b/packages/generated/dev/abis/IRuleEntitlement.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"description","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"encodeRuleData","inputs":[{"name":"data","type":"tuple","internalType":"struct IRuleEntitlement.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlement.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlement.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"getEntitlementDataByRoleId","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRuleData","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct IRuleEntitlement.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlement.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlement.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"space","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCrosschain","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isEntitled","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"user","type":"address[]","internalType":"address[]"},{"name":"permission","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleType","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"removeEntitlement","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEntitlement","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"entitlementData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"CheckOperationsLimitReaced","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Entitlement__InvalidValue","inputs":[]},{"type":"error","name":"Entitlement__NotAllowed","inputs":[]},{"type":"error","name":"Entitlement__NotMember","inputs":[]},{"type":"error","name":"Entitlement__ValueAlreadyExists","inputs":[]},{"type":"error","name":"InvalidCheckOperationIndex","inputs":[{"name":"operationIndex","type":"uint8","internalType":"uint8"},{"name":"checkOperationsLength","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidLeftOperationIndex","inputs":[{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"currentOperationIndex","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidLogicalOperationIndex","inputs":[{"name":"operationIndex","type":"uint8","internalType":"uint8"},{"name":"logicalOperationsLength","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidOperationType","inputs":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CombinedOperationType"}]},{"type":"error","name":"InvalidRightOperationIndex","inputs":[{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"},{"name":"currentOperationIndex","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"LogicalOperationLimitReached","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OperationsLimitReached","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"description()":"7284e416","encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]))":"5d115072","getEntitlementDataByRoleId(uint256)":"1eee07b2","getRuleData(uint256)":"069a3ee9","initialize(address)":"c4d66de8","isCrosschain()":"2e1b61e4","isEntitled(bytes32,address[],bytes32)":"0cf0b533","moduleType()":"6465e69f","name()":"06fdde03","removeEntitlement(uint256)":"f0c111f9","setEntitlement(uint256,bytes)":"ef8be574"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"CheckOperationsLimitReaced\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__ValueAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"operationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"checkOperationsLength\",\"type\":\"uint8\"}],\"name\":\"InvalidCheckOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"currentOperationIndex\",\"type\":\"uint8\"}],\"name\":\"InvalidLeftOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"operationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"logicalOperationsLength\",\"type\":\"uint8\"}],\"name\":\"InvalidLogicalOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IRuleEntitlement.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"}],\"name\":\"InvalidOperationType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"currentOperationIndex\",\"type\":\"uint8\"}],\"name\":\"InvalidRightOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LogicalOperationLimitReached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"OperationsLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlement.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlement.RuleData\",\"name\":\"data\",\"type\":\"tuple\"}],\"name\":\"encodeRuleData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getEntitlementDataByRoleId\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getRuleData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlement.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlement.RuleData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCrosschain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"permission\",\"type\":\"bytes32\"}],\"name\":\"isEntitled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"moduleType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"removeEntitlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"entitlementData\",\"type\":\"bytes\"}],\"name\":\"setEntitlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract manages entitlement rules based on blockchain operations. The contract maintains a tree-like data structure to combine various types of operations. The tree is implemented as a dynamic array of 'Operation' structs, and is built in post-order fashion. Post-order Tree Structure: In a post-order binary tree, children nodes must be added before their respective parent nodes. The 'LogicalOperation' nodes refer to their child nodes via indices in the 'operations' array. As new LogicalOperation nodes are added, they can only reference existing nodes in the 'operations' array, ensuring a valid post-order tree structure.\",\"kind\":\"dev\",\"methods\":{\"encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]))\":{\"params\":{\"data\":\"RuleData struct to encode\"},\"returns\":{\"_0\":\"Encoded bytes of the RuleData struct\"}},\"getEntitlementDataByRoleId(uint256)\":{\"params\":{\"roleId\":\"the roleId to fetch the entitlement data for\"},\"returns\":{\"_0\":\"entitlementData array for the role\"}},\"getRuleData(uint256)\":{\"params\":{\"roleId\":\"Role ID\"},\"returns\":{\"data\":\"RuleData struct\"}},\"isCrosschain()\":{\"returns\":{\"_0\":\"whether this entitlement will require crosschain evaluation\"}},\"isEntitled(bytes32,address[],bytes32)\":{\"params\":{\"channelId\":\"id of the channel to check, if empty, checks space\",\"permission\":\"the permission to check\",\"user\":\"address of the user to check\"},\"returns\":{\"_0\":\"whether the user is entitled to the permission\"}},\"removeEntitlement(uint256)\":{\"params\":{\"roleId\":\"id of the role to remove\"}},\"setEntitlement(uint256,bytes)\":{\"params\":{\"entitlementData\":\"abi encoded array of data necessary to set the entitlement\",\"roleId\":\"id of the role to gate\"}}},\"title\":\"RuleEntitlement\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"description()\":{\"notice\":\"The description of the entitlement module\"},\"encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]))\":{\"notice\":\"Encodes the RuleData struct into bytes\"},\"getEntitlementDataByRoleId(uint256)\":{\"notice\":\"fetches the entitlement data for a roleId\"},\"getRuleData(uint256)\":{\"notice\":\"Decodes the RuleData struct from bytes\"},\"initialize(address)\":{\"notice\":\"initializes the entitlement module\"},\"isCrosschain()\":{\"notice\":\"some entitlements require cross chain evaluation and may not be executed directly from other contracts\"},\"isEntitled(bytes32,address[],bytes32)\":{\"notice\":\"checks whether a user is has a given permission for a channel or a space\"},\"moduleType()\":{\"notice\":\"The type of the entitlement module\"},\"name()\":{\"notice\":\"The name of the entitlement module\"},\"removeEntitlement(uint256)\":{\"notice\":\"removes an entitlement\"},\"setEntitlement(uint256,bytes)\":{\"notice\":\"sets a new entitlement\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":\"IRuleEntitlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":{\"keccak256\":\"0x28650d058077713dfc28d5c613998d9f1e895a6f5f6b0d93467d25455fc3ea1d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2446b7958f8b5f2713860e2826acf1b123c6b24719f844c7811d1e3f5a87c86\",\"dweb:/ipfs/Qmesso9ftmVUCHi6w2gkJs9tEjGG5ZZgqhAenkyTDgFPC2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"CheckOperationsLimitReaced"},{"inputs":[],"type":"error","name":"Entitlement__InvalidValue"},{"inputs":[],"type":"error","name":"Entitlement__NotAllowed"},{"inputs":[],"type":"error","name":"Entitlement__NotMember"},{"inputs":[],"type":"error","name":"Entitlement__ValueAlreadyExists"},{"inputs":[{"internalType":"uint8","name":"operationIndex","type":"uint8"},{"internalType":"uint8","name":"checkOperationsLength","type":"uint8"}],"type":"error","name":"InvalidCheckOperationIndex"},{"inputs":[{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"currentOperationIndex","type":"uint8"}],"type":"error","name":"InvalidLeftOperationIndex"},{"inputs":[{"internalType":"uint8","name":"operationIndex","type":"uint8"},{"internalType":"uint8","name":"logicalOperationsLength","type":"uint8"}],"type":"error","name":"InvalidLogicalOperationIndex"},{"inputs":[{"internalType":"enum IRuleEntitlement.CombinedOperationType","name":"opType","type":"uint8"}],"type":"error","name":"InvalidOperationType"},{"inputs":[{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"},{"internalType":"uint8","name":"currentOperationIndex","type":"uint8"}],"type":"error","name":"InvalidRightOperationIndex"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LogicalOperationLimitReached"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"OperationsLimitReached"},{"inputs":[],"stateMutability":"view","type":"function","name":"description","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"struct IRuleEntitlement.RuleData","name":"data","type":"tuple","components":[{"internalType":"struct IRuleEntitlement.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlement.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlement.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}],"stateMutability":"pure","type":"function","name":"encodeRuleData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getEntitlementDataByRoleId","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRuleData","outputs":[{"internalType":"struct IRuleEntitlement.RuleData","name":"data","type":"tuple","components":[{"internalType":"struct IRuleEntitlement.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlement.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlement.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}]},{"inputs":[{"internalType":"address","name":"space","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isCrosschain","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"address[]","name":"user","type":"address[]"},{"internalType":"bytes32","name":"permission","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isEntitled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"moduleType","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeEntitlement"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"bytes","name":"entitlementData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setEntitlement"}],"devdoc":{"kind":"dev","methods":{"encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]))":{"params":{"data":"RuleData struct to encode"},"returns":{"_0":"Encoded bytes of the RuleData struct"}},"getEntitlementDataByRoleId(uint256)":{"params":{"roleId":"the roleId to fetch the entitlement data for"},"returns":{"_0":"entitlementData array for the role"}},"getRuleData(uint256)":{"params":{"roleId":"Role ID"},"returns":{"data":"RuleData struct"}},"isCrosschain()":{"returns":{"_0":"whether this entitlement will require crosschain evaluation"}},"isEntitled(bytes32,address[],bytes32)":{"params":{"channelId":"id of the channel to check, if empty, checks space","permission":"the permission to check","user":"address of the user to check"},"returns":{"_0":"whether the user is entitled to the permission"}},"removeEntitlement(uint256)":{"params":{"roleId":"id of the role to remove"}},"setEntitlement(uint256,bytes)":{"params":{"entitlementData":"abi encoded array of data necessary to set the entitlement","roleId":"id of the role to gate"}}},"version":1},"userdoc":{"kind":"user","methods":{"description()":{"notice":"The description of the entitlement module"},"encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]))":{"notice":"Encodes the RuleData struct into bytes"},"getEntitlementDataByRoleId(uint256)":{"notice":"fetches the entitlement data for a roleId"},"getRuleData(uint256)":{"notice":"Decodes the RuleData struct from bytes"},"initialize(address)":{"notice":"initializes the entitlement module"},"isCrosschain()":{"notice":"some entitlements require cross chain evaluation and may not be executed directly from other contracts"},"isEntitled(bytes32,address[],bytes32)":{"notice":"checks whether a user is has a given permission for a channel or a space"},"moduleType()":{"notice":"The type of the entitlement module"},"name()":{"notice":"The name of the entitlement module"},"removeEntitlement(uint256)":{"notice":"removes an entitlement"},"setEntitlement(uint256,bytes)":{"notice":"sets a new entitlement"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":"IRuleEntitlement"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":{"keccak256":"0x28650d058077713dfc28d5c613998d9f1e895a6f5f6b0d93467d25455fc3ea1d","urls":["bzz-raw://e2446b7958f8b5f2713860e2826acf1b123c6b24719f844c7811d1e3f5a87c86","dweb:/ipfs/Qmesso9ftmVUCHi6w2gkJs9tEjGG5ZZgqhAenkyTDgFPC2"],"license":"MIT"}},"version":1},"id":172} \ No newline at end of file +{"abi":[{"type":"function","name":"description","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"encodeRuleData","inputs":[{"name":"data","type":"tuple","internalType":"struct IRuleEntitlementBase.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlementBase.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"getEntitlementDataByRoleId","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRuleData","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct IRuleEntitlementBase.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlementBase.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"space","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCrosschain","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isEntitled","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"user","type":"address[]","internalType":"address[]"},{"name":"permission","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleType","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"removeEntitlement","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEntitlement","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"entitlementData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"CheckOperationsLimitReaced","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Entitlement__InvalidValue","inputs":[]},{"type":"error","name":"Entitlement__NotAllowed","inputs":[]},{"type":"error","name":"Entitlement__NotMember","inputs":[]},{"type":"error","name":"Entitlement__ValueAlreadyExists","inputs":[]},{"type":"error","name":"InvalidCheckOperationIndex","inputs":[{"name":"operationIndex","type":"uint8","internalType":"uint8"},{"name":"checkOperationsLength","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidLeftOperationIndex","inputs":[{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"currentOperationIndex","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidLogicalOperationIndex","inputs":[{"name":"operationIndex","type":"uint8","internalType":"uint8"},{"name":"logicalOperationsLength","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidOperationType","inputs":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CombinedOperationType"}]},{"type":"error","name":"InvalidRightOperationIndex","inputs":[{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"},{"name":"currentOperationIndex","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"LogicalOperationLimitReached","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OperationsLimitReached","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"description()":"7284e416","encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]))":"5d115072","getEntitlementDataByRoleId(uint256)":"1eee07b2","getRuleData(uint256)":"069a3ee9","initialize(address)":"c4d66de8","isCrosschain()":"2e1b61e4","isEntitled(bytes32,address[],bytes32)":"0cf0b533","moduleType()":"6465e69f","name()":"06fdde03","removeEntitlement(uint256)":"f0c111f9","setEntitlement(uint256,bytes)":"ef8be574"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"CheckOperationsLimitReaced\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__ValueAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"operationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"checkOperationsLength\",\"type\":\"uint8\"}],\"name\":\"InvalidCheckOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"currentOperationIndex\",\"type\":\"uint8\"}],\"name\":\"InvalidLeftOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"operationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"logicalOperationsLength\",\"type\":\"uint8\"}],\"name\":\"InvalidLogicalOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IRuleEntitlementBase.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"}],\"name\":\"InvalidOperationType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"currentOperationIndex\",\"type\":\"uint8\"}],\"name\":\"InvalidRightOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LogicalOperationLimitReached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"OperationsLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlementBase.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlementBase.RuleData\",\"name\":\"data\",\"type\":\"tuple\"}],\"name\":\"encodeRuleData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getEntitlementDataByRoleId\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getRuleData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlementBase.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlementBase.RuleData\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCrosschain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"permission\",\"type\":\"bytes32\"}],\"name\":\"isEntitled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"moduleType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"removeEntitlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"entitlementData\",\"type\":\"bytes\"}],\"name\":\"setEntitlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]))\":{\"params\":{\"data\":\"RuleData struct to encode\"},\"returns\":{\"_0\":\"Encoded bytes of the RuleData struct\"}},\"getEntitlementDataByRoleId(uint256)\":{\"params\":{\"roleId\":\"the roleId to fetch the entitlement data for\"},\"returns\":{\"_0\":\"entitlementData array for the role\"}},\"getRuleData(uint256)\":{\"params\":{\"roleId\":\"Role ID\"},\"returns\":{\"data\":\"RuleData struct\"}},\"isCrosschain()\":{\"returns\":{\"_0\":\"whether this entitlement will require crosschain evaluation\"}},\"isEntitled(bytes32,address[],bytes32)\":{\"params\":{\"channelId\":\"id of the channel to check, if empty, checks space\",\"permission\":\"the permission to check\",\"user\":\"address of the user to check\"},\"returns\":{\"_0\":\"whether the user is entitled to the permission\"}},\"removeEntitlement(uint256)\":{\"params\":{\"roleId\":\"id of the role to remove\"}},\"setEntitlement(uint256,bytes)\":{\"params\":{\"entitlementData\":\"abi encoded array of data necessary to set the entitlement\",\"roleId\":\"id of the role to gate\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"description()\":{\"notice\":\"The description of the entitlement module\"},\"encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]))\":{\"notice\":\"Encodes the RuleData struct into bytes\"},\"getEntitlementDataByRoleId(uint256)\":{\"notice\":\"fetches the entitlement data for a roleId\"},\"getRuleData(uint256)\":{\"notice\":\"Decodes the RuleData struct from bytes\"},\"initialize(address)\":{\"notice\":\"initializes the entitlement module\"},\"isCrosschain()\":{\"notice\":\"some entitlements require cross chain evaluation and may not be executed directly from other contracts\"},\"isEntitled(bytes32,address[],bytes32)\":{\"notice\":\"checks whether a user is has a given permission for a channel or a space\"},\"moduleType()\":{\"notice\":\"The type of the entitlement module\"},\"name()\":{\"notice\":\"The name of the entitlement module\"},\"removeEntitlement(uint256)\":{\"notice\":\"removes an entitlement\"},\"setEntitlement(uint256,bytes)\":{\"notice\":\"sets a new entitlement\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":\"IRuleEntitlement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":{\"keccak256\":\"0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd\",\"dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"CheckOperationsLimitReaced"},{"inputs":[],"type":"error","name":"Entitlement__InvalidValue"},{"inputs":[],"type":"error","name":"Entitlement__NotAllowed"},{"inputs":[],"type":"error","name":"Entitlement__NotMember"},{"inputs":[],"type":"error","name":"Entitlement__ValueAlreadyExists"},{"inputs":[{"internalType":"uint8","name":"operationIndex","type":"uint8"},{"internalType":"uint8","name":"checkOperationsLength","type":"uint8"}],"type":"error","name":"InvalidCheckOperationIndex"},{"inputs":[{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"currentOperationIndex","type":"uint8"}],"type":"error","name":"InvalidLeftOperationIndex"},{"inputs":[{"internalType":"uint8","name":"operationIndex","type":"uint8"},{"internalType":"uint8","name":"logicalOperationsLength","type":"uint8"}],"type":"error","name":"InvalidLogicalOperationIndex"},{"inputs":[{"internalType":"enum IRuleEntitlementBase.CombinedOperationType","name":"opType","type":"uint8"}],"type":"error","name":"InvalidOperationType"},{"inputs":[{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"},{"internalType":"uint8","name":"currentOperationIndex","type":"uint8"}],"type":"error","name":"InvalidRightOperationIndex"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LogicalOperationLimitReached"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"OperationsLimitReached"},{"inputs":[],"stateMutability":"view","type":"function","name":"description","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"struct IRuleEntitlementBase.RuleData","name":"data","type":"tuple","components":[{"internalType":"struct IRuleEntitlementBase.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlementBase.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlementBase.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}],"stateMutability":"pure","type":"function","name":"encodeRuleData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getEntitlementDataByRoleId","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRuleData","outputs":[{"internalType":"struct IRuleEntitlementBase.RuleData","name":"data","type":"tuple","components":[{"internalType":"struct IRuleEntitlementBase.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlementBase.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlementBase.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}]},{"inputs":[{"internalType":"address","name":"space","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isCrosschain","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"address[]","name":"user","type":"address[]"},{"internalType":"bytes32","name":"permission","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isEntitled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"moduleType","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeEntitlement"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"bytes","name":"entitlementData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setEntitlement"}],"devdoc":{"kind":"dev","methods":{"encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]))":{"params":{"data":"RuleData struct to encode"},"returns":{"_0":"Encoded bytes of the RuleData struct"}},"getEntitlementDataByRoleId(uint256)":{"params":{"roleId":"the roleId to fetch the entitlement data for"},"returns":{"_0":"entitlementData array for the role"}},"getRuleData(uint256)":{"params":{"roleId":"Role ID"},"returns":{"data":"RuleData struct"}},"isCrosschain()":{"returns":{"_0":"whether this entitlement will require crosschain evaluation"}},"isEntitled(bytes32,address[],bytes32)":{"params":{"channelId":"id of the channel to check, if empty, checks space","permission":"the permission to check","user":"address of the user to check"},"returns":{"_0":"whether the user is entitled to the permission"}},"removeEntitlement(uint256)":{"params":{"roleId":"id of the role to remove"}},"setEntitlement(uint256,bytes)":{"params":{"entitlementData":"abi encoded array of data necessary to set the entitlement","roleId":"id of the role to gate"}}},"version":1},"userdoc":{"kind":"user","methods":{"description()":{"notice":"The description of the entitlement module"},"encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]))":{"notice":"Encodes the RuleData struct into bytes"},"getEntitlementDataByRoleId(uint256)":{"notice":"fetches the entitlement data for a roleId"},"getRuleData(uint256)":{"notice":"Decodes the RuleData struct from bytes"},"initialize(address)":{"notice":"initializes the entitlement module"},"isCrosschain()":{"notice":"some entitlements require cross chain evaluation and may not be executed directly from other contracts"},"isEntitled(bytes32,address[],bytes32)":{"notice":"checks whether a user is has a given permission for a channel or a space"},"moduleType()":{"notice":"The type of the entitlement module"},"name()":{"notice":"The name of the entitlement module"},"removeEntitlement(uint256)":{"notice":"removes an entitlement"},"setEntitlement(uint256,bytes)":{"notice":"sets a new entitlement"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":"IRuleEntitlement"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":{"keccak256":"0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27","urls":["bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd","dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j"],"license":"MIT"}},"version":1},"id":171} \ No newline at end of file diff --git a/packages/generated/dev/abis/IRuleEntitlement.metadata.json b/packages/generated/dev/abis/IRuleEntitlement.metadata.json index 00fc187c1..b98f3fb5b 100644 --- a/packages/generated/dev/abis/IRuleEntitlement.metadata.json +++ b/packages/generated/dev/abis/IRuleEntitlement.metadata.json @@ -87,7 +87,7 @@ { "inputs": [ { - "internalType": "enum IRuleEntitlement.CombinedOperationType", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType", "name": "opType", "type": "uint8" } @@ -149,17 +149,17 @@ { "inputs": [ { - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "name": "data", "type": "tuple", "components": [ { - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "name": "operations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CombinedOperationType", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType", "name": "opType", "type": "uint8" }, @@ -171,12 +171,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "name": "checkOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CheckOperationType", + "internalType": "enum IRuleEntitlementBase.CheckOperationType", "name": "opType", "type": "uint8" }, @@ -198,12 +198,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "name": "logicalOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.LogicalOperationType", + "internalType": "enum IRuleEntitlementBase.LogicalOperationType", "name": "logOpType", "type": "uint8" }, @@ -265,17 +265,17 @@ "name": "getRuleData", "outputs": [ { - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "name": "data", "type": "tuple", "components": [ { - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "name": "operations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CombinedOperationType", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType", "name": "opType", "type": "uint8" }, @@ -287,12 +287,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "name": "checkOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CheckOperationType", + "internalType": "enum IRuleEntitlementBase.CheckOperationType", "name": "opType", "type": "uint8" }, @@ -314,12 +314,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "name": "logicalOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.LogicalOperationType", + "internalType": "enum IRuleEntitlementBase.LogicalOperationType", "name": "logOpType", "type": "uint8" }, @@ -580,10 +580,10 @@ "license": "MIT" }, "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol": { - "keccak256": "0x28650d058077713dfc28d5c613998d9f1e895a6f5f6b0d93467d25455fc3ea1d", + "keccak256": "0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27", "urls": [ - "bzz-raw://e2446b7958f8b5f2713860e2826acf1b123c6b24719f844c7811d1e3f5a87c86", - "dweb:/ipfs/Qmesso9ftmVUCHi6w2gkJs9tEjGG5ZZgqhAenkyTDgFPC2" + "bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd", + "dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j" ], "license": "MIT" } diff --git a/packages/generated/dev/abis/IRuleEntitlementBase.abi.json b/packages/generated/dev/abis/IRuleEntitlementBase.abi.json new file mode 100644 index 000000000..00504005b --- /dev/null +++ b/packages/generated/dev/abis/IRuleEntitlementBase.abi.json @@ -0,0 +1,110 @@ +[ + { + "type": "error", + "name": "CheckOperationsLimitReaced", + "inputs": [ + { + "name": "limit", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "InvalidCheckOperationIndex", + "inputs": [ + { + "name": "operationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "checkOperationsLength", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "InvalidLeftOperationIndex", + "inputs": [ + { + "name": "leftOperationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "currentOperationIndex", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "InvalidLogicalOperationIndex", + "inputs": [ + { + "name": "operationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "logicalOperationsLength", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "InvalidOperationType", + "inputs": [ + { + "name": "opType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" + } + ] + }, + { + "type": "error", + "name": "InvalidRightOperationIndex", + "inputs": [ + { + "name": "rightOperationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "currentOperationIndex", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "LogicalOperationLimitReached", + "inputs": [ + { + "name": "limit", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "OperationsLimitReached", + "inputs": [ + { + "name": "limit", + "type": "uint256", + "internalType": "uint256" + } + ] + } +] \ No newline at end of file diff --git a/packages/generated/dev/abis/IRuleEntitlementBase.abi.ts b/packages/generated/dev/abis/IRuleEntitlementBase.abi.ts new file mode 100644 index 000000000..52c9b65ce --- /dev/null +++ b/packages/generated/dev/abis/IRuleEntitlementBase.abi.ts @@ -0,0 +1,110 @@ +export default [ + { + "type": "error", + "name": "CheckOperationsLimitReaced", + "inputs": [ + { + "name": "limit", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "InvalidCheckOperationIndex", + "inputs": [ + { + "name": "operationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "checkOperationsLength", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "InvalidLeftOperationIndex", + "inputs": [ + { + "name": "leftOperationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "currentOperationIndex", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "InvalidLogicalOperationIndex", + "inputs": [ + { + "name": "operationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "logicalOperationsLength", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "InvalidOperationType", + "inputs": [ + { + "name": "opType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" + } + ] + }, + { + "type": "error", + "name": "InvalidRightOperationIndex", + "inputs": [ + { + "name": "rightOperationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "currentOperationIndex", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "LogicalOperationLimitReached", + "inputs": [ + { + "name": "limit", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "OperationsLimitReached", + "inputs": [ + { + "name": "limit", + "type": "uint256", + "internalType": "uint256" + } + ] + } +] as const diff --git a/packages/generated/dev/abis/IRuleEntitlementBase.bin b/packages/generated/dev/abis/IRuleEntitlementBase.bin new file mode 100644 index 000000000..e69de29bb diff --git a/packages/generated/dev/abis/IRuleEntitlementBase.json b/packages/generated/dev/abis/IRuleEntitlementBase.json new file mode 100644 index 000000000..93fd19638 --- /dev/null +++ b/packages/generated/dev/abis/IRuleEntitlementBase.json @@ -0,0 +1 @@ +{"abi":[{"type":"error","name":"CheckOperationsLimitReaced","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidCheckOperationIndex","inputs":[{"name":"operationIndex","type":"uint8","internalType":"uint8"},{"name":"checkOperationsLength","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidLeftOperationIndex","inputs":[{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"currentOperationIndex","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidLogicalOperationIndex","inputs":[{"name":"operationIndex","type":"uint8","internalType":"uint8"},{"name":"logicalOperationsLength","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidOperationType","inputs":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CombinedOperationType"}]},{"type":"error","name":"InvalidRightOperationIndex","inputs":[{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"},{"name":"currentOperationIndex","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"LogicalOperationLimitReached","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OperationsLimitReached","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"CheckOperationsLimitReaced\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"operationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"checkOperationsLength\",\"type\":\"uint8\"}],\"name\":\"InvalidCheckOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"currentOperationIndex\",\"type\":\"uint8\"}],\"name\":\"InvalidLeftOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"operationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"logicalOperationsLength\",\"type\":\"uint8\"}],\"name\":\"InvalidLogicalOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IRuleEntitlementBase.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"}],\"name\":\"InvalidOperationType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"currentOperationIndex\",\"type\":\"uint8\"}],\"name\":\"InvalidRightOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LogicalOperationLimitReached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"OperationsLimitReached\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"This contract manages entitlement rules based on blockchain operations. The contract maintains a tree-like data structure to combine various types of operations. The tree is implemented as a dynamic array of 'Operation' structs, and is built in post-order fashion. Post-order Tree Structure: In a post-order binary tree, children nodes must be added before their respective parent nodes. The 'LogicalOperation' nodes refer to their child nodes via indices in the 'operations' array. As new LogicalOperation nodes are added, they can only reference existing nodes in the 'operations' array, ensuring a valid post-order tree structure.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"RuleEntitlement\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":\"IRuleEntitlementBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":{\"keccak256\":\"0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd\",\"dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"CheckOperationsLimitReaced"},{"inputs":[{"internalType":"uint8","name":"operationIndex","type":"uint8"},{"internalType":"uint8","name":"checkOperationsLength","type":"uint8"}],"type":"error","name":"InvalidCheckOperationIndex"},{"inputs":[{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"currentOperationIndex","type":"uint8"}],"type":"error","name":"InvalidLeftOperationIndex"},{"inputs":[{"internalType":"uint8","name":"operationIndex","type":"uint8"},{"internalType":"uint8","name":"logicalOperationsLength","type":"uint8"}],"type":"error","name":"InvalidLogicalOperationIndex"},{"inputs":[{"internalType":"enum IRuleEntitlementBase.CombinedOperationType","name":"opType","type":"uint8"}],"type":"error","name":"InvalidOperationType"},{"inputs":[{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"},{"internalType":"uint8","name":"currentOperationIndex","type":"uint8"}],"type":"error","name":"InvalidRightOperationIndex"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LogicalOperationLimitReached"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"OperationsLimitReached"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":"IRuleEntitlementBase"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":{"keccak256":"0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27","urls":["bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd","dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j"],"license":"MIT"}},"version":1},"id":171} \ No newline at end of file diff --git a/packages/generated/dev/abis/IRuleEntitlementBase.metadata.json b/packages/generated/dev/abis/IRuleEntitlementBase.metadata.json new file mode 100644 index 000000000..5417cd5ac --- /dev/null +++ b/packages/generated/dev/abis/IRuleEntitlementBase.metadata.json @@ -0,0 +1,172 @@ +{ + "compiler": { + "version": "0.8.24+commit.e11b9ed9" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "limit", + "type": "uint256" + } + ], + "type": "error", + "name": "CheckOperationsLimitReaced" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "operationIndex", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "checkOperationsLength", + "type": "uint8" + } + ], + "type": "error", + "name": "InvalidCheckOperationIndex" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "leftOperationIndex", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "currentOperationIndex", + "type": "uint8" + } + ], + "type": "error", + "name": "InvalidLeftOperationIndex" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "operationIndex", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "logicalOperationsLength", + "type": "uint8" + } + ], + "type": "error", + "name": "InvalidLogicalOperationIndex" + }, + { + "inputs": [ + { + "internalType": "enum IRuleEntitlementBase.CombinedOperationType", + "name": "opType", + "type": "uint8" + } + ], + "type": "error", + "name": "InvalidOperationType" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "rightOperationIndex", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "currentOperationIndex", + "type": "uint8" + } + ], + "type": "error", + "name": "InvalidRightOperationIndex" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "limit", + "type": "uint256" + } + ], + "type": "error", + "name": "LogicalOperationLimitReached" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "limit", + "type": "uint256" + } + ], + "type": "error", + "name": "OperationsLimitReached" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + }, + "settings": { + "remappings": [ + "@openzeppelin/=lib/@openzeppelin/", + "@prb/math/=lib/@prb/math/src/", + "@prb/test/=lib/@prb/test/src/", + "account-abstraction/=lib/account-abstraction/contracts/", + "base64/=lib/base64/", + "ds-test/=lib/ds-test/src/", + "forge-std/=lib/forge-std/src/", + "hardhat-deploy/=lib/hardhat-deploy/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "none", + "appendCBOR": false + }, + "compilationTarget": { + "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol": "IRuleEntitlementBase" + }, + "evmVersion": "paris", + "libraries": {} + }, + "sources": { + "contracts/src/spaces/entitlements/IEntitlement.sol": { + "keccak256": "0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd", + "urls": [ + "bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca", + "dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8" + ], + "license": "MIT" + }, + "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol": { + "keccak256": "0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27", + "urls": [ + "bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd", + "dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j" + ], + "license": "MIT" + } + }, + "version": 1 +} \ No newline at end of file diff --git a/packages/generated/dev/abis/IRuleEntitlementV2.abi.json b/packages/generated/dev/abis/IRuleEntitlementV2.abi.json new file mode 100644 index 000000000..067f8d850 --- /dev/null +++ b/packages/generated/dev/abis/IRuleEntitlementV2.abi.json @@ -0,0 +1,448 @@ +[ + { + "type": "function", + "name": "description", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "encodeRuleData", + "inputs": [ + { + "name": "data", + "type": "tuple", + "internalType": "struct IRuleEntitlementBase.RuleDataV2", + "components": [ + { + "name": "operations", + "type": "tuple[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", + "components": [ + { + "name": "opType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" + }, + { + "name": "index", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "name": "checkOperations", + "type": "tuple[]", + "internalType": "struct IRuleEntitlementBase.CheckOperationV2[]", + "components": [ + { + "name": "opType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.CheckOperationType" + }, + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "contractAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "params", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "logicalOperations", + "type": "tuple[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", + "components": [ + { + "name": "logOpType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" + }, + { + "name": "leftOperationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "rightOperationIndex", + "type": "uint8", + "internalType": "uint8" + } + ] + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "getEntitlementDataByRoleId", + "inputs": [ + { + "name": "roleId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRuleDataV2", + "inputs": [ + { + "name": "roleId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "data", + "type": "tuple", + "internalType": "struct IRuleEntitlementBase.RuleDataV2", + "components": [ + { + "name": "operations", + "type": "tuple[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", + "components": [ + { + "name": "opType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" + }, + { + "name": "index", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "name": "checkOperations", + "type": "tuple[]", + "internalType": "struct IRuleEntitlementBase.CheckOperationV2[]", + "components": [ + { + "name": "opType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.CheckOperationType" + }, + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "contractAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "params", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "logicalOperations", + "type": "tuple[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", + "components": [ + { + "name": "logOpType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" + }, + { + "name": "leftOperationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "rightOperationIndex", + "type": "uint8", + "internalType": "uint8" + } + ] + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "space", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "isCrosschain", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isEntitled", + "inputs": [ + { + "name": "channelId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "user", + "type": "address[]", + "internalType": "address[]" + }, + { + "name": "permission", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "moduleType", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "removeEntitlement", + "inputs": [ + { + "name": "roleId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setEntitlement", + "inputs": [ + { + "name": "roleId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "entitlementData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "error", + "name": "CheckOperationsLimitReaced", + "inputs": [ + { + "name": "limit", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "Entitlement__InvalidValue", + "inputs": [] + }, + { + "type": "error", + "name": "Entitlement__NotAllowed", + "inputs": [] + }, + { + "type": "error", + "name": "Entitlement__NotMember", + "inputs": [] + }, + { + "type": "error", + "name": "Entitlement__ValueAlreadyExists", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidCheckOperationIndex", + "inputs": [ + { + "name": "operationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "checkOperationsLength", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "InvalidLeftOperationIndex", + "inputs": [ + { + "name": "leftOperationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "currentOperationIndex", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "InvalidLogicalOperationIndex", + "inputs": [ + { + "name": "operationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "logicalOperationsLength", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "InvalidOperationType", + "inputs": [ + { + "name": "opType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" + } + ] + }, + { + "type": "error", + "name": "InvalidRightOperationIndex", + "inputs": [ + { + "name": "rightOperationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "currentOperationIndex", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "LogicalOperationLimitReached", + "inputs": [ + { + "name": "limit", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "OperationsLimitReached", + "inputs": [ + { + "name": "limit", + "type": "uint256", + "internalType": "uint256" + } + ] + } +] \ No newline at end of file diff --git a/packages/generated/dev/abis/IRuleEntitlementV2.abi.ts b/packages/generated/dev/abis/IRuleEntitlementV2.abi.ts new file mode 100644 index 000000000..b3d790067 --- /dev/null +++ b/packages/generated/dev/abis/IRuleEntitlementV2.abi.ts @@ -0,0 +1,448 @@ +export default [ + { + "type": "function", + "name": "description", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "encodeRuleData", + "inputs": [ + { + "name": "data", + "type": "tuple", + "internalType": "struct IRuleEntitlementBase.RuleDataV2", + "components": [ + { + "name": "operations", + "type": "tuple[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", + "components": [ + { + "name": "opType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" + }, + { + "name": "index", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "name": "checkOperations", + "type": "tuple[]", + "internalType": "struct IRuleEntitlementBase.CheckOperationV2[]", + "components": [ + { + "name": "opType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.CheckOperationType" + }, + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "contractAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "params", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "logicalOperations", + "type": "tuple[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", + "components": [ + { + "name": "logOpType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" + }, + { + "name": "leftOperationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "rightOperationIndex", + "type": "uint8", + "internalType": "uint8" + } + ] + } + ] + } + ], + "outputs": [ + { + "name": "", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "pure" + }, + { + "type": "function", + "name": "getEntitlementDataByRoleId", + "inputs": [ + { + "name": "roleId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "bytes", + "internalType": "bytes" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "getRuleDataV2", + "inputs": [ + { + "name": "roleId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "data", + "type": "tuple", + "internalType": "struct IRuleEntitlementBase.RuleDataV2", + "components": [ + { + "name": "operations", + "type": "tuple[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", + "components": [ + { + "name": "opType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" + }, + { + "name": "index", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "name": "checkOperations", + "type": "tuple[]", + "internalType": "struct IRuleEntitlementBase.CheckOperationV2[]", + "components": [ + { + "name": "opType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.CheckOperationType" + }, + { + "name": "chainId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "contractAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "params", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "logicalOperations", + "type": "tuple[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", + "components": [ + { + "name": "logOpType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" + }, + { + "name": "leftOperationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "rightOperationIndex", + "type": "uint8", + "internalType": "uint8" + } + ] + } + ] + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialize", + "inputs": [ + { + "name": "space", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "isCrosschain", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "isEntitled", + "inputs": [ + { + "name": "channelId", + "type": "bytes32", + "internalType": "bytes32" + }, + { + "name": "user", + "type": "address[]", + "internalType": "address[]" + }, + { + "name": "permission", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "moduleType", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "name", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "string", + "internalType": "string" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "removeEntitlement", + "inputs": [ + { + "name": "roleId", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setEntitlement", + "inputs": [ + { + "name": "roleId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "entitlementData", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "error", + "name": "CheckOperationsLimitReaced", + "inputs": [ + { + "name": "limit", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "Entitlement__InvalidValue", + "inputs": [] + }, + { + "type": "error", + "name": "Entitlement__NotAllowed", + "inputs": [] + }, + { + "type": "error", + "name": "Entitlement__NotMember", + "inputs": [] + }, + { + "type": "error", + "name": "Entitlement__ValueAlreadyExists", + "inputs": [] + }, + { + "type": "error", + "name": "InvalidCheckOperationIndex", + "inputs": [ + { + "name": "operationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "checkOperationsLength", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "InvalidLeftOperationIndex", + "inputs": [ + { + "name": "leftOperationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "currentOperationIndex", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "InvalidLogicalOperationIndex", + "inputs": [ + { + "name": "operationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "logicalOperationsLength", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "InvalidOperationType", + "inputs": [ + { + "name": "opType", + "type": "uint8", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" + } + ] + }, + { + "type": "error", + "name": "InvalidRightOperationIndex", + "inputs": [ + { + "name": "rightOperationIndex", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "currentOperationIndex", + "type": "uint8", + "internalType": "uint8" + } + ] + }, + { + "type": "error", + "name": "LogicalOperationLimitReached", + "inputs": [ + { + "name": "limit", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "OperationsLimitReached", + "inputs": [ + { + "name": "limit", + "type": "uint256", + "internalType": "uint256" + } + ] + } +] as const diff --git a/packages/generated/dev/abis/IRuleEntitlementV2.bin b/packages/generated/dev/abis/IRuleEntitlementV2.bin new file mode 100644 index 000000000..e69de29bb diff --git a/packages/generated/dev/abis/IRuleEntitlementV2.json b/packages/generated/dev/abis/IRuleEntitlementV2.json new file mode 100644 index 000000000..3b7af3e8c --- /dev/null +++ b/packages/generated/dev/abis/IRuleEntitlementV2.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"description","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"encodeRuleData","inputs":[{"name":"data","type":"tuple","internalType":"struct IRuleEntitlementBase.RuleDataV2","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.CheckOperationV2[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"params","type":"bytes","internalType":"bytes"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlementBase.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"getEntitlementDataByRoleId","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getRuleDataV2","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"data","type":"tuple","internalType":"struct IRuleEntitlementBase.RuleDataV2","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.CheckOperationV2[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"params","type":"bytes","internalType":"bytes"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlementBase.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"space","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCrosschain","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isEntitled","inputs":[{"name":"channelId","type":"bytes32","internalType":"bytes32"},{"name":"user","type":"address[]","internalType":"address[]"},{"name":"permission","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"moduleType","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"removeEntitlement","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setEntitlement","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"entitlementData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"CheckOperationsLimitReaced","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Entitlement__InvalidValue","inputs":[]},{"type":"error","name":"Entitlement__NotAllowed","inputs":[]},{"type":"error","name":"Entitlement__NotMember","inputs":[]},{"type":"error","name":"Entitlement__ValueAlreadyExists","inputs":[]},{"type":"error","name":"InvalidCheckOperationIndex","inputs":[{"name":"operationIndex","type":"uint8","internalType":"uint8"},{"name":"checkOperationsLength","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidLeftOperationIndex","inputs":[{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"currentOperationIndex","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidLogicalOperationIndex","inputs":[{"name":"operationIndex","type":"uint8","internalType":"uint8"},{"name":"logicalOperationsLength","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidOperationType","inputs":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CombinedOperationType"}]},{"type":"error","name":"InvalidRightOperationIndex","inputs":[{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"},{"name":"currentOperationIndex","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"LogicalOperationLimitReached","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OperationsLimitReached","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"description()":"7284e416","encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,bytes)[],(uint8,uint8,uint8)[]))":"27bbccbc","getEntitlementDataByRoleId(uint256)":"1eee07b2","getRuleDataV2(uint256)":"68ab7dd6","initialize(address)":"c4d66de8","isCrosschain()":"2e1b61e4","isEntitled(bytes32,address[],bytes32)":"0cf0b533","moduleType()":"6465e69f","name()":"06fdde03","removeEntitlement(uint256)":"f0c111f9","setEntitlement(uint256,bytes)":"ef8be574"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"CheckOperationsLimitReaced\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__ValueAlreadyExists\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"operationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"checkOperationsLength\",\"type\":\"uint8\"}],\"name\":\"InvalidCheckOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"currentOperationIndex\",\"type\":\"uint8\"}],\"name\":\"InvalidLeftOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"operationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"logicalOperationsLength\",\"type\":\"uint8\"}],\"name\":\"InvalidLogicalOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"enum IRuleEntitlementBase.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"}],\"name\":\"InvalidOperationType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"currentOperationIndex\",\"type\":\"uint8\"}],\"name\":\"InvalidRightOperationIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LogicalOperationLimitReached\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"OperationsLimitReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct IRuleEntitlementBase.CheckOperationV2[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlementBase.RuleDataV2\",\"name\":\"data\",\"type\":\"tuple\"}],\"name\":\"encodeRuleData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getEntitlementDataByRoleId\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getRuleDataV2\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"}],\"internalType\":\"struct IRuleEntitlementBase.CheckOperationV2[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlementBase.RuleDataV2\",\"name\":\"data\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isCrosschain\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"channelId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"user\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"permission\",\"type\":\"bytes32\"}],\"name\":\"isEntitled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"moduleType\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"removeEntitlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"entitlementData\",\"type\":\"bytes\"}],\"name\":\"setEntitlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,bytes)[],(uint8,uint8,uint8)[]))\":{\"params\":{\"data\":\"RuleData struct to encode\"},\"returns\":{\"_0\":\"Encoded bytes of the RuleData struct\"}},\"getEntitlementDataByRoleId(uint256)\":{\"params\":{\"roleId\":\"the roleId to fetch the entitlement data for\"},\"returns\":{\"_0\":\"entitlementData array for the role\"}},\"getRuleDataV2(uint256)\":{\"params\":{\"roleId\":\"Role ID\"},\"returns\":{\"data\":\"RuleDataV2 struct\"}},\"isCrosschain()\":{\"returns\":{\"_0\":\"whether this entitlement will require crosschain evaluation\"}},\"isEntitled(bytes32,address[],bytes32)\":{\"params\":{\"channelId\":\"id of the channel to check, if empty, checks space\",\"permission\":\"the permission to check\",\"user\":\"address of the user to check\"},\"returns\":{\"_0\":\"whether the user is entitled to the permission\"}},\"removeEntitlement(uint256)\":{\"params\":{\"roleId\":\"id of the role to remove\"}},\"setEntitlement(uint256,bytes)\":{\"params\":{\"entitlementData\":\"abi encoded array of data necessary to set the entitlement\",\"roleId\":\"id of the role to gate\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"description()\":{\"notice\":\"The description of the entitlement module\"},\"encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,bytes)[],(uint8,uint8,uint8)[]))\":{\"notice\":\"Encodes the RuleData struct into bytes\"},\"getEntitlementDataByRoleId(uint256)\":{\"notice\":\"fetches the entitlement data for a roleId\"},\"getRuleDataV2(uint256)\":{\"notice\":\"Decodes the RuleDataV2 struct from bytes\"},\"initialize(address)\":{\"notice\":\"initializes the entitlement module\"},\"isCrosschain()\":{\"notice\":\"some entitlements require cross chain evaluation and may not be executed directly from other contracts\"},\"isEntitled(bytes32,address[],bytes32)\":{\"notice\":\"checks whether a user is has a given permission for a channel or a space\"},\"moduleType()\":{\"notice\":\"The type of the entitlement module\"},\"name()\":{\"notice\":\"The name of the entitlement module\"},\"removeEntitlement(uint256)\":{\"notice\":\"removes an entitlement\"},\"setEntitlement(uint256,bytes)\":{\"notice\":\"sets a new entitlement\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":\"IRuleEntitlementV2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":{\"keccak256\":\"0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd\",\"dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"CheckOperationsLimitReaced"},{"inputs":[],"type":"error","name":"Entitlement__InvalidValue"},{"inputs":[],"type":"error","name":"Entitlement__NotAllowed"},{"inputs":[],"type":"error","name":"Entitlement__NotMember"},{"inputs":[],"type":"error","name":"Entitlement__ValueAlreadyExists"},{"inputs":[{"internalType":"uint8","name":"operationIndex","type":"uint8"},{"internalType":"uint8","name":"checkOperationsLength","type":"uint8"}],"type":"error","name":"InvalidCheckOperationIndex"},{"inputs":[{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"currentOperationIndex","type":"uint8"}],"type":"error","name":"InvalidLeftOperationIndex"},{"inputs":[{"internalType":"uint8","name":"operationIndex","type":"uint8"},{"internalType":"uint8","name":"logicalOperationsLength","type":"uint8"}],"type":"error","name":"InvalidLogicalOperationIndex"},{"inputs":[{"internalType":"enum IRuleEntitlementBase.CombinedOperationType","name":"opType","type":"uint8"}],"type":"error","name":"InvalidOperationType"},{"inputs":[{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"},{"internalType":"uint8","name":"currentOperationIndex","type":"uint8"}],"type":"error","name":"InvalidRightOperationIndex"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LogicalOperationLimitReached"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"OperationsLimitReached"},{"inputs":[],"stateMutability":"view","type":"function","name":"description","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"struct IRuleEntitlementBase.RuleDataV2","name":"data","type":"tuple","components":[{"internalType":"struct IRuleEntitlementBase.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlementBase.CheckOperationV2[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes","name":"params","type":"bytes"}]},{"internalType":"struct IRuleEntitlementBase.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}],"stateMutability":"pure","type":"function","name":"encodeRuleData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getEntitlementDataByRoleId","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRuleDataV2","outputs":[{"internalType":"struct IRuleEntitlementBase.RuleDataV2","name":"data","type":"tuple","components":[{"internalType":"struct IRuleEntitlementBase.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlementBase.CheckOperationV2[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes","name":"params","type":"bytes"}]},{"internalType":"struct IRuleEntitlementBase.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}]},{"inputs":[{"internalType":"address","name":"space","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isCrosschain","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"channelId","type":"bytes32"},{"internalType":"address[]","name":"user","type":"address[]"},{"internalType":"bytes32","name":"permission","type":"bytes32"}],"stateMutability":"view","type":"function","name":"isEntitled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"moduleType","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeEntitlement"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"bytes","name":"entitlementData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setEntitlement"}],"devdoc":{"kind":"dev","methods":{"encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,bytes)[],(uint8,uint8,uint8)[]))":{"params":{"data":"RuleData struct to encode"},"returns":{"_0":"Encoded bytes of the RuleData struct"}},"getEntitlementDataByRoleId(uint256)":{"params":{"roleId":"the roleId to fetch the entitlement data for"},"returns":{"_0":"entitlementData array for the role"}},"getRuleDataV2(uint256)":{"params":{"roleId":"Role ID"},"returns":{"data":"RuleDataV2 struct"}},"isCrosschain()":{"returns":{"_0":"whether this entitlement will require crosschain evaluation"}},"isEntitled(bytes32,address[],bytes32)":{"params":{"channelId":"id of the channel to check, if empty, checks space","permission":"the permission to check","user":"address of the user to check"},"returns":{"_0":"whether the user is entitled to the permission"}},"removeEntitlement(uint256)":{"params":{"roleId":"id of the role to remove"}},"setEntitlement(uint256,bytes)":{"params":{"entitlementData":"abi encoded array of data necessary to set the entitlement","roleId":"id of the role to gate"}}},"version":1},"userdoc":{"kind":"user","methods":{"description()":{"notice":"The description of the entitlement module"},"encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,bytes)[],(uint8,uint8,uint8)[]))":{"notice":"Encodes the RuleData struct into bytes"},"getEntitlementDataByRoleId(uint256)":{"notice":"fetches the entitlement data for a roleId"},"getRuleDataV2(uint256)":{"notice":"Decodes the RuleDataV2 struct from bytes"},"initialize(address)":{"notice":"initializes the entitlement module"},"isCrosschain()":{"notice":"some entitlements require cross chain evaluation and may not be executed directly from other contracts"},"isEntitled(bytes32,address[],bytes32)":{"notice":"checks whether a user is has a given permission for a channel or a space"},"moduleType()":{"notice":"The type of the entitlement module"},"name()":{"notice":"The name of the entitlement module"},"removeEntitlement(uint256)":{"notice":"removes an entitlement"},"setEntitlement(uint256,bytes)":{"notice":"sets a new entitlement"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":"IRuleEntitlementV2"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":{"keccak256":"0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27","urls":["bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd","dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j"],"license":"MIT"}},"version":1},"id":171} \ No newline at end of file diff --git a/packages/generated/dev/abis/IRuleEntitlementV2.metadata.json b/packages/generated/dev/abis/IRuleEntitlementV2.metadata.json new file mode 100644 index 000000000..6e63d2b65 --- /dev/null +++ b/packages/generated/dev/abis/IRuleEntitlementV2.metadata.json @@ -0,0 +1,592 @@ +{ + "compiler": { + "version": "0.8.24+commit.e11b9ed9" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "limit", + "type": "uint256" + } + ], + "type": "error", + "name": "CheckOperationsLimitReaced" + }, + { + "inputs": [], + "type": "error", + "name": "Entitlement__InvalidValue" + }, + { + "inputs": [], + "type": "error", + "name": "Entitlement__NotAllowed" + }, + { + "inputs": [], + "type": "error", + "name": "Entitlement__NotMember" + }, + { + "inputs": [], + "type": "error", + "name": "Entitlement__ValueAlreadyExists" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "operationIndex", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "checkOperationsLength", + "type": "uint8" + } + ], + "type": "error", + "name": "InvalidCheckOperationIndex" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "leftOperationIndex", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "currentOperationIndex", + "type": "uint8" + } + ], + "type": "error", + "name": "InvalidLeftOperationIndex" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "operationIndex", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "logicalOperationsLength", + "type": "uint8" + } + ], + "type": "error", + "name": "InvalidLogicalOperationIndex" + }, + { + "inputs": [ + { + "internalType": "enum IRuleEntitlementBase.CombinedOperationType", + "name": "opType", + "type": "uint8" + } + ], + "type": "error", + "name": "InvalidOperationType" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "rightOperationIndex", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "currentOperationIndex", + "type": "uint8" + } + ], + "type": "error", + "name": "InvalidRightOperationIndex" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "limit", + "type": "uint256" + } + ], + "type": "error", + "name": "LogicalOperationLimitReached" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "limit", + "type": "uint256" + } + ], + "type": "error", + "name": "OperationsLimitReached" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "description", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "struct IRuleEntitlementBase.RuleDataV2", + "name": "data", + "type": "tuple", + "components": [ + { + "internalType": "struct IRuleEntitlementBase.Operation[]", + "name": "operations", + "type": "tuple[]", + "components": [ + { + "internalType": "enum IRuleEntitlementBase.CombinedOperationType", + "name": "opType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "index", + "type": "uint8" + } + ] + }, + { + "internalType": "struct IRuleEntitlementBase.CheckOperationV2[]", + "name": "checkOperations", + "type": "tuple[]", + "components": [ + { + "internalType": "enum IRuleEntitlementBase.CheckOperationType", + "name": "opType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", + "name": "logicalOperations", + "type": "tuple[]", + "components": [ + { + "internalType": "enum IRuleEntitlementBase.LogicalOperationType", + "name": "logOpType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "leftOperationIndex", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "rightOperationIndex", + "type": "uint8" + } + ] + } + ] + } + ], + "stateMutability": "pure", + "type": "function", + "name": "encodeRuleData", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "roleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getEntitlementDataByRoleId", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "roleId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "getRuleDataV2", + "outputs": [ + { + "internalType": "struct IRuleEntitlementBase.RuleDataV2", + "name": "data", + "type": "tuple", + "components": [ + { + "internalType": "struct IRuleEntitlementBase.Operation[]", + "name": "operations", + "type": "tuple[]", + "components": [ + { + "internalType": "enum IRuleEntitlementBase.CombinedOperationType", + "name": "opType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "index", + "type": "uint8" + } + ] + }, + { + "internalType": "struct IRuleEntitlementBase.CheckOperationV2[]", + "name": "checkOperations", + "type": "tuple[]", + "components": [ + { + "internalType": "enum IRuleEntitlementBase.CheckOperationType", + "name": "opType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "contractAddress", + "type": "address" + }, + { + "internalType": "bytes", + "name": "params", + "type": "bytes" + } + ] + }, + { + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", + "name": "logicalOperations", + "type": "tuple[]", + "components": [ + { + "internalType": "enum IRuleEntitlementBase.LogicalOperationType", + "name": "logOpType", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "leftOperationIndex", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "rightOperationIndex", + "type": "uint8" + } + ] + } + ] + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "space", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "initialize" + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "isCrosschain", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "channelId", + "type": "bytes32" + }, + { + "internalType": "address[]", + "name": "user", + "type": "address[]" + }, + { + "internalType": "bytes32", + "name": "permission", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "name": "isEntitled", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "moduleType", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [], + "stateMutability": "view", + "type": "function", + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "roleId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "removeEntitlement" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "roleId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "entitlementData", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "setEntitlement" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,bytes)[],(uint8,uint8,uint8)[]))": { + "params": { + "data": "RuleData struct to encode" + }, + "returns": { + "_0": "Encoded bytes of the RuleData struct" + } + }, + "getEntitlementDataByRoleId(uint256)": { + "params": { + "roleId": "the roleId to fetch the entitlement data for" + }, + "returns": { + "_0": "entitlementData array for the role" + } + }, + "getRuleDataV2(uint256)": { + "params": { + "roleId": "Role ID" + }, + "returns": { + "data": "RuleDataV2 struct" + } + }, + "isCrosschain()": { + "returns": { + "_0": "whether this entitlement will require crosschain evaluation" + } + }, + "isEntitled(bytes32,address[],bytes32)": { + "params": { + "channelId": "id of the channel to check, if empty, checks space", + "permission": "the permission to check", + "user": "address of the user to check" + }, + "returns": { + "_0": "whether the user is entitled to the permission" + } + }, + "removeEntitlement(uint256)": { + "params": { + "roleId": "id of the role to remove" + } + }, + "setEntitlement(uint256,bytes)": { + "params": { + "entitlementData": "abi encoded array of data necessary to set the entitlement", + "roleId": "id of the role to gate" + } + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "description()": { + "notice": "The description of the entitlement module" + }, + "encodeRuleData(((uint8,uint8)[],(uint8,uint256,address,bytes)[],(uint8,uint8,uint8)[]))": { + "notice": "Encodes the RuleData struct into bytes" + }, + "getEntitlementDataByRoleId(uint256)": { + "notice": "fetches the entitlement data for a roleId" + }, + "getRuleDataV2(uint256)": { + "notice": "Decodes the RuleDataV2 struct from bytes" + }, + "initialize(address)": { + "notice": "initializes the entitlement module" + }, + "isCrosschain()": { + "notice": "some entitlements require cross chain evaluation and may not be executed directly from other contracts" + }, + "isEntitled(bytes32,address[],bytes32)": { + "notice": "checks whether a user is has a given permission for a channel or a space" + }, + "moduleType()": { + "notice": "The type of the entitlement module" + }, + "name()": { + "notice": "The name of the entitlement module" + }, + "removeEntitlement(uint256)": { + "notice": "removes an entitlement" + }, + "setEntitlement(uint256,bytes)": { + "notice": "sets a new entitlement" + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + "@openzeppelin/=lib/@openzeppelin/", + "@prb/math/=lib/@prb/math/src/", + "@prb/test/=lib/@prb/test/src/", + "account-abstraction/=lib/account-abstraction/contracts/", + "base64/=lib/base64/", + "ds-test/=lib/ds-test/src/", + "forge-std/=lib/forge-std/src/", + "hardhat-deploy/=lib/hardhat-deploy/" + ], + "optimizer": { + "enabled": true, + "runs": 200 + }, + "metadata": { + "bytecodeHash": "none", + "appendCBOR": false + }, + "compilationTarget": { + "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol": "IRuleEntitlementV2" + }, + "evmVersion": "paris", + "libraries": {} + }, + "sources": { + "contracts/src/spaces/entitlements/IEntitlement.sol": { + "keccak256": "0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd", + "urls": [ + "bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca", + "dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8" + ], + "license": "MIT" + }, + "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol": { + "keccak256": "0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27", + "urls": [ + "bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd", + "dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j" + ], + "license": "MIT" + } + }, + "version": 1 +} \ No newline at end of file diff --git a/packages/generated/dev/abis/MembershipFacet.abi.json b/packages/generated/dev/abis/MembershipFacet.abi.json index 2df96e990..b1ccd95bc 100644 --- a/packages/generated/dev/abis/MembershipFacet.abi.json +++ b/packages/generated/dev/abis/MembershipFacet.abi.json @@ -299,17 +299,17 @@ { "name": "", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -321,12 +321,12 @@ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -348,12 +348,12 @@ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", diff --git a/packages/generated/dev/abis/MembershipFacet.abi.ts b/packages/generated/dev/abis/MembershipFacet.abi.ts index 74a45f936..dbb1c301d 100644 --- a/packages/generated/dev/abis/MembershipFacet.abi.ts +++ b/packages/generated/dev/abis/MembershipFacet.abi.ts @@ -299,17 +299,17 @@ export default [ { "name": "", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -321,12 +321,12 @@ export default [ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -348,12 +348,12 @@ export default [ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", diff --git a/packages/generated/dev/abis/MembershipFacet.bin b/packages/generated/dev/abis/MembershipFacet.bin index d88cc588a..e5dcfa288 100644 --- a/packages/generated/dev/abis/MembershipFacet.bin +++ b/packages/generated/dev/abis/MembershipFacet.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b506200001c62000022565b620000ca565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200006f576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff9081161015620000c757805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6151de80620000da6000396000f3fe60806040526004361061020f5760003560e01c806370a082311161011857806395d89b41116100a0578063c87b56dd1161006f578063c87b56dd146105d0578063d2f01f19146105f0578063df9a9fe614610610578063e847abdd14610630578063e985e9c51461064557600080fd5b806395d89b411461056857806397fb7c1e1461057d578063a22cb4651461059d578063b88d4fde146105bd57600080fd5b80638120f0ba116100e75780638120f0ba146104d15780638c625b06146104fe57806392c399ff1461051157806393b13cb71461053e57806395d600c81461055357600080fd5b806370a082311461046957806379dda585146104895780637adc9cbe1461049e5780637c9669ac146104be57600080fd5b80634739e8051161019b5780635becd24a1161016a5780635becd24a146103df5780636352211e146103ff578063657e45e81461041f57806369d5f38a14610434578063706b8e091461045457600080fd5b80634739e8051461035f5780634c2abfbe1461037f57806351cff8d91461039f5780635803909f146103bf57600080fd5b80631278076a116101e25780631278076a146102ac57806317c95709146102cf57806318160ddd1461032457806323b872dd1461033957806342842e0e1461034c57600080fd5b806306fdde0314610214578063081812fc1461023f578063095ea7b3146102775780630ef1be5f1461028c575b600080fd5b34801561022057600080fd5b50610229610675565b604051610236919061427e565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004614291565b610710565b6040516001600160a01b039091168152602001610236565b61028a6102853660046142cf565b610721565b005b34801561029857600080fd5b5061028a6102a73660046142fb565b610731565b3480156102b857600080fd5b506102c16107b0565b604051908152602001610236565b3480156102db57600080fd5b506102c16102ea366004614291565b60009081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b031690565b34801561033057600080fd5b506102c16107c7565b61028a61034736600461436c565b6107d1565b61028a61035a36600461436c565b6109c8565b34801561036b57600080fd5b5061028a61037a3660046143ba565b6109e8565b34801561038b57600080fd5b5061028a61039a36600461455f565b610a51565b3480156103ab57600080fd5b5061028a6103ba366004614668565b610ac7565b3480156103cb57600080fd5b506102c16103da366004614291565b610b69565b3480156103eb57600080fd5b5061028a6103fa366004614291565b610b7c565b34801561040b57600080fd5b5061025f61041a366004614291565b610c01565b34801561042b57600080fd5b5061025f610c0c565b34801561044057600080fd5b5061028a61044f366004614291565b610c16565b34801561046057600080fd5b506102c1610cc4565b34801561047557600080fd5b506102c1610484366004614668565b610cce565b34801561049557600080fd5b5061025f610cd9565b3480156104aa57600080fd5b5061028a6104b9366004614668565b610ce3565b61028a6104cc366004614291565b610d39565b3480156104dd57600080fd5b506104e6610e96565b6040516001600160401b039091168152602001610236565b61028a61050c366004614668565b610ea0565b34801561051d57600080fd5b5061053161052c366004614685565b6112af565b6040516102369190614798565b34801561054a57600080fd5b506102296112e4565b34801561055f57600080fd5b506102c16112ee565b34801561057457600080fd5b506102296112f8565b34801561058957600080fd5b5061028a610598366004614291565b611310565b3480156105a957600080fd5b5061028a6105b836600461483f565b611365565b61028a6105cb366004614878565b6113e2565b3480156105dc57600080fd5b506102296105eb366004614291565b61142c565b3480156105fc57600080fd5b5061028a61060b3660046148f7565b6114bc565b34801561061c57600080fd5b5061028a61062b366004614668565b611510565b34801561063c57600080fd5b5061025f61155d565b34801561065157600080fd5b5061066561066036600461495a565b611567565b6040519015158152602001610236565b606061067f611573565b600201805461068d90614988565b80601f01602080910402602001604051908101604052809291908181526020018280546106b990614988565b80156107065780601f106106db57610100808354040283529160200191610706565b820191906000526020600020905b8154815290600101906020018083116106e957829003601f168201915b5050505050905090565b600061071b82611597565b92915050565b61072d828260016115e4565b5050565b610739611699565b6001600160a01b0316336001600160a01b031614610771576040516365f4906560e01b81523360048201526024015b60405180910390fd5b61072d82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061176392505050565b60006107c26107bd61177a565b611799565b905090565b60006107c261177a565b60006107dc82611899565b9050836001600160a01b0316816001600160a01b03161461080f5760405162a1148160e81b815260040160405180910390fd5b60008061081b84611934565b91509150610840818761082b3390565b6001600160a01b039081169116811491141790565b61086b5761084e8633611567565b61086b57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661089257604051633a954ecd60e21b815260040160405180910390fd5b801561089d57600082555b6108a5611573565b6001600160a01b03871660009081526005919091016020526040902080546000190190556108d1611573565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b17610908611573565b60008681526004919091016020526040812091909155600160e11b8416900361097e5760018401610937611573565b60008281526004919091016020526040812054900361097c57610958611573565b54811461097c5783610968611573565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6109e3838383604051806020016040528060008152506113e2565b505050565b600260008051602061515e8339815191525403610a1857604051635db5c7cd60e11b815260040160405180910390fd5b610a2f600260008051602061515e83398151915255565b610a3a83838361195c565b6109e3600160008051602061515e83398151915255565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610a9b57604051630ef4733760e31b815260040160405180910390fd5b610aab6322fa1fe560e21b611bff565b610ab58282611cdd565b61072d82600001518360200151611e00565b610acf611699565b6001600160a01b0316336001600160a01b031614610b02576040516365f4906560e01b8152336004820152602401610768565b6001600160a01b038116610b2957604051635fbd571760e01b815260040160405180910390fd5b6000610b33611e2a565b905080600003610b5657604051635894b54560e11b815260040160405180910390fd5b61072d610b61611e3d565b308484611e59565b600061071b82610b7761177a565b611e9f565b610b84611699565b6001600160a01b0316336001600160a01b031614610bb7576040516365f4906560e01b8152336004820152602401610768565b6000610bc1611ee5565b90508015801590610bd157508082115b15610bef5760405163c3983b9160e01b815260040160405180910390fd5b610bf882611ef8565b61072d82611f9d565b600061071b82611899565b60006107c2611e3d565b610c1e611699565b6001600160a01b0316336001600160a01b031614610c51576040516365f4906560e01b8152336004820152602401610768565b610c5a81611fe0565b610c6261206e565b6001600160a01b03166391b7f5ed826040518263ffffffff1660e01b8152600401610c8f91815260200190565b600060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b5050505050565b60006107c261208a565b600061071b82612129565b60006107c2612191565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610d2d57604051630ef4733760e31b815260040160405180910390fd5b610d36816121ad565b50565b600260008051602061515e8339815191525403610d6957604051635db5c7cd60e11b815260040160405180910390fd5b610d80600260008051602061515e83398151915255565b6000610d8b82610c01565b90506001600160a01b038116610db457604051635fbd571760e01b815260040160405180910390fd5b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b0316610df36121e8565b6001600160401b0316610e0642836149d2565b10610e245760405163dce9a1d360e01b815260040160405180910390fd5b6000610e3284610b7761177a565b90508015610e6b576000610e46848361226e565b90506000610e5482846149d2565b90508015610e6857610e668582612386565b505b50505b610e7c84610e776121e8565b612524565b505050610d36600160008051602061515e83398151915255565b60006107c26121e8565b600260008051602061515e8339815191525403610ed057604051635db5c7cd60e11b815260040160405180910390fd5b610ee7600260008051602061515e83398151915255565b610ef0816125ed565b60405133606081901b6bffffffffffffffffffffffff19166020830152436034830152906000906054016040516020818303038152906040528051906020012090506000610fb282610f868486610f4687612656565b604080516020808201959095526001600160a01b039390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9050610ff4818486604051602001610fe09291906001600160a01b0392831681529116602082015260400190565b60405160208183030381529060405261268b565b34156110045761100481346126d2565b6000611030604051806040016040528060098152602001684a6f696e537061636560b81b815250612758565b90506000806000611040336129a2565b845190915060005b81811015611220576000868281518110611064576110646149e5565b6020026020010151905080604001516112175760005b8160800151518110156112155760008260800151828151811061109f5761109f6149e5565b60200260200101519050806001600160a01b0316632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110b91906149fb565b6111f457806001600160a01b0316630cf0b5336000801b88604051806040016040528060098152602001684a6f696e537061636560b81b8152506040516020016111559190614a18565b60405160208183030381529060405261116d90614a34565b6040518463ffffffff1660e01b815260040161118b93929190614a92565b602060405180830381865afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc91906149fb565b156111eb576111da8a612c0a565b505050505050505050505050611298565b6001965061120c565b6112038a828560000151612dbc565b60009650600197505b5060010161107a565b505b50600101611048565b508315801561122c5750825b1561128f5761124a866040518060200160405280600081525061268b565b341561125a5761125a868961306b565b6040516001600160a01b038a16907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a25b50505050505050505b610d36600160008051602061515e83398151915255565b6112d360405180606001604052806060815260200160608152602001606081525090565b6112dd83836130a2565b9392505050565b60606107c261319c565b60006107c2611ee5565b6060611302611573565b600301805461068d90614988565b611318611699565b6001600160a01b0316336001600160a01b03161461134b576040516365f4906560e01b8152336004820152602401610768565b61135c8161135761177a565b6131b4565b610d36816131d5565b8061136e611573565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6113ed8484846107d1565b6001600160a01b0383163b1561142657611409848484846131e5565b611426576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6060611437826132d0565b61145457604051630a14c4b560e41b815260040160405180910390fd5b600061146b60408051602081019091526000815290565b9050805160000361148b57604051806020016040528060008152506112dd565b806114958461330c565b6040516020016114a6929190614abb565b6040516020818303038152906040529392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661150657604051630ef4733760e31b815260040160405180910390fd5b61072d8282611e00565b611518611699565b6001600160a01b0316336001600160a01b03161461154b576040516365f4906560e01b8152336004820152602401610768565b61155481613350565b610d3681613408565b60006107c261206e565b60006112dd8383613435565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090565b60006115a2826132d0565b6115bf576040516333d1c03960e21b815260040160405180910390fd5b6115c7611573565b60009283526006016020525060409020546001600160a01b031690565b60006115ef83610c01565b9050811561162e57336001600160a01b0382161461162e576116118133613435565b61162e576040516367d9dca160e11b815260040160405180910390fd5b83611637611573565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015611739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614aea565b91505090565b8061176c613472565b600c019061072d9082614b4f565b600080611785611573565b60010154611791611573565b540303919050565b6000806117a4613472565b905060006117b061208a565b60088301549091506001600160a01b031615611844576008820154604051635cf4ee9160e01b815260048101839052602481018690526001600160a01b0390911690635cf4ee9190604401602060405180830381865afa158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183c9190614c0e565b949350505050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611818573d6000803e3d6000fd5b6000806118a4611573565b60008481526004820160205260408120549350909150600160e01b8316900361191a578160000361191457805483106118f057604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156118f1575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b6000806000611941611573565b60009485526006016020525050604090912080549092909150565b600083815260008051602061513e83398151915260205260409020805460008051602061511e833981519152919061010090046001600160a01b031615806119a65750805460ff16155b156119c457604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff16156119f657604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b81811015611b345760008981526001870160205260408120805483908110611a3757611a376149e5565b60009182526020909120018054909150336001600160a01b0390911603611ac35760008154600160a01b900460ff166002811115611a7757611a776146a7565b14611a95576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b836002811115611ab957611ab96146a7565b0217905550600195505b60018154600160a01b900460ff166002811115611ae257611ae26146a7565b03611af95784611af181614c27565b955050611b2b565b60028154600160a01b900460ff166002811115611b1857611b186146a7565b03611b2b5783611b2781614c27565b9450505b50600101611a0d565b5083611b5357604051638223a7e960e01b815260040160405180910390fd5b611b5e600282614c40565b831180611b745750611b71600282614c40565b82115b15611bf45760008881526002860160205260408120805460ff19166001179055828411611ba2576002611ba5565b60015b9050611bb18a82613496565b897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051611be19190614c62565b60405180910390a2611bf28a613538565b505b505050505050505050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114611c8c576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055611ca5565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b6000611ce7613472565b6006810180546001600160a01b038086166001600160a01b031992831617909255610100860151600884018054919093169082161790915560048201805490911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1790556060840151600382015560e08401516007820181905590915015611d6b57611d6b8360e00151611ef8565b611d79836101000151613350565b6040830151156109e357611d908360400151611fe0565b600881015460408085015190516391b7f5ed60e01b81526001600160a01b03909216916391b7f5ed91611dc99160040190815260200190565b600060405180830381600087803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b50505050505050565b611e106380ac58cd60e01b611bff565b611e20635b5e139f60e01b611bff565b61072d8282613605565b6000611e34613472565b600a0154905090565b6000611e47613472565b600401546001600160a01b0316919050565b80156114265773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03851601611e9357611e8e8282613637565b611426565b611426848484846136da565b600080611eaa613472565b600085815260098201602052604090205490915015611edc57600084815260099091016020526040902054905061071b565b61183c83611799565b6000611eef613472565b60030154905090565b6000611f02613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7d9190614c0e565b82111561072d5760405163c3983b9160e01b815260040160405180910390fd5b6000611fa7613472565b6007810183905560405190915082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f90600090a25050565b6000611fea612191565b6001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204b9190614c0e565b90508082101561072d57604051631a23d64760e11b815260040160405180910390fd5b6000612078613472565b600801546001600160a01b0316919050565b600080612095613472565b600781015490915080156120a95792915050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190614c0e565b9250505090565b60006001600160a01b038216612152576040516323d3ad8160e21b815260040160405180910390fd5b6001600160401b03612162611573565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b600061219b613472565b600601546001600160a01b0316919050565b6121bd636afd38fd60e11b611bff565b60008051602061511e83398151915280546001600160a01b0319166001600160a01b03831617905550565b6000806121f3613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614c75565b600080612279613472565b6006810154600480830154604080516301332c8360e61b815290519495506001600160a01b039384169493909116926000928592634ccb20c092818301926020928290030181865afa1580156122d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f79190614aea565b90506000836001600160a01b0316639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235d9190614c92565b905061236d878261ffff1661372d565b955061237b83898489611e59565b505050505092915050565b600080612391613472565b9050600061239d611e3d565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038216016123e8578382600a0160008282546123d89190614cb6565b9091555084935061071b92505050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190614c0e565b905061246383883089611e59565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156124aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ce9190614c0e565b905060006124dc83836149d2565b90508781146124fe57604051635894b54560e11b815260040160405180910390fd5b8086600a0160008282546125129190614cb6565b90915550909998505050505050505050565b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce006020819052604082205490916001600160401b039091169081810361257a576125738442614cc9565b9050612587565b6125848483614cc9565b90505b60008581526020848152604091829020805467ffffffffffffffff19166001600160401b038516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b6001600160a01b03811661261457604051635fbd571760e01b815260040160405180910390fd5b61261c611ee5565b15801590612638575061262d611ee5565b61263561177a565b10155b15610d3657604051637efcdb4960e01b815260040160405180910390fd5b600081815260008051602061517e8339815191526020819052604082208054908361268083614c27565b909155509392505050565b60008281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040902060008051602061517e833981519152906114268382614b4f565b806000036126f35760405163acdc0d4960e01b815260040160405180910390fd5b8034146127135760405163acdc0d4960e01b815260040160405180910390fd5b60008281526000805160206151be83398151915260205260408120805460008051602061517e8339815191529284929161274e908490614cb6565b9091555050505050565b606060006127646137a2565b80519091506000816001600160401b03811115612783576127836143f3565b6040519080825280602002602001820160405280156127ac578160200160208202803683370190505b5085516020870120909150600090815b8481101561287b5760006127e88783815181106127db576127db6149e5565b60200260200101516137cd565b509250505060005b8151811015612871578382828151811061280c5761280c6149e5565b6020026020010151805190602001200361286957878381518110612832576128326149e5565b602002602001015186868151811061284c5761284c6149e5565b60209081029190910101528461286181614c27565b955050612871565b6001016127f0565b50506001016127bc565b506000826001600160401b03811115612896576128966143f3565b6040519080825280602002602001820160405280156128fb57816020015b6128e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816128b45790505b50905060005b8381101561299657600085828151811061291d5761291d6149e5565b60200260200101519050600080600080612936856137cd565b93509350935093506040518060a00160405280868152602001858152602001841515815260200183815260200182815250878781518110612979576129796149e5565b602002602001018190525050505050508080600101915050612901565b50979650505050505050565b606060006129ae613472565b6006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa1580156129fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a269190810190614d0c565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa158015612a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a969190614aea565b905081516000148015612ab157506001600160a01b03811615155b15612b2b5760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015612b00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b289190810190614d0c565b91505b81516000612b3a826001614cb6565b6001600160401b03811115612b5157612b516143f3565b604051908082528060200260200182016040528015612b7a578160200160208202803683370190505b50905060005b82811015612bd457848181518110612b9a57612b9a6149e5565b6020026020010151828281518110612bb457612bb46149e5565b6001600160a01b0390921660209283029190910190910152600101612b80565b5086818381518110612be857612be86149e5565b6001600160a01b03909216602092830291909101909101529695505050505050565b600080612c16836138dd565b806020019051810190612c299190614d9f565b915091506000612c3761177a565b9050600080612c4461208a565b90506000612c506139ae565b905083821115612c6d5760009250612c68878761306b565b612c97565b8015612c8b5760009250612c8160016139d8565b612c68878761306b565b612c9484611799565b92505b6000612ca1613a16565b90508315612d655760008881526000805160206151be833981519152602052604081205490819003612ce657604051635894b54560e11b815260040160405180910390fd5b848114612d06576040516334a7a93d60e01b815260040160405180910390fd5b612d108286613a20565b6000612d1c898761226e565b90506000612d2a82886149d2565b90508015612d3e57612d3c8a82612386565b505b612d488b88613a40565b612d618b6040518060200160405280600081525061268b565b5050505b612d70866001613a7b565b612d7c81610e776121e8565b60405181906001600160a01b038816907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b57690600090a35050505050505050565b600083815260008051602061513e83398151915260205260409020805460008051602061511e833981519152919060ff161515600103612e4e5760005b6004820154811015612e4c5783826004018281548110612e1b57612e1b6149e5565b906000526020600020015403612e44576040516301ab53df60e31b815260040160405180910390fd5b600101612df9565b505b81546001600160a01b0316612e6557612e65613a95565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015612eae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ed69190810190614d0c565b825490915060ff16612f175781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b8151811015613007578260010160008681526020019081526020016000206040518060400160405280848481518110612f6c57612f6c6149e5565b60200260200101516001600160a01b0316815260200160006002811115612f9557612f956146a7565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b836002811115612ff857612ff86146a7565b02179055505050600101612f31565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e59061303d9033908a9089908790600401614dce565b600060405180830381600087803b15801561305757600080fd5b505af1158015611bf2573d6000803e3d6000fd5b60008281526000805160206151be833981519152602052604090205480156109e3576130978382613a40565b6109e3610b61611e3d565b6130c660405180606001604052806060815260200160608152602001606081525090565b600083815260008051602061513e83398151915260205260408120805460008051602061511e8339815191529260ff9091161515900361311957604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015613169573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131919190810190614f6c565b979650505050505050565b60606131a6613472565b600c01805461068d90614988565b8082101561072d57604051636664d51760e11b815260040160405180910390fd5b806131de613472565b6003015550565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061321a9033908990889088906004016150a9565b6020604051808303816000875af1925050508015613255575060408051601f3d908101601f19168201909252613252918101906150dc565b60015b6132b3573d808015613283576040519150601f19603f3d011682016040523d82523d6000602084013e613288565b606091505b5080516000036132ab576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60006132da611573565b548210801561071b5750600160e01b6132f1611573565b60008481526004919091016020526040902054161592915050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806133265750819003601f19909101908152919050565b6001600160a01b03811661337757604051630e88bf4b60e01b815260040160405180910390fd5b61337f612191565b6040516346fc05eb60e11b81526001600160a01b0383811660048301529190911690638df80bd690602401602060405180830381865afa1580156133c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133eb91906149fb565b610d3657604051630e88bf4b60e01b815260040160405180910390fd5b80613411613472565b60080180546001600160a01b0319166001600160a01b039290921691909117905550565b600061343f611573565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090565b60018160028111156134aa576134aa6146a7565b036134b85761072d82612c0a565b6000806134c4846138dd565b8060200190518101906134d79190614d9f565b915091506134f4846040518060200160405280600081525061268b565b6134fe848361306b565b6040516001600160a01b038216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a250505050565b600081815260008051602061513e8339815191526020526040812060008051602061511e833981519152915b60048201548110156135b85781600101600083600401838154811061358b5761358b6149e5565b9060005260206000200154815260200190815260200160002060006135b091906141ba565b600101613564565b506135c76004820160006141d8565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610cbd60048301826141d8565b600061360f611573565b90506002810161361f8482614b4f565b506003810161362e8382614b4f565b50600090555050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613684576040519150601f19603f3d011682016040523d82523d6000602084013e613689565b606091505b50509050806109e35760405162461bcd60e51b815260206004820152601c60248201527f6e617469766520746f6b656e207472616e73666572206661696c6564000000006044820152606401610768565b816001600160a01b0316836001600160a01b0316031561142657306001600160a01b0384160361371857611e8e6001600160a01b0385168383613b49565b6114266001600160a01b038516848484613ba8565b600061271082111561378b5760405162461bcd60e51b815260206004820152602160248201527f426173697320706f696e74732063616e6e6f74206578636565642031305f30306044820152600360fc1b6064820152608401610768565b6127106137988385615106565b6112dd9190614c40565b60606107c27f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01613be1565b600081815260008051602061519e83398151915260205260408120805460609291839182917f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd009161381d90614988565b80601f016020809104026020016040519081016040528092919081815260200182805461384990614988565b80156138965780601f1061386b57610100808354040283529160200191613896565b820191906000526020600020905b81548152906001019060200180831161387957829003601f168201915b50505060008981526003850160205260409020600181015493985060ff90931696506138c8926002019150613bee9050565b92506138d386613bf9565b9150509193509193565b60008181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0260205260409020805460609160008051602061517e8339815191529161392890614988565b80601f016020809104026020016040519081016040528092919081815260200182805461395490614988565b80156139a15780601f10613976576101008083540402835291602001916139a1565b820191906000526020600020905b81548152906001019060200180831161398457829003601f168201915b5050505050915050919050565b60007f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c00805482908290600090613a0d9084906149d2565b90915550505050565b60006139d2611573565b80613a29613472565b600093845260090160205260409092209190915550565b60008281526000805160206151be83398151915260205260408120805460008051602061517e8339815191529284929161274e9084906149d2565b61072d828260405180602001604052806000815250613cfd565b60008051602061511e8339815191526000613aae613472565b60060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015613b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b2a9190614aea565b82546001600160a01b0319166001600160a01b03919091161790915550565b6040516001600160a01b038381166024830152604482018390526109e391859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613d73565b6040516001600160a01b0384811660248301528381166044830152606482018390526114269186918216906323b872dd90608401613b76565b606060006112dd83613dd6565b606061071b82613e32565b600081815260008051602061519e8339815191526020526040812060609190613c2490600401613f0f565b6001600160401b03811115613c3b57613c3b6143f3565b604051908082528060200260200182016040528015613c64578160200160208202803683370190505b50905060005b600084815260008051602061519e83398151915260205260409020613c9190600401613f0f565b811015613cf657600084815260008051602061519e83398151915260205260408120613cc09060040183613f19565b905080838381518110613cd557613cd56149e5565b6001600160a01b039092166020928302919091019091015250600101613c6a565b5092915050565b613d078383613f25565b6001600160a01b0383163b156109e3576000613d21611573565b5490508281035b613d3b60008683806001019450866131e5565b613d58576040516368d2bf6b60e11b815260040160405180910390fd5b818110613d285781613d68611573565b5414610cbd57600080fd5b6000613d886001600160a01b03841683614060565b90508051600014158015613dad575080806020019051810190613dab91906149fb565b155b156109e357604051635274afe760e01b81526001600160a01b0384166004820152602401610768565b606081600001805480602002602001604051908101604052809291908181526020018280548015613e2657602002820191906000526020600020905b815481526020019060010190808311613e12575b50505050509050919050565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015613f04578382906000526020600020018054613e7790614988565b80601f0160208091040260200160405190810160405280929190818152602001828054613ea390614988565b8015613ef05780601f10613ec557610100808354040283529160200191613ef0565b820191906000526020600020905b815481529060010190602001808311613ed357829003601f168201915b505050505081526020019060010190613e58565b505050509050919050565b600061071b825490565b60006112dd838361406e565b6000613f2f611573565b5490506000829003613f545760405163b562e8dd60e01b815260040160405180910390fd5b680100000000000000018202613f68611573565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b1717613fa3611573565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461402d57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613ff5565b508160000361404e57604051622e076360e81b815260040160405180910390fd5b80614057611573565b55506109e39050565b60606112dd83836000614098565b6000826000018281548110614085576140856149e5565b9060005260206000200154905092915050565b6060814710156140bd5760405163cd78605960e01b8152306004820152602401610768565b600080856001600160a01b031684866040516140d99190614a18565b60006040518083038185875af1925050503d8060008114614116576040519150601f19603f3d011682016040523d82523d6000602084013e61411b565b606091505b509150915061412b868383614135565b9695505050505050565b60608261414a5761414582614191565b6112dd565b815115801561416157506001600160a01b0384163b155b1561418a57604051639996b31560e01b81526001600160a01b0385166004820152602401610768565b50806112dd565b8051156141a15780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825590600052602060002090810190610d3691906141f6565b5080546000825590600052602060002090810190610d369190614219565b5b808211156142155780546001600160a81b03191681556001016141f7565b5090565b5b80821115614215576000815560010161421a565b60005b83811015614249578181015183820152602001614231565b50506000910152565b6000815180845261426a81602086016020860161422e565b601f01601f19169290920160200192915050565b6020815260006112dd6020830184614252565b6000602082840312156142a357600080fd5b5035919050565b6001600160a01b0381168114610d3657600080fd5b80356142ca816142aa565b919050565b600080604083850312156142e257600080fd5b82356142ed816142aa565b946020939093013593505050565b6000806020838503121561430e57600080fd5b82356001600160401b038082111561432557600080fd5b818501915085601f83011261433957600080fd5b81358181111561434857600080fd5b86602082850101111561435a57600080fd5b60209290920196919550909350505050565b60008060006060848603121561438157600080fd5b833561438c816142aa565b9250602084013561439c816142aa565b929592945050506040919091013590565b60038110610d3657600080fd5b6000806000606084860312156143cf57600080fd5b833592506020840135915060408401356143e8816143ad565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171561442c5761442c6143f3565b60405290565b604051608081016001600160401b038111828210171561442c5761442c6143f3565b604051606081016001600160401b038111828210171561442c5761442c6143f3565b604080519081016001600160401b038111828210171561442c5761442c6143f3565b604051601f8201601f191681016001600160401b03811182821017156144c0576144c06143f3565b604052919050565b60006001600160401b038311156144e1576144e16143f3565b6144f4601f8401601f1916602001614498565b905082815283838301111561450857600080fd5b828260208301376000602084830101529392505050565b600082601f83011261453057600080fd5b6112dd838335602085016144c8565b6001600160401b0381168114610d3657600080fd5b80356142ca8161453f565b6000806040838503121561457257600080fd5b82356001600160401b038082111561458957600080fd5b90840190610120828703121561459e57600080fd5b6145a6614409565b8235828111156145b557600080fd5b6145c18882860161451f565b8252506020830135828111156145d657600080fd5b6145e28882860161451f565b602083015250604083013560408201526060830135606082015261460860808401614554565b608082015261461960a084016142bf565b60a082015261462a60c084016142bf565b60c082015260e083013560e082015261010091506146498284016142bf565b8282015280945050505061465f602084016142bf565b90509250929050565b60006020828403121561467a57600080fd5b81356112dd816142aa565b6000806040838503121561469857600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b60038110610d3657610d366146a7565b60008151808452602080850194506020840160005b838110156147375781518051600681106146fe576146fe6146a7565b885280840151848901526040808201516001600160a01b03169089015260609081015190880152608090960195908201906001016146e2565b509495945050505050565b60008151808452602080850194506020840160005b83811015614737578151805161476c816146bd565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101614757565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156147f457835180516147d2816146bd565b835285015160ff168583015292840192600192909201916040909101906147bd565b50838701519350601f1992508286820301604087015261481481856146cd565b9350505060408501518185840301606086015261412b8382614742565b8015158114610d3657600080fd5b6000806040838503121561485257600080fd5b823561485d816142aa565b9150602083013561486d81614831565b809150509250929050565b6000806000806080858703121561488e57600080fd5b8435614899816142aa565b935060208501356148a9816142aa565b92506040850135915060608501356001600160401b038111156148cb57600080fd5b8501601f810187136148dc57600080fd5b6148eb878235602084016144c8565b91505092959194509250565b6000806040838503121561490a57600080fd5b82356001600160401b038082111561492157600080fd5b61492d8683870161451f565b9350602085013591508082111561494357600080fd5b506149508582860161451f565b9150509250929050565b6000806040838503121561496d57600080fd5b8235614978816142aa565b9150602083013561486d816142aa565b600181811c9082168061499c57607f821691505b60208210810361191457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561071b5761071b6149bc565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614a0d57600080fd5b81516112dd81614831565b60008251614a2a81846020870161422e565b9190910192915050565b805160208083015191908110156119145760001960209190910360031b1b16919050565b60008151808452602080850194506020840160005b838110156147375781516001600160a01b031687529582019590820190600101614a6d565b838152606060208201526000614aab6060830185614a58565b9050826040830152949350505050565b60008351614acd81846020880161422e565b835190830190614ae181836020880161422e565b01949350505050565b600060208284031215614afc57600080fd5b81516112dd816142aa565b601f8211156109e3576000816000526020600020601f850160051c81016020861015614b305750805b601f850160051c820191505b818110156109c057828155600101614b3c565b81516001600160401b03811115614b6857614b686143f3565b614b7c81614b768454614988565b84614b07565b602080601f831160018114614bb15760008415614b995750858301515b600019600386901b1c1916600185901b1785556109c0565b600085815260208120601f198616915b82811015614be057888601518255948401946001909101908401614bc1565b5085821015614bfe5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215614c2057600080fd5b5051919050565b600060018201614c3957614c396149bc565b5060010190565b600082614c5d57634e487b7160e01b600052601260045260246000fd5b500490565b60208101614c6f836146bd565b91905290565b600060208284031215614c8757600080fd5b81516112dd8161453f565b600060208284031215614ca457600080fd5b815161ffff811681146112dd57600080fd5b8082018082111561071b5761071b6149bc565b6001600160401b03818116838216019080821115613cf657613cf66149bc565b60006001600160401b03821115614d0257614d026143f3565b5060051b60200190565b60006020808385031215614d1f57600080fd5b82516001600160401b03811115614d3557600080fd5b8301601f81018513614d4657600080fd5b8051614d59614d5482614ce9565b614498565b81815260059190911b82018301908381019087831115614d7857600080fd5b928401925b82841015613191578351614d90816142aa565b82529284019290840190614d7d565b60008060408385031215614db257600080fd5b8251614dbd816142aa565b602084015190925061486d816142aa565b60018060a01b038516815283602082015282604082015260806060820152600061412b6080830184614a58565b805160ff811681146142ca57600080fd5b600082601f830112614e1d57600080fd5b81516020614e2d614d5483614ce9565b82815260079290921b84018101918181019086841115614e4c57600080fd5b8286015b84811015614eb65760808189031215614e695760008081fd5b614e71614432565b815160068110614e815760008081fd5b81528185015185820152604080830151614e9a816142aa565b9082015260608281015190820152835291830191608001614e50565b509695505050505050565b600082601f830112614ed257600080fd5b81516020614ee2614d5483614ce9565b82815260609283028501820192828201919087851115614f0157600080fd5b8387015b85811015614f5f5781818a031215614f1d5760008081fd5b614f25614454565b8151614f30816143ad565b8152614f3d828701614dfb565b868201526040614f4e818401614dfb565b908201528452928401928101614f05565b5090979650505050505050565b60006020808385031215614f7f57600080fd5b82516001600160401b0380821115614f9657600080fd5b9084019060608287031215614faa57600080fd5b614fb2614454565b825182811115614fc157600080fd5b8301601f81018813614fd257600080fd5b8051614fe0614d5482614ce9565b81815260069190911b8201860190868101908a831115614fff57600080fd5b928701925b82841015615053576040848c03121561501d5760008081fd5b615025614476565b8451615030816143ad565b815261503d858a01614dfb565b818a015282526040939093019290870190615004565b8452505050828401518281111561506957600080fd5b61507588828601614e0c565b8583015250604083015193508184111561508e57600080fd5b61509a87858501614ec1565b60408201529695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061412b90830184614252565b6000602082840312156150ee57600080fd5b81516001600160e01b0319811681146112dd57600080fd5b808202811582820484141761071b5761071b6149bc56fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0154f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0034516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0334516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e01 \ No newline at end of file +60806040523480156200001157600080fd5b506200001c62000022565b620000ca565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200006f576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff9081161015620000c757805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6151b080620000da6000396000f3fe60806040526004361061020f5760003560e01c806370a082311161011857806395d89b41116100a0578063c87b56dd1161006f578063c87b56dd146105d0578063d2f01f19146105f0578063df9a9fe614610610578063e847abdd14610630578063e985e9c51461064557600080fd5b806395d89b411461056857806397fb7c1e1461057d578063a22cb4651461059d578063b88d4fde146105bd57600080fd5b80638120f0ba116100e75780638120f0ba146104d15780638c625b06146104fe57806392c399ff1461051157806393b13cb71461053e57806395d600c81461055357600080fd5b806370a082311461046957806379dda585146104895780637adc9cbe1461049e5780637c9669ac146104be57600080fd5b80634739e8051161019b5780635becd24a1161016a5780635becd24a146103df5780636352211e146103ff578063657e45e81461041f57806369d5f38a14610434578063706b8e091461045457600080fd5b80634739e8051461035f5780634c2abfbe1461037f57806351cff8d91461039f5780635803909f146103bf57600080fd5b80631278076a116101e25780631278076a146102ac57806317c95709146102cf57806318160ddd1461032457806323b872dd1461033957806342842e0e1461034c57600080fd5b806306fdde0314610214578063081812fc1461023f578063095ea7b3146102775780630ef1be5f1461028c575b600080fd5b34801561022057600080fd5b50610229610675565b6040516102369190614269565b60405180910390f35b34801561024b57600080fd5b5061025f61025a36600461427c565b610710565b6040516001600160a01b039091168152602001610236565b61028a6102853660046142ba565b610721565b005b34801561029857600080fd5b5061028a6102a73660046142e6565b610731565b3480156102b857600080fd5b506102c16107b0565b604051908152602001610236565b3480156102db57600080fd5b506102c16102ea36600461427c565b60009081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b031690565b34801561033057600080fd5b506102c16107c7565b61028a610347366004614357565b6107d1565b61028a61035a366004614357565b6109c8565b34801561036b57600080fd5b5061028a61037a3660046143a5565b6109e8565b34801561038b57600080fd5b5061028a61039a36600461454a565b610a51565b3480156103ab57600080fd5b5061028a6103ba366004614653565b610ac7565b3480156103cb57600080fd5b506102c16103da36600461427c565b610b69565b3480156103eb57600080fd5b5061028a6103fa36600461427c565b610b7c565b34801561040b57600080fd5b5061025f61041a36600461427c565b610c01565b34801561042b57600080fd5b5061025f610c0c565b34801561044057600080fd5b5061028a61044f36600461427c565b610c16565b34801561046057600080fd5b506102c1610cc4565b34801561047557600080fd5b506102c1610484366004614653565b610cce565b34801561049557600080fd5b5061025f610cd9565b3480156104aa57600080fd5b5061028a6104b9366004614653565b610ce3565b61028a6104cc36600461427c565b610d39565b3480156104dd57600080fd5b506104e6610e96565b6040516001600160401b039091168152602001610236565b61028a61050c366004614653565b610ea0565b34801561051d57600080fd5b5061053161052c366004614670565b6112af565b6040516102369190614783565b34801561054a57600080fd5b506102296112e4565b34801561055f57600080fd5b506102c16112ee565b34801561057457600080fd5b506102296112f8565b34801561058957600080fd5b5061028a61059836600461427c565b611310565b3480156105a957600080fd5b5061028a6105b836600461482a565b611365565b61028a6105cb366004614863565b6113e2565b3480156105dc57600080fd5b506102296105eb36600461427c565b61142c565b3480156105fc57600080fd5b5061028a61060b3660046148e2565b6114bc565b34801561061c57600080fd5b5061028a61062b366004614653565b611510565b34801561063c57600080fd5b5061025f61155d565b34801561065157600080fd5b50610665610660366004614945565b611567565b6040519015158152602001610236565b606061067f611573565b600201805461068d90614973565b80601f01602080910402602001604051908101604052809291908181526020018280546106b990614973565b80156107065780601f106106db57610100808354040283529160200191610706565b820191906000526020600020905b8154815290600101906020018083116106e957829003601f168201915b5050505050905090565b600061071b82611597565b92915050565b61072d828260016115e4565b5050565b610739611699565b6001600160a01b0316336001600160a01b031614610771576040516365f4906560e01b81523360048201526024015b60405180910390fd5b61072d82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061176392505050565b60006107c26107bd61177a565b611799565b905090565b60006107c261177a565b60006107dc82611899565b9050836001600160a01b0316816001600160a01b03161461080f5760405162a1148160e81b815260040160405180910390fd5b60008061081b84611934565b91509150610840818761082b3390565b6001600160a01b039081169116811491141790565b61086b5761084e8633611567565b61086b57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661089257604051633a954ecd60e21b815260040160405180910390fd5b801561089d57600082555b6108a5611573565b6001600160a01b03871660009081526005919091016020526040902080546000190190556108d1611573565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b17610908611573565b60008681526004919091016020526040812091909155600160e11b8416900361097e5760018401610937611573565b60008281526004919091016020526040812054900361097c57610958611573565b54811461097c5783610968611573565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6109e3838383604051806020016040528060008152506113e2565b505050565b60026000805160206151508339815191525403610a1857604051635db5c7cd60e11b815260040160405180910390fd5b610a2f600260008051602061515083398151915255565b610a3a83838361195c565b6109e3600160008051602061515083398151915255565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610a9b57604051630ef4733760e31b815260040160405180910390fd5b610aab6322fa1fe560e21b611bff565b610ab58282611cdd565b61072d82600001518360200151611e00565b610acf611699565b6001600160a01b0316336001600160a01b031614610b02576040516365f4906560e01b8152336004820152602401610768565b6001600160a01b038116610b2957604051635fbd571760e01b815260040160405180910390fd5b6000610b33611e2a565b905080600003610b5657604051635894b54560e11b815260040160405180910390fd5b61072d610b61611e3d565b308484611e59565b600061071b82610b7761177a565b611e9f565b610b84611699565b6001600160a01b0316336001600160a01b031614610bb7576040516365f4906560e01b8152336004820152602401610768565b6000610bc1611ee5565b90508015801590610bd157508082115b15610bef5760405163c3983b9160e01b815260040160405180910390fd5b610bf882611ef8565b61072d82611f9d565b600061071b82611899565b60006107c2611e3d565b610c1e611699565b6001600160a01b0316336001600160a01b031614610c51576040516365f4906560e01b8152336004820152602401610768565b610c5a81611fe0565b610c6261206e565b6001600160a01b03166391b7f5ed826040518263ffffffff1660e01b8152600401610c8f91815260200190565b600060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b5050505050565b60006107c261208a565b600061071b82612129565b60006107c2612191565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610d2d57604051630ef4733760e31b815260040160405180910390fd5b610d36816121ad565b50565b60026000805160206151508339815191525403610d6957604051635db5c7cd60e11b815260040160405180910390fd5b610d80600260008051602061515083398151915255565b6000610d8b82610c01565b90506001600160a01b038116610db457604051635fbd571760e01b815260040160405180910390fd5b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b0316610df36121e8565b6001600160401b0316610e0642836149bd565b10610e245760405163dce9a1d360e01b815260040160405180910390fd5b6000610e3284610b7761177a565b90508015610e6b576000610e46848361226e565b90506000610e5482846149bd565b90508015610e6857610e668582612386565b505b50505b610e7c84610e776121e8565b612524565b505050610d36600160008051602061515083398151915255565b60006107c26121e8565b60026000805160206151508339815191525403610ed057604051635db5c7cd60e11b815260040160405180910390fd5b610ee7600260008051602061515083398151915255565b610ef0816125ed565b60405133606081901b6bffffffffffffffffffffffff19166020830152436034830152906000906054016040516020818303038152906040528051906020012090506000610fb282610f868486610f4687612656565b604080516020808201959095526001600160a01b039390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9050610ff4818486604051602001610fe09291906001600160a01b0392831681529116602082015260400190565b60405160208183030381529060405261268b565b34156110045761100481346126d2565b6000611030604051806040016040528060098152602001684a6f696e537061636560b81b815250612758565b90506000806000611040336129a2565b845190915060005b81811015611220576000868281518110611064576110646149d0565b6020026020010151905080604001516112175760005b8160800151518110156112155760008260800151828151811061109f5761109f6149d0565b60200260200101519050806001600160a01b0316632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110b91906149e6565b6111f457806001600160a01b0316630cf0b5336000801b88604051806040016040528060098152602001684a6f696e537061636560b81b8152506040516020016111559190614a03565b60405160208183030381529060405261116d90614a1f565b6040518463ffffffff1660e01b815260040161118b93929190614a7d565b602060405180830381865afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc91906149e6565b156111eb576111da8a612c0a565b505050505050505050505050611298565b6001965061120c565b6112038a828560000151612dbc565b60009650600197505b5060010161107a565b505b50600101611048565b508315801561122c5750825b1561128f5761124a866040518060200160405280600081525061268b565b341561125a5761125a868961306b565b6040516001600160a01b038a16907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a25b50505050505050505b610d36600160008051602061515083398151915255565b6112d360405180606001604052806060815260200160608152602001606081525090565b6112dd83836130a2565b9392505050565b60606107c261319c565b60006107c2611ee5565b6060611302611573565b600301805461068d90614973565b611318611699565b6001600160a01b0316336001600160a01b03161461134b576040516365f4906560e01b8152336004820152602401610768565b61135c8161135761177a565b6131b4565b610d36816131d5565b8061136e611573565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6113ed8484846107d1565b6001600160a01b0383163b1561142657611409848484846131e5565b611426576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6060611437826132d0565b61145457604051630a14c4b560e41b815260040160405180910390fd5b600061146b60408051602081019091526000815290565b9050805160000361148b57604051806020016040528060008152506112dd565b806114958461330c565b6040516020016114a6929190614aa6565b6040516020818303038152906040529392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661150657604051630ef4733760e31b815260040160405180910390fd5b61072d8282611e00565b611518611699565b6001600160a01b0316336001600160a01b03161461154b576040516365f4906560e01b8152336004820152602401610768565b61155481613350565b610d3681613408565b60006107c261206e565b60006112dd8383613435565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090565b60006115a2826132d0565b6115bf576040516333d1c03960e21b815260040160405180910390fd5b6115c7611573565b60009283526006016020525060409020546001600160a01b031690565b60006115ef83610c01565b9050811561162e57336001600160a01b0382161461162e576116118133613435565b61162e576040516367d9dca160e11b815260040160405180910390fd5b83611637611573565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015611739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614ad5565b91505090565b8061176c613472565b600c019061072d9082614b3a565b600080611785611573565b60010154611791611573565b540303919050565b6000806117a4613472565b905060006117b061208a565b60088301549091506001600160a01b031615611844576008820154604051635cf4ee9160e01b815260048101839052602481018690526001600160a01b0390911690635cf4ee9190604401602060405180830381865afa158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183c9190614bf9565b949350505050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611818573d6000803e3d6000fd5b6000806118a4611573565b60008481526004820160205260408120549350909150600160e01b8316900361191a578160000361191457805483106118f057604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156118f1575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b6000806000611941611573565b60009485526006016020525050604090912080549092909150565b6000838152600080516020615130833981519152602052604090208054600080516020615110833981519152919061010090046001600160a01b031615806119a65750805460ff16155b156119c457604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff16156119f657604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b81811015611b345760008981526001870160205260408120805483908110611a3757611a376149d0565b60009182526020909120018054909150336001600160a01b0390911603611ac35760008154600160a01b900460ff166002811115611a7757611a77614692565b14611a95576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b836002811115611ab957611ab9614692565b0217905550600195505b60018154600160a01b900460ff166002811115611ae257611ae2614692565b03611af95784611af181614c12565b955050611b2b565b60028154600160a01b900460ff166002811115611b1857611b18614692565b03611b2b5783611b2781614c12565b9450505b50600101611a0d565b5083611b5357604051638223a7e960e01b815260040160405180910390fd5b611b5e600282614c2b565b831180611b745750611b71600282614c2b565b82115b15611bf45760008881526002860160205260408120805460ff19166001179055828411611ba2576002611ba5565b60015b9050611bb18a82613496565b897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051611be19190614c4d565b60405180910390a2611bf28a613538565b505b505050505050505050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114611c8c576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055611ca5565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b6000611ce7613472565b6006810180546001600160a01b038086166001600160a01b031992831617909255610100860151600884018054919093169082161790915560048201805490911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1790556060840151600382015560e08401516007820181905590915015611d6b57611d6b8360e00151611ef8565b611d79836101000151613350565b6040830151156109e357611d908360400151611fe0565b600881015460408085015190516391b7f5ed60e01b81526001600160a01b03909216916391b7f5ed91611dc99160040190815260200190565b600060405180830381600087803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b50505050505050565b611e106380ac58cd60e01b611bff565b611e20635b5e139f60e01b611bff565b61072d8282613605565b6000611e34613472565b600a0154905090565b6000611e47613472565b600401546001600160a01b0316919050565b80156114265773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03851601611e9357611e8e8282613637565b611426565b611426848484846136da565b600080611eaa613472565b600085815260098201602052604090205490915015611edc57600084815260099091016020526040902054905061071b565b61183c83611799565b6000611eef613472565b60030154905090565b6000611f02613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7d9190614bf9565b82111561072d5760405163c3983b9160e01b815260040160405180910390fd5b6000611fa7613472565b6007810183905560405190915082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f90600090a25050565b6000611fea612191565b6001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204b9190614bf9565b90508082101561072d57604051631a23d64760e11b815260040160405180910390fd5b6000612078613472565b600801546001600160a01b0316919050565b600080612095613472565b600781015490915080156120a95792915050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190614bf9565b9250505090565b60006001600160a01b038216612152576040516323d3ad8160e21b815260040160405180910390fd5b6001600160401b03612162611573565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b600061219b613472565b600601546001600160a01b0316919050565b6121bd636afd38fd60e11b611bff565b60008051602061511083398151915280546001600160a01b0319166001600160a01b03831617905550565b6000806121f3613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614c60565b600080612279613472565b6006810154600480830154604080516301332c8360e61b815290519495506001600160a01b039384169493909116926000928592634ccb20c092818301926020928290030181865afa1580156122d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f79190614ad5565b90506000836001600160a01b0316639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235d9190614c7d565b905061236d878261ffff1661372d565b955061237b83898489611e59565b505050505092915050565b600080612391613472565b9050600061239d611e3d565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038216016123e8578382600a0160008282546123d89190614ca1565b9091555084935061071b92505050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190614bf9565b905061246383883089611e59565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156124aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ce9190614bf9565b905060006124dc83836149bd565b90508781146124fe57604051635894b54560e11b815260040160405180910390fd5b8086600a0160008282546125129190614ca1565b90915550909998505050505050505050565b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce006020819052604082205490916001600160401b039091169081810361257a576125738442614cb4565b9050612587565b6125848483614cb4565b90505b60008581526020848152604091829020805467ffffffffffffffff19166001600160401b038516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b6001600160a01b03811661261457604051635fbd571760e01b815260040160405180910390fd5b61261c611ee5565b15801590612638575061262d611ee5565b61263561177a565b10155b15610d3657604051637efcdb4960e01b815260040160405180910390fd5b60008181526000805160206151708339815191526020819052604082208054908361268083614c12565b909155509392505050565b60008281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0260205260409020600080516020615170833981519152906114268382614b3a565b806000036126f35760405163acdc0d4960e01b815260040160405180910390fd5b8034146127135760405163acdc0d4960e01b815260040160405180910390fd5b60008281526000805160206151908339815191526020526040812080546000805160206151708339815191529284929161274e908490614ca1565b9091555050505050565b606060006127646137a2565b80519091506000816001600160401b03811115612783576127836143de565b6040519080825280602002602001820160405280156127ac578160200160208202803683370190505b5085516020870120909150600090815b8481101561287b5760006127e88783815181106127db576127db6149d0565b60200260200101516137cd565b509250505060005b8151811015612871578382828151811061280c5761280c6149d0565b6020026020010151805190602001200361286957878381518110612832576128326149d0565b602002602001015186868151811061284c5761284c6149d0565b60209081029190910101528461286181614c12565b955050612871565b6001016127f0565b50506001016127bc565b506000826001600160401b03811115612896576128966143de565b6040519080825280602002602001820160405280156128fb57816020015b6128e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816128b45790505b50905060005b8381101561299657600085828151811061291d5761291d6149d0565b60200260200101519050600080600080612936856137cd565b93509350935093506040518060a00160405280868152602001858152602001841515815260200183815260200182815250878781518110612979576129796149d0565b602002602001018190525050505050508080600101915050612901565b50979650505050505050565b606060006129ae613472565b6006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa1580156129fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a269190810190614cfe565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa158015612a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a969190614ad5565b905081516000148015612ab157506001600160a01b03811615155b15612b2b5760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015612b00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b289190810190614cfe565b91505b81516000612b3a826001614ca1565b6001600160401b03811115612b5157612b516143de565b604051908082528060200260200182016040528015612b7a578160200160208202803683370190505b50905060005b82811015612bd457848181518110612b9a57612b9a6149d0565b6020026020010151828281518110612bb457612bb46149d0565b6001600160a01b0390921660209283029190910190910152600101612b80565b5086818381518110612be857612be86149d0565b6001600160a01b03909216602092830291909101909101529695505050505050565b600080612c16836138ef565b806020019051810190612c299190614d91565b915091506000612c3761177a565b9050600080612c4461208a565b90506000612c506139c0565b905083821115612c6d5760009250612c68878761306b565b612c97565b8015612c8b5760009250612c8160016139ea565b612c68878761306b565b612c9484611799565b92505b6000612ca1613a28565b90508315612d65576000888152600080516020615190833981519152602052604081205490819003612ce657604051635894b54560e11b815260040160405180910390fd5b848114612d06576040516334a7a93d60e01b815260040160405180910390fd5b612d108286613a32565b6000612d1c898761226e565b90506000612d2a82886149bd565b90508015612d3e57612d3c8a82612386565b505b612d488b88613a52565b612d618b6040518060200160405280600081525061268b565b5050505b612d70866001613a8d565b612d7c81610e776121e8565b60405181906001600160a01b038816907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b57690600090a35050505050505050565b6000838152600080516020615130833981519152602052604090208054600080516020615110833981519152919060ff161515600103612e4e5760005b6004820154811015612e4c5783826004018281548110612e1b57612e1b6149d0565b906000526020600020015403612e44576040516301ab53df60e31b815260040160405180910390fd5b600101612df9565b505b81546001600160a01b0316612e6557612e65613aa7565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015612eae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ed69190810190614cfe565b825490915060ff16612f175781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b8151811015613007578260010160008681526020019081526020016000206040518060400160405280848481518110612f6c57612f6c6149d0565b60200260200101516001600160a01b0316815260200160006002811115612f9557612f95614692565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b836002811115612ff857612ff8614692565b02179055505050600101612f31565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e59061303d9033908a9089908790600401614dc0565b600060405180830381600087803b15801561305757600080fd5b505af1158015611bf2573d6000803e3d6000fd5b6000828152600080516020615190833981519152602052604090205480156109e3576130978382613a52565b6109e3610b61611e3d565b6130c660405180606001604052806060815260200160608152602001606081525090565b60008381526000805160206151308339815191526020526040812080546000805160206151108339815191529260ff9091161515900361311957604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015613169573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131919190810190614f5e565b979650505050505050565b60606131a6613472565b600c01805461068d90614973565b8082101561072d57604051636664d51760e11b815260040160405180910390fd5b806131de613472565b6003015550565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061321a90339089908890889060040161509b565b6020604051808303816000875af1925050508015613255575060408051601f3d908101601f19168201909252613252918101906150ce565b60015b6132b3573d808015613283576040519150601f19603f3d011682016040523d82523d6000602084013e613288565b606091505b5080516000036132ab576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60006132da611573565b548210801561071b5750600160e01b6132f1611573565b60008481526004919091016020526040902054161592915050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806133265750819003601f19909101908152919050565b6001600160a01b03811661337757604051630e88bf4b60e01b815260040160405180910390fd5b61337f612191565b6040516346fc05eb60e11b81526001600160a01b0383811660048301529190911690638df80bd690602401602060405180830381865afa1580156133c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133eb91906149e6565b610d3657604051630e88bf4b60e01b815260040160405180910390fd5b80613411613472565b60080180546001600160a01b0319166001600160a01b039290921691909117905550565b600061343f611573565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090565b60018160028111156134aa576134aa614692565b036134b85761072d82612c0a565b6000806134c4846138ef565b8060200190518101906134d79190614d91565b915091506134f4846040518060200160405280600081525061268b565b6134fe848361306b565b6040516001600160a01b038216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a250505050565b600081815260008051602061513083398151915260205260408120600080516020615110833981519152915b60048201548110156135b85781600101600083600401838154811061358b5761358b6149d0565b9060005260206000200154815260200190815260200160002060006135b091906141a5565b600101613564565b506135c76004820160006141c3565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610cbd60048301826141c3565b600061360f611573565b90506002810161361f8482614b3a565b506003810161362e8382614b3a565b50600090555050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613684576040519150601f19603f3d011682016040523d82523d6000602084013e613689565b606091505b50509050806109e35760405162461bcd60e51b815260206004820152601c60248201527f6e617469766520746f6b656e207472616e73666572206661696c6564000000006044820152606401610768565b816001600160a01b0316836001600160a01b0316031561142657306001600160a01b0384160361371857611e8e6001600160a01b0385168383613b5b565b6114266001600160a01b038516848484613bba565b600061271082111561378b5760405162461bcd60e51b815260206004820152602160248201527f426173697320706f696e74732063616e6e6f74206578636565642031305f30306044820152600360fc1b6064820152608401610768565b61271061379883856150f8565b6112dd9190614c2b565b60606107c27f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01613bf3565b60008181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360205260408120805460609291839182917f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd009161382f90614973565b80601f016020809104026020016040519081016040528092919081815260200182805461385b90614973565b80156138a85780601f1061387d576101008083540402835291602001916138a8565b820191906000526020600020905b81548152906001019060200180831161388b57829003601f168201915b50505060008981526003850160205260409020600181015493985060ff90931696506138da926002019150613c009050565b92506138e586613c0b565b9150509193509193565b60008181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040902080546060916000805160206151708339815191529161393a90614973565b80601f016020809104026020016040519081016040528092919081815260200182805461396690614973565b80156139b35780601f10613988576101008083540402835291602001916139b3565b820191906000526020600020905b81548152906001019060200180831161399657829003601f168201915b5050505050915050919050565b60007f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c00805482908290600090613a1f9084906149bd565b90915550505050565b60006139e4611573565b80613a3b613472565b600093845260090160205260409092209190915550565b60008281526000805160206151908339815191526020526040812080546000805160206151708339815191529284929161274e9084906149bd565b61072d828260405180602001604052806000815250613ce8565b6000805160206151108339815191526000613ac0613472565b60060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015613b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b3c9190614ad5565b82546001600160a01b0319166001600160a01b03919091161790915550565b6040516001600160a01b038381166024830152604482018390526109e391859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613d5e565b6040516001600160a01b0384811660248301528381166044830152606482018390526114269186918216906323b872dd90608401613b88565b606060006112dd83613dc1565b606061071b82613e1d565b60008181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360205260408120606091600490910190613c4a82613efa565b90506000816001600160401b03811115613c6657613c666143de565b604051908082528060200260200182016040528015613c8f578160200160208202803683370190505b50905060005b82811015613cdf576000613ca98583613f04565b905080838381518110613cbe57613cbe6149d0565b6001600160a01b039092166020928302919091019091015250600101613c95565b50949350505050565b613cf28383613f10565b6001600160a01b0383163b156109e3576000613d0c611573565b5490508281035b613d2660008683806001019450866131e5565b613d43576040516368d2bf6b60e11b815260040160405180910390fd5b818110613d135781613d53611573565b5414610cbd57600080fd5b6000613d736001600160a01b0384168361404b565b90508051600014158015613d98575080806020019051810190613d9691906149e6565b155b156109e357604051635274afe760e01b81526001600160a01b0384166004820152602401610768565b606081600001805480602002602001604051908101604052809291908181526020018280548015613e1157602002820191906000526020600020905b815481526020019060010190808311613dfd575b50505050509050919050565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015613eef578382906000526020600020018054613e6290614973565b80601f0160208091040260200160405190810160405280929190818152602001828054613e8e90614973565b8015613edb5780601f10613eb057610100808354040283529160200191613edb565b820191906000526020600020905b815481529060010190602001808311613ebe57829003601f168201915b505050505081526020019060010190613e43565b505050509050919050565b600061071b825490565b60006112dd8383614059565b6000613f1a611573565b5490506000829003613f3f5760405163b562e8dd60e01b815260040160405180910390fd5b680100000000000000018202613f53611573565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b1717613f8e611573565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461401857808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613fe0565b508160000361403957604051622e076360e81b815260040160405180910390fd5b80614042611573565b55506109e39050565b60606112dd83836000614083565b6000826000018281548110614070576140706149d0565b9060005260206000200154905092915050565b6060814710156140a85760405163cd78605960e01b8152306004820152602401610768565b600080856001600160a01b031684866040516140c49190614a03565b60006040518083038185875af1925050503d8060008114614101576040519150601f19603f3d011682016040523d82523d6000602084013e614106565b606091505b5091509150614116868383614120565b9695505050505050565b606082614135576141308261417c565b6112dd565b815115801561414c57506001600160a01b0384163b155b1561417557604051639996b31560e01b81526001600160a01b0385166004820152602401610768565b50806112dd565b80511561418c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825590600052602060002090810190610d3691906141e1565b5080546000825590600052602060002090810190610d369190614204565b5b808211156142005780546001600160a81b03191681556001016141e2565b5090565b5b808211156142005760008155600101614205565b60005b8381101561423457818101518382015260200161421c565b50506000910152565b60008151808452614255816020860160208601614219565b601f01601f19169290920160200192915050565b6020815260006112dd602083018461423d565b60006020828403121561428e57600080fd5b5035919050565b6001600160a01b0381168114610d3657600080fd5b80356142b581614295565b919050565b600080604083850312156142cd57600080fd5b82356142d881614295565b946020939093013593505050565b600080602083850312156142f957600080fd5b82356001600160401b038082111561431057600080fd5b818501915085601f83011261432457600080fd5b81358181111561433357600080fd5b86602082850101111561434557600080fd5b60209290920196919550909350505050565b60008060006060848603121561436c57600080fd5b833561437781614295565b9250602084013561438781614295565b929592945050506040919091013590565b60038110610d3657600080fd5b6000806000606084860312156143ba57600080fd5b833592506020840135915060408401356143d381614398565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715614417576144176143de565b60405290565b604051608081016001600160401b0381118282101715614417576144176143de565b604051606081016001600160401b0381118282101715614417576144176143de565b604080519081016001600160401b0381118282101715614417576144176143de565b604051601f8201601f191681016001600160401b03811182821017156144ab576144ab6143de565b604052919050565b60006001600160401b038311156144cc576144cc6143de565b6144df601f8401601f1916602001614483565b90508281528383830111156144f357600080fd5b828260208301376000602084830101529392505050565b600082601f83011261451b57600080fd5b6112dd838335602085016144b3565b6001600160401b0381168114610d3657600080fd5b80356142b58161452a565b6000806040838503121561455d57600080fd5b82356001600160401b038082111561457457600080fd5b90840190610120828703121561458957600080fd5b6145916143f4565b8235828111156145a057600080fd5b6145ac8882860161450a565b8252506020830135828111156145c157600080fd5b6145cd8882860161450a565b60208301525060408301356040820152606083013560608201526145f36080840161453f565b608082015261460460a084016142aa565b60a082015261461560c084016142aa565b60c082015260e083013560e082015261010091506146348284016142aa565b8282015280945050505061464a602084016142aa565b90509250929050565b60006020828403121561466557600080fd5b81356112dd81614295565b6000806040838503121561468357600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b60038110610d3657610d36614692565b60008151808452602080850194506020840160005b838110156147225781518051600681106146e9576146e9614692565b885280840151848901526040808201516001600160a01b03169089015260609081015190880152608090960195908201906001016146cd565b509495945050505050565b60008151808452602080850194506020840160005b838110156147225781518051614757816146a8565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101614742565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156147df57835180516147bd816146a8565b835285015160ff168583015292840192600192909201916040909101906147a8565b50838701519350601f199250828682030160408701526147ff81856146b8565b93505050604085015181858403016060860152614116838261472d565b8015158114610d3657600080fd5b6000806040838503121561483d57600080fd5b823561484881614295565b915060208301356148588161481c565b809150509250929050565b6000806000806080858703121561487957600080fd5b843561488481614295565b9350602085013561489481614295565b92506040850135915060608501356001600160401b038111156148b657600080fd5b8501601f810187136148c757600080fd5b6148d6878235602084016144b3565b91505092959194509250565b600080604083850312156148f557600080fd5b82356001600160401b038082111561490c57600080fd5b6149188683870161450a565b9350602085013591508082111561492e57600080fd5b5061493b8582860161450a565b9150509250929050565b6000806040838503121561495857600080fd5b823561496381614295565b9150602083013561485881614295565b600181811c9082168061498757607f821691505b60208210810361191457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561071b5761071b6149a7565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156149f857600080fd5b81516112dd8161481c565b60008251614a15818460208701614219565b9190910192915050565b805160208083015191908110156119145760001960209190910360031b1b16919050565b60008151808452602080850194506020840160005b838110156147225781516001600160a01b031687529582019590820190600101614a58565b838152606060208201526000614a966060830185614a43565b9050826040830152949350505050565b60008351614ab8818460208801614219565b835190830190614acc818360208801614219565b01949350505050565b600060208284031215614ae757600080fd5b81516112dd81614295565b601f8211156109e3576000816000526020600020601f850160051c81016020861015614b1b5750805b601f850160051c820191505b818110156109c057828155600101614b27565b81516001600160401b03811115614b5357614b536143de565b614b6781614b618454614973565b84614af2565b602080601f831160018114614b9c5760008415614b845750858301515b600019600386901b1c1916600185901b1785556109c0565b600085815260208120601f198616915b82811015614bcb57888601518255948401946001909101908401614bac565b5085821015614be95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215614c0b57600080fd5b5051919050565b600060018201614c2457614c246149a7565b5060010190565b600082614c4857634e487b7160e01b600052601260045260246000fd5b500490565b60208101614c5a836146a8565b91905290565b600060208284031215614c7257600080fd5b81516112dd8161452a565b600060208284031215614c8f57600080fd5b815161ffff811681146112dd57600080fd5b8082018082111561071b5761071b6149a7565b6001600160401b03818116838216019080821115614cd457614cd46149a7565b5092915050565b60006001600160401b03821115614cf457614cf46143de565b5060051b60200190565b60006020808385031215614d1157600080fd5b82516001600160401b03811115614d2757600080fd5b8301601f81018513614d3857600080fd5b8051614d4b614d4682614cdb565b614483565b81815260059190911b82018301908381019087831115614d6a57600080fd5b928401925b82841015613191578351614d8281614295565b82529284019290840190614d6f565b60008060408385031215614da457600080fd5b8251614daf81614295565b602084015190925061485881614295565b60018060a01b03851681528360208201528260408201526080606082015260006141166080830184614a43565b805160ff811681146142b557600080fd5b600082601f830112614e0f57600080fd5b81516020614e1f614d4683614cdb565b82815260079290921b84018101918181019086841115614e3e57600080fd5b8286015b84811015614ea85760808189031215614e5b5760008081fd5b614e6361441d565b815160068110614e735760008081fd5b81528185015185820152604080830151614e8c81614295565b9082015260608281015190820152835291830191608001614e42565b509695505050505050565b600082601f830112614ec457600080fd5b81516020614ed4614d4683614cdb565b82815260609283028501820192828201919087851115614ef357600080fd5b8387015b85811015614f515781818a031215614f0f5760008081fd5b614f1761443f565b8151614f2281614398565b8152614f2f828701614ded565b868201526040614f40818401614ded565b908201528452928401928101614ef7565b5090979650505050505050565b60006020808385031215614f7157600080fd5b82516001600160401b0380821115614f8857600080fd5b9084019060608287031215614f9c57600080fd5b614fa461443f565b825182811115614fb357600080fd5b8301601f81018813614fc457600080fd5b8051614fd2614d4682614cdb565b81815260069190911b8201860190868101908a831115614ff157600080fd5b928701925b82841015615045576040848c03121561500f5760008081fd5b615017614461565b845161502281614398565b815261502f858a01614ded565b818a015282526040939093019290870190614ff6565b8452505050828401518281111561505b57600080fd5b61506788828601614dfe565b8583015250604083015193508184111561508057600080fd5b61508c87858501614eb3565b60408201529695505050505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906141169083018461423d565b6000602082840312156150e057600080fd5b81516001600160e01b0319811681146112dd57600080fd5b808202811582820484141761071b5761071b6149a756fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0154f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0034516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0034516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e01 \ No newline at end of file diff --git a/packages/generated/dev/abis/MembershipFacet.json b/packages/generated/dev/abis/MembershipFacet.json index 6d084b584..0b4c696fa 100644 --- a/packages/generated/dev/abis/MembershipFacet.json +++ b/packages/generated/dev/abis/MembershipFacet.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"__ERC721A_init","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"__EntitlementGated_init","inputs":[{"name":"entitlementChecker","type":"address","internalType":"contract IEntitlementChecker"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"__Membership_init","inputs":[{"name":"info","type":"tuple","internalType":"struct IMembershipBase.Membership","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"maxSupply","type":"uint256","internalType":"uint256"},{"name":"duration","type":"uint64","internalType":"uint64"},{"name":"currency","type":"address","internalType":"address"},{"name":"feeRecipient","type":"address","internalType":"address"},{"name":"freeAllocation","type":"uint256","internalType":"uint256"},{"name":"pricingModule","type":"address","internalType":"address"}]},{"name":"spaceFactory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"expiresAt","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getMembershipCurrency","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getMembershipDuration","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getMembershipFreeAllocation","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMembershipImage","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMembershipLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMembershipPrice","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMembershipPricingModule","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getMembershipRenewalPrice","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRuleData","inputs":[{"name":"transactionId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRuleEntitlement.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlement.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlement.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"stateMutability":"view"},{"type":"function","name":"getSpaceFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"joinSpace","inputs":[{"name":"receiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"postEntitlementCheckResult","inputs":[{"name":"transactionId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"result","type":"uint8","internalType":"enum IEntitlementGatedBase.NodeVoteStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renewMembership","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMembershipFreeAllocation","inputs":[{"name":"newAllocation","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMembershipImage","inputs":[{"name":"newImage","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMembershipLimit","inputs":[{"name":"newLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMembershipPrice","inputs":[{"name":"newPrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMembershipPricingModule","inputs":[{"name":"pricingModule","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdraw","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Banned","inputs":[{"name":"moderator","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ConsecutiveTransfer","inputs":[{"name":"fromTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EntitlementCheckResultPosted","inputs":[{"name":"transactionId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"result","type":"uint8","indexed":false,"internalType":"enum IEntitlementGatedBase.NodeVoteStatus"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"InterfaceAdded","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"InterfaceRemoved","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"MembershipCurrencyUpdated","inputs":[{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MembershipFeeRecipientUpdated","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MembershipFreeAllocationUpdated","inputs":[{"name":"allocation","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MembershipLimitUpdated","inputs":[{"name":"limit","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MembershipPriceUpdated","inputs":[{"name":"price","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MembershipTokenIssued","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MembershipTokenRejected","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MembershipWithdrawal","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Prepay__Prepaid","inputs":[{"name":"supply","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleCreated","inputs":[{"name":"creator","type":"address","indexed":true,"internalType":"address"},{"name":"roleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleRemoved","inputs":[{"name":"remover","type":"address","indexed":true,"internalType":"address"},{"name":"roleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleUpdated","inputs":[{"name":"updater","type":"address","indexed":true,"internalType":"address"},{"name":"roleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SubscriptionUpdate","inputs":[{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"expiration","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unbanned","inputs":[{"name":"moderator","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ApprovalCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"ApprovalQueryForNonexistentToken","inputs":[]},{"type":"error","name":"BalanceQueryForZeroAddress","inputs":[]},{"type":"error","name":"Banning__AlreadyBanned","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Banning__CannotBanOwner","inputs":[]},{"type":"error","name":"Banning__CannotBanSelf","inputs":[]},{"type":"error","name":"Banning__InvalidTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Banning__NotBanned","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Dispatcher__InvalidCaller","inputs":[]},{"type":"error","name":"Dispatcher__InvalidValue","inputs":[]},{"type":"error","name":"ERC5643__DurationZero","inputs":[]},{"type":"error","name":"ERC5643__InvalidTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC5643__NotApprovedOrOwner","inputs":[]},{"type":"error","name":"ERC5643__SubscriptionNotRenewable","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"EntitlementGated_InvalidAddress","inputs":[]},{"type":"error","name":"EntitlementGated_NodeAlreadyVoted","inputs":[]},{"type":"error","name":"EntitlementGated_NodeNotFound","inputs":[]},{"type":"error","name":"EntitlementGated_TransactionCheckAlreadyCompleted","inputs":[]},{"type":"error","name":"EntitlementGated_TransactionCheckAlreadyRegistered","inputs":[]},{"type":"error","name":"EntitlementGated_TransactionNotRegistered","inputs":[]},{"type":"error","name":"Entitlement__InvalidValue","inputs":[]},{"type":"error","name":"Entitlement__NotAllowed","inputs":[]},{"type":"error","name":"Entitlement__NotMember","inputs":[]},{"type":"error","name":"Entitlement__ValueAlreadyExists","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"Initializable_InInitializingState","inputs":[]},{"type":"error","name":"Initializable_NotInInitializingState","inputs":[]},{"type":"error","name":"Introspection_AlreadySupported","inputs":[]},{"type":"error","name":"Introspection_NotSupported","inputs":[]},{"type":"error","name":"Membership__AlreadyMember","inputs":[]},{"type":"error","name":"Membership__InsufficientAllowance","inputs":[]},{"type":"error","name":"Membership__InsufficientPayment","inputs":[]},{"type":"error","name":"Membership__InvalidAddress","inputs":[]},{"type":"error","name":"Membership__InvalidCurrency","inputs":[]},{"type":"error","name":"Membership__InvalidDuration","inputs":[]},{"type":"error","name":"Membership__InvalidFeeRecipient","inputs":[]},{"type":"error","name":"Membership__InvalidFreeAllocation","inputs":[]},{"type":"error","name":"Membership__InvalidLimit","inputs":[]},{"type":"error","name":"Membership__InvalidMaxSupply","inputs":[]},{"type":"error","name":"Membership__InvalidPayment","inputs":[]},{"type":"error","name":"Membership__InvalidPrice","inputs":[]},{"type":"error","name":"Membership__InvalidPricingModule","inputs":[]},{"type":"error","name":"Membership__InvalidTokenId","inputs":[]},{"type":"error","name":"Membership__MaxSupplyReached","inputs":[]},{"type":"error","name":"Membership__NotExpired","inputs":[]},{"type":"error","name":"Membership__PriceTooLow","inputs":[]},{"type":"error","name":"MintERC2309QuantityExceedsLimit","inputs":[]},{"type":"error","name":"MintToZeroAddress","inputs":[]},{"type":"error","name":"MintZeroQuantity","inputs":[]},{"type":"error","name":"Ownable__NotOwner","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Ownable__ZeroAddress","inputs":[]},{"type":"error","name":"OwnerQueryForNonexistentToken","inputs":[]},{"type":"error","name":"OwnershipNotInitializedForExtraData","inputs":[]},{"type":"error","name":"Pausable__NotPaused","inputs":[]},{"type":"error","name":"Pausable__Paused","inputs":[]},{"type":"error","name":"Prepay__InvalidAddress","inputs":[]},{"type":"error","name":"Prepay__InvalidAmount","inputs":[]},{"type":"error","name":"Prepay__InvalidMembership","inputs":[]},{"type":"error","name":"Prepay__InvalidSupplyAmount","inputs":[]},{"type":"error","name":"ReentrancyGuard__ReentrantCall","inputs":[]},{"type":"error","name":"Roles__EntitlementAlreadyExists","inputs":[]},{"type":"error","name":"Roles__EntitlementDoesNotExist","inputs":[]},{"type":"error","name":"Roles__InvalidEntitlementAddress","inputs":[]},{"type":"error","name":"Roles__InvalidPermission","inputs":[]},{"type":"error","name":"Roles__PermissionAlreadyExists","inputs":[]},{"type":"error","name":"Roles__PermissionDoesNotExist","inputs":[]},{"type":"error","name":"Roles__RoleDoesNotExist","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TransferCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"TransferFromIncorrectOwner","inputs":[]},{"type":"error","name":"TransferToNonERC721ReceiverImplementer","inputs":[]},{"type":"error","name":"TransferToZeroAddress","inputs":[]},{"type":"error","name":"URIQueryForNonexistentToken","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001c62000022565b620000ca565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200006f576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff9081161015620000c757805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6151de80620000da6000396000f3fe60806040526004361061020f5760003560e01c806370a082311161011857806395d89b41116100a0578063c87b56dd1161006f578063c87b56dd146105d0578063d2f01f19146105f0578063df9a9fe614610610578063e847abdd14610630578063e985e9c51461064557600080fd5b806395d89b411461056857806397fb7c1e1461057d578063a22cb4651461059d578063b88d4fde146105bd57600080fd5b80638120f0ba116100e75780638120f0ba146104d15780638c625b06146104fe57806392c399ff1461051157806393b13cb71461053e57806395d600c81461055357600080fd5b806370a082311461046957806379dda585146104895780637adc9cbe1461049e5780637c9669ac146104be57600080fd5b80634739e8051161019b5780635becd24a1161016a5780635becd24a146103df5780636352211e146103ff578063657e45e81461041f57806369d5f38a14610434578063706b8e091461045457600080fd5b80634739e8051461035f5780634c2abfbe1461037f57806351cff8d91461039f5780635803909f146103bf57600080fd5b80631278076a116101e25780631278076a146102ac57806317c95709146102cf57806318160ddd1461032457806323b872dd1461033957806342842e0e1461034c57600080fd5b806306fdde0314610214578063081812fc1461023f578063095ea7b3146102775780630ef1be5f1461028c575b600080fd5b34801561022057600080fd5b50610229610675565b604051610236919061427e565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004614291565b610710565b6040516001600160a01b039091168152602001610236565b61028a6102853660046142cf565b610721565b005b34801561029857600080fd5b5061028a6102a73660046142fb565b610731565b3480156102b857600080fd5b506102c16107b0565b604051908152602001610236565b3480156102db57600080fd5b506102c16102ea366004614291565b60009081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b031690565b34801561033057600080fd5b506102c16107c7565b61028a61034736600461436c565b6107d1565b61028a61035a36600461436c565b6109c8565b34801561036b57600080fd5b5061028a61037a3660046143ba565b6109e8565b34801561038b57600080fd5b5061028a61039a36600461455f565b610a51565b3480156103ab57600080fd5b5061028a6103ba366004614668565b610ac7565b3480156103cb57600080fd5b506102c16103da366004614291565b610b69565b3480156103eb57600080fd5b5061028a6103fa366004614291565b610b7c565b34801561040b57600080fd5b5061025f61041a366004614291565b610c01565b34801561042b57600080fd5b5061025f610c0c565b34801561044057600080fd5b5061028a61044f366004614291565b610c16565b34801561046057600080fd5b506102c1610cc4565b34801561047557600080fd5b506102c1610484366004614668565b610cce565b34801561049557600080fd5b5061025f610cd9565b3480156104aa57600080fd5b5061028a6104b9366004614668565b610ce3565b61028a6104cc366004614291565b610d39565b3480156104dd57600080fd5b506104e6610e96565b6040516001600160401b039091168152602001610236565b61028a61050c366004614668565b610ea0565b34801561051d57600080fd5b5061053161052c366004614685565b6112af565b6040516102369190614798565b34801561054a57600080fd5b506102296112e4565b34801561055f57600080fd5b506102c16112ee565b34801561057457600080fd5b506102296112f8565b34801561058957600080fd5b5061028a610598366004614291565b611310565b3480156105a957600080fd5b5061028a6105b836600461483f565b611365565b61028a6105cb366004614878565b6113e2565b3480156105dc57600080fd5b506102296105eb366004614291565b61142c565b3480156105fc57600080fd5b5061028a61060b3660046148f7565b6114bc565b34801561061c57600080fd5b5061028a61062b366004614668565b611510565b34801561063c57600080fd5b5061025f61155d565b34801561065157600080fd5b5061066561066036600461495a565b611567565b6040519015158152602001610236565b606061067f611573565b600201805461068d90614988565b80601f01602080910402602001604051908101604052809291908181526020018280546106b990614988565b80156107065780601f106106db57610100808354040283529160200191610706565b820191906000526020600020905b8154815290600101906020018083116106e957829003601f168201915b5050505050905090565b600061071b82611597565b92915050565b61072d828260016115e4565b5050565b610739611699565b6001600160a01b0316336001600160a01b031614610771576040516365f4906560e01b81523360048201526024015b60405180910390fd5b61072d82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061176392505050565b60006107c26107bd61177a565b611799565b905090565b60006107c261177a565b60006107dc82611899565b9050836001600160a01b0316816001600160a01b03161461080f5760405162a1148160e81b815260040160405180910390fd5b60008061081b84611934565b91509150610840818761082b3390565b6001600160a01b039081169116811491141790565b61086b5761084e8633611567565b61086b57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661089257604051633a954ecd60e21b815260040160405180910390fd5b801561089d57600082555b6108a5611573565b6001600160a01b03871660009081526005919091016020526040902080546000190190556108d1611573565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b17610908611573565b60008681526004919091016020526040812091909155600160e11b8416900361097e5760018401610937611573565b60008281526004919091016020526040812054900361097c57610958611573565b54811461097c5783610968611573565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6109e3838383604051806020016040528060008152506113e2565b505050565b600260008051602061515e8339815191525403610a1857604051635db5c7cd60e11b815260040160405180910390fd5b610a2f600260008051602061515e83398151915255565b610a3a83838361195c565b6109e3600160008051602061515e83398151915255565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610a9b57604051630ef4733760e31b815260040160405180910390fd5b610aab6322fa1fe560e21b611bff565b610ab58282611cdd565b61072d82600001518360200151611e00565b610acf611699565b6001600160a01b0316336001600160a01b031614610b02576040516365f4906560e01b8152336004820152602401610768565b6001600160a01b038116610b2957604051635fbd571760e01b815260040160405180910390fd5b6000610b33611e2a565b905080600003610b5657604051635894b54560e11b815260040160405180910390fd5b61072d610b61611e3d565b308484611e59565b600061071b82610b7761177a565b611e9f565b610b84611699565b6001600160a01b0316336001600160a01b031614610bb7576040516365f4906560e01b8152336004820152602401610768565b6000610bc1611ee5565b90508015801590610bd157508082115b15610bef5760405163c3983b9160e01b815260040160405180910390fd5b610bf882611ef8565b61072d82611f9d565b600061071b82611899565b60006107c2611e3d565b610c1e611699565b6001600160a01b0316336001600160a01b031614610c51576040516365f4906560e01b8152336004820152602401610768565b610c5a81611fe0565b610c6261206e565b6001600160a01b03166391b7f5ed826040518263ffffffff1660e01b8152600401610c8f91815260200190565b600060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b5050505050565b60006107c261208a565b600061071b82612129565b60006107c2612191565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610d2d57604051630ef4733760e31b815260040160405180910390fd5b610d36816121ad565b50565b600260008051602061515e8339815191525403610d6957604051635db5c7cd60e11b815260040160405180910390fd5b610d80600260008051602061515e83398151915255565b6000610d8b82610c01565b90506001600160a01b038116610db457604051635fbd571760e01b815260040160405180910390fd5b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b0316610df36121e8565b6001600160401b0316610e0642836149d2565b10610e245760405163dce9a1d360e01b815260040160405180910390fd5b6000610e3284610b7761177a565b90508015610e6b576000610e46848361226e565b90506000610e5482846149d2565b90508015610e6857610e668582612386565b505b50505b610e7c84610e776121e8565b612524565b505050610d36600160008051602061515e83398151915255565b60006107c26121e8565b600260008051602061515e8339815191525403610ed057604051635db5c7cd60e11b815260040160405180910390fd5b610ee7600260008051602061515e83398151915255565b610ef0816125ed565b60405133606081901b6bffffffffffffffffffffffff19166020830152436034830152906000906054016040516020818303038152906040528051906020012090506000610fb282610f868486610f4687612656565b604080516020808201959095526001600160a01b039390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9050610ff4818486604051602001610fe09291906001600160a01b0392831681529116602082015260400190565b60405160208183030381529060405261268b565b34156110045761100481346126d2565b6000611030604051806040016040528060098152602001684a6f696e537061636560b81b815250612758565b90506000806000611040336129a2565b845190915060005b81811015611220576000868281518110611064576110646149e5565b6020026020010151905080604001516112175760005b8160800151518110156112155760008260800151828151811061109f5761109f6149e5565b60200260200101519050806001600160a01b0316632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110b91906149fb565b6111f457806001600160a01b0316630cf0b5336000801b88604051806040016040528060098152602001684a6f696e537061636560b81b8152506040516020016111559190614a18565b60405160208183030381529060405261116d90614a34565b6040518463ffffffff1660e01b815260040161118b93929190614a92565b602060405180830381865afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc91906149fb565b156111eb576111da8a612c0a565b505050505050505050505050611298565b6001965061120c565b6112038a828560000151612dbc565b60009650600197505b5060010161107a565b505b50600101611048565b508315801561122c5750825b1561128f5761124a866040518060200160405280600081525061268b565b341561125a5761125a868961306b565b6040516001600160a01b038a16907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a25b50505050505050505b610d36600160008051602061515e83398151915255565b6112d360405180606001604052806060815260200160608152602001606081525090565b6112dd83836130a2565b9392505050565b60606107c261319c565b60006107c2611ee5565b6060611302611573565b600301805461068d90614988565b611318611699565b6001600160a01b0316336001600160a01b03161461134b576040516365f4906560e01b8152336004820152602401610768565b61135c8161135761177a565b6131b4565b610d36816131d5565b8061136e611573565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6113ed8484846107d1565b6001600160a01b0383163b1561142657611409848484846131e5565b611426576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6060611437826132d0565b61145457604051630a14c4b560e41b815260040160405180910390fd5b600061146b60408051602081019091526000815290565b9050805160000361148b57604051806020016040528060008152506112dd565b806114958461330c565b6040516020016114a6929190614abb565b6040516020818303038152906040529392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661150657604051630ef4733760e31b815260040160405180910390fd5b61072d8282611e00565b611518611699565b6001600160a01b0316336001600160a01b03161461154b576040516365f4906560e01b8152336004820152602401610768565b61155481613350565b610d3681613408565b60006107c261206e565b60006112dd8383613435565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090565b60006115a2826132d0565b6115bf576040516333d1c03960e21b815260040160405180910390fd5b6115c7611573565b60009283526006016020525060409020546001600160a01b031690565b60006115ef83610c01565b9050811561162e57336001600160a01b0382161461162e576116118133613435565b61162e576040516367d9dca160e11b815260040160405180910390fd5b83611637611573565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015611739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614aea565b91505090565b8061176c613472565b600c019061072d9082614b4f565b600080611785611573565b60010154611791611573565b540303919050565b6000806117a4613472565b905060006117b061208a565b60088301549091506001600160a01b031615611844576008820154604051635cf4ee9160e01b815260048101839052602481018690526001600160a01b0390911690635cf4ee9190604401602060405180830381865afa158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183c9190614c0e565b949350505050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611818573d6000803e3d6000fd5b6000806118a4611573565b60008481526004820160205260408120549350909150600160e01b8316900361191a578160000361191457805483106118f057604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156118f1575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b6000806000611941611573565b60009485526006016020525050604090912080549092909150565b600083815260008051602061513e83398151915260205260409020805460008051602061511e833981519152919061010090046001600160a01b031615806119a65750805460ff16155b156119c457604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff16156119f657604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b81811015611b345760008981526001870160205260408120805483908110611a3757611a376149e5565b60009182526020909120018054909150336001600160a01b0390911603611ac35760008154600160a01b900460ff166002811115611a7757611a776146a7565b14611a95576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b836002811115611ab957611ab96146a7565b0217905550600195505b60018154600160a01b900460ff166002811115611ae257611ae26146a7565b03611af95784611af181614c27565b955050611b2b565b60028154600160a01b900460ff166002811115611b1857611b186146a7565b03611b2b5783611b2781614c27565b9450505b50600101611a0d565b5083611b5357604051638223a7e960e01b815260040160405180910390fd5b611b5e600282614c40565b831180611b745750611b71600282614c40565b82115b15611bf45760008881526002860160205260408120805460ff19166001179055828411611ba2576002611ba5565b60015b9050611bb18a82613496565b897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051611be19190614c62565b60405180910390a2611bf28a613538565b505b505050505050505050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114611c8c576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055611ca5565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b6000611ce7613472565b6006810180546001600160a01b038086166001600160a01b031992831617909255610100860151600884018054919093169082161790915560048201805490911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1790556060840151600382015560e08401516007820181905590915015611d6b57611d6b8360e00151611ef8565b611d79836101000151613350565b6040830151156109e357611d908360400151611fe0565b600881015460408085015190516391b7f5ed60e01b81526001600160a01b03909216916391b7f5ed91611dc99160040190815260200190565b600060405180830381600087803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b50505050505050565b611e106380ac58cd60e01b611bff565b611e20635b5e139f60e01b611bff565b61072d8282613605565b6000611e34613472565b600a0154905090565b6000611e47613472565b600401546001600160a01b0316919050565b80156114265773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03851601611e9357611e8e8282613637565b611426565b611426848484846136da565b600080611eaa613472565b600085815260098201602052604090205490915015611edc57600084815260099091016020526040902054905061071b565b61183c83611799565b6000611eef613472565b60030154905090565b6000611f02613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7d9190614c0e565b82111561072d5760405163c3983b9160e01b815260040160405180910390fd5b6000611fa7613472565b6007810183905560405190915082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f90600090a25050565b6000611fea612191565b6001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204b9190614c0e565b90508082101561072d57604051631a23d64760e11b815260040160405180910390fd5b6000612078613472565b600801546001600160a01b0316919050565b600080612095613472565b600781015490915080156120a95792915050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190614c0e565b9250505090565b60006001600160a01b038216612152576040516323d3ad8160e21b815260040160405180910390fd5b6001600160401b03612162611573565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b600061219b613472565b600601546001600160a01b0316919050565b6121bd636afd38fd60e11b611bff565b60008051602061511e83398151915280546001600160a01b0319166001600160a01b03831617905550565b6000806121f3613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614c75565b600080612279613472565b6006810154600480830154604080516301332c8360e61b815290519495506001600160a01b039384169493909116926000928592634ccb20c092818301926020928290030181865afa1580156122d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f79190614aea565b90506000836001600160a01b0316639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235d9190614c92565b905061236d878261ffff1661372d565b955061237b83898489611e59565b505050505092915050565b600080612391613472565b9050600061239d611e3d565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038216016123e8578382600a0160008282546123d89190614cb6565b9091555084935061071b92505050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190614c0e565b905061246383883089611e59565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156124aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ce9190614c0e565b905060006124dc83836149d2565b90508781146124fe57604051635894b54560e11b815260040160405180910390fd5b8086600a0160008282546125129190614cb6565b90915550909998505050505050505050565b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce006020819052604082205490916001600160401b039091169081810361257a576125738442614cc9565b9050612587565b6125848483614cc9565b90505b60008581526020848152604091829020805467ffffffffffffffff19166001600160401b038516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b6001600160a01b03811661261457604051635fbd571760e01b815260040160405180910390fd5b61261c611ee5565b15801590612638575061262d611ee5565b61263561177a565b10155b15610d3657604051637efcdb4960e01b815260040160405180910390fd5b600081815260008051602061517e8339815191526020819052604082208054908361268083614c27565b909155509392505050565b60008281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040902060008051602061517e833981519152906114268382614b4f565b806000036126f35760405163acdc0d4960e01b815260040160405180910390fd5b8034146127135760405163acdc0d4960e01b815260040160405180910390fd5b60008281526000805160206151be83398151915260205260408120805460008051602061517e8339815191529284929161274e908490614cb6565b9091555050505050565b606060006127646137a2565b80519091506000816001600160401b03811115612783576127836143f3565b6040519080825280602002602001820160405280156127ac578160200160208202803683370190505b5085516020870120909150600090815b8481101561287b5760006127e88783815181106127db576127db6149e5565b60200260200101516137cd565b509250505060005b8151811015612871578382828151811061280c5761280c6149e5565b6020026020010151805190602001200361286957878381518110612832576128326149e5565b602002602001015186868151811061284c5761284c6149e5565b60209081029190910101528461286181614c27565b955050612871565b6001016127f0565b50506001016127bc565b506000826001600160401b03811115612896576128966143f3565b6040519080825280602002602001820160405280156128fb57816020015b6128e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816128b45790505b50905060005b8381101561299657600085828151811061291d5761291d6149e5565b60200260200101519050600080600080612936856137cd565b93509350935093506040518060a00160405280868152602001858152602001841515815260200183815260200182815250878781518110612979576129796149e5565b602002602001018190525050505050508080600101915050612901565b50979650505050505050565b606060006129ae613472565b6006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa1580156129fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a269190810190614d0c565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa158015612a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a969190614aea565b905081516000148015612ab157506001600160a01b03811615155b15612b2b5760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015612b00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b289190810190614d0c565b91505b81516000612b3a826001614cb6565b6001600160401b03811115612b5157612b516143f3565b604051908082528060200260200182016040528015612b7a578160200160208202803683370190505b50905060005b82811015612bd457848181518110612b9a57612b9a6149e5565b6020026020010151828281518110612bb457612bb46149e5565b6001600160a01b0390921660209283029190910190910152600101612b80565b5086818381518110612be857612be86149e5565b6001600160a01b03909216602092830291909101909101529695505050505050565b600080612c16836138dd565b806020019051810190612c299190614d9f565b915091506000612c3761177a565b9050600080612c4461208a565b90506000612c506139ae565b905083821115612c6d5760009250612c68878761306b565b612c97565b8015612c8b5760009250612c8160016139d8565b612c68878761306b565b612c9484611799565b92505b6000612ca1613a16565b90508315612d655760008881526000805160206151be833981519152602052604081205490819003612ce657604051635894b54560e11b815260040160405180910390fd5b848114612d06576040516334a7a93d60e01b815260040160405180910390fd5b612d108286613a20565b6000612d1c898761226e565b90506000612d2a82886149d2565b90508015612d3e57612d3c8a82612386565b505b612d488b88613a40565b612d618b6040518060200160405280600081525061268b565b5050505b612d70866001613a7b565b612d7c81610e776121e8565b60405181906001600160a01b038816907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b57690600090a35050505050505050565b600083815260008051602061513e83398151915260205260409020805460008051602061511e833981519152919060ff161515600103612e4e5760005b6004820154811015612e4c5783826004018281548110612e1b57612e1b6149e5565b906000526020600020015403612e44576040516301ab53df60e31b815260040160405180910390fd5b600101612df9565b505b81546001600160a01b0316612e6557612e65613a95565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015612eae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ed69190810190614d0c565b825490915060ff16612f175781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b8151811015613007578260010160008681526020019081526020016000206040518060400160405280848481518110612f6c57612f6c6149e5565b60200260200101516001600160a01b0316815260200160006002811115612f9557612f956146a7565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b836002811115612ff857612ff86146a7565b02179055505050600101612f31565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e59061303d9033908a9089908790600401614dce565b600060405180830381600087803b15801561305757600080fd5b505af1158015611bf2573d6000803e3d6000fd5b60008281526000805160206151be833981519152602052604090205480156109e3576130978382613a40565b6109e3610b61611e3d565b6130c660405180606001604052806060815260200160608152602001606081525090565b600083815260008051602061513e83398151915260205260408120805460008051602061511e8339815191529260ff9091161515900361311957604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015613169573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131919190810190614f6c565b979650505050505050565b60606131a6613472565b600c01805461068d90614988565b8082101561072d57604051636664d51760e11b815260040160405180910390fd5b806131de613472565b6003015550565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061321a9033908990889088906004016150a9565b6020604051808303816000875af1925050508015613255575060408051601f3d908101601f19168201909252613252918101906150dc565b60015b6132b3573d808015613283576040519150601f19603f3d011682016040523d82523d6000602084013e613288565b606091505b5080516000036132ab576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60006132da611573565b548210801561071b5750600160e01b6132f1611573565b60008481526004919091016020526040902054161592915050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806133265750819003601f19909101908152919050565b6001600160a01b03811661337757604051630e88bf4b60e01b815260040160405180910390fd5b61337f612191565b6040516346fc05eb60e11b81526001600160a01b0383811660048301529190911690638df80bd690602401602060405180830381865afa1580156133c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133eb91906149fb565b610d3657604051630e88bf4b60e01b815260040160405180910390fd5b80613411613472565b60080180546001600160a01b0319166001600160a01b039290921691909117905550565b600061343f611573565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090565b60018160028111156134aa576134aa6146a7565b036134b85761072d82612c0a565b6000806134c4846138dd565b8060200190518101906134d79190614d9f565b915091506134f4846040518060200160405280600081525061268b565b6134fe848361306b565b6040516001600160a01b038216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a250505050565b600081815260008051602061513e8339815191526020526040812060008051602061511e833981519152915b60048201548110156135b85781600101600083600401838154811061358b5761358b6149e5565b9060005260206000200154815260200190815260200160002060006135b091906141ba565b600101613564565b506135c76004820160006141d8565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610cbd60048301826141d8565b600061360f611573565b90506002810161361f8482614b4f565b506003810161362e8382614b4f565b50600090555050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613684576040519150601f19603f3d011682016040523d82523d6000602084013e613689565b606091505b50509050806109e35760405162461bcd60e51b815260206004820152601c60248201527f6e617469766520746f6b656e207472616e73666572206661696c6564000000006044820152606401610768565b816001600160a01b0316836001600160a01b0316031561142657306001600160a01b0384160361371857611e8e6001600160a01b0385168383613b49565b6114266001600160a01b038516848484613ba8565b600061271082111561378b5760405162461bcd60e51b815260206004820152602160248201527f426173697320706f696e74732063616e6e6f74206578636565642031305f30306044820152600360fc1b6064820152608401610768565b6127106137988385615106565b6112dd9190614c40565b60606107c27f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01613be1565b600081815260008051602061519e83398151915260205260408120805460609291839182917f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd009161381d90614988565b80601f016020809104026020016040519081016040528092919081815260200182805461384990614988565b80156138965780601f1061386b57610100808354040283529160200191613896565b820191906000526020600020905b81548152906001019060200180831161387957829003601f168201915b50505060008981526003850160205260409020600181015493985060ff90931696506138c8926002019150613bee9050565b92506138d386613bf9565b9150509193509193565b60008181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0260205260409020805460609160008051602061517e8339815191529161392890614988565b80601f016020809104026020016040519081016040528092919081815260200182805461395490614988565b80156139a15780601f10613976576101008083540402835291602001916139a1565b820191906000526020600020905b81548152906001019060200180831161398457829003601f168201915b5050505050915050919050565b60007f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c00805482908290600090613a0d9084906149d2565b90915550505050565b60006139d2611573565b80613a29613472565b600093845260090160205260409092209190915550565b60008281526000805160206151be83398151915260205260408120805460008051602061517e8339815191529284929161274e9084906149d2565b61072d828260405180602001604052806000815250613cfd565b60008051602061511e8339815191526000613aae613472565b60060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015613b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b2a9190614aea565b82546001600160a01b0319166001600160a01b03919091161790915550565b6040516001600160a01b038381166024830152604482018390526109e391859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613d73565b6040516001600160a01b0384811660248301528381166044830152606482018390526114269186918216906323b872dd90608401613b76565b606060006112dd83613dd6565b606061071b82613e32565b600081815260008051602061519e8339815191526020526040812060609190613c2490600401613f0f565b6001600160401b03811115613c3b57613c3b6143f3565b604051908082528060200260200182016040528015613c64578160200160208202803683370190505b50905060005b600084815260008051602061519e83398151915260205260409020613c9190600401613f0f565b811015613cf657600084815260008051602061519e83398151915260205260408120613cc09060040183613f19565b905080838381518110613cd557613cd56149e5565b6001600160a01b039092166020928302919091019091015250600101613c6a565b5092915050565b613d078383613f25565b6001600160a01b0383163b156109e3576000613d21611573565b5490508281035b613d3b60008683806001019450866131e5565b613d58576040516368d2bf6b60e11b815260040160405180910390fd5b818110613d285781613d68611573565b5414610cbd57600080fd5b6000613d886001600160a01b03841683614060565b90508051600014158015613dad575080806020019051810190613dab91906149fb565b155b156109e357604051635274afe760e01b81526001600160a01b0384166004820152602401610768565b606081600001805480602002602001604051908101604052809291908181526020018280548015613e2657602002820191906000526020600020905b815481526020019060010190808311613e12575b50505050509050919050565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015613f04578382906000526020600020018054613e7790614988565b80601f0160208091040260200160405190810160405280929190818152602001828054613ea390614988565b8015613ef05780601f10613ec557610100808354040283529160200191613ef0565b820191906000526020600020905b815481529060010190602001808311613ed357829003601f168201915b505050505081526020019060010190613e58565b505050509050919050565b600061071b825490565b60006112dd838361406e565b6000613f2f611573565b5490506000829003613f545760405163b562e8dd60e01b815260040160405180910390fd5b680100000000000000018202613f68611573565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b1717613fa3611573565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461402d57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613ff5565b508160000361404e57604051622e076360e81b815260040160405180910390fd5b80614057611573565b55506109e39050565b60606112dd83836000614098565b6000826000018281548110614085576140856149e5565b9060005260206000200154905092915050565b6060814710156140bd5760405163cd78605960e01b8152306004820152602401610768565b600080856001600160a01b031684866040516140d99190614a18565b60006040518083038185875af1925050503d8060008114614116576040519150601f19603f3d011682016040523d82523d6000602084013e61411b565b606091505b509150915061412b868383614135565b9695505050505050565b60608261414a5761414582614191565b6112dd565b815115801561416157506001600160a01b0384163b155b1561418a57604051639996b31560e01b81526001600160a01b0385166004820152602401610768565b50806112dd565b8051156141a15780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825590600052602060002090810190610d3691906141f6565b5080546000825590600052602060002090810190610d369190614219565b5b808211156142155780546001600160a81b03191681556001016141f7565b5090565b5b80821115614215576000815560010161421a565b60005b83811015614249578181015183820152602001614231565b50506000910152565b6000815180845261426a81602086016020860161422e565b601f01601f19169290920160200192915050565b6020815260006112dd6020830184614252565b6000602082840312156142a357600080fd5b5035919050565b6001600160a01b0381168114610d3657600080fd5b80356142ca816142aa565b919050565b600080604083850312156142e257600080fd5b82356142ed816142aa565b946020939093013593505050565b6000806020838503121561430e57600080fd5b82356001600160401b038082111561432557600080fd5b818501915085601f83011261433957600080fd5b81358181111561434857600080fd5b86602082850101111561435a57600080fd5b60209290920196919550909350505050565b60008060006060848603121561438157600080fd5b833561438c816142aa565b9250602084013561439c816142aa565b929592945050506040919091013590565b60038110610d3657600080fd5b6000806000606084860312156143cf57600080fd5b833592506020840135915060408401356143e8816143ad565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171561442c5761442c6143f3565b60405290565b604051608081016001600160401b038111828210171561442c5761442c6143f3565b604051606081016001600160401b038111828210171561442c5761442c6143f3565b604080519081016001600160401b038111828210171561442c5761442c6143f3565b604051601f8201601f191681016001600160401b03811182821017156144c0576144c06143f3565b604052919050565b60006001600160401b038311156144e1576144e16143f3565b6144f4601f8401601f1916602001614498565b905082815283838301111561450857600080fd5b828260208301376000602084830101529392505050565b600082601f83011261453057600080fd5b6112dd838335602085016144c8565b6001600160401b0381168114610d3657600080fd5b80356142ca8161453f565b6000806040838503121561457257600080fd5b82356001600160401b038082111561458957600080fd5b90840190610120828703121561459e57600080fd5b6145a6614409565b8235828111156145b557600080fd5b6145c18882860161451f565b8252506020830135828111156145d657600080fd5b6145e28882860161451f565b602083015250604083013560408201526060830135606082015261460860808401614554565b608082015261461960a084016142bf565b60a082015261462a60c084016142bf565b60c082015260e083013560e082015261010091506146498284016142bf565b8282015280945050505061465f602084016142bf565b90509250929050565b60006020828403121561467a57600080fd5b81356112dd816142aa565b6000806040838503121561469857600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b60038110610d3657610d366146a7565b60008151808452602080850194506020840160005b838110156147375781518051600681106146fe576146fe6146a7565b885280840151848901526040808201516001600160a01b03169089015260609081015190880152608090960195908201906001016146e2565b509495945050505050565b60008151808452602080850194506020840160005b83811015614737578151805161476c816146bd565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101614757565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156147f457835180516147d2816146bd565b835285015160ff168583015292840192600192909201916040909101906147bd565b50838701519350601f1992508286820301604087015261481481856146cd565b9350505060408501518185840301606086015261412b8382614742565b8015158114610d3657600080fd5b6000806040838503121561485257600080fd5b823561485d816142aa565b9150602083013561486d81614831565b809150509250929050565b6000806000806080858703121561488e57600080fd5b8435614899816142aa565b935060208501356148a9816142aa565b92506040850135915060608501356001600160401b038111156148cb57600080fd5b8501601f810187136148dc57600080fd5b6148eb878235602084016144c8565b91505092959194509250565b6000806040838503121561490a57600080fd5b82356001600160401b038082111561492157600080fd5b61492d8683870161451f565b9350602085013591508082111561494357600080fd5b506149508582860161451f565b9150509250929050565b6000806040838503121561496d57600080fd5b8235614978816142aa565b9150602083013561486d816142aa565b600181811c9082168061499c57607f821691505b60208210810361191457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561071b5761071b6149bc565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614a0d57600080fd5b81516112dd81614831565b60008251614a2a81846020870161422e565b9190910192915050565b805160208083015191908110156119145760001960209190910360031b1b16919050565b60008151808452602080850194506020840160005b838110156147375781516001600160a01b031687529582019590820190600101614a6d565b838152606060208201526000614aab6060830185614a58565b9050826040830152949350505050565b60008351614acd81846020880161422e565b835190830190614ae181836020880161422e565b01949350505050565b600060208284031215614afc57600080fd5b81516112dd816142aa565b601f8211156109e3576000816000526020600020601f850160051c81016020861015614b305750805b601f850160051c820191505b818110156109c057828155600101614b3c565b81516001600160401b03811115614b6857614b686143f3565b614b7c81614b768454614988565b84614b07565b602080601f831160018114614bb15760008415614b995750858301515b600019600386901b1c1916600185901b1785556109c0565b600085815260208120601f198616915b82811015614be057888601518255948401946001909101908401614bc1565b5085821015614bfe5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215614c2057600080fd5b5051919050565b600060018201614c3957614c396149bc565b5060010190565b600082614c5d57634e487b7160e01b600052601260045260246000fd5b500490565b60208101614c6f836146bd565b91905290565b600060208284031215614c8757600080fd5b81516112dd8161453f565b600060208284031215614ca457600080fd5b815161ffff811681146112dd57600080fd5b8082018082111561071b5761071b6149bc565b6001600160401b03818116838216019080821115613cf657613cf66149bc565b60006001600160401b03821115614d0257614d026143f3565b5060051b60200190565b60006020808385031215614d1f57600080fd5b82516001600160401b03811115614d3557600080fd5b8301601f81018513614d4657600080fd5b8051614d59614d5482614ce9565b614498565b81815260059190911b82018301908381019087831115614d7857600080fd5b928401925b82841015613191578351614d90816142aa565b82529284019290840190614d7d565b60008060408385031215614db257600080fd5b8251614dbd816142aa565b602084015190925061486d816142aa565b60018060a01b038516815283602082015282604082015260806060820152600061412b6080830184614a58565b805160ff811681146142ca57600080fd5b600082601f830112614e1d57600080fd5b81516020614e2d614d5483614ce9565b82815260079290921b84018101918181019086841115614e4c57600080fd5b8286015b84811015614eb65760808189031215614e695760008081fd5b614e71614432565b815160068110614e815760008081fd5b81528185015185820152604080830151614e9a816142aa565b9082015260608281015190820152835291830191608001614e50565b509695505050505050565b600082601f830112614ed257600080fd5b81516020614ee2614d5483614ce9565b82815260609283028501820192828201919087851115614f0157600080fd5b8387015b85811015614f5f5781818a031215614f1d5760008081fd5b614f25614454565b8151614f30816143ad565b8152614f3d828701614dfb565b868201526040614f4e818401614dfb565b908201528452928401928101614f05565b5090979650505050505050565b60006020808385031215614f7f57600080fd5b82516001600160401b0380821115614f9657600080fd5b9084019060608287031215614faa57600080fd5b614fb2614454565b825182811115614fc157600080fd5b8301601f81018813614fd257600080fd5b8051614fe0614d5482614ce9565b81815260069190911b8201860190868101908a831115614fff57600080fd5b928701925b82841015615053576040848c03121561501d5760008081fd5b615025614476565b8451615030816143ad565b815261503d858a01614dfb565b818a015282526040939093019290870190615004565b8452505050828401518281111561506957600080fd5b61507588828601614e0c565b8583015250604083015193508184111561508e57600080fd5b61509a87858501614ec1565b60408201529695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061412b90830184614252565b6000602082840312156150ee57600080fd5b81516001600160e01b0319811681146112dd57600080fd5b808202811582820484141761071b5761071b6149bc56fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0154f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0034516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0334516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e01","sourceMap":"1432:11491:209:-:0;;;;;;;;;;;;-1:-1:-1;378:22:69;:20;:22::i;:::-;1432:11491:209;;1653:314:84;296:66:85;1779:14:84;;;;;;;1775:62;;;1802:35;;-1:-1:-1;;;1802:35:84;;;;;;;;;;;1775:62;1848:9;;1860:16;1848:9;;;:28;1844:119;;;1886:28;;-1:-1:-1;;1886:28:84;1898:16;1886:28;;;;;1927:29;;158:42:404;;;1927:29:84;;146:2:404;131:18;1927:29:84;;;;;;;1844:119;1694:273;1653:314::o;14:192:404:-;1432:11491:209;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061020f5760003560e01c806370a082311161011857806395d89b41116100a0578063c87b56dd1161006f578063c87b56dd146105d0578063d2f01f19146105f0578063df9a9fe614610610578063e847abdd14610630578063e985e9c51461064557600080fd5b806395d89b411461056857806397fb7c1e1461057d578063a22cb4651461059d578063b88d4fde146105bd57600080fd5b80638120f0ba116100e75780638120f0ba146104d15780638c625b06146104fe57806392c399ff1461051157806393b13cb71461053e57806395d600c81461055357600080fd5b806370a082311461046957806379dda585146104895780637adc9cbe1461049e5780637c9669ac146104be57600080fd5b80634739e8051161019b5780635becd24a1161016a5780635becd24a146103df5780636352211e146103ff578063657e45e81461041f57806369d5f38a14610434578063706b8e091461045457600080fd5b80634739e8051461035f5780634c2abfbe1461037f57806351cff8d91461039f5780635803909f146103bf57600080fd5b80631278076a116101e25780631278076a146102ac57806317c95709146102cf57806318160ddd1461032457806323b872dd1461033957806342842e0e1461034c57600080fd5b806306fdde0314610214578063081812fc1461023f578063095ea7b3146102775780630ef1be5f1461028c575b600080fd5b34801561022057600080fd5b50610229610675565b604051610236919061427e565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004614291565b610710565b6040516001600160a01b039091168152602001610236565b61028a6102853660046142cf565b610721565b005b34801561029857600080fd5b5061028a6102a73660046142fb565b610731565b3480156102b857600080fd5b506102c16107b0565b604051908152602001610236565b3480156102db57600080fd5b506102c16102ea366004614291565b60009081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b031690565b34801561033057600080fd5b506102c16107c7565b61028a61034736600461436c565b6107d1565b61028a61035a36600461436c565b6109c8565b34801561036b57600080fd5b5061028a61037a3660046143ba565b6109e8565b34801561038b57600080fd5b5061028a61039a36600461455f565b610a51565b3480156103ab57600080fd5b5061028a6103ba366004614668565b610ac7565b3480156103cb57600080fd5b506102c16103da366004614291565b610b69565b3480156103eb57600080fd5b5061028a6103fa366004614291565b610b7c565b34801561040b57600080fd5b5061025f61041a366004614291565b610c01565b34801561042b57600080fd5b5061025f610c0c565b34801561044057600080fd5b5061028a61044f366004614291565b610c16565b34801561046057600080fd5b506102c1610cc4565b34801561047557600080fd5b506102c1610484366004614668565b610cce565b34801561049557600080fd5b5061025f610cd9565b3480156104aa57600080fd5b5061028a6104b9366004614668565b610ce3565b61028a6104cc366004614291565b610d39565b3480156104dd57600080fd5b506104e6610e96565b6040516001600160401b039091168152602001610236565b61028a61050c366004614668565b610ea0565b34801561051d57600080fd5b5061053161052c366004614685565b6112af565b6040516102369190614798565b34801561054a57600080fd5b506102296112e4565b34801561055f57600080fd5b506102c16112ee565b34801561057457600080fd5b506102296112f8565b34801561058957600080fd5b5061028a610598366004614291565b611310565b3480156105a957600080fd5b5061028a6105b836600461483f565b611365565b61028a6105cb366004614878565b6113e2565b3480156105dc57600080fd5b506102296105eb366004614291565b61142c565b3480156105fc57600080fd5b5061028a61060b3660046148f7565b6114bc565b34801561061c57600080fd5b5061028a61062b366004614668565b611510565b34801561063c57600080fd5b5061025f61155d565b34801561065157600080fd5b5061066561066036600461495a565b611567565b6040519015158152602001610236565b606061067f611573565b600201805461068d90614988565b80601f01602080910402602001604051908101604052809291908181526020018280546106b990614988565b80156107065780601f106106db57610100808354040283529160200191610706565b820191906000526020600020905b8154815290600101906020018083116106e957829003601f168201915b5050505050905090565b600061071b82611597565b92915050565b61072d828260016115e4565b5050565b610739611699565b6001600160a01b0316336001600160a01b031614610771576040516365f4906560e01b81523360048201526024015b60405180910390fd5b61072d82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061176392505050565b60006107c26107bd61177a565b611799565b905090565b60006107c261177a565b60006107dc82611899565b9050836001600160a01b0316816001600160a01b03161461080f5760405162a1148160e81b815260040160405180910390fd5b60008061081b84611934565b91509150610840818761082b3390565b6001600160a01b039081169116811491141790565b61086b5761084e8633611567565b61086b57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661089257604051633a954ecd60e21b815260040160405180910390fd5b801561089d57600082555b6108a5611573565b6001600160a01b03871660009081526005919091016020526040902080546000190190556108d1611573565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b17610908611573565b60008681526004919091016020526040812091909155600160e11b8416900361097e5760018401610937611573565b60008281526004919091016020526040812054900361097c57610958611573565b54811461097c5783610968611573565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6109e3838383604051806020016040528060008152506113e2565b505050565b600260008051602061515e8339815191525403610a1857604051635db5c7cd60e11b815260040160405180910390fd5b610a2f600260008051602061515e83398151915255565b610a3a83838361195c565b6109e3600160008051602061515e83398151915255565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610a9b57604051630ef4733760e31b815260040160405180910390fd5b610aab6322fa1fe560e21b611bff565b610ab58282611cdd565b61072d82600001518360200151611e00565b610acf611699565b6001600160a01b0316336001600160a01b031614610b02576040516365f4906560e01b8152336004820152602401610768565b6001600160a01b038116610b2957604051635fbd571760e01b815260040160405180910390fd5b6000610b33611e2a565b905080600003610b5657604051635894b54560e11b815260040160405180910390fd5b61072d610b61611e3d565b308484611e59565b600061071b82610b7761177a565b611e9f565b610b84611699565b6001600160a01b0316336001600160a01b031614610bb7576040516365f4906560e01b8152336004820152602401610768565b6000610bc1611ee5565b90508015801590610bd157508082115b15610bef5760405163c3983b9160e01b815260040160405180910390fd5b610bf882611ef8565b61072d82611f9d565b600061071b82611899565b60006107c2611e3d565b610c1e611699565b6001600160a01b0316336001600160a01b031614610c51576040516365f4906560e01b8152336004820152602401610768565b610c5a81611fe0565b610c6261206e565b6001600160a01b03166391b7f5ed826040518263ffffffff1660e01b8152600401610c8f91815260200190565b600060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b5050505050565b60006107c261208a565b600061071b82612129565b60006107c2612191565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610d2d57604051630ef4733760e31b815260040160405180910390fd5b610d36816121ad565b50565b600260008051602061515e8339815191525403610d6957604051635db5c7cd60e11b815260040160405180910390fd5b610d80600260008051602061515e83398151915255565b6000610d8b82610c01565b90506001600160a01b038116610db457604051635fbd571760e01b815260040160405180910390fd5b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b0316610df36121e8565b6001600160401b0316610e0642836149d2565b10610e245760405163dce9a1d360e01b815260040160405180910390fd5b6000610e3284610b7761177a565b90508015610e6b576000610e46848361226e565b90506000610e5482846149d2565b90508015610e6857610e668582612386565b505b50505b610e7c84610e776121e8565b612524565b505050610d36600160008051602061515e83398151915255565b60006107c26121e8565b600260008051602061515e8339815191525403610ed057604051635db5c7cd60e11b815260040160405180910390fd5b610ee7600260008051602061515e83398151915255565b610ef0816125ed565b60405133606081901b6bffffffffffffffffffffffff19166020830152436034830152906000906054016040516020818303038152906040528051906020012090506000610fb282610f868486610f4687612656565b604080516020808201959095526001600160a01b039390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9050610ff4818486604051602001610fe09291906001600160a01b0392831681529116602082015260400190565b60405160208183030381529060405261268b565b34156110045761100481346126d2565b6000611030604051806040016040528060098152602001684a6f696e537061636560b81b815250612758565b90506000806000611040336129a2565b845190915060005b81811015611220576000868281518110611064576110646149e5565b6020026020010151905080604001516112175760005b8160800151518110156112155760008260800151828151811061109f5761109f6149e5565b60200260200101519050806001600160a01b0316632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110b91906149fb565b6111f457806001600160a01b0316630cf0b5336000801b88604051806040016040528060098152602001684a6f696e537061636560b81b8152506040516020016111559190614a18565b60405160208183030381529060405261116d90614a34565b6040518463ffffffff1660e01b815260040161118b93929190614a92565b602060405180830381865afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc91906149fb565b156111eb576111da8a612c0a565b505050505050505050505050611298565b6001965061120c565b6112038a828560000151612dbc565b60009650600197505b5060010161107a565b505b50600101611048565b508315801561122c5750825b1561128f5761124a866040518060200160405280600081525061268b565b341561125a5761125a868961306b565b6040516001600160a01b038a16907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a25b50505050505050505b610d36600160008051602061515e83398151915255565b6112d360405180606001604052806060815260200160608152602001606081525090565b6112dd83836130a2565b9392505050565b60606107c261319c565b60006107c2611ee5565b6060611302611573565b600301805461068d90614988565b611318611699565b6001600160a01b0316336001600160a01b03161461134b576040516365f4906560e01b8152336004820152602401610768565b61135c8161135761177a565b6131b4565b610d36816131d5565b8061136e611573565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6113ed8484846107d1565b6001600160a01b0383163b1561142657611409848484846131e5565b611426576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6060611437826132d0565b61145457604051630a14c4b560e41b815260040160405180910390fd5b600061146b60408051602081019091526000815290565b9050805160000361148b57604051806020016040528060008152506112dd565b806114958461330c565b6040516020016114a6929190614abb565b6040516020818303038152906040529392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661150657604051630ef4733760e31b815260040160405180910390fd5b61072d8282611e00565b611518611699565b6001600160a01b0316336001600160a01b03161461154b576040516365f4906560e01b8152336004820152602401610768565b61155481613350565b610d3681613408565b60006107c261206e565b60006112dd8383613435565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090565b60006115a2826132d0565b6115bf576040516333d1c03960e21b815260040160405180910390fd5b6115c7611573565b60009283526006016020525060409020546001600160a01b031690565b60006115ef83610c01565b9050811561162e57336001600160a01b0382161461162e576116118133613435565b61162e576040516367d9dca160e11b815260040160405180910390fd5b83611637611573565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015611739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614aea565b91505090565b8061176c613472565b600c019061072d9082614b4f565b600080611785611573565b60010154611791611573565b540303919050565b6000806117a4613472565b905060006117b061208a565b60088301549091506001600160a01b031615611844576008820154604051635cf4ee9160e01b815260048101839052602481018690526001600160a01b0390911690635cf4ee9190604401602060405180830381865afa158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183c9190614c0e565b949350505050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611818573d6000803e3d6000fd5b6000806118a4611573565b60008481526004820160205260408120549350909150600160e01b8316900361191a578160000361191457805483106118f057604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156118f1575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b6000806000611941611573565b60009485526006016020525050604090912080549092909150565b600083815260008051602061513e83398151915260205260409020805460008051602061511e833981519152919061010090046001600160a01b031615806119a65750805460ff16155b156119c457604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff16156119f657604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b81811015611b345760008981526001870160205260408120805483908110611a3757611a376149e5565b60009182526020909120018054909150336001600160a01b0390911603611ac35760008154600160a01b900460ff166002811115611a7757611a776146a7565b14611a95576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b836002811115611ab957611ab96146a7565b0217905550600195505b60018154600160a01b900460ff166002811115611ae257611ae26146a7565b03611af95784611af181614c27565b955050611b2b565b60028154600160a01b900460ff166002811115611b1857611b186146a7565b03611b2b5783611b2781614c27565b9450505b50600101611a0d565b5083611b5357604051638223a7e960e01b815260040160405180910390fd5b611b5e600282614c40565b831180611b745750611b71600282614c40565b82115b15611bf45760008881526002860160205260408120805460ff19166001179055828411611ba2576002611ba5565b60015b9050611bb18a82613496565b897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051611be19190614c62565b60405180910390a2611bf28a613538565b505b505050505050505050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114611c8c576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055611ca5565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b6000611ce7613472565b6006810180546001600160a01b038086166001600160a01b031992831617909255610100860151600884018054919093169082161790915560048201805490911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1790556060840151600382015560e08401516007820181905590915015611d6b57611d6b8360e00151611ef8565b611d79836101000151613350565b6040830151156109e357611d908360400151611fe0565b600881015460408085015190516391b7f5ed60e01b81526001600160a01b03909216916391b7f5ed91611dc99160040190815260200190565b600060405180830381600087803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b50505050505050565b611e106380ac58cd60e01b611bff565b611e20635b5e139f60e01b611bff565b61072d8282613605565b6000611e34613472565b600a0154905090565b6000611e47613472565b600401546001600160a01b0316919050565b80156114265773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03851601611e9357611e8e8282613637565b611426565b611426848484846136da565b600080611eaa613472565b600085815260098201602052604090205490915015611edc57600084815260099091016020526040902054905061071b565b61183c83611799565b6000611eef613472565b60030154905090565b6000611f02613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7d9190614c0e565b82111561072d5760405163c3983b9160e01b815260040160405180910390fd5b6000611fa7613472565b6007810183905560405190915082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f90600090a25050565b6000611fea612191565b6001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204b9190614c0e565b90508082101561072d57604051631a23d64760e11b815260040160405180910390fd5b6000612078613472565b600801546001600160a01b0316919050565b600080612095613472565b600781015490915080156120a95792915050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190614c0e565b9250505090565b60006001600160a01b038216612152576040516323d3ad8160e21b815260040160405180910390fd5b6001600160401b03612162611573565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b600061219b613472565b600601546001600160a01b0316919050565b6121bd636afd38fd60e11b611bff565b60008051602061511e83398151915280546001600160a01b0319166001600160a01b03831617905550565b6000806121f3613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614c75565b600080612279613472565b6006810154600480830154604080516301332c8360e61b815290519495506001600160a01b039384169493909116926000928592634ccb20c092818301926020928290030181865afa1580156122d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f79190614aea565b90506000836001600160a01b0316639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235d9190614c92565b905061236d878261ffff1661372d565b955061237b83898489611e59565b505050505092915050565b600080612391613472565b9050600061239d611e3d565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038216016123e8578382600a0160008282546123d89190614cb6565b9091555084935061071b92505050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190614c0e565b905061246383883089611e59565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156124aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ce9190614c0e565b905060006124dc83836149d2565b90508781146124fe57604051635894b54560e11b815260040160405180910390fd5b8086600a0160008282546125129190614cb6565b90915550909998505050505050505050565b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce006020819052604082205490916001600160401b039091169081810361257a576125738442614cc9565b9050612587565b6125848483614cc9565b90505b60008581526020848152604091829020805467ffffffffffffffff19166001600160401b038516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b6001600160a01b03811661261457604051635fbd571760e01b815260040160405180910390fd5b61261c611ee5565b15801590612638575061262d611ee5565b61263561177a565b10155b15610d3657604051637efcdb4960e01b815260040160405180910390fd5b600081815260008051602061517e8339815191526020819052604082208054908361268083614c27565b909155509392505050565b60008281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040902060008051602061517e833981519152906114268382614b4f565b806000036126f35760405163acdc0d4960e01b815260040160405180910390fd5b8034146127135760405163acdc0d4960e01b815260040160405180910390fd5b60008281526000805160206151be83398151915260205260408120805460008051602061517e8339815191529284929161274e908490614cb6565b9091555050505050565b606060006127646137a2565b80519091506000816001600160401b03811115612783576127836143f3565b6040519080825280602002602001820160405280156127ac578160200160208202803683370190505b5085516020870120909150600090815b8481101561287b5760006127e88783815181106127db576127db6149e5565b60200260200101516137cd565b509250505060005b8151811015612871578382828151811061280c5761280c6149e5565b6020026020010151805190602001200361286957878381518110612832576128326149e5565b602002602001015186868151811061284c5761284c6149e5565b60209081029190910101528461286181614c27565b955050612871565b6001016127f0565b50506001016127bc565b506000826001600160401b03811115612896576128966143f3565b6040519080825280602002602001820160405280156128fb57816020015b6128e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816128b45790505b50905060005b8381101561299657600085828151811061291d5761291d6149e5565b60200260200101519050600080600080612936856137cd565b93509350935093506040518060a00160405280868152602001858152602001841515815260200183815260200182815250878781518110612979576129796149e5565b602002602001018190525050505050508080600101915050612901565b50979650505050505050565b606060006129ae613472565b6006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa1580156129fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a269190810190614d0c565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa158015612a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a969190614aea565b905081516000148015612ab157506001600160a01b03811615155b15612b2b5760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015612b00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b289190810190614d0c565b91505b81516000612b3a826001614cb6565b6001600160401b03811115612b5157612b516143f3565b604051908082528060200260200182016040528015612b7a578160200160208202803683370190505b50905060005b82811015612bd457848181518110612b9a57612b9a6149e5565b6020026020010151828281518110612bb457612bb46149e5565b6001600160a01b0390921660209283029190910190910152600101612b80565b5086818381518110612be857612be86149e5565b6001600160a01b03909216602092830291909101909101529695505050505050565b600080612c16836138dd565b806020019051810190612c299190614d9f565b915091506000612c3761177a565b9050600080612c4461208a565b90506000612c506139ae565b905083821115612c6d5760009250612c68878761306b565b612c97565b8015612c8b5760009250612c8160016139d8565b612c68878761306b565b612c9484611799565b92505b6000612ca1613a16565b90508315612d655760008881526000805160206151be833981519152602052604081205490819003612ce657604051635894b54560e11b815260040160405180910390fd5b848114612d06576040516334a7a93d60e01b815260040160405180910390fd5b612d108286613a20565b6000612d1c898761226e565b90506000612d2a82886149d2565b90508015612d3e57612d3c8a82612386565b505b612d488b88613a40565b612d618b6040518060200160405280600081525061268b565b5050505b612d70866001613a7b565b612d7c81610e776121e8565b60405181906001600160a01b038816907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b57690600090a35050505050505050565b600083815260008051602061513e83398151915260205260409020805460008051602061511e833981519152919060ff161515600103612e4e5760005b6004820154811015612e4c5783826004018281548110612e1b57612e1b6149e5565b906000526020600020015403612e44576040516301ab53df60e31b815260040160405180910390fd5b600101612df9565b505b81546001600160a01b0316612e6557612e65613a95565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015612eae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ed69190810190614d0c565b825490915060ff16612f175781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b8151811015613007578260010160008681526020019081526020016000206040518060400160405280848481518110612f6c57612f6c6149e5565b60200260200101516001600160a01b0316815260200160006002811115612f9557612f956146a7565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b836002811115612ff857612ff86146a7565b02179055505050600101612f31565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e59061303d9033908a9089908790600401614dce565b600060405180830381600087803b15801561305757600080fd5b505af1158015611bf2573d6000803e3d6000fd5b60008281526000805160206151be833981519152602052604090205480156109e3576130978382613a40565b6109e3610b61611e3d565b6130c660405180606001604052806060815260200160608152602001606081525090565b600083815260008051602061513e83398151915260205260408120805460008051602061511e8339815191529260ff9091161515900361311957604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015613169573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131919190810190614f6c565b979650505050505050565b60606131a6613472565b600c01805461068d90614988565b8082101561072d57604051636664d51760e11b815260040160405180910390fd5b806131de613472565b6003015550565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061321a9033908990889088906004016150a9565b6020604051808303816000875af1925050508015613255575060408051601f3d908101601f19168201909252613252918101906150dc565b60015b6132b3573d808015613283576040519150601f19603f3d011682016040523d82523d6000602084013e613288565b606091505b5080516000036132ab576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60006132da611573565b548210801561071b5750600160e01b6132f1611573565b60008481526004919091016020526040902054161592915050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806133265750819003601f19909101908152919050565b6001600160a01b03811661337757604051630e88bf4b60e01b815260040160405180910390fd5b61337f612191565b6040516346fc05eb60e11b81526001600160a01b0383811660048301529190911690638df80bd690602401602060405180830381865afa1580156133c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133eb91906149fb565b610d3657604051630e88bf4b60e01b815260040160405180910390fd5b80613411613472565b60080180546001600160a01b0319166001600160a01b039290921691909117905550565b600061343f611573565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090565b60018160028111156134aa576134aa6146a7565b036134b85761072d82612c0a565b6000806134c4846138dd565b8060200190518101906134d79190614d9f565b915091506134f4846040518060200160405280600081525061268b565b6134fe848361306b565b6040516001600160a01b038216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a250505050565b600081815260008051602061513e8339815191526020526040812060008051602061511e833981519152915b60048201548110156135b85781600101600083600401838154811061358b5761358b6149e5565b9060005260206000200154815260200190815260200160002060006135b091906141ba565b600101613564565b506135c76004820160006141d8565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610cbd60048301826141d8565b600061360f611573565b90506002810161361f8482614b4f565b506003810161362e8382614b4f565b50600090555050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613684576040519150601f19603f3d011682016040523d82523d6000602084013e613689565b606091505b50509050806109e35760405162461bcd60e51b815260206004820152601c60248201527f6e617469766520746f6b656e207472616e73666572206661696c6564000000006044820152606401610768565b816001600160a01b0316836001600160a01b0316031561142657306001600160a01b0384160361371857611e8e6001600160a01b0385168383613b49565b6114266001600160a01b038516848484613ba8565b600061271082111561378b5760405162461bcd60e51b815260206004820152602160248201527f426173697320706f696e74732063616e6e6f74206578636565642031305f30306044820152600360fc1b6064820152608401610768565b6127106137988385615106565b6112dd9190614c40565b60606107c27f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01613be1565b600081815260008051602061519e83398151915260205260408120805460609291839182917f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd009161381d90614988565b80601f016020809104026020016040519081016040528092919081815260200182805461384990614988565b80156138965780601f1061386b57610100808354040283529160200191613896565b820191906000526020600020905b81548152906001019060200180831161387957829003601f168201915b50505060008981526003850160205260409020600181015493985060ff90931696506138c8926002019150613bee9050565b92506138d386613bf9565b9150509193509193565b60008181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0260205260409020805460609160008051602061517e8339815191529161392890614988565b80601f016020809104026020016040519081016040528092919081815260200182805461395490614988565b80156139a15780601f10613976576101008083540402835291602001916139a1565b820191906000526020600020905b81548152906001019060200180831161398457829003601f168201915b5050505050915050919050565b60007f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c00805482908290600090613a0d9084906149d2565b90915550505050565b60006139d2611573565b80613a29613472565b600093845260090160205260409092209190915550565b60008281526000805160206151be83398151915260205260408120805460008051602061517e8339815191529284929161274e9084906149d2565b61072d828260405180602001604052806000815250613cfd565b60008051602061511e8339815191526000613aae613472565b60060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015613b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b2a9190614aea565b82546001600160a01b0319166001600160a01b03919091161790915550565b6040516001600160a01b038381166024830152604482018390526109e391859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613d73565b6040516001600160a01b0384811660248301528381166044830152606482018390526114269186918216906323b872dd90608401613b76565b606060006112dd83613dd6565b606061071b82613e32565b600081815260008051602061519e8339815191526020526040812060609190613c2490600401613f0f565b6001600160401b03811115613c3b57613c3b6143f3565b604051908082528060200260200182016040528015613c64578160200160208202803683370190505b50905060005b600084815260008051602061519e83398151915260205260409020613c9190600401613f0f565b811015613cf657600084815260008051602061519e83398151915260205260408120613cc09060040183613f19565b905080838381518110613cd557613cd56149e5565b6001600160a01b039092166020928302919091019091015250600101613c6a565b5092915050565b613d078383613f25565b6001600160a01b0383163b156109e3576000613d21611573565b5490508281035b613d3b60008683806001019450866131e5565b613d58576040516368d2bf6b60e11b815260040160405180910390fd5b818110613d285781613d68611573565b5414610cbd57600080fd5b6000613d886001600160a01b03841683614060565b90508051600014158015613dad575080806020019051810190613dab91906149fb565b155b156109e357604051635274afe760e01b81526001600160a01b0384166004820152602401610768565b606081600001805480602002602001604051908101604052809291908181526020018280548015613e2657602002820191906000526020600020905b815481526020019060010190808311613e12575b50505050509050919050565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015613f04578382906000526020600020018054613e7790614988565b80601f0160208091040260200160405190810160405280929190818152602001828054613ea390614988565b8015613ef05780601f10613ec557610100808354040283529160200191613ef0565b820191906000526020600020905b815481529060010190602001808311613ed357829003601f168201915b505050505081526020019060010190613e58565b505050509050919050565b600061071b825490565b60006112dd838361406e565b6000613f2f611573565b5490506000829003613f545760405163b562e8dd60e01b815260040160405180910390fd5b680100000000000000018202613f68611573565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b1717613fa3611573565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461402d57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613ff5565b508160000361404e57604051622e076360e81b815260040160405180910390fd5b80614057611573565b55506109e39050565b60606112dd83836000614098565b6000826000018281548110614085576140856149e5565b9060005260206000200154905092915050565b6060814710156140bd5760405163cd78605960e01b8152306004820152602401610768565b600080856001600160a01b031684866040516140d99190614a18565b60006040518083038185875af1925050503d8060008114614116576040519150601f19603f3d011682016040523d82523d6000602084013e61411b565b606091505b509150915061412b868383614135565b9695505050505050565b60608261414a5761414582614191565b6112dd565b815115801561416157506001600160a01b0384163b155b1561418a57604051639996b31560e01b81526001600160a01b0385166004820152602401610768565b50806112dd565b8051156141a15780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825590600052602060002090810190610d3691906141f6565b5080546000825590600052602060002090810190610d369190614219565b5b808211156142155780546001600160a81b03191681556001016141f7565b5090565b5b80821115614215576000815560010161421a565b60005b83811015614249578181015183820152602001614231565b50506000910152565b6000815180845261426a81602086016020860161422e565b601f01601f19169290920160200192915050565b6020815260006112dd6020830184614252565b6000602082840312156142a357600080fd5b5035919050565b6001600160a01b0381168114610d3657600080fd5b80356142ca816142aa565b919050565b600080604083850312156142e257600080fd5b82356142ed816142aa565b946020939093013593505050565b6000806020838503121561430e57600080fd5b82356001600160401b038082111561432557600080fd5b818501915085601f83011261433957600080fd5b81358181111561434857600080fd5b86602082850101111561435a57600080fd5b60209290920196919550909350505050565b60008060006060848603121561438157600080fd5b833561438c816142aa565b9250602084013561439c816142aa565b929592945050506040919091013590565b60038110610d3657600080fd5b6000806000606084860312156143cf57600080fd5b833592506020840135915060408401356143e8816143ad565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171561442c5761442c6143f3565b60405290565b604051608081016001600160401b038111828210171561442c5761442c6143f3565b604051606081016001600160401b038111828210171561442c5761442c6143f3565b604080519081016001600160401b038111828210171561442c5761442c6143f3565b604051601f8201601f191681016001600160401b03811182821017156144c0576144c06143f3565b604052919050565b60006001600160401b038311156144e1576144e16143f3565b6144f4601f8401601f1916602001614498565b905082815283838301111561450857600080fd5b828260208301376000602084830101529392505050565b600082601f83011261453057600080fd5b6112dd838335602085016144c8565b6001600160401b0381168114610d3657600080fd5b80356142ca8161453f565b6000806040838503121561457257600080fd5b82356001600160401b038082111561458957600080fd5b90840190610120828703121561459e57600080fd5b6145a6614409565b8235828111156145b557600080fd5b6145c18882860161451f565b8252506020830135828111156145d657600080fd5b6145e28882860161451f565b602083015250604083013560408201526060830135606082015261460860808401614554565b608082015261461960a084016142bf565b60a082015261462a60c084016142bf565b60c082015260e083013560e082015261010091506146498284016142bf565b8282015280945050505061465f602084016142bf565b90509250929050565b60006020828403121561467a57600080fd5b81356112dd816142aa565b6000806040838503121561469857600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b60038110610d3657610d366146a7565b60008151808452602080850194506020840160005b838110156147375781518051600681106146fe576146fe6146a7565b885280840151848901526040808201516001600160a01b03169089015260609081015190880152608090960195908201906001016146e2565b509495945050505050565b60008151808452602080850194506020840160005b83811015614737578151805161476c816146bd565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101614757565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156147f457835180516147d2816146bd565b835285015160ff168583015292840192600192909201916040909101906147bd565b50838701519350601f1992508286820301604087015261481481856146cd565b9350505060408501518185840301606086015261412b8382614742565b8015158114610d3657600080fd5b6000806040838503121561485257600080fd5b823561485d816142aa565b9150602083013561486d81614831565b809150509250929050565b6000806000806080858703121561488e57600080fd5b8435614899816142aa565b935060208501356148a9816142aa565b92506040850135915060608501356001600160401b038111156148cb57600080fd5b8501601f810187136148dc57600080fd5b6148eb878235602084016144c8565b91505092959194509250565b6000806040838503121561490a57600080fd5b82356001600160401b038082111561492157600080fd5b61492d8683870161451f565b9350602085013591508082111561494357600080fd5b506149508582860161451f565b9150509250929050565b6000806040838503121561496d57600080fd5b8235614978816142aa565b9150602083013561486d816142aa565b600181811c9082168061499c57607f821691505b60208210810361191457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561071b5761071b6149bc565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614a0d57600080fd5b81516112dd81614831565b60008251614a2a81846020870161422e565b9190910192915050565b805160208083015191908110156119145760001960209190910360031b1b16919050565b60008151808452602080850194506020840160005b838110156147375781516001600160a01b031687529582019590820190600101614a6d565b838152606060208201526000614aab6060830185614a58565b9050826040830152949350505050565b60008351614acd81846020880161422e565b835190830190614ae181836020880161422e565b01949350505050565b600060208284031215614afc57600080fd5b81516112dd816142aa565b601f8211156109e3576000816000526020600020601f850160051c81016020861015614b305750805b601f850160051c820191505b818110156109c057828155600101614b3c565b81516001600160401b03811115614b6857614b686143f3565b614b7c81614b768454614988565b84614b07565b602080601f831160018114614bb15760008415614b995750858301515b600019600386901b1c1916600185901b1785556109c0565b600085815260208120601f198616915b82811015614be057888601518255948401946001909101908401614bc1565b5085821015614bfe5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215614c2057600080fd5b5051919050565b600060018201614c3957614c396149bc565b5060010190565b600082614c5d57634e487b7160e01b600052601260045260246000fd5b500490565b60208101614c6f836146bd565b91905290565b600060208284031215614c8757600080fd5b81516112dd8161453f565b600060208284031215614ca457600080fd5b815161ffff811681146112dd57600080fd5b8082018082111561071b5761071b6149bc565b6001600160401b03818116838216019080821115613cf657613cf66149bc565b60006001600160401b03821115614d0257614d026143f3565b5060051b60200190565b60006020808385031215614d1f57600080fd5b82516001600160401b03811115614d3557600080fd5b8301601f81018513614d4657600080fd5b8051614d59614d5482614ce9565b614498565b81815260059190911b82018301908381019087831115614d7857600080fd5b928401925b82841015613191578351614d90816142aa565b82529284019290840190614d7d565b60008060408385031215614db257600080fd5b8251614dbd816142aa565b602084015190925061486d816142aa565b60018060a01b038516815283602082015282604082015260806060820152600061412b6080830184614a58565b805160ff811681146142ca57600080fd5b600082601f830112614e1d57600080fd5b81516020614e2d614d5483614ce9565b82815260079290921b84018101918181019086841115614e4c57600080fd5b8286015b84811015614eb65760808189031215614e695760008081fd5b614e71614432565b815160068110614e815760008081fd5b81528185015185820152604080830151614e9a816142aa565b9082015260608281015190820152835291830191608001614e50565b509695505050505050565b600082601f830112614ed257600080fd5b81516020614ee2614d5483614ce9565b82815260609283028501820192828201919087851115614f0157600080fd5b8387015b85811015614f5f5781818a031215614f1d5760008081fd5b614f25614454565b8151614f30816143ad565b8152614f3d828701614dfb565b868201526040614f4e818401614dfb565b908201528452928401928101614f05565b5090979650505050505050565b60006020808385031215614f7f57600080fd5b82516001600160401b0380821115614f9657600080fd5b9084019060608287031215614faa57600080fd5b614fb2614454565b825182811115614fc157600080fd5b8301601f81018813614fd257600080fd5b8051614fe0614d5482614ce9565b81815260069190911b8201860190868101908a831115614fff57600080fd5b928701925b82841015615053576040848c03121561501d5760008081fd5b615025614476565b8451615030816143ad565b815261503d858a01614dfb565b818a015282526040939093019290870190615004565b8452505050828401518281111561506957600080fd5b61507588828601614e0c565b8583015250604083015193508184111561508e57600080fd5b61509a87858501614ec1565b60408201529695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061412b90830184614252565b6000602082840312156150ee57600080fd5b81516001600160e01b0319811681146112dd57600080fd5b808202811582820484141761071b5761071b6149bc56fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0154f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0034516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0334516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e01","sourceMap":"1432:11491:209:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:116:125;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3498:132;;;;;;;;;;-1:-1:-1;3498:132:125;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1119:32:404;;;1101:51;;1089:2;1074:18;3498:132:125;955:203:404;3236:128:125;;;;;;:::i;:::-;;:::i;:::-;;11262:113:209;;;;;;;;;;-1:-1:-1;11262:113:209;;;;;:::i;:::-;;:::i;9054:115::-;;;;;;;;;;;;;:::i;:::-;;;2501:25:404;;;2489:2;2474:18;9054:115:209;2355:177:404;7708:105:209;;;;;;;;;;-1:-1:-1;7708:105:209;;;;;:::i;:::-;7767:7;1083:43:122;;;290:66:123;1083:43:122;;;;;;-1:-1:-1;;;;;1083:43:122;;7708:105:209;1503:93:125;;;;;;;;;;;;;:::i;4893:2680::-;;;;;;:::i;:::-;;:::i;7656:167::-;;;;;;:::i;:::-;;:::i;1216:205:199:-;;;;;;;;;;-1:-1:-1;1216:205:199;;;;;:::i;:::-;;:::i;1768:267:209:-;;;;;;;;;;-1:-1:-1;1768:267:209;;;;;:::i;:::-;;:::i;2215:363::-;;;;;;;;;;-1:-1:-1;2215:363:209;;;;;:::i;:::-;;:::i;9203:161::-;;;;;;;;;;-1:-1:-1;9203:161:209;;;;;:::i;:::-;;:::i;9574:528::-;;;;;;;;;;-1:-1:-1;9574:528:209;;;;;:::i;:::-;;:::i;2867:152:125:-;;;;;;;;;;-1:-1:-1;2867:152:125;;;;;:::i;:::-;;:::i;10980:107:209:-;;;;;;;;;;;;;:::i;8858:162::-;;;;;;;;;;-1:-1:-1;8858:162:209;;;;;:::i;:::-;;:::i;10136:119::-;;;;;;;;;;;;;:::i;1673:107:125:-;;;;;;;;;;-1:-1:-1;1673:107:125;;;;;:::i;:::-;;:::i;11694:95:209:-;;;;;;;;;;;;;:::i;683:171:199:-;;;;;;;;;;-1:-1:-1;683:171:199;;;;;:::i;:::-;;:::i;6845:829:209:-;;;;;;:::i;:::-;;:::i;8022:106::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7916:31:404;;;7898:50;;7886:2;7871:18;8022:106:209;7754:200:404;3242:1788:209;;;;;;:::i;:::-;;:::i;1425:182:199:-;;;;;;;;;;-1:-1:-1;1425:182:199;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11379:107:209:-;;;;;;;;;;;;;:::i;10664:::-;;;;;;;;;;;;;:::i;2199:120:125:-;;;;;;;;;;;;;:::i;10471:159:209:-;;;;;;;;;;-1:-1:-1;10471:159:209;;;;;:::i;:::-;;:::i;3933:269:125:-;;;;;;;;;;-1:-1:-1;3933:269:125;;;;;:::i;:::-;;:::i;8372:348::-;;;;;;:::i;:::-;;:::i;2412:329::-;;;;;;;;;;-1:-1:-1;2412:329:125;;;;;:::i;:::-;;:::i;869:157::-;;;;;;;;;;-1:-1:-1;869:157:125;;;;;:::i;:::-;;:::i;8339:170:209:-;;;;;;;;;;-1:-1:-1;8339:170:209;;;;;:::i;:::-;;:::i;8543:107::-;;;;;;;;;;;;;:::i;4340:167:125:-;;;;;;;;;;-1:-1:-1;4340:167:125;;;;;:::i;:::-;;:::i;:::-;;;13848:14:404;;13841:22;13823:41;;13811:2;13796:18;4340:167:125;13683:187:404;2020:116:125;2074:13;2102:23;:21;:23::i;:::-;:29;;2095:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:116;:::o;3498:132::-;3582:7;3604:21;3617:7;3604:12;:21::i;:::-;3597:28;3498:132;-1:-1:-1;;3498:132:125:o;3236:128::-;3332:27;3341:2;3345:7;3354:4;3332:8;:27::i;:::-;3236:128;;:::o;11262:113:209:-;641:8:104;:6;:8::i;:::-;-1:-1:-1;;;;;627:22:104;:10;-1:-1:-1;;;;;627:22:104;;623:79;;666:29;;-1:-1:-1;;;666:29:104;;684:10;666:29;;;1101:51:404;1074:18;;666:29:104;;;;;;;;623:79;11341:29:209::1;11361:8;;11341:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;11341:19:209::1;::::0;-1:-1:-1;;;11341:29:209:i:1;9054:115::-:0;9107:7;9129:35;9149:14;:12;:14::i;:::-;9129:19;:35::i;:::-;9122:42;;9054:115;:::o;1503:93:125:-;1555:7;1577:14;:12;:14::i;4893:2680::-;5012:27;5042;5061:7;5042:18;:27::i;:::-;5012:57;;5121:4;-1:-1:-1;;;;;5080:45:125;5096:19;-1:-1:-1;;;;;5080:45:125;;5076:92;;5140:28;;-1:-1:-1;;;5140:28:125;;;;;;;;;;;5076:92;5183:27;5218:23;5250:35;5277:7;5250:26;:35::i;:::-;5175:110;;;;5374:68;5399:15;5416:4;5422:19;29364:10:126;;29282:97;5422:19:125;-1:-1:-1;;;;;11870:32:126;;;11728:28;;11985:20;;12007:30;;11982:56;;11461:587;5374:68:125;5369:181;;5455:43;5472:4;29364:10:126;4340:167:125;:::i;5455:43::-;5450:100;;5515:35;;-1:-1:-1;;;5515:35:125;;;;;;;;;;;5450:100;-1:-1:-1;;;;;5561:16:125;;5557:52;;5586:23;;-1:-1:-1;;;5586:23:125;;;;;;;;;;;5557:52;5734:15;5731:135;;;5856:1;5835:19;5828:30;5731:135;6206:23;:21;:23::i;:::-;-1:-1:-1;;;;;6206:48:125;;;;;;:42;;;;;:48;;;;;6204:50;;-1:-1:-1;;6204:50:125;;;6292:23;:21;:23::i;:::-;-1:-1:-1;;;;;6292:46:125;;;;;;:42;;;;;:46;;;;;;6290:48;;;;;;10229:11:126;10204:23;10200:41;10187:63;-1:-1:-1;;;10187:63:126;6566:23:125;:21;:23::i;:::-;:50;;;;:41;;;;;:50;;;;;:184;;;;-1:-1:-1;;;6855:47:125;;:52;;6851:625;;6951:1;6941:11;;7056:23;:21;:23::i;:::-;:54;;;;:41;;;;;:54;;;;;;:59;;7052:416;;7196:23;:21;:23::i;:::-;:37;7181:52;;7177:281;;7426:19;7341:23;:21;:23::i;:::-;:82;;;;:41;;;;;:82;;;;;:104;7177:281;6909:567;6851:625;7512:7;7508:2;-1:-1:-1;;;;;7493:27:125;7502:4;-1:-1:-1;;;;;7493:27:125;;;;;;;;;;;7526:42;5006:2567;;;4893:2680;;;:::o;7656:167::-;7779:39;7796:4;7802:2;7806:7;7779:39;;;;;;;;;;;;:16;:39::i;:::-;7656:167;;;:::o;1216:205:199:-;408:1:113;-1:-1:-1;;;;;;;;;;;508:38:113;:66;504:117;;589:32;;-1:-1:-1;;;589:32:113;;;;;;;;;;;504:117;627:22;408:1;-1:-1:-1;;;;;;;;;;;825:65:113;770:125;627:22;1358:58:199::1;1386:13;1401:6;1409;1358:27;:58::i;:::-;662:24:113::0;468:1;-1:-1:-1;;;;;;;;;;;825:65:113;770:125;1768:267:209;296:66:85;1263:42:84;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:84;;;;;;;;;;;1258:100;1885:44:209::1;-1:-1:-1::0;;;1885:13:209::1;:44::i;:::-;1935:41;1957:4;1963:12;1935:21;:41::i;:::-;1982:48;2007:4;:9;;;2018:4;:11;;;1982:24;:48::i;2215:363::-:0;641:8:104;:6;:8::i;:::-;-1:-1:-1;;;;;627:22:104;:10;-1:-1:-1;;;;;627:22:104;;623:79;;666:29;;-1:-1:-1;;;666:29:104;;684:10;666:29;;;1101:51:404;1074:18;;666:29:104;955:203:404;623:79:104;-1:-1:-1;;;;;2279:21:209;::::1;2275:62;;2309:28;;-1:-1:-1::0;;;2309:28:209::1;;;;;;;;;;;2275:62;2343:15;2361:20;:18;:20::i;:::-;2343:38;;2391:7;2402:1;2391:12:::0;2387:58:::1;;2412:33;;-1:-1:-1::0;;;2412:33:209::1;;;;;;;;;;;2387:58;2451:122;2492:24;:22;:24::i;:::-;2532:4;2545:7;2560;2451:33;:122::i;9203:161::-:0;9286:7;9308:51;9335:7;9344:14;:12;:14::i;:::-;9308:26;:51::i;9574:528::-;641:8:104;:6;:8::i;:::-;-1:-1:-1;;;;;627:22:104;:10;-1:-1:-1;;;;;627:22:104;;623:79;;666:29;;-1:-1:-1;;;666:29:104;;684:10;666:29;;;1101:51:404;1074:18;;666:29:104;955:203:404;623:79:104;9699:26:209::1;9728:27;:25;:27::i;:::-;9699:56:::0;-1:-1:-1;9827:23:209;;;::::1;::::0;:61:::1;;;9870:18;9854:13;:34;9827:61;9823:115;;;9903:35;;-1:-1:-1::0;;;9903:35:209::1;;;;;;;;;;;9823:115;10012:36;10034:13;10012:21;:36::i;:::-;10054:43;10083:13;10054:28;:43::i;2867:152:125:-:0;2947:7;2985:27;3004:7;2985:18;:27::i;10980:107:209:-;11036:7;11058:24;:22;:24::i;8858:162::-;641:8:104;:6;:8::i;:::-;-1:-1:-1;;;;;627:22:104;:10;-1:-1:-1;;;;;627:22:104;;623:79;;666:29;;-1:-1:-1;;;666:29:104;;684:10;666:29;;;1101:51:404;1074:18;;666:29:104;955:203:404;623:79:104;8929:22:209::1;8942:8;8929:12;:22::i;:::-;8976:19;:17;:19::i;:::-;-1:-1:-1::0;;;;;8957:48:209::1;;9006:8;8957:58;;;;;;;;;;;;;2501:25:404::0;;2489:2;2474:18;;2355:177;8957:58:209::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8858:162:::0;:::o;10136:119::-;10198:7;10220:30;:28;:30::i;1673:107:125:-;1736:7;1758:17;1769:5;1758:10;:17::i;11694:95:209:-;11744:7;11766:18;:16;:18::i;683:171:199:-;296:66:85;1263:42:84;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:84;;;;;;;;;;;1258:100;796:53:199::1;830:18;796:33;:53::i;:::-;683:171:::0;:::o;6845:829:209:-;408:1:113;-1:-1:-1;;;;;;;;;;;508:38:113;:66;504:117;;589:32;;-1:-1:-1;;;589:32:113;;;;;;;;;;;504:117;627:22;408:1;-1:-1:-1;;;;;;;;;;;825:65:113;770:125;627:22;6923:16:209::1;6942:17;6951:7;6942:8;:17::i;:::-;6923:36:::0;-1:-1:-1;;;;;;6970:22:209;::::1;6966:63;;7001:28;;-1:-1:-1::0;;;7001:28:209::1;;;;;;;;;;;6966:63;7093:18;1083:43:122::0;;;290:66:123;1083:43:122;;;;;;-1:-1:-1;;;;;1083:43:122;7175:24:209::1;:22;:24::i;:::-;-1:-1:-1::0;;;;;7143:56:209::1;:28;7156:15;7143:10:::0;:28:::1;:::i;:::-;:56;7139:99;;7214:24;;-1:-1:-1::0;;;7214:24:209::1;;;;;;;;;;;7139:99;7290:23;7316:69;7350:7;7365:14;:12;:14::i;7316:69::-;7290:95:::0;-1:-1:-1;7396:19:209;;7392:218:::1;;7425:19;7447:46;7467:8;7477:15;7447:19;:46::i;:::-;7425:68:::0;-1:-1:-1;7501:15:209::1;7519:29;7425:68:::0;7519:15;:29:::1;:::i;:::-;7501:47:::0;-1:-1:-1;7560:11:209;;7556:47:::1;;7573:30;7585:8;7595:7;7573:11;:30::i;:::-;;7556:47;7417:193;;7392:218;7616:53;7635:7;7644:24;:22;:24::i;:::-;7616:18;:53::i;:::-;6917:757;;;662:24:113::0;468:1;-1:-1:-1;;;;;;;;;;;825:65:113;770:125;8022:106:209;8078:6;8099:24;:22;:24::i;3242:1788::-;408:1:113;-1:-1:-1;;;;;;;;;;;508:38:113;:66;504:117;;589:32;;-1:-1:-1;;;589:32:113;;;;;;;;;;;504:117;627:22;408:1;-1:-1:-1;;;;;;;;;;;825:65:113;770:125;627:22;3315:28:209::1;3334:8;3315:18;:28::i;:::-;3411:38;::::0;3367:10:::1;14702:2:404::0;14698:15;;;-1:-1:-1;;14694:53:404;3411:38:209::1;::::0;::::1;14682:66:404::0;3436:12:209::1;14764::404::0;;;14757:28;3367:10:209;-1:-1:-1;;14801:12:404;;3411:38:209::1;;;;;;;;;;;;3401:49;;;;;;3383:67;;3456:21;3480:111;3503:7;3518:67;3541:7;3550:6;3558:26;3576:7;3558:17;:26::i;:::-;1989:37:189::0;;;;;;;22057:25:404;;;;-1:-1:-1;;;;;22118:32:404;;;;22098:18;;;22091:60;22167:18;;;;22160:34;;;;1989:37:189;;;;;;;;;;22030:18:404;;;;1989:37:189;;;1979:48;;;;;;1827:206;3518:67:209::1;2165:36:189::0;;;;;;;22362:19:404;;;;22397:12;;;22390:28;;;;2165:36:189;;;;;;;;;22434:12:404;;;;2165:36:189;;2155:47;;;;;;2037:170;3480:111:209::1;3456:135;;3598:57;3611:13;3637:6;3645:8;3626:28;;;;;;;;-1:-1:-1::0;;;;;15054:15:404;;;15036:34;;15106:15;;15101:2;15086:18;;15079:43;14986:2;14971:18;;14824:304;3626:28:209::1;;;;;;;;;;;;;3598:12;:57::i;:::-;3665:9;:13:::0;3661:73:::1;;3688:39;3702:13;3717:9;3688:13;:39::i;:::-;3740:30;3773:58;3804:21;;;;;;;;;;;;;-1:-1:-1::0;;;3804:21:209::1;;::::0;3773:23:::1;:58::i;:::-;3740:91;;3838:24;3868:17:::0;3892:30:::1;3925:37;3951:10;3925:25;:37::i;:::-;3987:12:::0;;3892:70;;-1:-1:-1;3968:16:209::1;4006:798;4030:8;4026:1;:12;4006:798;;;4053:27;4083:5;4089:1;4083:8;;;;;;;;:::i;:::-;;;;;;;4053:38;;4105:4;:13;;;4100:698;;4135:9;4130:660;4154:4;:17;;;:24;4150:1;:28;4130:660;;;4197:24;4237:4;:17;;;4255:1;4237:20;;;;;;;;:::i;:::-;;;;;;;4197:61;;4276:11;-1:-1:-1::0;;;;;4276:24:209::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4271:509;;4322:11;-1:-1:-1::0;;;;;4322:22:209::1;;1438:3:176;4345:7:209::0;::::1;4354:13;1677:21;;;;;;;;;;;;;-1:-1:-1::0;;;1677:21:209::1;;::::0;1660:39:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;1652:48;;;:::i;:::-;4322:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4318:199;;;4398:26;4410:13;4398:11;:26::i;:::-;4440:7;;;;;;;;;;;;;;4318:199;4498:4;4483:19;;4271:509;;;4549:144;4589:13;4643:11;4672:4;:7;;;4549:24;:144::i;:::-;4722:5;4707:20;;4763:4;4741:26;;4271:509;-1:-1:-1::0;4180:3:209::1;;4130:660;;;;4100:698;-1:-1:-1::0;4040:3:209::1;;4006:798;;;;4815:19;4814:20;:36;;;;;4838:12;4814:36;4810:216;;;4860:31;4873:13;4860:31;;;;;;;;;;;::::0;:12:::1;:31::i;:::-;4903:9;:13:::0;4899:75:::1;;4928:37;4943:13;4958:6;4928:14;:37::i;:::-;4986:33;::::0;-1:-1:-1;;;;;4986:33:209;::::1;::::0;::::1;::::0;;;::::1;4810:216;3309:1721;;;;;;;;655:1:113;662:24:::0;468:1;-1:-1:-1;;;;;;;;;;;825:65:113;770:125;1425:182:199;1520:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;1520:32:199;1567:35;1580:13;1595:6;1567:12;:35::i;:::-;1560:42;1425:182;-1:-1:-1;;;1425:182:199:o;11379:107:209:-;11432:13;11460:21;:19;:21::i;10664:107::-;10717:7;10739:27;:25;:27::i;2199:120:125:-;2255:13;2283:23;:21;:23::i;:::-;:31;;2276:38;;;;;:::i;10471:159:209:-;641:8:104;:6;:8::i;:::-;-1:-1:-1;;;;;627:22:104;:10;-1:-1:-1;;;;;627:22:104;;623:79;;666:29;;-1:-1:-1;;;666:29:104;;684:10;666:29;;;1101:51:404;1074:18;;666:29:104;955:203:404;623:79:104;10542:42:209::1;10559:8;10569:14;:12;:14::i;:::-;10542:16;:42::i;:::-;10590:35;10616:8;10590:25;:35::i;3933:269:125:-:0;4123:8;4035:23;:21;:23::i;:::-;29364:10:126;4035:63:125;;;;:42;;;;;:63;;;;;;;;-1:-1:-1;;;;;4035:85:125;;;;;;;;;;;;:96;;-1:-1:-1;;4035:96:125;;;;;;;;;;;4142:55;;13848:14:404;;13841:22;13823:41;;4035:85:125;;29364:10:126;;4142:55:125;;13796:18:404;4142:55:125;;;;;;;3933:269;;:::o;8372:348::-;8519:31;8532:4;8538:2;8542:7;8519:12;:31::i;:::-;-1:-1:-1;;;;;8560:14:125;;;:19;8556:160;;8592:56;8623:4;8629:2;8633:7;8642:5;8592:30;:56::i;:::-;8587:129;;8667:40;;-1:-1:-1;;;8667:40:125;;;;;;;;;;;8587:129;8372:348;;;;:::o;2412:329::-;2493:13;2519:16;2527:7;2519;:16::i;:::-;2514:59;;2544:29;;-1:-1:-1;;;2544:29:125;;;;;;;;;;;2514:59;2580:21;2604:10;6617:9:126;;;;;;;;;-1:-1:-1;6617:9:126;;;6545:86;2604:10:125;2580:34;;2639:7;2633:21;2658:1;2633:26;:103;;;;;;;;;;;;;;;;;2694:7;2703:18;2713:7;2703:9;:18::i;:::-;2677:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2620:116;2412:329;-1:-1:-1;;;2412:329:125:o;869:157::-;296:66:85;1263:42:84;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:84;;;;;;;;;;;1258:100;981:40:125::1;1006:5;1013:7;981:24;:40::i;8339:170:209:-:0;641:8:104;:6;:8::i;:::-;-1:-1:-1;;;;;627:22:104;:10;-1:-1:-1;;;;;627:22:104;;623:79;;666:29;;-1:-1:-1;;;666:29:104;;684:10;666:29;;;1101:51:404;1074:18;;666:29:104;955:203:404;623:79:104;8431:35:209::1;8452:13;8431:20;:35::i;:::-;8472:32;8490:13;8472:17;:32::i;8543:107::-:0;8604:7;8626:19;:17;:19::i;4340:167:125:-;4449:4;4468:34;4486:5;4493:8;4468:17;:34::i;1689:139:128:-;293:66;;1689:139::o;22504:230:126:-;22582:7;22602:16;22610:7;22602;:16::i;:::-;22597:64;;22627:34;;-1:-1:-1;;;22627:34:126;;;;;;;;;;;22597:64;22675:23;:21;:23::i;:::-;:48;;;;:39;;:48;;-1:-1:-1;22675:48:126;;;:54;-1:-1:-1;;;;;22675:54:126;;22504:230::o;23284:439::-;23390:13;23406:17;23415:7;23406:8;:17::i;:::-;23390:33;;23434:13;23430:184;;;29364:10;-1:-1:-1;;;;;23459:28:126;;;23455:159;;23502:45;23520:5;29364:10;23502:17;:45::i;:::-;23497:117;;23568:35;;-1:-1:-1;;;23568:35:126;;;;;;;;;;;23497:117;23677:2;23620:23;:21;:23::i;:::-;:48;;;;:39;;;;;:48;;;;;;:59;;-1:-1:-1;;;;;;23620:59:126;-1:-1:-1;;;;;23620:59:126;;;;;;23690:28;23620:48;;23690:28;;;;;;;;;;23620:48;23690:28;23384:339;23284:439;;;:::o;717:189:104:-;779:67;;;;;;;;295:66:106;779:67:104;-1:-1:-1;;;;;779:67:104;;;;;;;;;;;;;859:42;;-1:-1:-1;;;859:42:104;;;;;2501:25:404;;;;859:42:104;;758:13;;859:30;;2474:18:404;;;;;859:42:104;;;;;;779:67;859:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;852:49;;;717:189;:::o;8763:120:208:-;8873:5;8828:26;:24;:26::i;:::-;:42;;;:50;;:42;:50;:::i;2978:351:126:-;3025:7;;3256:23;:21;:23::i;:::-;:36;;;3208:23;:21;:23::i;:::-;:37;:84;:110;;2978:351;-1:-1:-1;2978:351:126:o;5024:506:208:-;5113:7;5128:35;5166:26;:24;:26::i;:::-;5128:64;;5226:22;5251:30;:28;:30::i;:::-;5292:16;;;;5226:55;;-1:-1:-1;;;;;;5292:16:208;:30;5288:161;;5364:16;;;;5345:104;;-1:-1:-1;;;5345:104:208;;;;;20115:25:404;;;20156:18;;;20149:34;;;-1:-1:-1;;;;;5364:16:208;;;;5345:45;;20088:18:404;;5345:104:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5330:119;5024:506;-1:-1:-1;;;;5024:506:208:o;5288:161::-;5485:2;:15;;;;;;;;;;-1:-1:-1;;;;;5485:15:208;-1:-1:-1;;;;;5463:60:208;;:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7829:1501:126;7905:14;7967:32;8002:23;:21;:23::i;:::-;8043:29;;;;:20;;;:29;;;;;;;-1:-1:-1;7967:58:126;;-1:-1:-1;;;;8108:24:126;;:29;;8104:1172;;8229:6;8239:1;8229:11;8225:791;;8269:16;;8258:27;;8254:83;;8306:31;;-1:-1:-1;;;8306:31:126;;;;;;;;;;;8254:83;8824:182;-1:-1:-1;;8903:9:126;;;8882:31;;;;:20;;;:31;;;;;;8903:9;;8882:31;;-1:-1:-1;8941:25:126;;8824:182;8941:25;;8980:13;7829:1501;;;:::o;8104:1172::-;7959:1323;9294:31;;-1:-1:-1;;;9294:31:126;;;;;;;;;;;12148:478;12244:27;12273:23;12306:38;12347:30;:28;:30::i;:::-;:62;;;;:53;;:62;;-1:-1:-1;;12347:62:126;;;;12590:26;;12347:62;;12590:26;;-1:-1:-1;12148:478:126:o;2764:1911:200:-;2894:41;3017:30;;;-1:-1:-1;;;;;;;;;;;3017:30:200;;;;;3065:25;;-1:-1:-1;;;;;;;;;;;462:66:201;3017:30:200;3065:25;;;-1:-1:-1;;;;;3065:25:200;:39;;:73;;-1:-1:-1;3108:21:200;;;;:30;3065:73;3054:156;;;3160:43;;-1:-1:-1;;;3160:43:200;;;;;;;;;;;3054:156;3220:31;;;;:23;;;:31;;;;;;;;3216:110;;;3268:51;;-1:-1:-1;;;3268:51:200;;;;;;;;;;;3216:110;3413:10;3535:34;;;:26;;;:34;;;;;:41;3413:10;;;;;3583:573;3607:22;3603:1;:26;3583:573;;;3644:25;3672:34;;;:26;;;:34;;;;;:37;;3707:1;;3672:37;;;;;;:::i;:::-;;;;;;;;;;3760:13;;3672:37;;-1:-1:-1;3777:10:200;-1:-1:-1;;;;;3760:13:200;;;:27;3756:217;;3820:24;3803:13;;-1:-1:-1;;;3803:13:200;;;;:41;;;;;;;;:::i;:::-;;3799:112;;3865:35;;-1:-1:-1;;;3865:35:200;;;;;;;;;;;3799:112;3920:22;;3936:6;;3920:8;;-1:-1:-1;;;;3920:22:200;-1:-1:-1;;;3936:6:200;3920:22;;;;;;;;:::i;:::-;;;;;;3960:4;3952:12;;3756:217;4023:21;4006:13;;-1:-1:-1;;;4006:13:200;;;;:38;;;;;;;;:::i;:::-;;4002:148;;4056:8;;;;:::i;:::-;;;;4002:148;;;4100:21;4083:13;;-1:-1:-1;;;4083:13:200;;;;:38;;;;;;;;:::i;:::-;;4079:71;;4133:8;;;;:::i;:::-;;;;4079:71;-1:-1:-1;3631:3:200;;3583:573;;;;4167:5;4162:65;;4189:31;;-1:-1:-1;;;4189:31:200;;;;;;;;;;;4162:65;4253:26;4278:1;4253:22;:26;:::i;:::-;4244:6;:35;:74;;;-1:-1:-1;4292:26:200;4317:1;4292:22;:26;:::i;:::-;4283:6;:35;4244:74;4233:438;;;4333:31;;;;:23;;;:31;;;;;:38;;-1:-1:-1;;4333:38:200;4367:4;4333:38;;;4408:15;;;:79;;4466:21;4408:79;;;4434:21;4408:79;4379:108;;4495:59;4527:13;4542:11;4495:31;:59::i;:::-;4596:13;4567:56;4611:11;4567:56;;;;;;:::i;:::-;;;;;;;;4631:33;4650:13;4631:18;:33::i;:::-;4325:346;4233:438;2888:1787;;;;;;2764:1911;;;:::o;445:282:87:-;-1:-1:-1;;;;;;1114:62:87;;1089:4;1114:62;;;296:66:89;1114:62:87;;;;;;;;:70;;:62;:70;503:182;;-1:-1:-1;;;;;;549:62:87;;:49;:62;;;296:66:89;549:62:87;;;;;:69;;-1:-1:-1;;549:69:87;614:4;549:69;;;503:182;;;646:32;;-1:-1:-1;;;646:32:87;;;;;;;;;;;503:182;695:27;;-1:-1:-1;;;;;;695:27:87;;;;;;;;445:282;:::o;891:671:208:-;995:35;1033:26;:24;:26::i;:::-;1066:15;;;:30;;-1:-1:-1;;;;;1066:30:208;;;-1:-1:-1;;;;;;1066:30:208;;;;;;;;1121:18;;;1102:16;;;:37;;;;;;;;;;;;;1145:21;;;:53;;;;;432:42:260;1145:53:208;;;1229:14;;;;1204:22;;;:39;1269:19;;;;1249:17;;;:39;;;995:64;;-1:-1:-1;1299:23:208;1295:86;;1332:42;1354:4;:19;;;1332:21;:42::i;:::-;1387:40;1408:4;:18;;;1387:20;:40::i;:::-;1438:10;;;;:14;1434:124;;1462:24;1475:4;:10;;;1462:12;:24::i;:::-;1513:16;;;;1540:10;;;;;1494:57;;-1:-1:-1;;;1494:57:208;;-1:-1:-1;;;;;1513:16:208;;;;1494:45;;:57;;;;2501:25:404;;;2489:2;2474:18;;2355:177;1494:57:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;989:573;891:671;;:::o;1030:282:125:-;1135:25;-1:-1:-1;;;1135:13:125;:25::i;:::-;1200;-1:-1:-1;;;1200:13:125;:25::i;:::-;1273:34;1292:5;1299:7;1273:18;:34::i;3331:119:208:-;3384:7;3406:26;:24;:26::i;:::-;:39;;;3399:46;;3331:119;:::o;8032:129::-;8089:7;8111:26;:24;:26::i;:::-;:45;;;-1:-1:-1;;;;;8111:45:208;;8032:129;-1:-1:-1;8032:129:208:o;713:315:260:-;834:38;;859:7;834:38;-1:-1:-1;;;;;;;882:24:260;;;878:146;;916:35;940:2;944:6;916:23;:35::i;:::-;878:146;;;972:45;990:8;1000:4;1006:2;1010:6;972:17;:45::i;5711:335:208:-;5820:7;5835:35;5873:26;:24;:26::i;:::-;5946:1;5910:33;;;:24;;;:33;;;;;;5835:64;;-1:-1:-1;5910:37:208;5906:89;;5962:33;;;;:24;;;;:33;;;;;;;-1:-1:-1;5955:40:208;;5906:89;6009:32;6029:11;6009:19;:32::i;7721:133::-;7781:7;7803:26;:24;:26::i;:::-;:46;;;7796:53;;7721:133;:::o;6226:362::-;6300:35;6338:26;:24;:26::i;:::-;6300:64;;6493:2;:15;;;;;;;;;;-1:-1:-1;;;;;6493:15:208;-1:-1:-1;;;;;6471:61:208;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6449:13;:85;6438:145;;;6548:35;;-1:-1:-1;;;6548:35:208;;;;;;;;;;;6592:241;6668:35;6706:26;:24;:26::i;:::-;6738:17;;;:33;;;6782:46;;6668:64;;-1:-1:-1;6758:13:208;;6782:46;;;;;6662:171;6592:241;:::o;4739:219::-;4799:16;4840:18;:16;:18::i;:::-;-1:-1:-1;;;;;4818:70:208;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4799:91;;4911:8;4900;:19;4896:57;;;4928:25;;-1:-1:-1;;;4928:25:208;;;;;;;;;;;4443:119;4495:7;4517:26;:24;:26::i;:::-;:40;;;-1:-1:-1;;;;;4517:40:208;;4443:119;-1:-1:-1;4443:119:208:o;6837:324::-;6900:7;6915:35;6953:26;:24;:26::i;:::-;7011:17;;;;6915:64;;-1:-1:-1;7039:18:208;;7035:45;;7066:14;6837:324;-1:-1:-1;;6837:324:208:o;7035:45::-;7115:2;:15;;;;;;;;;;-1:-1:-1;;;;;7115:15:208;-1:-1:-1;;;;;7093:61:208;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7086:70;;;;6837:324;:::o;3333:242:126:-;3391:7;-1:-1:-1;;;;;3410:19:126;;3406:60;;3438:28;;-1:-1:-1;;;3438:28:126;;;;;;;;;;;3406:60;-1:-1:-1;;;;;3485:23:126;:21;:23::i;:::-;:42;;:49;3528:5;-1:-1:-1;;;;;3485:49:126;-1:-1:-1;;;;;3485:49:126;;;;;;;;;;;;;:85;3472:98;;3333:242;;;:::o;8338:117:208:-;8389:7;8411:26;:24;:26::i;:::-;:39;;;-1:-1:-1;;;;;8411:39:208;;8338:117;-1:-1:-1;8338:117:208:o;858:209:199:-;964:50;-1:-1:-1;;;964:13:199;:50::i;:::-;-1:-1:-1;;;;;;;;;;;1361:72:200;;-1:-1:-1;;;;;;1361:72:200;-1:-1:-1;;;;;1361:72:200;;;;;683:171:199;:::o;3628:215:208:-;3685:6;3699:35;3737:26;:24;:26::i;:::-;3699:64;;3798:2;:15;;;;;;;;;;-1:-1:-1;;;;;3798:15:208;-1:-1:-1;;;;;3776:60:208;;:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1743:698::-;1842:22;1872:35;1910:26;:24;:26::i;:::-;1997:15;;;;2039:21;;;;;2094:26;;;-1:-1:-1;;;2094:26:208;;;;1997:15;;-1:-1:-1;;;;;;1997:15:208;;;;2039:21;;;;;1942:30;;1997:15;;2094:24;;:26;;;;;;;;;;;1997:15;2094:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2066:54;;2126:13;2142:8;-1:-1:-1;;;;;2142:25:208;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2126:43;;2192:46;2214:15;2231:6;2192:46;;:21;:46::i;:::-;2175:63;;2307:129;2348:8;2364:5;2385:17;2416:14;2307:33;:129::i;:::-;1866:575;;;;;1743:698;;;;:::o;2445:882::-;2526:7;2541:35;2579:26;:24;:26::i;:::-;2541:64;;2662:16;2681:24;:22;:24::i;:::-;2662:43;-1:-1:-1;;;;;;;;2716:41:208;;;2712:108;;2786:6;2767:2;:15;;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;2807:6:208;;-1:-1:-1;2800:13:208;;-1:-1:-1;;;2800:13:208;2712:108;2914:30;;-1:-1:-1;;;2914:30:208;;2938:4;2914:30;;;1101:51:404;2875:8:208;;2853:12;;-1:-1:-1;;;;;2914:15:208;;;;;1074:18:404;;2914:30:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2890:54;;2950:72;2984:8;2994:4;3008;3015:6;2950:33;:72::i;:::-;3051:30;;-1:-1:-1;;;3051:30:208;;3075:4;3051:30;;;1101:51:404;3028:20:208;;-1:-1:-1;;;;;3051:15:208;;;;;1074:18:404;;3051:30:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3028:53;-1:-1:-1;3138:19:208;3160:28;3175:13;3028:53;3160:28;:::i;:::-;3138:50;;3213:6;3198:11;:21;3194:67;;3228:33;;-1:-1:-1;;;3228:33:208;;;;;;;;;;;3194:67;3287:11;3268:2;:15;;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;3311:11:208;;2445:882;-1:-1:-1;;;;;;;;;2445:882:208:o;249:588:122:-;326:32;418:22;;;290:66:123;418:22:122;;;;;;;;290:66:123;;-1:-1:-1;;;;;418:22:122;;;;477;;;473:261;;525:34;551:8;532:15;525:34;:::i;:::-;509:50;;473:261;;;699:28;719:8;699:17;:28;:::i;:::-;683:44;;473:261;740:13;:22;;;;;;;;;;;;:38;;-1:-1:-1;;740:38:122;-1:-1:-1;;;;;740:38:122;;;;;;;;790:42;;7898:50:404;;;740:22:122;;790:42;;7871:18:404;790:42:122;;;;;;;320:517;;;249:588;;:::o;2755:282:209:-;-1:-1:-1;;;;;2825:22:209;;2821:63;;2856:28;;-1:-1:-1;;;2856:28:209;;;;;;;;;;;2821:63;2901:27;:25;:27::i;:::-;:32;;;;:87;;;2961:27;:25;:27::i;:::-;2943:14;:12;:14::i;:::-;:45;;2901:87;2890:142;;;3002:30;;-1:-1:-1;;;3002:30:209;;;;;;;;;;;1634:189:189;1696:7;1788:28;;;-1:-1:-1;;;;;;;;;;;1788:28:189;;;;;;;:30;;;1696:7;1788:30;;;:::i;:::-;;;;-1:-1:-1;1781:37:189;1634:189;-1:-1:-1;;;1634:189:189:o;267:194::-;346:35;416:33;;;:18;:33;;;;;-1:-1:-1;;;;;;;;;;;289:66:190;416:40:189;452:4;416:33;:40;:::i;684:315::-;764:5;773:1;764:10;760:49;;783:26;;-1:-1:-1;;;783:26:189;;;;;;;;;;;760:49;832:5;819:9;:18;815:57;;846:26;;-1:-1:-1;;;846:26:189;;;;;;;;;;;815:57;879:35;949:36;;;-1:-1:-1;;;;;;;;;;;949:36:189;;;;;:45;;-1:-1:-1;;;;;;;;;;;289:66:190;989:5:189;;949:36;:45;;989:5;;949:45;:::i;:::-;;;;-1:-1:-1;;;;;684:315:189:o;2755:1424:232:-;2845:13;2866:24;2893:13;:11;:13::i;:::-;2932:14;;2866:40;;-1:-1:-1;2912:17:232;2932:14;-1:-1:-1;;;;;2986:24:232;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2986:24:232;-1:-1:-1;3070:28:232;;;;;;2952:58;;-1:-1:-1;3016:13:232;;;3179:341;3203:9;3199:1;:13;3179:341;;;3232:27;3265:20;3274:7;3282:1;3274:10;;;;;;;;:::i;:::-;;;;;;;3265:8;:20::i;:::-;3227:58;;;;;3298:9;3293:221;3317:11;:18;3313:1;:22;3293:221;;;3392:19;3372:11;3384:1;3372:14;;;;;;;;:::i;:::-;;;;;;;3356:32;;;;;;:55;3352:154;;3449:7;3457:1;3449:10;;;;;;;;:::i;:::-;;;;;;;3425:14;3440:5;3425:21;;;;;;;;:::i;:::-;;;;;;;;;;:34;3471:7;;;;:::i;:::-;;;;3490:5;;3352:154;3337:3;;3293:221;;;-1:-1:-1;;3214:3:232;;3179:341;;;;3585:33;3632:5;-1:-1:-1;;;;;3621:17:232;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3621:17:232;;;;;;;;;;;;;;;;;3585:53;;3704:9;3699:443;3723:5;3719:1;:9;3699:443;;;3743:14;3760;3775:1;3760:17;;;;;;;;:::i;:::-;;;;;;;3743:34;;3795:18;3823:16;3849:27;3886:34;3931:16;3940:6;3931:8;:16::i;:::-;3785:162;;;;;;;;3980:155;;;;;;;;3999:6;3980:155;;;;4021:4;3980:155;;;;4045:11;3980:155;;;;;;4079:11;3980:155;;;;4114:12;3980:155;;;3955:19;3975:1;3955:22;;;;;;;;:::i;:::-;;;;;;:180;;;;3735:407;;;;;3730:3;;;;;;;3699:443;;;-1:-1:-1;4155:19:232;2755:1424;-1:-1:-1;;;;;;;2755:1424:232:o;4541:861:176:-;4624:16;4648:14;4677:26;:24;:26::i;:::-;:39;;;4756:31;;-1:-1:-1;;;4756:31:176;;-1:-1:-1;;;;;1119:32:404;;;4756:31:176;;;1101:51:404;4677:39:176;;;;-1:-1:-1;4677:39:176;;;;4756:22;;1074:18:404;;4756:31:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4756:31:176;;;;;;;;;;;;:::i;:::-;4908;;-1:-1:-1;;;4908:31:176;;-1:-1:-1;;;;;1119:32:404;;;4908:31:176;;;1101:51:404;4723:64:176;;-1:-1:-1;4881:24:176;;4908:22;;;;;1074:18:404;;4908:31:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4881:58;;4949:13;:20;4973:1;4949:25;:59;;;;-1:-1:-1;;;;;;4978:30:176;;;;4949:59;4945:161;;;5068:31;;-1:-1:-1;;;5068:31:176;;-1:-1:-1;;;;;1119:32:404;;;5068:31:176;;;1101:51:404;5028:16:176;;-1:-1:-1;5028:16:176;;5068:22;;;;;1074:18:404;;5068:31:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5068:31:176;;;;;;;;;;;;:::i;:::-;5052:47;;4945:161;5142:20;;5112:27;5210:23;5142:20;5232:1;5210:23;:::i;:::-;-1:-1:-1;;;;;5196:38:176;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5196:38:176;;5169:65;;5245:9;5240:94;5264:19;5260:1;:23;5240:94;;;5311:13;5325:1;5311:16;;;;;;;;:::i;:::-;;;;;;;5298:7;5306:1;5298:10;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5298:29:176;;;:10;;;;;;;;;;;:29;5285:3;;5240:94;;;;5370:7;5339;5347:19;5339:28;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5339:38:176;;;:28;;;;;;;;;;;:38;5390:7;4541:861;-1:-1:-1;;;;;;4541:861:176:o;5034:1603:209:-;5094:14;5110:16;5148:31;5165:13;5148:16;:31::i;:::-;5130:81;;;;;;;;;;;;:::i;:::-;5093:118;;;;5218:19;5240:14;:12;:14::i;:::-;5218:36;;5260:23;5290:22;5315:30;:28;:30::i;:::-;5290:55;;5351:21;5375:19;:17;:19::i;:::-;5351:43;;5422:11;5405:14;:28;5401:316;;;5461:1;5443:19;;5470:37;5485:13;5500:6;5470:14;:37::i;:::-;5401:316;;;5524:17;;5520:197;;5569:1;5551:19;;5578:16;5592:1;5578:13;:16::i;:::-;5602:37;5617:13;5632:6;5602:14;:37::i;5520:197::-;5678:32;5698:11;5678:19;:32::i;:::-;5660:50;;5520:197;5743:15;5761:14;:12;:14::i;:::-;5743:32;-1:-1:-1;5786:19:209;;5782:652;;5815:17;1396:36:189;;;-1:-1:-1;;;;;;;;;;;1396:36:189;;;;;;;5880:14:209;;;5876:60;;5903:33;;-1:-1:-1;;;5903:33:209;;;;;;;;;;;5876:60;5961:15;5948:9;:28;5944:69;;5985:28;;-1:-1:-1;;;5985:28:209;;;;;;;;;;;5944:69;6059:52;6086:7;6095:15;6059:26;:52::i;:::-;6119:19;6141:44;6161:6;6169:15;6141:19;:44::i;:::-;6119:66;-1:-1:-1;6194:15:209;6212:29;6119:66;6212:15;:29;:::i;:::-;6194:47;-1:-1:-1;6253:11:209;;6249:45;;6266:28;6278:6;6286:7;6266:11;:28::i;:::-;;6249:45;6335:53;6357:13;6372:15;6335:21;:53::i;:::-;6396:31;6409:13;6396:31;;;;;;;;;;;;:12;:31::i;:::-;5807:627;;;5782:652;6463:22;6473:8;6483:1;6463:9;:22::i;:::-;6528:53;6547:7;6556:24;:22;:24::i;6528:53::-;6592:40;;6624:7;;-1:-1:-1;;;;;6592:40:209;;;;;;;;5087:1550;;;;;;;5034:1603;:::o;1442:1318:200:-;1576:41;1700:30;;;-1:-1:-1;;;;;;;;;;;1700:30:200;;;;;1741:21;;-1:-1:-1;;;;;;;;;;;462:66:201;1700:30:200;1741:21;;:29;;1700:15;1741:29;1737:244;;1785:9;1780:195;1804:19;;;:26;1800:30;;1780:195;;;1877:6;1851:11;:19;;1871:1;1851:22;;;;;;;;:::i;:::-;;;;;;;;;:32;1847:120;;1904:52;;-1:-1:-1;;;1904:52:200;;;;;;;;;;;1847:120;1832:3;;1780:195;;;;1737:244;2058:21;;-1:-1:-1;;;;;2058:21:200;2046:97;;2104:32;:30;:32::i;:::-;2182:21;;:39;;-1:-1:-1;;;2182:39:200;;2219:1;2182:39;;;2501:25:404;2149:30:200;;-1:-1:-1;;;;;2182:21:200;;:36;;2474:18:404;;2182:39:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2182:39:200;;;;;;;;;;;;:::i;:::-;2233:21;;2149:72;;-1:-1:-1;2233:21:200;;2228:162;;2264:28;;2300:23;;;:37;;-1:-1:-1;;;;;;2300:37:200;-1:-1:-1;;;;;2300:37:200;;;;;-1:-1:-1;;;;;;2345:38:200;2264:28;2373:10;2345:38;;-1:-1:-1;2345:38:200;;;2228:162;2396:19;;;:32;;;;;;;-1:-1:-1;2396:32:200;;;;;;;;;;2435:189;2459:13;:20;2455:1;:24;2435:189;;;2494:11;:26;;:34;2521:6;2494:34;;;;;;;;;;;2543:66;;;;;;;;2559:13;2573:1;2559:16;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2543:66:200;;;;;2583:24;2543:66;;;;;;;;:::i;:::-;;;2494:123;;;;;;;-1:-1:-1;2494:123:200;;;;;;;;;;;;;;-1:-1:-1;;;;;;2494:123:200;;-1:-1:-1;;;;;2494:123:200;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2494:123:200;;-1:-1:-1;;;2494:123:200;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;2481:3:200;;2435:189;;;-1:-1:-1;2630:21:200;;:125;;-1:-1:-1;;;2630:125:200;;-1:-1:-1;;;;;2630:21:200;;;;:45;;:125;;2683:10;;2701:13;;2722:6;;2736:13;;2630:125;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12559:362:209;12637:17;1396:36:189;;;-1:-1:-1;;;;;;;;;;;1396:36:189;;;;;;12699:13:209;;12695:222;;12722:47;12744:13;12759:9;12722:21;:47::i;:::-;12777:133;12820:24;:22;:24::i;5117:575:200:-;5213:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;5213:32:200;5253:41;5377:30;;;-1:-1:-1;;;;;;;;;;;5377:30:200;;;;;5418:21;;-1:-1:-1;;;;;;;;;;;462:66:201;5418:21:200;;;;:30;;;;5414:101;;5465:43;;-1:-1:-1;;;5465:43:200;;;;;;;;;;;5414:101;5568:23;;;;5643:22;;-1:-1:-1;;;5643:22:200;;;;;2501:25:404;;;-1:-1:-1;;;;;5568:23:200;;;;5521:19;;5568:23;;5643:14;;2474:18:404;;5643:22:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5643:22:200;;;;;;;;;;;;:::i;:::-;5599:66;5117:575;-1:-1:-1;;;;;;;5117:575:200:o;8630:129:208:-;8684:13;8712:26;:24;:26::i;:::-;:42;;8705:49;;;;;:::i;7346:237::-;7528:11;7517:8;:22;7513:65;;;7548:30;;-1:-1:-1;;;7548:30:208;;;;;;;;;;;7587:130;7704:8;7655:26;:24;:26::i;:::-;:46;;:57;-1:-1:-1;7587:130:208:o;14707:674:126:-;14870:139;;-1:-1:-1;;;14870:139:126;;14848:4;;-1:-1:-1;;;;;14870:56:126;;;;;:139;;29364:10;;14965:4;;14979:7;;14996:5;;14870:139;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14870:139:126;;;;;;;;-1:-1:-1;;14870:139:126;;;;;;;;;;;;:::i;:::-;;;14860:517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15192:6;:13;15209:1;15192:18;15188:183;;15229:40;;-1:-1:-1;;;15229:40:126;;;;;;;;;;;15188:183;15345:6;15339:13;15330:6;15326:2;15322:15;15315:38;14860:517;-1:-1:-1;;;;;;15061:83:126;-1:-1:-1;;;15061:83:126;;-1:-1:-1;14707:674:126;;;;;;:::o;11064:301::-;11129:4;11200:23;:21;:23::i;:::-;:37;11190:47;;11154:187;;;;;-1:-1:-1;;;11268:23:126;:21;:23::i;:::-;:50;;;;:41;;;;;:50;;;;;;:68;:73;11141:200;11064:301;-1:-1:-1;;11064:301:126:o;29468:1574::-;29541:17;29935:4;29928;29922:11;29918:22;30013:1;30007:4;30000:15;30074:4;30071:1;30067:12;30060:19;;;30142:1;30137:3;30130:14;30231:3;30441:5;30423:419;30488:1;30483:3;30479:11;30472:18;;30656:2;30650:4;30646:13;30642:2;30638:22;30633:3;30625:36;30748:2;30738:13;;30803:25;30423:419;30803:25;-1:-1:-1;30864:13:126;;;-1:-1:-1;;30965:14:126;;;31013:19;;;30965:14;29468:1574;-1:-1:-1;29468:1574:126:o;4024:279:208:-;-1:-1:-1;;;;;4101:27:208;;4097:74;;4137:34;;-1:-1:-1;;;4137:34:208;;;;;;;;;;;4097:74;4199:18;:16;:18::i;:::-;4183:66;;-1:-1:-1;;;4183:66:208;;-1:-1:-1;;;;;1119:32:404;;;4183:66:208;;;1101:51:404;4183::208;;;;;;;1074:18:404;;4183:66:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4178:120;;4264:34;;-1:-1:-1;;;4264:34:208;;;;;;;;;;;4307:132;4418:16;4375:26;:24;:26::i;:::-;:40;;:59;;-1:-1:-1;;;;;;4375:59:208;-1:-1:-1;;;;;4375:59:208;;;;;;;;;;-1:-1:-1;4307:132:208:o;22314:186:126:-;22417:4;22436:23;:21;:23::i;:::-;-1:-1:-1;;;;;22436:49:126;;;;;;;:42;;;;;:49;;;;;;;;:59;;;;;;;;;;-1:-1:-1;22436:59:126;;;;;22314:186::o;903:139:210:-;287:66;;903:139::o;12051:504:209:-;12210:21;12200:6;:31;;;;;;;;:::i;:::-;;12196:355;;12241:26;12253:13;12241:11;:26::i;12196:355::-;12289:14;12305:16;12345:31;12362:13;12345:16;:31::i;:::-;12325:87;;;;;;;;;;;;:::i;:::-;12288:124;;;;12421:31;12434:13;12421:31;;;;;;;;;;;;:12;:31::i;:::-;12460:37;12475:13;12490:6;12460:14;:37::i;:::-;12511:33;;-1:-1:-1;;;;;12511:33:209;;;;;;;;12280:271;;12051:504;;:::o;4679:434:200:-;4745:41;4869:30;;;-1:-1:-1;;;;;;;;;;;4869:30:200;;;;;-1:-1:-1;;;;;;;;;;;462:66:201;4905:129:200;4929:19;;;:26;4925:30;;4905:129;;;4977:11;:26;;:50;5004:11;:19;;5024:1;5004:22;;;;;;;;:::i;:::-;;;;;;;;;4977:50;;;;;;;;;;;;4970:57;;;;:::i;:::-;4957:3;;4905:129;;;-1:-1:-1;5039:26:200;5046:19;;;;5039:26;:::i;:::-;5078:30;;;;:15;;;:30;;;;;5071:37;;-1:-1:-1;;;;;;5071:37:200;;;;;;;;-1:-1:-1;;;;;;5071:37:200;;;5078:30;5071:37;;;;5078:30;5071:37;:::i;2553:247:126:-;2650:32;2685:23;:21;:23::i;:::-;2650:58;-1:-1:-1;2715:8:126;;;:15;2726:4;2715:8;:15;:::i;:::-;-1:-1:-1;2736:10:126;;;:19;2749:6;2736:10;:19;:::i;:::-;-1:-1:-1;3941:7:126;2761:34;;-1:-1:-1;;2553:247:126:o;2554:178:260:-;2630:12;2648:2;-1:-1:-1;;;;;2648:7:260;2663:5;2648:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2629:44;;;2687:7;2679:48;;;;-1:-1:-1;;;2679:48:260;;31912:2:404;2679:48:260;;;31894:21:404;31951:2;31931:18;;;31924:30;31990;31970:18;;;31963:58;32038:18;;2679:48:260;31710:352:404;2180:315:260;2311:2;-1:-1:-1;;;;;2303:10:260;:4;-1:-1:-1;;;;;2303:10:260;;2299:37;2323:7;2299:37;2362:4;-1:-1:-1;;;;;2346:21:260;;;2342:149;;2377:38;-1:-1:-1;;;;;2377:26:260;;2404:2;2408:6;2377:26;:38::i;2342:149::-;2436:48;-1:-1:-1;;;;;2436:30:260;;2467:4;2473:2;2477:6;2436:30;:48::i;361:224:259:-;452:7;116:6;475:11;:22;;467:68;;;;-1:-1:-1;;;467:68:259;;32269:2:404;467:68:259;;;32251:21:404;32308:2;32288:18;;;32281:30;32347:34;32327:18;;;32320:62;-1:-1:-1;;;32398:18:404;;;32391:31;32439:19;;467:68:259;32067:397:404;467:68:259;116:6;549:20;558:11;549:6;:20;:::i;:::-;548:32;;;;:::i;9967:126:232:-;10013:24;10052:36;:27;:34;:36::i;9486:477::-;9596:16;9772:19;;;-1:-1:-1;;;;;;;;;;;9772:19:232;;;;;9765:31;;9570:18;;9596:16;9570:18;;;;427:66:233;;9765:31:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9816:19:232;;;;:11;;;:19;;;;;:31;;;;9765;;-1:-1:-1;9816:31:232;;;;;-1:-1:-1;9867:40:232;;:31;;;-1:-1:-1;9867:38:232;;-1:-1:-1;9867:40:232:i;:::-;9853:54;;9928:30;9951:6;9928:22;:30::i;:::-;9913:45;;9698:265;9486:477;;;;;:::o;465:215:189:-;565:35;642:33;;;:18;:33;;;;;635:40;;545:12;;-1:-1:-1;;;;;;;;;;;289:66:190;635:40:189;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;465:215;;;:::o;562:108:226:-;614:7;272:66:228;636:22:226;:29;;562:108;-1:-1:-1;562:108:226:o;418:140::-;272:66:228;534:19:226;;547:6;;272:66:228;;472:31:226;;534:19;;547:6;;534:19;:::i;:::-;;;;-1:-1:-1;;;;418:140:226:o;4035:119:126:-;4090:7;4112:23;:21;:23::i;5534:173:208:-;5693:9;5633:26;:24;:26::i;:::-;:57;;;;:48;;:57;;;;;;:69;;;;-1:-1:-1;5534:173:208:o;1003:216:189:-;1099:35;1169:36;;;-1:-1:-1;;;;;;;;;;;1169:36:189;;;;;:45;;-1:-1:-1;;;;;;;;;;;289:66:190;1209:5:189;;1169:36;:45;;1209:5;;1169:45;:::i;21749:104:126:-;21821:27;21831:2;21835:8;21821:27;;;;;;;;;;;;:9;:27::i;5884:366:200:-;-1:-1:-1;;;;;;;;;;;5941:41:200;6090:26;:24;:26::i;:::-;:39;;;6059:117;;-1:-1:-1;;;6059:117:200;;-1:-1:-1;;;6059:117:200;;;32851:34:404;-1:-1:-1;;;;;6090:39:200;;;;6059:100;;32824:18:404;;6059:117:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6182:63;;-1:-1:-1;;;;;;6182:63:200;-1:-1:-1;;;;;6182:63:200;;;;;;;;-1:-1:-1;5884:366:200:o;1303:160:336:-;1412:43;;-1:-1:-1;;;;;33088:32:404;;;1412:43:336;;;33070:51:404;33137:18;;;33130:34;;;1385:71:336;;1405:5;;1427:14;;;;;33043:18:404;;1412:43:336;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:43:336;;;;;;;;;;;1385:19;:71::i;1702:188::-;1829:53;;-1:-1:-1;;;;;33433:15:404;;;1829:53:336;;;33415:34:404;33485:15;;;33465:18;;;33458:43;33517:18;;;33510:34;;;1802:81:336;;1822:5;;1844:18;;;;;33350::404;;1829:53:336;33175:375:404;12671:297:356;12731:16;12759:22;12784:19;12792:3;12784:7;:19::i;5591:103:255:-;5647:15;5677:12;5685:3;5677:7;:12::i;10097:599:232:-;10205:39;10273:38;;;-1:-1:-1;;;;;;;;;;;10273:38:232;;;;;10176:21;;10205:39;10273:60;;:51;;:58;:60::i;:::-;-1:-1:-1;;;;;10247:92:232;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10247:92:232;;10205:134;;10358:9;10346:315;10383:38;;;;-1:-1:-1;;;;;;;;;;;10383:38:232;;;;;:60;;:51;;:58;:60::i;:::-;10379:1;:64;10346:315;;;10469:26;10498:56;;;-1:-1:-1;;;;;;;;;;;10498:56:232;;;;;:93;;:78;;10589:1;10498:90;:93::i;:::-;10469:122;;10635:18;10599:17;10617:1;10599:20;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10599:55:232;;;:20;;;;;;;;;;;:55;-1:-1:-1;10451:3:232;;10346:315;;;-1:-1:-1;10674:17:232;10097:599;-1:-1:-1;;10097:599:232:o;21081:597:126:-;21189:19;21195:2;21199:8;21189:5;:19::i;:::-;-1:-1:-1;;;;;21237:14:126;;;:19;21233:435;;21268:11;21282:23;:21;:23::i;:::-;:37;;-1:-1:-1;21345:14:126;;;21369:189;21389:62;21428:1;21432:2;21436:7;;;;;;21445:5;21389:30;:62::i;:::-;21384:143;;21474:40;;-1:-1:-1;;;21474:40:126;;;;;;;;;;;21384:143;21553:3;21545:5;:11;21369:189;;21646:3;21605:23;:21;:23::i;:::-;:37;:44;21601:58;;21651:8;;;4059:629:336;4478:23;4504:33;-1:-1:-1;;;;;4504:27:336;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:336;;-1:-1:-1;;;;;1119:32:404;;4631:40:336;;;1101:51:404;1074:18;;4631:40:336;955:203:404;5581:109:356;5637:16;5672:3;:11;;5665:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:109;;;:::o;3597:102:255:-;3653:15;3683:3;:11;;3676:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3597:102;;;:::o;9117:115:356:-;9180:7;9206:19;9214:3;4556:18;;4474:107;9574:156;9648:7;9698:22;9702:3;9714:5;9698:3;:22::i;15799:2642:126:-;15867:20;15890:23;:21;:23::i;:::-;:37;;-1:-1:-1;15890:37:126;15937:13;;;15933:44;;15959:18;;-1:-1:-1;;;15959:18:126;;;;;;;;;;;15933:44;16474:32;16454:53;;16396:23;:21;:23::i;:::-;-1:-1:-1;;;;;16396:46:126;;;;;;:42;;;;;:46;;;;;;:111;;;;;;;;;10229:11;10204:23;10200:41;-1:-1:-1;10624:15:126;;10598:24;10594:46;10197:52;10187:63;16707:23;:21;:23::i;:::-;:71;;;;:41;;;;;:71;;;;;:188;;;;-1:-1:-1;;;;;17416:25:126;;;16942:23;;;;16758:12;;17416:25;;17602;16707:71;;17488:260;18026:1;18012:12;18008:20;17977:275;18058:3;18049:7;18046:16;17977:275;;18234:7;18224:8;18221:1;18194:25;18191:1;18188;18183:59;18100:1;18087:15;17977:275;;;17981:57;18271:8;18283:1;18271:13;18267:45;;18293:19;;-1:-1:-1;;;18293:19:126;;;;;;;;;;;18267:45;18361:3;18321:23;:21;:23::i;:::-;:43;-1:-1:-1;18376:60:126;;-1:-1:-1;8372:348:125;2705:151:341;2780:12;2811:38;2833:6;2841:4;2847:1;2811:21;:38::i;4923:118:356:-;4990:7;5016:3;:11;;5028:5;5016:18;;;;;;;;:::i;:::-;;;;;;;;;5009:25;;4923:118;;;;:::o;3180:392:341:-;3279:12;3331:5;3307:21;:29;3303:108;;;3359:41;;-1:-1:-1;;;3359:41:341;;3394:4;3359:41;;;1101:51:404;1074:18;;3359:41:341;955:203:404;3303:108:341;3421:12;3435:23;3462:6;-1:-1:-1;;;;;3462:11:341;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:341:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:341;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:341;;-1:-1:-1;;;;;1119:32:404;;5121:24:341;;;1101:51:404;1074:18;;5121:24:341;955:203:404;5041:119:341;-1:-1:-1;5180:10:341;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:341;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:250:404;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:404;238:16;;231:27;14:250::o;269:271::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;522:2;501:15;-1:-1:-1;;497:29:404;488:39;;;;529:4;484:50;;269:271;-1:-1:-1;;269:271:404:o;545:220::-;694:2;683:9;676:21;657:4;714:45;755:2;744:9;740:18;732:6;714:45;:::i;770:180::-;829:6;882:2;870:9;861:7;857:23;853:32;850:52;;;898:1;895;888:12;850:52;-1:-1:-1;921:23:404;;770:180;-1:-1:-1;770:180:404:o;1163:131::-;-1:-1:-1;;;;;1238:31:404;;1228:42;;1218:70;;1284:1;1281;1274:12;1299:134;1367:20;;1396:31;1367:20;1396:31;:::i;:::-;1299:134;;;:::o;1438:315::-;1506:6;1514;1567:2;1555:9;1546:7;1542:23;1538:32;1535:52;;;1583:1;1580;1573:12;1535:52;1622:9;1609:23;1641:31;1666:5;1641:31;:::i;:::-;1691:5;1743:2;1728:18;;;;1715:32;;-1:-1:-1;;;1438:315:404:o;1758:592::-;1829:6;1837;1890:2;1878:9;1869:7;1865:23;1861:32;1858:52;;;1906:1;1903;1896:12;1858:52;1946:9;1933:23;-1:-1:-1;;;;;2016:2:404;2008:6;2005:14;2002:34;;;2032:1;2029;2022:12;2002:34;2070:6;2059:9;2055:22;2045:32;;2115:7;2108:4;2104:2;2100:13;2096:27;2086:55;;2137:1;2134;2127:12;2086:55;2177:2;2164:16;2203:2;2195:6;2192:14;2189:34;;;2219:1;2216;2209:12;2189:34;2264:7;2259:2;2250:6;2246:2;2242:15;2238:24;2235:37;2232:57;;;2285:1;2282;2275:12;2232:57;2316:2;2308:11;;;;;2338:6;;-1:-1:-1;1758:592:404;;-1:-1:-1;;;;1758:592:404:o;2537:456::-;2614:6;2622;2630;2683:2;2671:9;2662:7;2658:23;2654:32;2651:52;;;2699:1;2696;2689:12;2651:52;2738:9;2725:23;2757:31;2782:5;2757:31;:::i;:::-;2807:5;-1:-1:-1;2864:2:404;2849:18;;2836:32;2877:33;2836:32;2877:33;:::i;:::-;2537:456;;2929:7;;-1:-1:-1;;;2983:2:404;2968:18;;;;2955:32;;2537:456::o;2998:113::-;3085:1;3078:5;3075:12;3065:40;;3101:1;3098;3091:12;3116:415;3213:6;3221;3229;3282:2;3270:9;3261:7;3257:23;3253:32;3250:52;;;3298:1;3295;3288:12;3250:52;3334:9;3321:23;3311:33;;3391:2;3380:9;3376:18;3363:32;3353:42;;3445:2;3434:9;3430:18;3417:32;3458:43;3495:5;3458:43;:::i;:::-;3520:5;3510:15;;;3116:415;;;;;:::o;3536:127::-;3597:10;3592:3;3588:20;3585:1;3578:31;3628:4;3625:1;3618:15;3652:4;3649:1;3642:15;3668:255;3740:2;3734:9;3782:6;3770:19;;-1:-1:-1;;;;;3804:34:404;;3840:22;;;3801:62;3798:88;;;3866:18;;:::i;:::-;3902:2;3895:22;3668:255;:::o;3928:253::-;4000:2;3994:9;4042:4;4030:17;;-1:-1:-1;;;;;4062:34:404;;4098:22;;;4059:62;4056:88;;;4124:18;;:::i;4186:253::-;4258:2;4252:9;4300:4;4288:17;;-1:-1:-1;;;;;4320:34:404;;4356:22;;;4317:62;4314:88;;;4382:18;;:::i;4444:257::-;4516:4;4510:11;;;4548:17;;-1:-1:-1;;;;;4580:34:404;;4616:22;;;4577:62;4574:88;;;4642:18;;:::i;4706:275::-;4777:2;4771:9;4842:2;4823:13;;-1:-1:-1;;4819:27:404;4807:40;;-1:-1:-1;;;;;4862:34:404;;4898:22;;;4859:62;4856:88;;;4924:18;;:::i;:::-;4960:2;4953:22;4706:275;;-1:-1:-1;4706:275:404:o;4986:407::-;5051:5;-1:-1:-1;;;;;5077:6:404;5074:30;5071:56;;;5107:18;;:::i;:::-;5145:57;5190:2;5169:15;;-1:-1:-1;;5165:29:404;5196:4;5161:40;5145:57;:::i;:::-;5136:66;;5225:6;5218:5;5211:21;5265:3;5256:6;5251:3;5247:16;5244:25;5241:45;;;5282:1;5279;5272:12;5241:45;5331:6;5326:3;5319:4;5312:5;5308:16;5295:43;5385:1;5378:4;5369:6;5362:5;5358:18;5354:29;5347:40;4986:407;;;;;:::o;5398:222::-;5441:5;5494:3;5487:4;5479:6;5475:17;5471:27;5461:55;;5512:1;5509;5502:12;5461:55;5534:80;5610:3;5601:6;5588:20;5581:4;5573:6;5569:17;5534:80;:::i;5625:129::-;-1:-1:-1;;;;;5703:5:404;5699:30;5692:5;5689:41;5679:69;;5744:1;5741;5734:12;5759:132;5826:20;;5855:30;5826:20;5855:30;:::i;5896:1321::-;5993:6;6001;6054:2;6042:9;6033:7;6029:23;6025:32;6022:52;;;6070:1;6067;6060:12;6022:52;6110:9;6097:23;-1:-1:-1;;;;;6180:2:404;6172:6;6169:14;6166:34;;;6196:1;6193;6186:12;6166:34;6219:22;;;;6275:6;6257:16;;;6253:29;6250:49;;;6295:1;6292;6285:12;6250:49;6321:22;;:::i;:::-;6381:2;6368:16;6409:2;6399:8;6396:16;6393:36;;;6425:1;6422;6415:12;6393:36;6452:45;6489:7;6478:8;6474:2;6470:17;6452:45;:::i;:::-;6445:5;6438:60;;6544:2;6540;6536:11;6523:25;6573:2;6563:8;6560:16;6557:36;;;6589:1;6586;6579:12;6557:36;6625:45;6662:7;6651:8;6647:2;6643:17;6625:45;:::i;:::-;6620:2;6613:5;6609:14;6602:69;;6724:2;6720;6716:11;6703:25;6698:2;6691:5;6687:14;6680:49;6782:2;6778;6774:11;6761:25;6756:2;6749:5;6745:14;6738:49;6820:31;6846:3;6842:2;6838:12;6820:31;:::i;:::-;6814:3;6807:5;6803:15;6796:56;6885:32;6912:3;6908:2;6904:12;6885:32;:::i;:::-;6879:3;6872:5;6868:15;6861:57;6951:32;6978:3;6974:2;6970:12;6951:32;:::i;:::-;6945:3;6938:5;6934:15;6927:57;7038:3;7034:2;7030:12;7017:26;7011:3;7004:5;7000:15;6993:51;7063:3;7053:13;;7098:31;7125:2;7121;7117:11;7098:31;:::i;:::-;7093:2;7086:5;7082:14;7075:55;7149:5;7139:15;;;;;7173:38;7207:2;7196:9;7192:18;7173:38;:::i;:::-;7163:48;;5896:1321;;;;;:::o;7222:247::-;7281:6;7334:2;7322:9;7313:7;7309:23;7305:32;7302:52;;;7350:1;7347;7340:12;7302:52;7389:9;7376:23;7408:31;7433:5;7408:31;:::i;7959:248::-;8027:6;8035;8088:2;8076:9;8067:7;8063:23;8059:32;8056:52;;;8104:1;8101;8094:12;8056:52;-1:-1:-1;;8127:23:404;;;8197:2;8182:18;;;8169:32;;-1:-1:-1;7959:248:404:o;8212:127::-;8273:10;8268:3;8264:20;8261:1;8254:31;8304:4;8301:1;8294:15;8328:4;8325:1;8318:15;8344:126;8438:1;8431:5;8428:12;8418:46;;8444:18;;:::i;8475:807::-;8542:3;8580:5;8574:12;8607:6;8602:3;8595:19;8633:4;8662;8657:3;8653:14;8646:21;;8701:4;8694:5;8690:16;8724:1;8734:523;8748:6;8745:1;8742:13;8734:523;;;8813:6;8807:13;8849:2;8843:9;8882:1;8878:2;8875:9;8865:43;;8888:18;;:::i;:::-;8921:15;;8976:11;;;8970:18;8956:12;;;8949:40;9012:4;9060:11;;;9054:18;-1:-1:-1;;;;;9050:44:404;9036:12;;;9029:66;9118:4;9162:11;;;9156:18;9142:12;;;9135:40;9204:4;9195:14;;;;9232:15;;;;9091:1;8763:9;8734:523;;;-1:-1:-1;9273:3:404;;8475:807;-1:-1:-1;;;;;8475:807:404:o;9287:797::-;9356:3;9394:5;9388:12;9421:6;9416:3;9409:19;9447:4;9476;9471:3;9467:14;9460:21;;9515:4;9508:5;9504:16;9538:1;9548:511;9562:6;9559:1;9556:13;9548:511;;;9627:6;9621:13;9663:2;9657:9;9679:47;9723:2;9679:47;:::i;:::-;9739:15;;9793:11;;;9787:18;9828:4;9866:21;;;9852:12;;;9845:43;9911:4;9959:11;;;9953:18;9949:27;9935:12;;;9928:49;10006:4;9997:14;;;;10034:15;;;;9584:1;9577:9;9548:511;;10089:1338;10264:2;10275:21;;;10367:13;;10416:4;10396:18;;;10389:32;10470:19;;10334:3;10319:19;;10498:22;;;10235:4;;10264:2;10578:21;;;10235:4;;10551:3;10536:19;;;10627:352;10641:6;10638:1;10635:13;10627:352;;;10706:6;10700:13;10742:2;10736:9;10758:47;10802:2;10758:47;:::i;:::-;10818:15;;10877:11;;10871:18;10891:4;10867:29;10853:12;;;10846:51;10954:15;;;;10663:1;10656:9;;;;;10926:4;10917:14;;;;10627:352;;;10631:3;11028:2;11020:6;11016:15;11010:22;10988:44;;11055:2;11051:7;11041:17;;11121:2;11109:9;11104:3;11100:19;11096:28;11089:4;11078:9;11074:20;11067:58;11148:63;11207:3;11191:14;11148:63;:::i;:::-;11134:77;;;;11260:4;11252:6;11248:17;11242:24;11332:2;11320:9;11312:6;11308:22;11304:31;11297:4;11286:9;11282:20;11275:61;11353:68;11414:6;11398:14;11353:68;:::i;11432:118::-;11518:5;11511:13;11504:21;11497:5;11494:32;11484:60;;11540:1;11537;11530:12;11555:382;11620:6;11628;11681:2;11669:9;11660:7;11656:23;11652:32;11649:52;;;11697:1;11694;11687:12;11649:52;11736:9;11723:23;11755:31;11780:5;11755:31;:::i;:::-;11805:5;-1:-1:-1;11862:2:404;11847:18;;11834:32;11875:30;11834:32;11875:30;:::i;:::-;11924:7;11914:17;;;11555:382;;;;;:::o;11942:795::-;12037:6;12045;12053;12061;12114:3;12102:9;12093:7;12089:23;12085:33;12082:53;;;12131:1;12128;12121:12;12082:53;12170:9;12157:23;12189:31;12214:5;12189:31;:::i;:::-;12239:5;-1:-1:-1;12296:2:404;12281:18;;12268:32;12309:33;12268:32;12309:33;:::i;:::-;12361:7;-1:-1:-1;12415:2:404;12400:18;;12387:32;;-1:-1:-1;12470:2:404;12455:18;;12442:32;-1:-1:-1;;;;;12486:30:404;;12483:50;;;12529:1;12526;12519:12;12483:50;12552:22;;12605:4;12597:13;;12593:27;-1:-1:-1;12583:55:404;;12634:1;12631;12624:12;12583:55;12657:74;12723:7;12718:2;12705:16;12700:2;12696;12692:11;12657:74;:::i;:::-;12647:84;;;11942:795;;;;;;;:::o;12742:543::-;12830:6;12838;12891:2;12879:9;12870:7;12866:23;12862:32;12859:52;;;12907:1;12904;12897:12;12859:52;12947:9;12934:23;-1:-1:-1;;;;;13017:2:404;13009:6;13006:14;13003:34;;;13033:1;13030;13023:12;13003:34;13056:50;13098:7;13089:6;13078:9;13074:22;13056:50;:::i;:::-;13046:60;;13159:2;13148:9;13144:18;13131:32;13115:48;;13188:2;13178:8;13175:16;13172:36;;;13204:1;13201;13194:12;13172:36;;13227:52;13271:7;13260:8;13249:9;13245:24;13227:52;:::i;:::-;13217:62;;;12742:543;;;;;:::o;13290:388::-;13358:6;13366;13419:2;13407:9;13398:7;13394:23;13390:32;13387:52;;;13435:1;13432;13425:12;13387:52;13474:9;13461:23;13493:31;13518:5;13493:31;:::i;:::-;13543:5;-1:-1:-1;13600:2:404;13585:18;;13572:32;13613:33;13572:32;13613:33;:::i;13875:380::-;13954:1;13950:12;;;;13997;;;14018:61;;14072:4;14064:6;14060:17;14050:27;;14018:61;14125:2;14117:6;14114:14;14094:18;14091:38;14088:161;;14171:10;14166:3;14162:20;14159:1;14152:31;14206:4;14203:1;14196:15;14234:4;14231:1;14224:15;14260:127;14321:10;14316:3;14312:20;14309:1;14302:31;14352:4;14349:1;14342:15;14376:4;14373:1;14366:15;14392:128;14459:9;;;14480:11;;;14477:37;;;14494:18;;:::i;15133:127::-;15194:10;15189:3;15185:20;15182:1;15175:31;15225:4;15222:1;15215:15;15249:4;15246:1;15239:15;15265:245;15332:6;15385:2;15373:9;15364:7;15360:23;15356:32;15353:52;;;15401:1;15398;15391:12;15353:52;15433:9;15427:16;15452:28;15474:5;15452:28;:::i;15515:289::-;15646:3;15684:6;15678:13;15700:66;15759:6;15754:3;15747:4;15739:6;15735:17;15700:66;:::i;:::-;15782:16;;;;;15515:289;-1:-1:-1;;15515:289:404:o;15809:297::-;15927:12;;15974:4;15963:16;;;15957:23;;15927:12;15992:16;;15989:111;;;-1:-1:-1;;16066:4:404;16062:17;;;;16059:1;16055:25;16051:38;16040:50;;15809:297;-1:-1:-1;15809:297:404:o;16111:465::-;16164:3;16202:5;16196:12;16229:6;16224:3;16217:19;16255:4;16284;16279:3;16275:14;16268:21;;16323:4;16316:5;16312:16;16346:1;16356:195;16370:6;16367:1;16364:13;16356:195;;;16435:13;;-1:-1:-1;;;;;16431:39:404;16419:52;;16491:12;;;;16526:15;;;;16467:1;16385:9;16356:195;;16581:403;16816:6;16805:9;16798:25;16859:2;16854;16843:9;16839:18;16832:30;16779:4;16879:56;16931:2;16920:9;16916:18;16908:6;16879:56;:::i;:::-;16871:64;;16971:6;16966:2;16955:9;16951:18;16944:34;16581:403;;;;;;:::o;16989:496::-;17168:3;17206:6;17200:13;17222:66;17281:6;17276:3;17269:4;17261:6;17257:17;17222:66;:::i;:::-;17351:13;;17310:16;;;;17373:70;17351:13;17310:16;17420:4;17408:17;;17373:70;:::i;:::-;17459:20;;16989:496;-1:-1:-1;;;;16989:496:404:o;17490:251::-;17560:6;17613:2;17601:9;17592:7;17588:23;17584:32;17581:52;;;17629:1;17626;17619:12;17581:52;17661:9;17655:16;17680:31;17705:5;17680:31;:::i;17872:543::-;17974:2;17969:3;17966:11;17963:446;;;18010:1;18034:5;18031:1;18024:16;18078:4;18075:1;18065:18;18148:2;18136:10;18132:19;18129:1;18125:27;18119:4;18115:38;18184:4;18172:10;18169:20;18166:47;;;-1:-1:-1;18207:4:404;18166:47;18262:2;18257:3;18253:12;18250:1;18246:20;18240:4;18236:31;18226:41;;18317:82;18335:2;18328:5;18325:13;18317:82;;;18380:17;;;18361:1;18350:13;18317:82;;18591:1345;18717:3;18711:10;-1:-1:-1;;;;;18736:6:404;18733:30;18730:56;;;18766:18;;:::i;:::-;18795:97;18885:6;18845:38;18877:4;18871:11;18845:38;:::i;:::-;18839:4;18795:97;:::i;:::-;18947:4;;19004:2;18993:14;;19021:1;19016:663;;;;19723:1;19740:6;19737:89;;;-1:-1:-1;19792:19:404;;;19786:26;19737:89;-1:-1:-1;;18548:1:404;18544:11;;;18540:24;18536:29;18526:40;18572:1;18568:11;;;18523:57;19839:81;;18986:944;;19016:663;17819:1;17812:14;;;17856:4;17843:18;;-1:-1:-1;;19052:20:404;;;19170:236;19184:7;19181:1;19178:14;19170:236;;;19273:19;;;19267:26;19252:42;;19365:27;;;;19333:1;19321:14;;;;19200:19;;19170:236;;;19174:3;19434:6;19425:7;19422:19;19419:201;;;19495:19;;;19489:26;-1:-1:-1;;19578:1:404;19574:14;;;19590:3;19570:24;19566:37;19562:42;19547:58;19532:74;;19419:201;-1:-1:-1;;;;;19666:1:404;19650:14;;;19646:22;19633:36;;-1:-1:-1;18591:1345:404:o;20194:184::-;20264:6;20317:2;20305:9;20296:7;20292:23;20288:32;20285:52;;;20333:1;20330;20323:12;20285:52;-1:-1:-1;20356:16:404;;20194:184;-1:-1:-1;20194:184:404:o;20383:135::-;20422:3;20443:17;;;20440:43;;20463:18;;:::i;:::-;-1:-1:-1;20510:1:404;20499:13;;20383:135::o;20523:217::-;20563:1;20589;20579:132;;20633:10;20628:3;20624:20;20621:1;20614:31;20668:4;20665:1;20658:15;20696:4;20693:1;20686:15;20579:132;-1:-1:-1;20725:9:404;;20523:217::o;20745:255::-;20897:2;20882:18;;20909:51;20953:6;20909:51;:::i;:::-;20969:25;;;20745:255;:::o;21005:249::-;21074:6;21127:2;21115:9;21106:7;21102:23;21098:32;21095:52;;;21143:1;21140;21133:12;21095:52;21175:9;21169:16;21194:30;21218:5;21194:30;:::i;21259:276::-;21328:6;21381:2;21369:9;21360:7;21356:23;21352:32;21349:52;;;21397:1;21394;21387:12;21349:52;21429:9;21423:16;21479:6;21472:5;21468:18;21461:5;21458:29;21448:57;;21501:1;21498;21491:12;21540:125;21605:9;;;21626:10;;;21623:36;;;21639:18;;:::i;21670:180::-;-1:-1:-1;;;;;21775:10:404;;;21787;;;21771:27;;21810:11;;;21807:37;;;21824:18;;:::i;23805:183::-;23865:4;-1:-1:-1;;;;;23890:6:404;23887:30;23884:56;;;23920:18;;:::i;:::-;-1:-1:-1;23965:1:404;23961:14;23977:4;23957:25;;23805:183::o;23993:956::-;24088:6;24119:2;24162;24150:9;24141:7;24137:23;24133:32;24130:52;;;24178:1;24175;24168:12;24130:52;24211:9;24205:16;-1:-1:-1;;;;;24236:6:404;24233:30;24230:50;;;24276:1;24273;24266:12;24230:50;24299:22;;24352:4;24344:13;;24340:27;-1:-1:-1;24330:55:404;;24381:1;24378;24371:12;24330:55;24410:2;24404:9;24433:60;24449:43;24489:2;24449:43;:::i;:::-;24433:60;:::i;:::-;24527:15;;;24609:1;24605:10;;;;24597:19;;24593:28;;;24558:12;;;;24633:19;;;24630:39;;;24665:1;24662;24655:12;24630:39;24689:11;;;;24709:210;24725:6;24720:3;24717:15;24709:210;;;24798:3;24792:10;24815:31;24840:5;24815:31;:::i;:::-;24859:18;;24742:12;;;;24897;;;;24709:210;;24954:401;25049:6;25057;25110:2;25098:9;25089:7;25085:23;25081:32;25078:52;;;25126:1;25123;25116:12;25078:52;25158:9;25152:16;25177:31;25202:5;25177:31;:::i;:::-;25277:2;25262:18;;25256:25;25227:5;;-1:-1:-1;25290:33:404;25256:25;25290:33;:::i;25550:502::-;25842:1;25838;25833:3;25829:11;25825:19;25817:6;25813:32;25802:9;25795:51;25882:6;25877:2;25866:9;25862:18;25855:34;25925:6;25920:2;25909:9;25905:18;25898:34;25968:3;25963:2;25952:9;25948:18;25941:31;25776:4;25989:57;26041:3;26030:9;26026:19;26018:6;25989:57;:::i;26057:160::-;26134:13;;26187:4;26176:16;;26166:27;;26156:55;;26207:1;26204;26197:12;26222:1342;26301:5;26354:3;26347:4;26339:6;26335:17;26331:27;26321:55;;26372:1;26369;26362:12;26321:55;26401:6;26395:13;26427:4;26451:60;26467:43;26507:2;26467:43;:::i;26451:60::-;26545:15;;;26631:1;26627:10;;;;26615:23;;26611:32;;;26576:12;;;;26655:15;;;26652:35;;;26683:1;26680;26673:12;26652:35;26719:2;26711:6;26707:15;26731:804;26747:6;26742:3;26739:15;26731:804;;;26825:4;26819:3;26814;26810:13;26806:24;26803:114;;;26871:1;26900:2;26896;26889:14;26803:114;26943:22;;:::i;:::-;26999:3;26993:10;27038:1;27029:7;27026:14;27016:112;;27082:1;27111:2;27107;27100:14;27016:112;27141:22;;27205:12;;;27199:19;27183:14;;;27176:43;27242:2;27278:12;;;27272:19;27304:33;27272:19;27304:33;:::i;:::-;27357:14;;;27350:31;27404:2;27448:12;;;27442:19;27426:14;;;27419:43;27475:18;;27513:12;;;;26773:4;26764:14;26731:804;;;-1:-1:-1;27553:5:404;26222:1342;-1:-1:-1;;;;;;26222:1342:404:o;27569:1181::-;27650:5;27703:3;27696:4;27688:6;27684:17;27680:27;27670:55;;27721:1;27718;27711:12;27670:55;27750:6;27744:13;27776:4;27800:60;27816:43;27856:2;27816:43;:::i;27800:60::-;27894:15;;;27956:4;27999:13;;;27987:26;;27983:35;;;27925:12;;;;27882:3;28030:15;;;28027:35;;;28058:1;28055;28048:12;28027:35;28094:2;28086:6;28082:15;28106:615;28122:6;28117:3;28114:15;28106:615;;;28198:2;28192:3;28187;28183:13;28179:22;28176:112;;;28242:1;28271:2;28267;28260:14;28176:112;28314:22;;:::i;:::-;28370:3;28364:10;28387:45;28424:7;28387:45;:::i;:::-;28445:22;;28503:41;28531:12;;;28503:41;:::i;:::-;28498:2;28491:5;28487:14;28480:65;28568:2;28606:41;28643:2;28638:3;28634:12;28606:41;:::i;:::-;28590:14;;;28583:65;28661:18;;28699:12;;;;28139;;28106:615;;;-1:-1:-1;28739:5:404;;27569:1181;-1:-1:-1;;;;;;;27569:1181:404:o;28755:1951::-;28852:6;28883:2;28926;28914:9;28905:7;28901:23;28897:32;28894:52;;;28942:1;28939;28932:12;28894:52;28975:9;28969:16;-1:-1:-1;;;;;29045:2:404;29037:6;29034:14;29031:34;;;29061:1;29058;29051:12;29031:34;29084:22;;;;29140:4;29122:16;;;29118:27;29115:47;;;29158:1;29155;29148:12;29115:47;29184:22;;:::i;:::-;29237:2;29231:9;29265:2;29255:8;29252:16;29249:36;;;29281:1;29278;29271:12;29249:36;29304:17;;29352:4;29344:13;;29340:27;-1:-1:-1;29330:55:404;;29381:1;29378;29371:12;29330:55;29410:2;29404:9;29433:60;29449:43;29489:2;29449:43;:::i;29433:60::-;29527:15;;;29609:1;29605:10;;;;29597:19;;29593:28;;;29558:12;;;;29633:19;;;29630:39;;;29665:1;29662;29655:12;29630:39;29689:11;;;;29709:528;29725:6;29720:3;29717:15;29709:528;;;29807:4;29801:3;29792:7;29788:17;29784:28;29781:118;;;29853:1;29882:2;29878;29871:14;29781:118;29927:22;;:::i;:::-;29983:3;29977:10;30000:45;30037:7;30000:45;:::i;:::-;30058:24;;30120:41;30148:12;;;30120:41;:::i;:::-;30102:16;;;30095:67;30175:20;;29751:4;29742:14;;;;;30215:12;;;;29709:528;;;30246:20;;-1:-1:-1;;;30297:11:404;;;30291:18;30321:16;;;30318:36;;;30350:1;30347;30340:12;30318:36;30386:81;30459:7;30448:8;30444:2;30440:17;30386:81;:::i;:::-;30381:2;30374:5;30370:14;30363:105;;30507:4;30503:2;30499:13;30493:20;30477:36;;30538:2;30528:8;30525:16;30522:36;;;30554:1;30551;30544:12;30522:36;30592:83;30667:7;30656:8;30652:2;30648:17;30592:83;:::i;:::-;30585:4;30574:16;;30567:109;30578:5;28755:1951;-1:-1:-1;;;;;;28755:1951:404:o;30711:489::-;-1:-1:-1;;;;;30980:15:404;;;30962:34;;31032:15;;31027:2;31012:18;;31005:43;31079:2;31064:18;;31057:34;;;31127:3;31122:2;31107:18;;31100:31;;;30905:4;;31148:46;;31174:19;;31166:6;31148:46;:::i;31205:290::-;31274:6;31327:2;31315:9;31306:7;31302:23;31298:32;31295:52;;;31343:1;31340;31333:12;31295:52;31369:16;;-1:-1:-1;;;;;;31414:32:404;;31404:43;;31394:71;;31461:1;31458;31451:12;32469:168;32542:9;;;32573;;32590:15;;;32584:22;;32570:37;32560:71;;32611:18;;:::i","linkReferences":{}},"methodIdentifiers":{"__ERC721A_init(string,string)":"d2f01f19","__EntitlementGated_init(address)":"7adc9cbe","__Membership_init((string,string,uint256,uint256,uint64,address,address,uint256,address),address)":"4c2abfbe","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","expiresAt(uint256)":"17c95709","getApproved(uint256)":"081812fc","getMembershipCurrency()":"657e45e8","getMembershipDuration()":"8120f0ba","getMembershipFreeAllocation()":"706b8e09","getMembershipImage()":"93b13cb7","getMembershipLimit()":"95d600c8","getMembershipPrice()":"1278076a","getMembershipPricingModule()":"e847abdd","getMembershipRenewalPrice(uint256)":"5803909f","getRuleData(bytes32,uint256)":"92c399ff","getSpaceFactory()":"79dda585","isApprovedForAll(address,address)":"e985e9c5","joinSpace(address)":"8c625b06","name()":"06fdde03","ownerOf(uint256)":"6352211e","postEntitlementCheckResult(bytes32,uint256,uint8)":"4739e805","renewMembership(uint256)":"7c9669ac","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setMembershipFreeAllocation(uint256)":"5becd24a","setMembershipImage(string)":"0ef1be5f","setMembershipLimit(uint256)":"97fb7c1e","setMembershipPrice(uint256)":"69d5f38a","setMembershipPricingModule(address)":"df9a9fe6","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","withdraw(address)":"51cff8d9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__AlreadyBanned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banning__CannotBanOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banning__CannotBanSelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__NotBanned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Dispatcher__InvalidCaller\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Dispatcher__InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC5643__DurationZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC5643__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC5643__NotApprovedOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC5643__SubscriptionNotRenewable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_NodeAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_NodeNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_TransactionCheckAlreadyCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_TransactionCheckAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_TransactionNotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__ValueAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_InInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_NotInInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_AlreadySupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_NotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__AlreadyMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InsufficientPayment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidCurrency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidFeeRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidFreeAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidMaxSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidPayment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidPrice\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidPricingModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__MaxSupplyReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__NotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__PriceTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintERC2309QuantityExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintZeroQuantity\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Ownable__NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Ownable__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnershipNotInitializedForExtraData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__NotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__Paused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Prepay__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Prepay__InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Prepay__InvalidMembership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Prepay__InvalidSupplyAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuard__ReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__EntitlementAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__EntitlementDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__InvalidEntitlementAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__InvalidPermission\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__PermissionAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__PermissionDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__RoleDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"URIQueryForNonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"moderator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"ConsecutiveTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IEntitlementGatedBase.NodeVoteStatus\",\"name\":\"result\",\"type\":\"uint8\"}],\"name\":\"EntitlementCheckResultPosted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"MembershipCurrencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"MembershipFeeRecipientUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"allocation\",\"type\":\"uint256\"}],\"name\":\"MembershipFreeAllocationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"MembershipLimitUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"MembershipPriceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MembershipTokenIssued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"MembershipTokenRejected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"MembershipWithdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"name\":\"Prepay__Prepaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"RoleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remover\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"RoleRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"updater\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"RoleUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"expiration\",\"type\":\"uint64\"}],\"name\":\"SubscriptionUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"moderator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Unbanned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"name\":\"__ERC721A_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEntitlementChecker\",\"name\":\"entitlementChecker\",\"type\":\"address\"}],\"name\":\"__EntitlementGated_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"freeAllocation\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"pricingModule\",\"type\":\"address\"}],\"internalType\":\"struct IMembershipBase.Membership\",\"name\":\"info\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"spaceFactory\",\"type\":\"address\"}],\"name\":\"__Membership_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"expiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipCurrency\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipDuration\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipFreeAllocation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipImage\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipPricingModule\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getMembershipRenewalPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getRuleData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlement.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlement.RuleData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSpaceFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"joinSpace\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"enum IEntitlementGatedBase.NodeVoteStatus\",\"name\":\"result\",\"type\":\"uint8\"}],\"name\":\"postEntitlementCheckResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"renewMembership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newAllocation\",\"type\":\"uint256\"}],\"name\":\"setMembershipFreeAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newImage\",\"type\":\"string\"}],\"name\":\"setMembershipImage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"setMembershipLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"setMembershipPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pricingModule\",\"type\":\"address\"}],\"name\":\"setMembershipPricingModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"ConsecutiveTransfer(uint256,uint256,address,address)\":{\"details\":\"Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, as defined in the [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. See {_mintERC2309} for more details.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"This emits when ownership of a contract changes.\"},\"SubscriptionUpdate(uint256,uint64)\":{\"details\":\"When a subscription is canceled, the expiration value should also be 0.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"__Membership_init((string,string,uint256,uint256,uint64,address,address,uint256,address),address)\":{\"details\":\"Initialization logic when facet is added to diamond\"},\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in `owner`'s account.\"},\"expiresAt(uint256)\":{\"params\":{\"tokenId\":\"The token id of the membership\"}},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"getMembershipCurrency()\":{\"returns\":{\"_0\":\"The membership currency\"}},\"getMembershipDuration()\":{\"returns\":{\"_0\":\"The membership duration\"}},\"getMembershipFreeAllocation()\":{\"returns\":{\"_0\":\"The membership free allocation\"}},\"getMembershipImage()\":{\"returns\":{\"_0\":\"The membership image\"}},\"getMembershipLimit()\":{\"returns\":{\"_0\":\"The membership limit\"}},\"getMembershipPrice()\":{\"returns\":{\"_0\":\"The membership price\"}},\"getMembershipPricingModule()\":{\"returns\":{\"_0\":\"The membership pricing module\"}},\"getMembershipRenewalPrice(uint256)\":{\"params\":{\"tokenId\":\"The token id of the membership\"},\"returns\":{\"_0\":\"The membership renewal price\"}},\"getSpaceFactory()\":{\"returns\":{\"_0\":\"The space factory\"}},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}.\"},\"joinSpace(address)\":{\"params\":{\"receiver\":\"The address of the receiver\"}},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"renewMembership(uint256)\":{\"params\":{\"tokenId\":\"The token id of the membership\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, tokenId, '')`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"setMembershipFreeAllocation(uint256)\":{\"params\":{\"newAllocation\":\"The new membership free allocation\"}},\"setMembershipLimit(uint256)\":{\"params\":{\"newLimit\":\"The new membership limit\"}},\"setMembershipPrice(uint256)\":{\"params\":{\"newPrice\":\"The new membership price\"}},\"setMembershipPricingModule(address)\":{\"params\":{\"pricingModule\":\"The new pricing module\"}},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"totalSupply()\":{\"details\":\"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"ApprovalCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"ApprovalQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"BalanceQueryForZeroAddress()\":[{\"notice\":\"Cannot query the balance for the zero address.\"}],\"MintERC2309QuantityExceedsLimit()\":[{\"notice\":\"The `quantity` minted with ERC2309 exceeds the safety limit.\"}],\"MintToZeroAddress()\":[{\"notice\":\"Cannot mint to the zero address.\"}],\"MintZeroQuantity()\":[{\"notice\":\"The quantity of tokens minted must be more than zero.\"}],\"OwnerQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"OwnershipNotInitializedForExtraData()\":[{\"notice\":\"The `extraData` cannot be set on an unintialized ownership slot.\"}],\"TransferCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"TransferFromIncorrectOwner()\":[{\"notice\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"notice\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"notice\":\"Cannot transfer to the zero address.\"}],\"URIQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}]},\"events\":{\"InterfaceAdded(bytes4)\":{\"notice\":\"Emitted when an interface is added to the contract via `_addInterface`.\"},\"InterfaceRemoved(bytes4)\":{\"notice\":\"Emitted when an interface is removed from the contract via `_removeInterface`.\"},\"SubscriptionUpdate(uint256,uint64)\":{\"notice\":\"Emitted when a subscription expiration changes\"}},\"kind\":\"user\",\"methods\":{\"expiresAt(uint256)\":{\"notice\":\"Return the expiration date of a membership\"},\"getMembershipCurrency()\":{\"notice\":\"Get the membership currency\"},\"getMembershipDuration()\":{\"notice\":\"Get the membership duration\"},\"getMembershipFreeAllocation()\":{\"notice\":\"Get the membership free allocation\"},\"getMembershipImage()\":{\"notice\":\"Get the membership image\"},\"getMembershipLimit()\":{\"notice\":\"Get the membership limit\"},\"getMembershipPrice()\":{\"notice\":\"Get the membership price\"},\"getMembershipPricingModule()\":{\"notice\":\"Get the membership pricing module\"},\"getMembershipRenewalPrice(uint256)\":{\"notice\":\"Get the membership renewal price\"},\"getSpaceFactory()\":{\"notice\":\"Get the space factory\"},\"joinSpace(address)\":{\"notice\":\"Join a space\"},\"renewMembership(uint256)\":{\"notice\":\"Renew a space membership\"},\"setMembershipFreeAllocation(uint256)\":{\"notice\":\"Set the membership free allocation\"},\"setMembershipLimit(uint256)\":{\"notice\":\"Set the membership limit\"},\"setMembershipPrice(uint256)\":{\"notice\":\"Set the membership price\"},\"setMembershipPricingModule(address)\":{\"notice\":\"Set the membership pricing module\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/facets/membership/MembershipFacet.sol\":\"MembershipFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/checker/IEntitlementChecker.sol\":{\"keccak256\":\"0xbeb7bfa236f19172b29eac53be03a3b377de3524b2d836192b0c64ebe708c204\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d5a103a2b7b6be1ffa6662db6081763bcd210216fefc25307b835c555e0cf4d\",\"dweb:/ipfs/QmUCvhZdZpVnyJuZVgd2qGduTf11384TmmBJb2RaEBHxhh\"]},\"contracts/src/diamond/facets/Facet.sol\":{\"keccak256\":\"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863\",\"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc\"]},\"contracts/src/diamond/facets/initializable/Initializable.sol\":{\"keccak256\":\"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552\",\"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC\"]},\"contracts/src/diamond/facets/initializable/InitializableStorage.sol\":{\"keccak256\":\"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4\",\"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg\"]},\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/introspection/IntrospectionBase.sol\":{\"keccak256\":\"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1\",\"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw\"]},\"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol\":{\"keccak256\":\"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91\",\"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM\"]},\"contracts/src/diamond/facets/ownable/IERC173.sol\":{\"keccak256\":\"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b\",\"dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd\"]},\"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol\":{\"keccak256\":\"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb\",\"dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol\":{\"keccak256\":\"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb\",\"dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol\":{\"keccak256\":\"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf\",\"dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F\"]},\"contracts/src/diamond/facets/pausable/IPausable.sol\":{\"keccak256\":\"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684\",\"dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ\"]},\"contracts/src/diamond/facets/pausable/PausableBase.sol\":{\"keccak256\":\"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3\",\"dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V\"]},\"contracts/src/diamond/facets/pausable/PausableStorage.sol\":{\"keccak256\":\"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd\",\"dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj\"]},\"contracts/src/diamond/facets/reentrancy/IReentrancyGuard.sol\":{\"keccak256\":\"0x89ad30ac5476efd023189fca20b13214fe5541ea5fff11760e00f229c62c896e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc04fb0c48333cb0f4b84b01e50498d60510d52495c3772f0bf632773ec47a7d\",\"dweb:/ipfs/QmQUuYriat7eRRsPUHTeD2CDEwHzYxqW6qix7xf44kWByo\"]},\"contracts/src/diamond/facets/reentrancy/ReentrancyGuard.sol\":{\"keccak256\":\"0xb481ee6684d1589254563cb5c318b1eb75f6f15f96baecbd5f5e42b72b7a5003\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e1bafcd0779c6241ee7716ae2058dd6f7d5a75bb211f5bfcb9aefa434228f8\",\"dweb:/ipfs/QmSbsdGjL1be4VBjgWrk5CodWGvszXZt5HX32PxhvXTZ5Y\"]},\"contracts/src/diamond/facets/reentrancy/ReentrancyGuardStorage.sol\":{\"keccak256\":\"0xe4a08e5712446357756a6da7b65ae80845732dfebac180bd478caaf64dfc790e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09f5691ae9aedbe094cc83a0e8a4272c4d6dd5f57e69fec5870b148f2d94395e\",\"dweb:/ipfs/QmTLHQWuRp1L45oRV8oWWbk4Y4MMNYW1Rp9WUJ86gzVVRv\"]},\"contracts/src/diamond/facets/token/ERC5643/ERC5643Base.sol\":{\"keccak256\":\"0x21d3c281732e54c93520a4f2cc72cc5af38c517f2a150ee67aa84704a3d78627\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ce7c061da0142a4d775bb85896410d363d4a28c0275d3171a70872344fc9a4\",\"dweb:/ipfs/Qmdwgs3TaC4b83JVn6RG5pJJdCrxb74ZMRqZbYSe5DuqZf\"]},\"contracts/src/diamond/facets/token/ERC5643/ERC5643Storage.sol\":{\"keccak256\":\"0x68cbff071e6a6a6b91b675af567616799435676fbbbebf4f9226e1226d6128b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2c7aee6ef32477733a50ba667cc510c8c165b9a9e146609b1f800acd0e4832\",\"dweb:/ipfs/QmcWAz74x3AR6kpzWdyPWw3iLQ1yHBT3ZVoK6jT7T3LwXq\"]},\"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol\":{\"keccak256\":\"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615\",\"dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721A.sol\":{\"keccak256\":\"0x5662ab29272ecaabdaf5792c368a71693fcad9df24566f9e470ff1ec3510fd8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef719ff8dce040daf5bcfe328f3463261fb3acfe5c41c589365143916748cc3\",\"dweb:/ipfs/QmUm4PHj4y2237H7hnCwnfRyTWbp1DHWpc8GN26M6T4ToC\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol\":{\"keccak256\":\"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba\",\"dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol\":{\"keccak256\":\"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04\",\"dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey\"]},\"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol\":{\"keccak256\":\"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d\",\"dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz\"]},\"contracts/src/factory/facets/architect/pricing/IPricingModules.sol\":{\"keccak256\":\"0xa45fcd2bb5037c0b9b80bb02a3a4bd00fa99598a8d9e0a5ee2dff7a04c670171\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f95100f32791a9aa2e3cc47fb9cd58542e9250834bfc38756012cc4baaa786\",\"dweb:/ipfs/QmYGPF6HQLoq5bCgMYW1AyT2Vz1H12Lt8LDdmzTadN5Ppm\"]},\"contracts/src/factory/facets/platform/requirements/IPlatformRequirements.sol\":{\"keccak256\":\"0xd1c61d42973382822d0b8256b5d308ad693dfa59240864cce0bec1bd4208e4c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bff6d50557810f7aa9de451f6ac2b279fe5983eefc0b38ef8be7ebb2ffde0f86\",\"dweb:/ipfs/QmS6DXYXtPTfePgtrUxH1vmPycsVoumBQRJZugjGButowT\"]},\"contracts/src/factory/facets/registry/IImplementationRegistry.sol\":{\"keccak256\":\"0xb447f7654cd152c29718c95983b62e390a59658d7d1a22b97f79d0aee9fb5de7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://756a9a38364c01937088ba927f09af2726d2df207eea4e0e2842e3fc66ccd32c\",\"dweb:/ipfs/QmbxBRXgtkEQsGtxq1uSM6vX38FkjPq6tpodCdtBmdEmXA\"]},\"contracts/src/factory/facets/wallet-link/IWalletLink.sol\":{\"keccak256\":\"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0\",\"dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5\"]},\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":{\"keccak256\":\"0x28650d058077713dfc28d5c613998d9f1e895a6f5f6b0d93467d25455fc3ea1d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2446b7958f8b5f2713860e2826acf1b123c6b24719f844c7811d1e3f5a87c86\",\"dweb:/ipfs/Qmesso9ftmVUCHi6w2gkJs9tEjGG5ZZgqhAenkyTDgFPC2\"]},\"contracts/src/spaces/facets/Entitled.sol\":{\"keccak256\":\"0x90204085688bf4dd1e1b6ca30684ee37db79210070c405406898c8a77d50bfce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9b194cc9977b03fbccc81529147a0fce7857893c8146927570c1ee5a28aa900\",\"dweb:/ipfs/QmZMvPPj5ZPYaRQaSraBkv3PSMeUZ4wN1tQ9EVvwW6SL4r\"]},\"contracts/src/spaces/facets/Permissions.sol\":{\"keccak256\":\"0xaeec9c70d231be9debb15660bf6939746532d0012c80d5518e8207dd33653de2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bab7c5dd8f55f03f48d3908b8d6732b3e2d93f36312a0c3408ff10be258c165a\",\"dweb:/ipfs/QmevmAc6tzP3kFoH84cRtipSq4ryqbrP3H4VB8mRZgnRxn\"]},\"contracts/src/spaces/facets/banning/BanningBase.sol\":{\"keccak256\":\"0x38c44494221f96568f3efb540a8a6c7af141de95f25caf26df6e8a8333f31249\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1f509347cab5090655ff8272443d18f9716fea5ef27cd86269ccbd2570aa7e\",\"dweb:/ipfs/QmbF8StzLRGnVvVXWYBowvdULoPPqQkU5hZR548cnRzuVs\"]},\"contracts/src/spaces/facets/banning/BanningStorage.sol\":{\"keccak256\":\"0xcfbf5c113056e569abf23158853ff4877744b22a4bf2bf49a282d04dab23ab17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f825e97ca65c9cd3bd5885d2fa8b8e5f8f0dcbe227dec064abbbab645685fbe\",\"dweb:/ipfs/QmXAMntxrjzeNUKh9WcyHvzDmnV89vrJ9PkKRceqxJSxZp\"]},\"contracts/src/spaces/facets/banning/IBanning.sol\":{\"keccak256\":\"0x350ec182a95a86a41335979cd7212132858c5cfcd366602b2f6cd0ec0694b63e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb4ad0c5a1086c38448b3e279733f33edc0cc39648368e5cb43dfff139ff7e8\",\"dweb:/ipfs/QmWYfYE8Haqk9kBRxmLijfQSfqbfxf7LB3wQ24d3pG5PE3\"]},\"contracts/src/spaces/facets/channels/ChannelService.sol\":{\"keccak256\":\"0xdac0460cb66d31e57593154fb31ccd112dd1d51c34ea6e5ce316250ac5548abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56c99fa9d482bd02ea96a01e1a960e1678edbbc1a9580511f68543ca194f6fb5\",\"dweb:/ipfs/QmbUjxxkjLCGXVC3bNtWQDas2vJwUmS5NraTGwWiKJAXvH\"]},\"contracts/src/spaces/facets/channels/ChannelStorage.sol\":{\"keccak256\":\"0xeb4174513a652b1571b3a92cbefa80e9d450144e8d07bfb29c863d7d9de9313c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c3b73c84a2b4a56fcc8bd1fbaa0a8896a2dfc62a7fde07b13c6d8b05dcf8fe6\",\"dweb:/ipfs/QmRPukfmps5ESAR5saLNLJp6GEg1nNCTq5qChGeAjgtLV4\"]},\"contracts/src/spaces/facets/delegation/WalletLinkProxyBase.sol\":{\"keccak256\":\"0xffef403556b46744bd1833e5df57b02eb79e010841b16610e1740bc0dac929b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1afa30929e8c6b0c69528d328774c98789825a8de53e5945a1e95092bee2ad08\",\"dweb:/ipfs/QmTbCqLJTBHgcMuFwWSTbrgR7uaASJqwqYuku4YkGzTWW1\"]},\"contracts/src/spaces/facets/delegation/WalletLinkProxyStorage.sol\":{\"keccak256\":\"0x9667e475b9ad9f1130583840c9b0594a7512f7edd33163b926b3db21f70d9909\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6271ce56258b1e9150378872d250cfaeb4501b5d0288e8f19f02096114c687f\",\"dweb:/ipfs/QmXSBA2CpLL9BdvZb994JYStgB9fJfsHwgcke6gsD3zybW\"]},\"contracts/src/spaces/facets/dispatcher/DispatcherBase.sol\":{\"keccak256\":\"0xc6743de898114347a9c8d7ac890849b857f21fe787d4e381c477da23ac29d371\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6e61de497274ed14026979ac8d383ae833776513ed56f3e19ba1e33db3aced6\",\"dweb:/ipfs/QmZve5YBgaw8pGkNbKKNodegSWSM5ERLouwPh3R1GzEWZt\"]},\"contracts/src/spaces/facets/dispatcher/DispatcherStorage.sol\":{\"keccak256\":\"0x0173a174a8241b5fee8610af734f25e92f311e4a66ad08d21c5897cc8895d543\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a25813aa9421f1dca29a7013f7d8be1d37d53d97791633c3c822ccb8fb42758a\",\"dweb:/ipfs/QmXHKAa6G8pEm3tUsVukLzgZDuEAcsKJwpjkKhR4pRwf5v\"]},\"contracts/src/spaces/facets/dispatcher/IDispatcher.sol\":{\"keccak256\":\"0x11c732ddae8bec5424cb0f963a8dee276a4f1ef329d1f9feae215b39ab3e3220\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3c82b87050e634ec0754f36fb8b38bea0c5d4d5395a8b333270f097db74679a\",\"dweb:/ipfs/QmXwZKPQsHrtZj3dnneD2LZuVdMLErJ9xsmcN6vWgcqbS6\"]},\"contracts/src/spaces/facets/entitlements/EntitlementsManagerService.sol\":{\"keccak256\":\"0x1c52a860e8d0c9d025cdd0e6490aa68e82f0e12450966ed182825299f10dbc54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e82770448781ca94e9f4bf02ac981f6bebc55b2553de7bb8f977bc7335b26d11\",\"dweb:/ipfs/QmSP1gnWqnWEJwf9eFYptd2v6M8kuTa7JzNKtG6DzkzoK6\"]},\"contracts/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol\":{\"keccak256\":\"0x688692231af49bcca80f7da97be12d448b0c20a4338d259d5f654b95c5b046ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be9964e110363bf68fb4bbb8ff230fecf8c26e695077910ba07163db57030a8e\",\"dweb:/ipfs/QmNS3eUqCQU7H48LtW6hrB9xPGy9DrKCqh7JKWsAtje5dK\"]},\"contracts/src/spaces/facets/gated/EntitlementGated.sol\":{\"keccak256\":\"0xd705dfd2d3124f62b5ca11cd2b0e0432da535ced6d8012f55799897a30480ba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdb855f903687fca333ac8be6e4545b99dc654a41d3878f6ad8f847500efd15b\",\"dweb:/ipfs/QmZixZFxv5QBuCVrGXnB9PJknKZknXiXBepi2mG83Jpiza\"]},\"contracts/src/spaces/facets/gated/EntitlementGatedBase.sol\":{\"keccak256\":\"0xcefa5c3c81c73fefaa7da433ddd5c419dc4c31cd86e8c31f47894663ca7269e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27fe60a48a69d5be67fdf17f5aac1e90ef0234da564ec4f6e2cbfe53fbb9ba0c\",\"dweb:/ipfs/QmPemsjAUmjjjyLWbHzVmqLxyBAN7CFi6DViy9uQEM3wjt\"]},\"contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol\":{\"keccak256\":\"0xb058672a61d2742e8232232cc66f052443d82beb8b2cdc681f10c23a49351b84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f39d39a3bd3e39c2f6a5b21b82a7339176c163d82335f901a64c57dd73ffa5a3\",\"dweb:/ipfs/QmP8RmYv79xX8hLmrvjfceW9mdRYCYxMaxpywRpR281tMo\"]},\"contracts/src/spaces/facets/gated/IEntitlementGated.sol\":{\"keccak256\":\"0x948de1018f7f78366263a40e0f8269e10941216bd03a9996edb24a6230959e74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc985539ce639f39fd68723acca6424a78deac6cec3693c9d8e1084a487c83ec\",\"dweb:/ipfs/QmQujX5rmDwhJZurp11FTiPLb7ev9swLTtdkagA8wydZiT\"]},\"contracts/src/spaces/facets/membership/IMembership.sol\":{\"keccak256\":\"0x7fbf37c681ae95610ed376a30d68808b9da602a3225dbe1724dfe7c1c82de672\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa8d56cca2d01883595cfbd1a6aa3b63202ed25fb56ac1e57d3cf645665dd77\",\"dweb:/ipfs/QmbLF87ZZCovJn3enbs78mcJu39zXi8FYum72fTufZt3e4\"]},\"contracts/src/spaces/facets/membership/MembershipBase.sol\":{\"keccak256\":\"0x4f42c9176fb345d3da7825e0045e57707396d52bb8e208c81ed81e9d76bd90eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fac0c230acd543d90c1b88174e3dcdc9a135e7217741a32580b250941ad30bf\",\"dweb:/ipfs/QmXaLoyaFmomPPZCcJiY3dzsRjZiWoVkNdKtDa67vh16CR\"]},\"contracts/src/spaces/facets/membership/MembershipFacet.sol\":{\"keccak256\":\"0xb33ce51656ccc56703419a274bbbd05dc3aa285434f851ca6cf53c40280c87b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bea49ffb82f8b54f41cba1fdb51345f618a80e3e5a9c79f5306c5244575c9e0\",\"dweb:/ipfs/QmeCN8nKYsJakVLiuWuwYPjcYjpTsUhwhcnxKLHD6ktYPq\"]},\"contracts/src/spaces/facets/membership/MembershipStorage.sol\":{\"keccak256\":\"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a\",\"dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa\"]},\"contracts/src/spaces/facets/membership/pricing/IMembershipPricing.sol\":{\"keccak256\":\"0x9e3b6766b92d0e48b4b23a024f9622923f30d90f6f8673ded81e423171ec30c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6f76b6045a8c6eeb24d6a9a42f82495cb1cb125dd90921d16a949b00a6f52dc\",\"dweb:/ipfs/QmPbRy4sAabTkEnZBoubzPqH2ycPevEzcEJ4NYJsCWmTFF\"]},\"contracts/src/spaces/facets/prepay/IPrepay.sol\":{\"keccak256\":\"0x4cc23cd204f20bd4a094d9292aaa494f73478d27c8f59e646454cbba11d781fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f54c224f56396ac03335c95c4808acbeec6366f0c475d29edb2461cd53bcd15\",\"dweb:/ipfs/QmdDKUR8VVXJuR5Fj29SZxvR9GwxXeNQ6rtAT3TxX8VjwT\"]},\"contracts/src/spaces/facets/prepay/PrepayBase.sol\":{\"keccak256\":\"0x07fbb598088d52ff90a2dc5c3fea344823ae240f39b104f8db8a0b3953752ba3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d34b9a5703ac33b27f91049a81f106bdf327ac57f4ac5886e21f3782104a5084\",\"dweb:/ipfs/QmR8ds7bpXxSLZX6QNhVRVYY8Fk2xHVFNqcAD1fY38kERs\"]},\"contracts/src/spaces/facets/prepay/PrepayStorage.sol\":{\"keccak256\":\"0x5daebdd10dafc3bc3552064a2fecd4a2639226b1af240351dd2e005a7ab270b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06cf75e08e360a74822cd846728c5d9f8440698bb43d29a8bcab3c0cebbec336\",\"dweb:/ipfs/QmZ4UfwTNqQg88A7mHmXM3ZExjTJQhPf3qvFLGzcVaGwwG\"]},\"contracts/src/spaces/facets/roles/IRoles.sol\":{\"keccak256\":\"0xa69cfbcd989b8794187a56a93deffbefaee8ca456e381ce30f85897893c50272\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf8e9b2711f66eefb949f5b5ead4d72005f1845cd63f22b287fdba3339101bd4\",\"dweb:/ipfs/Qmf7sPY4BgmvZf7p4GBsyVyd4o66yJXMgAmEgpdQAQyBdx\"]},\"contracts/src/spaces/facets/roles/RolesBase.sol\":{\"keccak256\":\"0x0662c3457d1a192a6095677b9df680798cac335ec016244671d5e39004116881\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe07c240371cd47923c9fb6f49d9863df715e02cdeec180fda3f7808ea91f7a8\",\"dweb:/ipfs/QmWtiHY1XkwWjRjQ55x4xFh8Rz1xos26uYgZGkWh2KzSLo\"]},\"contracts/src/spaces/facets/roles/RolesStorage.sol\":{\"keccak256\":\"0xc000f429d628abed048b0f6fe015a0c1505f4880562a981da966cd1e9d44f729\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://202ca9557330508e576337b60cd145009d2ed9e609030ef6802eb704b79caf7f\",\"dweb:/ipfs/QmRcArv84PmEFbKX9aWFJiJetd3eFUKR2GAPJmJ9c57cwB\"]},\"contracts/src/utils/StringSet.sol\":{\"keccak256\":\"0x2b9880e846f275864e847e8c7079d29a02c4a060c5a9d580fb153ff0e7b49ff6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df9c170f28318746eab23befba1318735652c7d198e273a322a0ff2702680605\",\"dweb:/ipfs/QmanQQi9YiPHb9Cn4wpfQ9VYUi7UZ9iQibLL6V46JPibLu\"]},\"contracts/src/utils/Validator.sol\":{\"keccak256\":\"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306\",\"dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt\"]},\"contracts/src/utils/interfaces/IWETH.sol\":{\"keccak256\":\"0xb0a9a284b02664b2ceda4ed7cc8e7dbdd39cc09292b65b97a3417ba5b1440dd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://701edb4dbdb8ab50ed2fdb568cc0956c07184e1f4e7d63854efc158408fa72a5\",\"dweb:/ipfs/QmV58ikDDcTC92hGEuQKerfsygnPg5cwCVLuMh9R9uYXb6\"]},\"contracts/src/utils/libraries/BasisPoints.sol\":{\"keccak256\":\"0xfaa5790726afc20e29f2a00e67693a59ae85a045beaa95f8f58bcbcef01ed87b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2da5e15739fc7093ea7b935c6542f7c01d9c33843a3d1a1d8895db404f8160e\",\"dweb:/ipfs/QmYVUkSh3QX7u9rnKfqLeb9Rh8tko5Q3Gpry6KnhTRF58L\"]},\"contracts/src/utils/libraries/CurrencyTransfer.sol\":{\"keccak256\":\"0x3242d518aedc3ca9a49fb4221de4596ee219b9569abf0548d28dbbecd569a336\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2260078d61b0ee998b54f60c4db4bc8e8a9afdf351018a343c82fa984aca88d\",\"dweb:/ipfs/QmT83nFPb4JzsWCPf9j58xTsaDvuMmq5MH1z8GrEWtBLcx\"]},\"lib/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"lib/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"ApprovalCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"ApprovalQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"BalanceQueryForZeroAddress"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__AlreadyBanned"},{"inputs":[],"type":"error","name":"Banning__CannotBanOwner"},{"inputs":[],"type":"error","name":"Banning__CannotBanSelf"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__InvalidTokenId"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__NotBanned"},{"inputs":[],"type":"error","name":"Dispatcher__InvalidCaller"},{"inputs":[],"type":"error","name":"Dispatcher__InvalidValue"},{"inputs":[],"type":"error","name":"ERC5643__DurationZero"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC5643__InvalidTokenId"},{"inputs":[],"type":"error","name":"ERC5643__NotApprovedOrOwner"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC5643__SubscriptionNotRenewable"},{"inputs":[],"type":"error","name":"EntitlementGated_InvalidAddress"},{"inputs":[],"type":"error","name":"EntitlementGated_NodeAlreadyVoted"},{"inputs":[],"type":"error","name":"EntitlementGated_NodeNotFound"},{"inputs":[],"type":"error","name":"EntitlementGated_TransactionCheckAlreadyCompleted"},{"inputs":[],"type":"error","name":"EntitlementGated_TransactionCheckAlreadyRegistered"},{"inputs":[],"type":"error","name":"EntitlementGated_TransactionNotRegistered"},{"inputs":[],"type":"error","name":"Entitlement__InvalidValue"},{"inputs":[],"type":"error","name":"Entitlement__NotAllowed"},{"inputs":[],"type":"error","name":"Entitlement__NotMember"},{"inputs":[],"type":"error","name":"Entitlement__ValueAlreadyExists"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"Initializable_InInitializingState"},{"inputs":[],"type":"error","name":"Initializable_NotInInitializingState"},{"inputs":[],"type":"error","name":"Introspection_AlreadySupported"},{"inputs":[],"type":"error","name":"Introspection_NotSupported"},{"inputs":[],"type":"error","name":"Membership__AlreadyMember"},{"inputs":[],"type":"error","name":"Membership__InsufficientAllowance"},{"inputs":[],"type":"error","name":"Membership__InsufficientPayment"},{"inputs":[],"type":"error","name":"Membership__InvalidAddress"},{"inputs":[],"type":"error","name":"Membership__InvalidCurrency"},{"inputs":[],"type":"error","name":"Membership__InvalidDuration"},{"inputs":[],"type":"error","name":"Membership__InvalidFeeRecipient"},{"inputs":[],"type":"error","name":"Membership__InvalidFreeAllocation"},{"inputs":[],"type":"error","name":"Membership__InvalidLimit"},{"inputs":[],"type":"error","name":"Membership__InvalidMaxSupply"},{"inputs":[],"type":"error","name":"Membership__InvalidPayment"},{"inputs":[],"type":"error","name":"Membership__InvalidPrice"},{"inputs":[],"type":"error","name":"Membership__InvalidPricingModule"},{"inputs":[],"type":"error","name":"Membership__InvalidTokenId"},{"inputs":[],"type":"error","name":"Membership__MaxSupplyReached"},{"inputs":[],"type":"error","name":"Membership__NotExpired"},{"inputs":[],"type":"error","name":"Membership__PriceTooLow"},{"inputs":[],"type":"error","name":"MintERC2309QuantityExceedsLimit"},{"inputs":[],"type":"error","name":"MintToZeroAddress"},{"inputs":[],"type":"error","name":"MintZeroQuantity"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"Ownable__NotOwner"},{"inputs":[],"type":"error","name":"Ownable__ZeroAddress"},{"inputs":[],"type":"error","name":"OwnerQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"OwnershipNotInitializedForExtraData"},{"inputs":[],"type":"error","name":"Pausable__NotPaused"},{"inputs":[],"type":"error","name":"Pausable__Paused"},{"inputs":[],"type":"error","name":"Prepay__InvalidAddress"},{"inputs":[],"type":"error","name":"Prepay__InvalidAmount"},{"inputs":[],"type":"error","name":"Prepay__InvalidMembership"},{"inputs":[],"type":"error","name":"Prepay__InvalidSupplyAmount"},{"inputs":[],"type":"error","name":"ReentrancyGuard__ReentrantCall"},{"inputs":[],"type":"error","name":"Roles__EntitlementAlreadyExists"},{"inputs":[],"type":"error","name":"Roles__EntitlementDoesNotExist"},{"inputs":[],"type":"error","name":"Roles__InvalidEntitlementAddress"},{"inputs":[],"type":"error","name":"Roles__InvalidPermission"},{"inputs":[],"type":"error","name":"Roles__PermissionAlreadyExists"},{"inputs":[],"type":"error","name":"Roles__PermissionDoesNotExist"},{"inputs":[],"type":"error","name":"Roles__RoleDoesNotExist"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"TransferCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"TransferFromIncorrectOwner"},{"inputs":[],"type":"error","name":"TransferToNonERC721ReceiverImplementer"},{"inputs":[],"type":"error","name":"TransferToZeroAddress"},{"inputs":[],"type":"error","name":"URIQueryForNonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"moderator","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Banned","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"toTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"ConsecutiveTransfer","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32","indexed":true},{"internalType":"enum IEntitlementGatedBase.NodeVoteStatus","name":"result","type":"uint8","indexed":false}],"type":"event","name":"EntitlementCheckResultPosted","anonymous":false},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceAdded","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"MembershipCurrencyUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true}],"type":"event","name":"MembershipFeeRecipientUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"allocation","type":"uint256","indexed":true}],"type":"event","name":"MembershipFreeAllocationUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":true}],"type":"event","name":"MembershipLimitUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256","indexed":true}],"type":"event","name":"MembershipPriceUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"MembershipTokenIssued","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true}],"type":"event","name":"MembershipTokenRejected","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"MembershipWithdrawal","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256","indexed":false}],"type":"event","name":"Prepay__Prepaid","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":true},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":true}],"type":"event","name":"RoleCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"remover","type":"address","indexed":true},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":true}],"type":"event","name":"RoleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"updater","type":"address","indexed":true},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":true}],"type":"event","name":"RoleUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint64","name":"expiration","type":"uint64","indexed":false}],"type":"event","name":"SubscriptionUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"moderator","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Unbanned","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"__ERC721A_init"},{"inputs":[{"internalType":"contract IEntitlementChecker","name":"entitlementChecker","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"__EntitlementGated_init"},{"inputs":[{"internalType":"struct IMembershipBase.Membership","name":"info","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"uint64","name":"duration","type":"uint64"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"uint256","name":"freeAllocation","type":"uint256"},{"internalType":"address","name":"pricingModule","type":"address"}]},{"internalType":"address","name":"spaceFactory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"__Membership_init"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"expiresAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipCurrency","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipDuration","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipFreeAllocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipImage","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipPricingModule","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMembershipRenewalPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRuleData","outputs":[{"internalType":"struct IRuleEntitlement.RuleData","name":"","type":"tuple","components":[{"internalType":"struct IRuleEntitlement.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlement.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlement.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSpaceFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"payable","type":"function","name":"joinSpace"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"enum IEntitlementGatedBase.NodeVoteStatus","name":"result","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"postEntitlementCheckResult"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"renewMembership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"uint256","name":"newAllocation","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMembershipFreeAllocation"},{"inputs":[{"internalType":"string","name":"newImage","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setMembershipImage"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMembershipLimit"},{"inputs":[{"internalType":"uint256","name":"newPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMembershipPrice"},{"inputs":[{"internalType":"address","name":"pricingModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMembershipPricingModule"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{"__Membership_init((string,string,uint256,uint256,uint64,address,address,uint256,address),address)":{"details":"Initialization logic when facet is added to diamond"},"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator."},"balanceOf(address)":{"details":"Returns the number of tokens in `owner`'s account."},"expiresAt(uint256)":{"params":{"tokenId":"The token id of the membership"}},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"getMembershipCurrency()":{"returns":{"_0":"The membership currency"}},"getMembershipDuration()":{"returns":{"_0":"The membership duration"}},"getMembershipFreeAllocation()":{"returns":{"_0":"The membership free allocation"}},"getMembershipImage()":{"returns":{"_0":"The membership image"}},"getMembershipLimit()":{"returns":{"_0":"The membership limit"}},"getMembershipPrice()":{"returns":{"_0":"The membership price"}},"getMembershipPricingModule()":{"returns":{"_0":"The membership pricing module"}},"getMembershipRenewalPrice(uint256)":{"params":{"tokenId":"The token id of the membership"},"returns":{"_0":"The membership renewal price"}},"getSpaceFactory()":{"returns":{"_0":"The space factory"}},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}."},"joinSpace(address)":{"params":{"receiver":"The address of the receiver"}},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"renewMembership(uint256)":{"params":{"tokenId":"The token id of the membership"}},"safeTransferFrom(address,address,uint256)":{"details":"Equivalent to `safeTransferFrom(from, to, tokenId, '')`."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"setMembershipFreeAllocation(uint256)":{"params":{"newAllocation":"The new membership free allocation"}},"setMembershipLimit(uint256)":{"params":{"newLimit":"The new membership limit"}},"setMembershipPrice(uint256)":{"params":{"newPrice":"The new membership price"}},"setMembershipPricingModule(address)":{"params":{"pricingModule":"The new pricing module"}},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"totalSupply()":{"details":"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{"expiresAt(uint256)":{"notice":"Return the expiration date of a membership"},"getMembershipCurrency()":{"notice":"Get the membership currency"},"getMembershipDuration()":{"notice":"Get the membership duration"},"getMembershipFreeAllocation()":{"notice":"Get the membership free allocation"},"getMembershipImage()":{"notice":"Get the membership image"},"getMembershipLimit()":{"notice":"Get the membership limit"},"getMembershipPrice()":{"notice":"Get the membership price"},"getMembershipPricingModule()":{"notice":"Get the membership pricing module"},"getMembershipRenewalPrice(uint256)":{"notice":"Get the membership renewal price"},"getSpaceFactory()":{"notice":"Get the space factory"},"joinSpace(address)":{"notice":"Join a space"},"renewMembership(uint256)":{"notice":"Renew a space membership"},"setMembershipFreeAllocation(uint256)":{"notice":"Set the membership free allocation"},"setMembershipLimit(uint256)":{"notice":"Set the membership limit"},"setMembershipPrice(uint256)":{"notice":"Set the membership price"},"setMembershipPricingModule(address)":{"notice":"Set the membership pricing module"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/facets/membership/MembershipFacet.sol":"MembershipFacet"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/checker/IEntitlementChecker.sol":{"keccak256":"0xbeb7bfa236f19172b29eac53be03a3b377de3524b2d836192b0c64ebe708c204","urls":["bzz-raw://3d5a103a2b7b6be1ffa6662db6081763bcd210216fefc25307b835c555e0cf4d","dweb:/ipfs/QmUCvhZdZpVnyJuZVgd2qGduTf11384TmmBJb2RaEBHxhh"],"license":"MIT"},"contracts/src/diamond/facets/Facet.sol":{"keccak256":"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57","urls":["bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863","dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"],"license":"MIT"},"contracts/src/diamond/facets/initializable/Initializable.sol":{"keccak256":"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90","urls":["bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552","dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"],"license":"MIT"},"contracts/src/diamond/facets/initializable/InitializableStorage.sol":{"keccak256":"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a","urls":["bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4","dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionBase.sol":{"keccak256":"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f","urls":["bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1","dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol":{"keccak256":"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763","urls":["bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91","dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"],"license":"MIT"},"contracts/src/diamond/facets/ownable/IERC173.sol":{"keccak256":"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303","urls":["bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b","dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol":{"keccak256":"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816","urls":["bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb","dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol":{"keccak256":"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4","urls":["bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb","dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol":{"keccak256":"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479","urls":["bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf","dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F"],"license":"MIT"},"contracts/src/diamond/facets/pausable/IPausable.sol":{"keccak256":"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1","urls":["bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684","dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableBase.sol":{"keccak256":"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0","urls":["bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3","dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableStorage.sol":{"keccak256":"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f","urls":["bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd","dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/IReentrancyGuard.sol":{"keccak256":"0x89ad30ac5476efd023189fca20b13214fe5541ea5fff11760e00f229c62c896e","urls":["bzz-raw://fc04fb0c48333cb0f4b84b01e50498d60510d52495c3772f0bf632773ec47a7d","dweb:/ipfs/QmQUuYriat7eRRsPUHTeD2CDEwHzYxqW6qix7xf44kWByo"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/ReentrancyGuard.sol":{"keccak256":"0xb481ee6684d1589254563cb5c318b1eb75f6f15f96baecbd5f5e42b72b7a5003","urls":["bzz-raw://70e1bafcd0779c6241ee7716ae2058dd6f7d5a75bb211f5bfcb9aefa434228f8","dweb:/ipfs/QmSbsdGjL1be4VBjgWrk5CodWGvszXZt5HX32PxhvXTZ5Y"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/ReentrancyGuardStorage.sol":{"keccak256":"0xe4a08e5712446357756a6da7b65ae80845732dfebac180bd478caaf64dfc790e","urls":["bzz-raw://09f5691ae9aedbe094cc83a0e8a4272c4d6dd5f57e69fec5870b148f2d94395e","dweb:/ipfs/QmTLHQWuRp1L45oRV8oWWbk4Y4MMNYW1Rp9WUJ86gzVVRv"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/ERC5643Base.sol":{"keccak256":"0x21d3c281732e54c93520a4f2cc72cc5af38c517f2a150ee67aa84704a3d78627","urls":["bzz-raw://52ce7c061da0142a4d775bb85896410d363d4a28c0275d3171a70872344fc9a4","dweb:/ipfs/Qmdwgs3TaC4b83JVn6RG5pJJdCrxb74ZMRqZbYSe5DuqZf"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/ERC5643Storage.sol":{"keccak256":"0x68cbff071e6a6a6b91b675af567616799435676fbbbebf4f9226e1226d6128b2","urls":["bzz-raw://2e2c7aee6ef32477733a50ba667cc510c8c165b9a9e146609b1f800acd0e4832","dweb:/ipfs/QmcWAz74x3AR6kpzWdyPWw3iLQ1yHBT3ZVoK6jT7T3LwXq"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol":{"keccak256":"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224","urls":["bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615","dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721A.sol":{"keccak256":"0x5662ab29272ecaabdaf5792c368a71693fcad9df24566f9e470ff1ec3510fd8f","urls":["bzz-raw://2ef719ff8dce040daf5bcfe328f3463261fb3acfe5c41c589365143916748cc3","dweb:/ipfs/QmUm4PHj4y2237H7hnCwnfRyTWbp1DHWpc8GN26M6T4ToC"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol":{"keccak256":"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62","urls":["bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba","dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol":{"keccak256":"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4","urls":["bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04","dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol":{"keccak256":"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782","urls":["bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d","dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz"],"license":"MIT"},"contracts/src/factory/facets/architect/pricing/IPricingModules.sol":{"keccak256":"0xa45fcd2bb5037c0b9b80bb02a3a4bd00fa99598a8d9e0a5ee2dff7a04c670171","urls":["bzz-raw://15f95100f32791a9aa2e3cc47fb9cd58542e9250834bfc38756012cc4baaa786","dweb:/ipfs/QmYGPF6HQLoq5bCgMYW1AyT2Vz1H12Lt8LDdmzTadN5Ppm"],"license":"MIT"},"contracts/src/factory/facets/platform/requirements/IPlatformRequirements.sol":{"keccak256":"0xd1c61d42973382822d0b8256b5d308ad693dfa59240864cce0bec1bd4208e4c6","urls":["bzz-raw://bff6d50557810f7aa9de451f6ac2b279fe5983eefc0b38ef8be7ebb2ffde0f86","dweb:/ipfs/QmS6DXYXtPTfePgtrUxH1vmPycsVoumBQRJZugjGButowT"],"license":"MIT"},"contracts/src/factory/facets/registry/IImplementationRegistry.sol":{"keccak256":"0xb447f7654cd152c29718c95983b62e390a59658d7d1a22b97f79d0aee9fb5de7","urls":["bzz-raw://756a9a38364c01937088ba927f09af2726d2df207eea4e0e2842e3fc66ccd32c","dweb:/ipfs/QmbxBRXgtkEQsGtxq1uSM6vX38FkjPq6tpodCdtBmdEmXA"],"license":"MIT"},"contracts/src/factory/facets/wallet-link/IWalletLink.sol":{"keccak256":"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee","urls":["bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0","dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5"],"license":"MIT"},"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":{"keccak256":"0x28650d058077713dfc28d5c613998d9f1e895a6f5f6b0d93467d25455fc3ea1d","urls":["bzz-raw://e2446b7958f8b5f2713860e2826acf1b123c6b24719f844c7811d1e3f5a87c86","dweb:/ipfs/Qmesso9ftmVUCHi6w2gkJs9tEjGG5ZZgqhAenkyTDgFPC2"],"license":"MIT"},"contracts/src/spaces/facets/Entitled.sol":{"keccak256":"0x90204085688bf4dd1e1b6ca30684ee37db79210070c405406898c8a77d50bfce","urls":["bzz-raw://b9b194cc9977b03fbccc81529147a0fce7857893c8146927570c1ee5a28aa900","dweb:/ipfs/QmZMvPPj5ZPYaRQaSraBkv3PSMeUZ4wN1tQ9EVvwW6SL4r"],"license":"MIT"},"contracts/src/spaces/facets/Permissions.sol":{"keccak256":"0xaeec9c70d231be9debb15660bf6939746532d0012c80d5518e8207dd33653de2","urls":["bzz-raw://bab7c5dd8f55f03f48d3908b8d6732b3e2d93f36312a0c3408ff10be258c165a","dweb:/ipfs/QmevmAc6tzP3kFoH84cRtipSq4ryqbrP3H4VB8mRZgnRxn"],"license":"MIT"},"contracts/src/spaces/facets/banning/BanningBase.sol":{"keccak256":"0x38c44494221f96568f3efb540a8a6c7af141de95f25caf26df6e8a8333f31249","urls":["bzz-raw://cf1f509347cab5090655ff8272443d18f9716fea5ef27cd86269ccbd2570aa7e","dweb:/ipfs/QmbF8StzLRGnVvVXWYBowvdULoPPqQkU5hZR548cnRzuVs"],"license":"MIT"},"contracts/src/spaces/facets/banning/BanningStorage.sol":{"keccak256":"0xcfbf5c113056e569abf23158853ff4877744b22a4bf2bf49a282d04dab23ab17","urls":["bzz-raw://4f825e97ca65c9cd3bd5885d2fa8b8e5f8f0dcbe227dec064abbbab645685fbe","dweb:/ipfs/QmXAMntxrjzeNUKh9WcyHvzDmnV89vrJ9PkKRceqxJSxZp"],"license":"MIT"},"contracts/src/spaces/facets/banning/IBanning.sol":{"keccak256":"0x350ec182a95a86a41335979cd7212132858c5cfcd366602b2f6cd0ec0694b63e","urls":["bzz-raw://ecb4ad0c5a1086c38448b3e279733f33edc0cc39648368e5cb43dfff139ff7e8","dweb:/ipfs/QmWYfYE8Haqk9kBRxmLijfQSfqbfxf7LB3wQ24d3pG5PE3"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelService.sol":{"keccak256":"0xdac0460cb66d31e57593154fb31ccd112dd1d51c34ea6e5ce316250ac5548abb","urls":["bzz-raw://56c99fa9d482bd02ea96a01e1a960e1678edbbc1a9580511f68543ca194f6fb5","dweb:/ipfs/QmbUjxxkjLCGXVC3bNtWQDas2vJwUmS5NraTGwWiKJAXvH"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelStorage.sol":{"keccak256":"0xeb4174513a652b1571b3a92cbefa80e9d450144e8d07bfb29c863d7d9de9313c","urls":["bzz-raw://6c3b73c84a2b4a56fcc8bd1fbaa0a8896a2dfc62a7fde07b13c6d8b05dcf8fe6","dweb:/ipfs/QmRPukfmps5ESAR5saLNLJp6GEg1nNCTq5qChGeAjgtLV4"],"license":"MIT"},"contracts/src/spaces/facets/delegation/WalletLinkProxyBase.sol":{"keccak256":"0xffef403556b46744bd1833e5df57b02eb79e010841b16610e1740bc0dac929b2","urls":["bzz-raw://1afa30929e8c6b0c69528d328774c98789825a8de53e5945a1e95092bee2ad08","dweb:/ipfs/QmTbCqLJTBHgcMuFwWSTbrgR7uaASJqwqYuku4YkGzTWW1"],"license":"MIT"},"contracts/src/spaces/facets/delegation/WalletLinkProxyStorage.sol":{"keccak256":"0x9667e475b9ad9f1130583840c9b0594a7512f7edd33163b926b3db21f70d9909","urls":["bzz-raw://d6271ce56258b1e9150378872d250cfaeb4501b5d0288e8f19f02096114c687f","dweb:/ipfs/QmXSBA2CpLL9BdvZb994JYStgB9fJfsHwgcke6gsD3zybW"],"license":"MIT"},"contracts/src/spaces/facets/dispatcher/DispatcherBase.sol":{"keccak256":"0xc6743de898114347a9c8d7ac890849b857f21fe787d4e381c477da23ac29d371","urls":["bzz-raw://a6e61de497274ed14026979ac8d383ae833776513ed56f3e19ba1e33db3aced6","dweb:/ipfs/QmZve5YBgaw8pGkNbKKNodegSWSM5ERLouwPh3R1GzEWZt"],"license":"MIT"},"contracts/src/spaces/facets/dispatcher/DispatcherStorage.sol":{"keccak256":"0x0173a174a8241b5fee8610af734f25e92f311e4a66ad08d21c5897cc8895d543","urls":["bzz-raw://a25813aa9421f1dca29a7013f7d8be1d37d53d97791633c3c822ccb8fb42758a","dweb:/ipfs/QmXHKAa6G8pEm3tUsVukLzgZDuEAcsKJwpjkKhR4pRwf5v"],"license":"MIT"},"contracts/src/spaces/facets/dispatcher/IDispatcher.sol":{"keccak256":"0x11c732ddae8bec5424cb0f963a8dee276a4f1ef329d1f9feae215b39ab3e3220","urls":["bzz-raw://e3c82b87050e634ec0754f36fb8b38bea0c5d4d5395a8b333270f097db74679a","dweb:/ipfs/QmXwZKPQsHrtZj3dnneD2LZuVdMLErJ9xsmcN6vWgcqbS6"],"license":"MIT"},"contracts/src/spaces/facets/entitlements/EntitlementsManagerService.sol":{"keccak256":"0x1c52a860e8d0c9d025cdd0e6490aa68e82f0e12450966ed182825299f10dbc54","urls":["bzz-raw://e82770448781ca94e9f4bf02ac981f6bebc55b2553de7bb8f977bc7335b26d11","dweb:/ipfs/QmSP1gnWqnWEJwf9eFYptd2v6M8kuTa7JzNKtG6DzkzoK6"],"license":"MIT"},"contracts/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol":{"keccak256":"0x688692231af49bcca80f7da97be12d448b0c20a4338d259d5f654b95c5b046ca","urls":["bzz-raw://be9964e110363bf68fb4bbb8ff230fecf8c26e695077910ba07163db57030a8e","dweb:/ipfs/QmNS3eUqCQU7H48LtW6hrB9xPGy9DrKCqh7JKWsAtje5dK"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGated.sol":{"keccak256":"0xd705dfd2d3124f62b5ca11cd2b0e0432da535ced6d8012f55799897a30480ba5","urls":["bzz-raw://cdb855f903687fca333ac8be6e4545b99dc654a41d3878f6ad8f847500efd15b","dweb:/ipfs/QmZixZFxv5QBuCVrGXnB9PJknKZknXiXBepi2mG83Jpiza"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGatedBase.sol":{"keccak256":"0xcefa5c3c81c73fefaa7da433ddd5c419dc4c31cd86e8c31f47894663ca7269e8","urls":["bzz-raw://27fe60a48a69d5be67fdf17f5aac1e90ef0234da564ec4f6e2cbfe53fbb9ba0c","dweb:/ipfs/QmPemsjAUmjjjyLWbHzVmqLxyBAN7CFi6DViy9uQEM3wjt"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol":{"keccak256":"0xb058672a61d2742e8232232cc66f052443d82beb8b2cdc681f10c23a49351b84","urls":["bzz-raw://f39d39a3bd3e39c2f6a5b21b82a7339176c163d82335f901a64c57dd73ffa5a3","dweb:/ipfs/QmP8RmYv79xX8hLmrvjfceW9mdRYCYxMaxpywRpR281tMo"],"license":"MIT"},"contracts/src/spaces/facets/gated/IEntitlementGated.sol":{"keccak256":"0x948de1018f7f78366263a40e0f8269e10941216bd03a9996edb24a6230959e74","urls":["bzz-raw://dc985539ce639f39fd68723acca6424a78deac6cec3693c9d8e1084a487c83ec","dweb:/ipfs/QmQujX5rmDwhJZurp11FTiPLb7ev9swLTtdkagA8wydZiT"],"license":"MIT"},"contracts/src/spaces/facets/membership/IMembership.sol":{"keccak256":"0x7fbf37c681ae95610ed376a30d68808b9da602a3225dbe1724dfe7c1c82de672","urls":["bzz-raw://afa8d56cca2d01883595cfbd1a6aa3b63202ed25fb56ac1e57d3cf645665dd77","dweb:/ipfs/QmbLF87ZZCovJn3enbs78mcJu39zXi8FYum72fTufZt3e4"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipBase.sol":{"keccak256":"0x4f42c9176fb345d3da7825e0045e57707396d52bb8e208c81ed81e9d76bd90eb","urls":["bzz-raw://1fac0c230acd543d90c1b88174e3dcdc9a135e7217741a32580b250941ad30bf","dweb:/ipfs/QmXaLoyaFmomPPZCcJiY3dzsRjZiWoVkNdKtDa67vh16CR"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipFacet.sol":{"keccak256":"0xb33ce51656ccc56703419a274bbbd05dc3aa285434f851ca6cf53c40280c87b0","urls":["bzz-raw://8bea49ffb82f8b54f41cba1fdb51345f618a80e3e5a9c79f5306c5244575c9e0","dweb:/ipfs/QmeCN8nKYsJakVLiuWuwYPjcYjpTsUhwhcnxKLHD6ktYPq"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipStorage.sol":{"keccak256":"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0","urls":["bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a","dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa"],"license":"MIT"},"contracts/src/spaces/facets/membership/pricing/IMembershipPricing.sol":{"keccak256":"0x9e3b6766b92d0e48b4b23a024f9622923f30d90f6f8673ded81e423171ec30c4","urls":["bzz-raw://e6f76b6045a8c6eeb24d6a9a42f82495cb1cb125dd90921d16a949b00a6f52dc","dweb:/ipfs/QmPbRy4sAabTkEnZBoubzPqH2ycPevEzcEJ4NYJsCWmTFF"],"license":"MIT"},"contracts/src/spaces/facets/prepay/IPrepay.sol":{"keccak256":"0x4cc23cd204f20bd4a094d9292aaa494f73478d27c8f59e646454cbba11d781fa","urls":["bzz-raw://4f54c224f56396ac03335c95c4808acbeec6366f0c475d29edb2461cd53bcd15","dweb:/ipfs/QmdDKUR8VVXJuR5Fj29SZxvR9GwxXeNQ6rtAT3TxX8VjwT"],"license":"MIT"},"contracts/src/spaces/facets/prepay/PrepayBase.sol":{"keccak256":"0x07fbb598088d52ff90a2dc5c3fea344823ae240f39b104f8db8a0b3953752ba3","urls":["bzz-raw://d34b9a5703ac33b27f91049a81f106bdf327ac57f4ac5886e21f3782104a5084","dweb:/ipfs/QmR8ds7bpXxSLZX6QNhVRVYY8Fk2xHVFNqcAD1fY38kERs"],"license":"MIT"},"contracts/src/spaces/facets/prepay/PrepayStorage.sol":{"keccak256":"0x5daebdd10dafc3bc3552064a2fecd4a2639226b1af240351dd2e005a7ab270b4","urls":["bzz-raw://06cf75e08e360a74822cd846728c5d9f8440698bb43d29a8bcab3c0cebbec336","dweb:/ipfs/QmZ4UfwTNqQg88A7mHmXM3ZExjTJQhPf3qvFLGzcVaGwwG"],"license":"MIT"},"contracts/src/spaces/facets/roles/IRoles.sol":{"keccak256":"0xa69cfbcd989b8794187a56a93deffbefaee8ca456e381ce30f85897893c50272","urls":["bzz-raw://cf8e9b2711f66eefb949f5b5ead4d72005f1845cd63f22b287fdba3339101bd4","dweb:/ipfs/Qmf7sPY4BgmvZf7p4GBsyVyd4o66yJXMgAmEgpdQAQyBdx"],"license":"MIT"},"contracts/src/spaces/facets/roles/RolesBase.sol":{"keccak256":"0x0662c3457d1a192a6095677b9df680798cac335ec016244671d5e39004116881","urls":["bzz-raw://fe07c240371cd47923c9fb6f49d9863df715e02cdeec180fda3f7808ea91f7a8","dweb:/ipfs/QmWtiHY1XkwWjRjQ55x4xFh8Rz1xos26uYgZGkWh2KzSLo"],"license":"MIT"},"contracts/src/spaces/facets/roles/RolesStorage.sol":{"keccak256":"0xc000f429d628abed048b0f6fe015a0c1505f4880562a981da966cd1e9d44f729","urls":["bzz-raw://202ca9557330508e576337b60cd145009d2ed9e609030ef6802eb704b79caf7f","dweb:/ipfs/QmRcArv84PmEFbKX9aWFJiJetd3eFUKR2GAPJmJ9c57cwB"],"license":"MIT"},"contracts/src/utils/StringSet.sol":{"keccak256":"0x2b9880e846f275864e847e8c7079d29a02c4a060c5a9d580fb153ff0e7b49ff6","urls":["bzz-raw://df9c170f28318746eab23befba1318735652c7d198e273a322a0ff2702680605","dweb:/ipfs/QmanQQi9YiPHb9Cn4wpfQ9VYUi7UZ9iQibLL6V46JPibLu"],"license":"MIT"},"contracts/src/utils/Validator.sol":{"keccak256":"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f","urls":["bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306","dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt"],"license":"MIT"},"contracts/src/utils/interfaces/IWETH.sol":{"keccak256":"0xb0a9a284b02664b2ceda4ed7cc8e7dbdd39cc09292b65b97a3417ba5b1440dd0","urls":["bzz-raw://701edb4dbdb8ab50ed2fdb568cc0956c07184e1f4e7d63854efc158408fa72a5","dweb:/ipfs/QmV58ikDDcTC92hGEuQKerfsygnPg5cwCVLuMh9R9uYXb6"],"license":"MIT"},"contracts/src/utils/libraries/BasisPoints.sol":{"keccak256":"0xfaa5790726afc20e29f2a00e67693a59ae85a045beaa95f8f58bcbcef01ed87b","urls":["bzz-raw://a2da5e15739fc7093ea7b935c6542f7c01d9c33843a3d1a1d8895db404f8160e","dweb:/ipfs/QmYVUkSh3QX7u9rnKfqLeb9Rh8tko5Q3Gpry6KnhTRF58L"],"license":"MIT"},"contracts/src/utils/libraries/CurrencyTransfer.sol":{"keccak256":"0x3242d518aedc3ca9a49fb4221de4596ee219b9569abf0548d28dbbecd569a336","urls":["bzz-raw://c2260078d61b0ee998b54f60c4db4bc8e8a9afdf351018a343c82fa984aca88d","dweb:/ipfs/QmT83nFPb4JzsWCPf9j58xTsaDvuMmq5MH1z8GrEWtBLcx"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":209} \ No newline at end of file +{"abi":[{"type":"function","name":"__ERC721A_init","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"__EntitlementGated_init","inputs":[{"name":"entitlementChecker","type":"address","internalType":"contract IEntitlementChecker"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"__Membership_init","inputs":[{"name":"info","type":"tuple","internalType":"struct IMembershipBase.Membership","components":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"maxSupply","type":"uint256","internalType":"uint256"},{"name":"duration","type":"uint64","internalType":"uint64"},{"name":"currency","type":"address","internalType":"address"},{"name":"feeRecipient","type":"address","internalType":"address"},{"name":"freeAllocation","type":"uint256","internalType":"uint256"},{"name":"pricingModule","type":"address","internalType":"address"}]},{"name":"spaceFactory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"expiresAt","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getMembershipCurrency","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getMembershipDuration","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"getMembershipFreeAllocation","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMembershipImage","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getMembershipLimit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMembershipPrice","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMembershipPricingModule","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getMembershipRenewalPrice","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRuleData","inputs":[{"name":"transactionId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRuleEntitlementBase.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlementBase.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"stateMutability":"view"},{"type":"function","name":"getSpaceFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"joinSpace","inputs":[{"name":"receiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"postEntitlementCheckResult","inputs":[{"name":"transactionId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"result","type":"uint8","internalType":"enum IEntitlementGatedBase.NodeVoteStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renewMembership","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMembershipFreeAllocation","inputs":[{"name":"newAllocation","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMembershipImage","inputs":[{"name":"newImage","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMembershipLimit","inputs":[{"name":"newLimit","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMembershipPrice","inputs":[{"name":"newPrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMembershipPricingModule","inputs":[{"name":"pricingModule","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdraw","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Banned","inputs":[{"name":"moderator","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ConsecutiveTransfer","inputs":[{"name":"fromTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EntitlementCheckResultPosted","inputs":[{"name":"transactionId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"result","type":"uint8","indexed":false,"internalType":"enum IEntitlementGatedBase.NodeVoteStatus"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"InterfaceAdded","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"InterfaceRemoved","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"MembershipCurrencyUpdated","inputs":[{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MembershipFeeRecipientUpdated","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MembershipFreeAllocationUpdated","inputs":[{"name":"allocation","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MembershipLimitUpdated","inputs":[{"name":"limit","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MembershipPriceUpdated","inputs":[{"name":"price","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MembershipTokenIssued","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MembershipTokenRejected","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MembershipWithdrawal","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Prepay__Prepaid","inputs":[{"name":"supply","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleCreated","inputs":[{"name":"creator","type":"address","indexed":true,"internalType":"address"},{"name":"roleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleRemoved","inputs":[{"name":"remover","type":"address","indexed":true,"internalType":"address"},{"name":"roleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleUpdated","inputs":[{"name":"updater","type":"address","indexed":true,"internalType":"address"},{"name":"roleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SubscriptionUpdate","inputs":[{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"expiration","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unbanned","inputs":[{"name":"moderator","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AddressInsufficientBalance","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ApprovalCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"ApprovalQueryForNonexistentToken","inputs":[]},{"type":"error","name":"BalanceQueryForZeroAddress","inputs":[]},{"type":"error","name":"Banning__AlreadyBanned","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Banning__CannotBanOwner","inputs":[]},{"type":"error","name":"Banning__CannotBanSelf","inputs":[]},{"type":"error","name":"Banning__InvalidTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Banning__NotBanned","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Dispatcher__InvalidCaller","inputs":[]},{"type":"error","name":"Dispatcher__InvalidValue","inputs":[]},{"type":"error","name":"ERC5643__DurationZero","inputs":[]},{"type":"error","name":"ERC5643__InvalidTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC5643__NotApprovedOrOwner","inputs":[]},{"type":"error","name":"ERC5643__SubscriptionNotRenewable","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"EntitlementGated_InvalidAddress","inputs":[]},{"type":"error","name":"EntitlementGated_NodeAlreadyVoted","inputs":[]},{"type":"error","name":"EntitlementGated_NodeNotFound","inputs":[]},{"type":"error","name":"EntitlementGated_TransactionCheckAlreadyCompleted","inputs":[]},{"type":"error","name":"EntitlementGated_TransactionCheckAlreadyRegistered","inputs":[]},{"type":"error","name":"EntitlementGated_TransactionNotRegistered","inputs":[]},{"type":"error","name":"Entitlement__InvalidValue","inputs":[]},{"type":"error","name":"Entitlement__NotAllowed","inputs":[]},{"type":"error","name":"Entitlement__NotMember","inputs":[]},{"type":"error","name":"Entitlement__ValueAlreadyExists","inputs":[]},{"type":"error","name":"FailedInnerCall","inputs":[]},{"type":"error","name":"Initializable_InInitializingState","inputs":[]},{"type":"error","name":"Initializable_NotInInitializingState","inputs":[]},{"type":"error","name":"Introspection_AlreadySupported","inputs":[]},{"type":"error","name":"Introspection_NotSupported","inputs":[]},{"type":"error","name":"Membership__AlreadyMember","inputs":[]},{"type":"error","name":"Membership__InsufficientAllowance","inputs":[]},{"type":"error","name":"Membership__InsufficientPayment","inputs":[]},{"type":"error","name":"Membership__InvalidAddress","inputs":[]},{"type":"error","name":"Membership__InvalidCurrency","inputs":[]},{"type":"error","name":"Membership__InvalidDuration","inputs":[]},{"type":"error","name":"Membership__InvalidFeeRecipient","inputs":[]},{"type":"error","name":"Membership__InvalidFreeAllocation","inputs":[]},{"type":"error","name":"Membership__InvalidLimit","inputs":[]},{"type":"error","name":"Membership__InvalidMaxSupply","inputs":[]},{"type":"error","name":"Membership__InvalidPayment","inputs":[]},{"type":"error","name":"Membership__InvalidPrice","inputs":[]},{"type":"error","name":"Membership__InvalidPricingModule","inputs":[]},{"type":"error","name":"Membership__InvalidTokenId","inputs":[]},{"type":"error","name":"Membership__MaxSupplyReached","inputs":[]},{"type":"error","name":"Membership__NotExpired","inputs":[]},{"type":"error","name":"Membership__PriceTooLow","inputs":[]},{"type":"error","name":"MintERC2309QuantityExceedsLimit","inputs":[]},{"type":"error","name":"MintToZeroAddress","inputs":[]},{"type":"error","name":"MintZeroQuantity","inputs":[]},{"type":"error","name":"Ownable__NotOwner","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Ownable__ZeroAddress","inputs":[]},{"type":"error","name":"OwnerQueryForNonexistentToken","inputs":[]},{"type":"error","name":"OwnershipNotInitializedForExtraData","inputs":[]},{"type":"error","name":"Pausable__NotPaused","inputs":[]},{"type":"error","name":"Pausable__Paused","inputs":[]},{"type":"error","name":"Prepay__InvalidAddress","inputs":[]},{"type":"error","name":"Prepay__InvalidAmount","inputs":[]},{"type":"error","name":"Prepay__InvalidMembership","inputs":[]},{"type":"error","name":"Prepay__InvalidSupplyAmount","inputs":[]},{"type":"error","name":"ReentrancyGuard__ReentrantCall","inputs":[]},{"type":"error","name":"Roles__EntitlementAlreadyExists","inputs":[]},{"type":"error","name":"Roles__EntitlementDoesNotExist","inputs":[]},{"type":"error","name":"Roles__InvalidEntitlementAddress","inputs":[]},{"type":"error","name":"Roles__InvalidPermission","inputs":[]},{"type":"error","name":"Roles__PermissionAlreadyExists","inputs":[]},{"type":"error","name":"Roles__PermissionDoesNotExist","inputs":[]},{"type":"error","name":"Roles__RoleDoesNotExist","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"TransferCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"TransferFromIncorrectOwner","inputs":[]},{"type":"error","name":"TransferToNonERC721ReceiverImplementer","inputs":[]},{"type":"error","name":"TransferToZeroAddress","inputs":[]},{"type":"error","name":"URIQueryForNonexistentToken","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001c62000022565b620000ca565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200006f576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff9081161015620000c757805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6151b080620000da6000396000f3fe60806040526004361061020f5760003560e01c806370a082311161011857806395d89b41116100a0578063c87b56dd1161006f578063c87b56dd146105d0578063d2f01f19146105f0578063df9a9fe614610610578063e847abdd14610630578063e985e9c51461064557600080fd5b806395d89b411461056857806397fb7c1e1461057d578063a22cb4651461059d578063b88d4fde146105bd57600080fd5b80638120f0ba116100e75780638120f0ba146104d15780638c625b06146104fe57806392c399ff1461051157806393b13cb71461053e57806395d600c81461055357600080fd5b806370a082311461046957806379dda585146104895780637adc9cbe1461049e5780637c9669ac146104be57600080fd5b80634739e8051161019b5780635becd24a1161016a5780635becd24a146103df5780636352211e146103ff578063657e45e81461041f57806369d5f38a14610434578063706b8e091461045457600080fd5b80634739e8051461035f5780634c2abfbe1461037f57806351cff8d91461039f5780635803909f146103bf57600080fd5b80631278076a116101e25780631278076a146102ac57806317c95709146102cf57806318160ddd1461032457806323b872dd1461033957806342842e0e1461034c57600080fd5b806306fdde0314610214578063081812fc1461023f578063095ea7b3146102775780630ef1be5f1461028c575b600080fd5b34801561022057600080fd5b50610229610675565b6040516102369190614269565b60405180910390f35b34801561024b57600080fd5b5061025f61025a36600461427c565b610710565b6040516001600160a01b039091168152602001610236565b61028a6102853660046142ba565b610721565b005b34801561029857600080fd5b5061028a6102a73660046142e6565b610731565b3480156102b857600080fd5b506102c16107b0565b604051908152602001610236565b3480156102db57600080fd5b506102c16102ea36600461427c565b60009081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b031690565b34801561033057600080fd5b506102c16107c7565b61028a610347366004614357565b6107d1565b61028a61035a366004614357565b6109c8565b34801561036b57600080fd5b5061028a61037a3660046143a5565b6109e8565b34801561038b57600080fd5b5061028a61039a36600461454a565b610a51565b3480156103ab57600080fd5b5061028a6103ba366004614653565b610ac7565b3480156103cb57600080fd5b506102c16103da36600461427c565b610b69565b3480156103eb57600080fd5b5061028a6103fa36600461427c565b610b7c565b34801561040b57600080fd5b5061025f61041a36600461427c565b610c01565b34801561042b57600080fd5b5061025f610c0c565b34801561044057600080fd5b5061028a61044f36600461427c565b610c16565b34801561046057600080fd5b506102c1610cc4565b34801561047557600080fd5b506102c1610484366004614653565b610cce565b34801561049557600080fd5b5061025f610cd9565b3480156104aa57600080fd5b5061028a6104b9366004614653565b610ce3565b61028a6104cc36600461427c565b610d39565b3480156104dd57600080fd5b506104e6610e96565b6040516001600160401b039091168152602001610236565b61028a61050c366004614653565b610ea0565b34801561051d57600080fd5b5061053161052c366004614670565b6112af565b6040516102369190614783565b34801561054a57600080fd5b506102296112e4565b34801561055f57600080fd5b506102c16112ee565b34801561057457600080fd5b506102296112f8565b34801561058957600080fd5b5061028a61059836600461427c565b611310565b3480156105a957600080fd5b5061028a6105b836600461482a565b611365565b61028a6105cb366004614863565b6113e2565b3480156105dc57600080fd5b506102296105eb36600461427c565b61142c565b3480156105fc57600080fd5b5061028a61060b3660046148e2565b6114bc565b34801561061c57600080fd5b5061028a61062b366004614653565b611510565b34801561063c57600080fd5b5061025f61155d565b34801561065157600080fd5b50610665610660366004614945565b611567565b6040519015158152602001610236565b606061067f611573565b600201805461068d90614973565b80601f01602080910402602001604051908101604052809291908181526020018280546106b990614973565b80156107065780601f106106db57610100808354040283529160200191610706565b820191906000526020600020905b8154815290600101906020018083116106e957829003601f168201915b5050505050905090565b600061071b82611597565b92915050565b61072d828260016115e4565b5050565b610739611699565b6001600160a01b0316336001600160a01b031614610771576040516365f4906560e01b81523360048201526024015b60405180910390fd5b61072d82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061176392505050565b60006107c26107bd61177a565b611799565b905090565b60006107c261177a565b60006107dc82611899565b9050836001600160a01b0316816001600160a01b03161461080f5760405162a1148160e81b815260040160405180910390fd5b60008061081b84611934565b91509150610840818761082b3390565b6001600160a01b039081169116811491141790565b61086b5761084e8633611567565b61086b57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661089257604051633a954ecd60e21b815260040160405180910390fd5b801561089d57600082555b6108a5611573565b6001600160a01b03871660009081526005919091016020526040902080546000190190556108d1611573565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b17610908611573565b60008681526004919091016020526040812091909155600160e11b8416900361097e5760018401610937611573565b60008281526004919091016020526040812054900361097c57610958611573565b54811461097c5783610968611573565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6109e3838383604051806020016040528060008152506113e2565b505050565b60026000805160206151508339815191525403610a1857604051635db5c7cd60e11b815260040160405180910390fd5b610a2f600260008051602061515083398151915255565b610a3a83838361195c565b6109e3600160008051602061515083398151915255565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610a9b57604051630ef4733760e31b815260040160405180910390fd5b610aab6322fa1fe560e21b611bff565b610ab58282611cdd565b61072d82600001518360200151611e00565b610acf611699565b6001600160a01b0316336001600160a01b031614610b02576040516365f4906560e01b8152336004820152602401610768565b6001600160a01b038116610b2957604051635fbd571760e01b815260040160405180910390fd5b6000610b33611e2a565b905080600003610b5657604051635894b54560e11b815260040160405180910390fd5b61072d610b61611e3d565b308484611e59565b600061071b82610b7761177a565b611e9f565b610b84611699565b6001600160a01b0316336001600160a01b031614610bb7576040516365f4906560e01b8152336004820152602401610768565b6000610bc1611ee5565b90508015801590610bd157508082115b15610bef5760405163c3983b9160e01b815260040160405180910390fd5b610bf882611ef8565b61072d82611f9d565b600061071b82611899565b60006107c2611e3d565b610c1e611699565b6001600160a01b0316336001600160a01b031614610c51576040516365f4906560e01b8152336004820152602401610768565b610c5a81611fe0565b610c6261206e565b6001600160a01b03166391b7f5ed826040518263ffffffff1660e01b8152600401610c8f91815260200190565b600060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b5050505050565b60006107c261208a565b600061071b82612129565b60006107c2612191565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610d2d57604051630ef4733760e31b815260040160405180910390fd5b610d36816121ad565b50565b60026000805160206151508339815191525403610d6957604051635db5c7cd60e11b815260040160405180910390fd5b610d80600260008051602061515083398151915255565b6000610d8b82610c01565b90506001600160a01b038116610db457604051635fbd571760e01b815260040160405180910390fd5b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b0316610df36121e8565b6001600160401b0316610e0642836149bd565b10610e245760405163dce9a1d360e01b815260040160405180910390fd5b6000610e3284610b7761177a565b90508015610e6b576000610e46848361226e565b90506000610e5482846149bd565b90508015610e6857610e668582612386565b505b50505b610e7c84610e776121e8565b612524565b505050610d36600160008051602061515083398151915255565b60006107c26121e8565b60026000805160206151508339815191525403610ed057604051635db5c7cd60e11b815260040160405180910390fd5b610ee7600260008051602061515083398151915255565b610ef0816125ed565b60405133606081901b6bffffffffffffffffffffffff19166020830152436034830152906000906054016040516020818303038152906040528051906020012090506000610fb282610f868486610f4687612656565b604080516020808201959095526001600160a01b039390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9050610ff4818486604051602001610fe09291906001600160a01b0392831681529116602082015260400190565b60405160208183030381529060405261268b565b34156110045761100481346126d2565b6000611030604051806040016040528060098152602001684a6f696e537061636560b81b815250612758565b90506000806000611040336129a2565b845190915060005b81811015611220576000868281518110611064576110646149d0565b6020026020010151905080604001516112175760005b8160800151518110156112155760008260800151828151811061109f5761109f6149d0565b60200260200101519050806001600160a01b0316632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110b91906149e6565b6111f457806001600160a01b0316630cf0b5336000801b88604051806040016040528060098152602001684a6f696e537061636560b81b8152506040516020016111559190614a03565b60405160208183030381529060405261116d90614a1f565b6040518463ffffffff1660e01b815260040161118b93929190614a7d565b602060405180830381865afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc91906149e6565b156111eb576111da8a612c0a565b505050505050505050505050611298565b6001965061120c565b6112038a828560000151612dbc565b60009650600197505b5060010161107a565b505b50600101611048565b508315801561122c5750825b1561128f5761124a866040518060200160405280600081525061268b565b341561125a5761125a868961306b565b6040516001600160a01b038a16907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a25b50505050505050505b610d36600160008051602061515083398151915255565b6112d360405180606001604052806060815260200160608152602001606081525090565b6112dd83836130a2565b9392505050565b60606107c261319c565b60006107c2611ee5565b6060611302611573565b600301805461068d90614973565b611318611699565b6001600160a01b0316336001600160a01b03161461134b576040516365f4906560e01b8152336004820152602401610768565b61135c8161135761177a565b6131b4565b610d36816131d5565b8061136e611573565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6113ed8484846107d1565b6001600160a01b0383163b1561142657611409848484846131e5565b611426576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6060611437826132d0565b61145457604051630a14c4b560e41b815260040160405180910390fd5b600061146b60408051602081019091526000815290565b9050805160000361148b57604051806020016040528060008152506112dd565b806114958461330c565b6040516020016114a6929190614aa6565b6040516020818303038152906040529392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661150657604051630ef4733760e31b815260040160405180910390fd5b61072d8282611e00565b611518611699565b6001600160a01b0316336001600160a01b03161461154b576040516365f4906560e01b8152336004820152602401610768565b61155481613350565b610d3681613408565b60006107c261206e565b60006112dd8383613435565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090565b60006115a2826132d0565b6115bf576040516333d1c03960e21b815260040160405180910390fd5b6115c7611573565b60009283526006016020525060409020546001600160a01b031690565b60006115ef83610c01565b9050811561162e57336001600160a01b0382161461162e576116118133613435565b61162e576040516367d9dca160e11b815260040160405180910390fd5b83611637611573565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015611739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614ad5565b91505090565b8061176c613472565b600c019061072d9082614b3a565b600080611785611573565b60010154611791611573565b540303919050565b6000806117a4613472565b905060006117b061208a565b60088301549091506001600160a01b031615611844576008820154604051635cf4ee9160e01b815260048101839052602481018690526001600160a01b0390911690635cf4ee9190604401602060405180830381865afa158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183c9190614bf9565b949350505050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611818573d6000803e3d6000fd5b6000806118a4611573565b60008481526004820160205260408120549350909150600160e01b8316900361191a578160000361191457805483106118f057604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156118f1575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b6000806000611941611573565b60009485526006016020525050604090912080549092909150565b6000838152600080516020615130833981519152602052604090208054600080516020615110833981519152919061010090046001600160a01b031615806119a65750805460ff16155b156119c457604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff16156119f657604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b81811015611b345760008981526001870160205260408120805483908110611a3757611a376149d0565b60009182526020909120018054909150336001600160a01b0390911603611ac35760008154600160a01b900460ff166002811115611a7757611a77614692565b14611a95576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b836002811115611ab957611ab9614692565b0217905550600195505b60018154600160a01b900460ff166002811115611ae257611ae2614692565b03611af95784611af181614c12565b955050611b2b565b60028154600160a01b900460ff166002811115611b1857611b18614692565b03611b2b5783611b2781614c12565b9450505b50600101611a0d565b5083611b5357604051638223a7e960e01b815260040160405180910390fd5b611b5e600282614c2b565b831180611b745750611b71600282614c2b565b82115b15611bf45760008881526002860160205260408120805460ff19166001179055828411611ba2576002611ba5565b60015b9050611bb18a82613496565b897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051611be19190614c4d565b60405180910390a2611bf28a613538565b505b505050505050505050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114611c8c576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055611ca5565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b6000611ce7613472565b6006810180546001600160a01b038086166001600160a01b031992831617909255610100860151600884018054919093169082161790915560048201805490911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1790556060840151600382015560e08401516007820181905590915015611d6b57611d6b8360e00151611ef8565b611d79836101000151613350565b6040830151156109e357611d908360400151611fe0565b600881015460408085015190516391b7f5ed60e01b81526001600160a01b03909216916391b7f5ed91611dc99160040190815260200190565b600060405180830381600087803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b50505050505050565b611e106380ac58cd60e01b611bff565b611e20635b5e139f60e01b611bff565b61072d8282613605565b6000611e34613472565b600a0154905090565b6000611e47613472565b600401546001600160a01b0316919050565b80156114265773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03851601611e9357611e8e8282613637565b611426565b611426848484846136da565b600080611eaa613472565b600085815260098201602052604090205490915015611edc57600084815260099091016020526040902054905061071b565b61183c83611799565b6000611eef613472565b60030154905090565b6000611f02613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7d9190614bf9565b82111561072d5760405163c3983b9160e01b815260040160405180910390fd5b6000611fa7613472565b6007810183905560405190915082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f90600090a25050565b6000611fea612191565b6001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204b9190614bf9565b90508082101561072d57604051631a23d64760e11b815260040160405180910390fd5b6000612078613472565b600801546001600160a01b0316919050565b600080612095613472565b600781015490915080156120a95792915050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190614bf9565b9250505090565b60006001600160a01b038216612152576040516323d3ad8160e21b815260040160405180910390fd5b6001600160401b03612162611573565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b600061219b613472565b600601546001600160a01b0316919050565b6121bd636afd38fd60e11b611bff565b60008051602061511083398151915280546001600160a01b0319166001600160a01b03831617905550565b6000806121f3613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614c60565b600080612279613472565b6006810154600480830154604080516301332c8360e61b815290519495506001600160a01b039384169493909116926000928592634ccb20c092818301926020928290030181865afa1580156122d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f79190614ad5565b90506000836001600160a01b0316639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235d9190614c7d565b905061236d878261ffff1661372d565b955061237b83898489611e59565b505050505092915050565b600080612391613472565b9050600061239d611e3d565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038216016123e8578382600a0160008282546123d89190614ca1565b9091555084935061071b92505050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190614bf9565b905061246383883089611e59565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156124aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ce9190614bf9565b905060006124dc83836149bd565b90508781146124fe57604051635894b54560e11b815260040160405180910390fd5b8086600a0160008282546125129190614ca1565b90915550909998505050505050505050565b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce006020819052604082205490916001600160401b039091169081810361257a576125738442614cb4565b9050612587565b6125848483614cb4565b90505b60008581526020848152604091829020805467ffffffffffffffff19166001600160401b038516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b6001600160a01b03811661261457604051635fbd571760e01b815260040160405180910390fd5b61261c611ee5565b15801590612638575061262d611ee5565b61263561177a565b10155b15610d3657604051637efcdb4960e01b815260040160405180910390fd5b60008181526000805160206151708339815191526020819052604082208054908361268083614c12565b909155509392505050565b60008281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0260205260409020600080516020615170833981519152906114268382614b3a565b806000036126f35760405163acdc0d4960e01b815260040160405180910390fd5b8034146127135760405163acdc0d4960e01b815260040160405180910390fd5b60008281526000805160206151908339815191526020526040812080546000805160206151708339815191529284929161274e908490614ca1565b9091555050505050565b606060006127646137a2565b80519091506000816001600160401b03811115612783576127836143de565b6040519080825280602002602001820160405280156127ac578160200160208202803683370190505b5085516020870120909150600090815b8481101561287b5760006127e88783815181106127db576127db6149d0565b60200260200101516137cd565b509250505060005b8151811015612871578382828151811061280c5761280c6149d0565b6020026020010151805190602001200361286957878381518110612832576128326149d0565b602002602001015186868151811061284c5761284c6149d0565b60209081029190910101528461286181614c12565b955050612871565b6001016127f0565b50506001016127bc565b506000826001600160401b03811115612896576128966143de565b6040519080825280602002602001820160405280156128fb57816020015b6128e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816128b45790505b50905060005b8381101561299657600085828151811061291d5761291d6149d0565b60200260200101519050600080600080612936856137cd565b93509350935093506040518060a00160405280868152602001858152602001841515815260200183815260200182815250878781518110612979576129796149d0565b602002602001018190525050505050508080600101915050612901565b50979650505050505050565b606060006129ae613472565b6006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa1580156129fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a269190810190614cfe565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa158015612a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a969190614ad5565b905081516000148015612ab157506001600160a01b03811615155b15612b2b5760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015612b00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b289190810190614cfe565b91505b81516000612b3a826001614ca1565b6001600160401b03811115612b5157612b516143de565b604051908082528060200260200182016040528015612b7a578160200160208202803683370190505b50905060005b82811015612bd457848181518110612b9a57612b9a6149d0565b6020026020010151828281518110612bb457612bb46149d0565b6001600160a01b0390921660209283029190910190910152600101612b80565b5086818381518110612be857612be86149d0565b6001600160a01b03909216602092830291909101909101529695505050505050565b600080612c16836138ef565b806020019051810190612c299190614d91565b915091506000612c3761177a565b9050600080612c4461208a565b90506000612c506139c0565b905083821115612c6d5760009250612c68878761306b565b612c97565b8015612c8b5760009250612c8160016139ea565b612c68878761306b565b612c9484611799565b92505b6000612ca1613a28565b90508315612d65576000888152600080516020615190833981519152602052604081205490819003612ce657604051635894b54560e11b815260040160405180910390fd5b848114612d06576040516334a7a93d60e01b815260040160405180910390fd5b612d108286613a32565b6000612d1c898761226e565b90506000612d2a82886149bd565b90508015612d3e57612d3c8a82612386565b505b612d488b88613a52565b612d618b6040518060200160405280600081525061268b565b5050505b612d70866001613a8d565b612d7c81610e776121e8565b60405181906001600160a01b038816907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b57690600090a35050505050505050565b6000838152600080516020615130833981519152602052604090208054600080516020615110833981519152919060ff161515600103612e4e5760005b6004820154811015612e4c5783826004018281548110612e1b57612e1b6149d0565b906000526020600020015403612e44576040516301ab53df60e31b815260040160405180910390fd5b600101612df9565b505b81546001600160a01b0316612e6557612e65613aa7565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015612eae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ed69190810190614cfe565b825490915060ff16612f175781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b8151811015613007578260010160008681526020019081526020016000206040518060400160405280848481518110612f6c57612f6c6149d0565b60200260200101516001600160a01b0316815260200160006002811115612f9557612f95614692565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b836002811115612ff857612ff8614692565b02179055505050600101612f31565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e59061303d9033908a9089908790600401614dc0565b600060405180830381600087803b15801561305757600080fd5b505af1158015611bf2573d6000803e3d6000fd5b6000828152600080516020615190833981519152602052604090205480156109e3576130978382613a52565b6109e3610b61611e3d565b6130c660405180606001604052806060815260200160608152602001606081525090565b60008381526000805160206151308339815191526020526040812080546000805160206151108339815191529260ff9091161515900361311957604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015613169573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131919190810190614f5e565b979650505050505050565b60606131a6613472565b600c01805461068d90614973565b8082101561072d57604051636664d51760e11b815260040160405180910390fd5b806131de613472565b6003015550565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061321a90339089908890889060040161509b565b6020604051808303816000875af1925050508015613255575060408051601f3d908101601f19168201909252613252918101906150ce565b60015b6132b3573d808015613283576040519150601f19603f3d011682016040523d82523d6000602084013e613288565b606091505b5080516000036132ab576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60006132da611573565b548210801561071b5750600160e01b6132f1611573565b60008481526004919091016020526040902054161592915050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806133265750819003601f19909101908152919050565b6001600160a01b03811661337757604051630e88bf4b60e01b815260040160405180910390fd5b61337f612191565b6040516346fc05eb60e11b81526001600160a01b0383811660048301529190911690638df80bd690602401602060405180830381865afa1580156133c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133eb91906149e6565b610d3657604051630e88bf4b60e01b815260040160405180910390fd5b80613411613472565b60080180546001600160a01b0319166001600160a01b039290921691909117905550565b600061343f611573565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090565b60018160028111156134aa576134aa614692565b036134b85761072d82612c0a565b6000806134c4846138ef565b8060200190518101906134d79190614d91565b915091506134f4846040518060200160405280600081525061268b565b6134fe848361306b565b6040516001600160a01b038216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a250505050565b600081815260008051602061513083398151915260205260408120600080516020615110833981519152915b60048201548110156135b85781600101600083600401838154811061358b5761358b6149d0565b9060005260206000200154815260200190815260200160002060006135b091906141a5565b600101613564565b506135c76004820160006141c3565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610cbd60048301826141c3565b600061360f611573565b90506002810161361f8482614b3a565b506003810161362e8382614b3a565b50600090555050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613684576040519150601f19603f3d011682016040523d82523d6000602084013e613689565b606091505b50509050806109e35760405162461bcd60e51b815260206004820152601c60248201527f6e617469766520746f6b656e207472616e73666572206661696c6564000000006044820152606401610768565b816001600160a01b0316836001600160a01b0316031561142657306001600160a01b0384160361371857611e8e6001600160a01b0385168383613b5b565b6114266001600160a01b038516848484613bba565b600061271082111561378b5760405162461bcd60e51b815260206004820152602160248201527f426173697320706f696e74732063616e6e6f74206578636565642031305f30306044820152600360fc1b6064820152608401610768565b61271061379883856150f8565b6112dd9190614c2b565b60606107c27f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01613bf3565b60008181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360205260408120805460609291839182917f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd009161382f90614973565b80601f016020809104026020016040519081016040528092919081815260200182805461385b90614973565b80156138a85780601f1061387d576101008083540402835291602001916138a8565b820191906000526020600020905b81548152906001019060200180831161388b57829003601f168201915b50505060008981526003850160205260409020600181015493985060ff90931696506138da926002019150613c009050565b92506138e586613c0b565b9150509193509193565b60008181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040902080546060916000805160206151708339815191529161393a90614973565b80601f016020809104026020016040519081016040528092919081815260200182805461396690614973565b80156139b35780601f10613988576101008083540402835291602001916139b3565b820191906000526020600020905b81548152906001019060200180831161399657829003601f168201915b5050505050915050919050565b60007f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c00805482908290600090613a1f9084906149bd565b90915550505050565b60006139e4611573565b80613a3b613472565b600093845260090160205260409092209190915550565b60008281526000805160206151908339815191526020526040812080546000805160206151708339815191529284929161274e9084906149bd565b61072d828260405180602001604052806000815250613ce8565b6000805160206151108339815191526000613ac0613472565b60060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015613b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b3c9190614ad5565b82546001600160a01b0319166001600160a01b03919091161790915550565b6040516001600160a01b038381166024830152604482018390526109e391859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613d5e565b6040516001600160a01b0384811660248301528381166044830152606482018390526114269186918216906323b872dd90608401613b88565b606060006112dd83613dc1565b606061071b82613e1d565b60008181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360205260408120606091600490910190613c4a82613efa565b90506000816001600160401b03811115613c6657613c666143de565b604051908082528060200260200182016040528015613c8f578160200160208202803683370190505b50905060005b82811015613cdf576000613ca98583613f04565b905080838381518110613cbe57613cbe6149d0565b6001600160a01b039092166020928302919091019091015250600101613c95565b50949350505050565b613cf28383613f10565b6001600160a01b0383163b156109e3576000613d0c611573565b5490508281035b613d2660008683806001019450866131e5565b613d43576040516368d2bf6b60e11b815260040160405180910390fd5b818110613d135781613d53611573565b5414610cbd57600080fd5b6000613d736001600160a01b0384168361404b565b90508051600014158015613d98575080806020019051810190613d9691906149e6565b155b156109e357604051635274afe760e01b81526001600160a01b0384166004820152602401610768565b606081600001805480602002602001604051908101604052809291908181526020018280548015613e1157602002820191906000526020600020905b815481526020019060010190808311613dfd575b50505050509050919050565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015613eef578382906000526020600020018054613e6290614973565b80601f0160208091040260200160405190810160405280929190818152602001828054613e8e90614973565b8015613edb5780601f10613eb057610100808354040283529160200191613edb565b820191906000526020600020905b815481529060010190602001808311613ebe57829003601f168201915b505050505081526020019060010190613e43565b505050509050919050565b600061071b825490565b60006112dd8383614059565b6000613f1a611573565b5490506000829003613f3f5760405163b562e8dd60e01b815260040160405180910390fd5b680100000000000000018202613f53611573565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b1717613f8e611573565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461401857808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613fe0565b508160000361403957604051622e076360e81b815260040160405180910390fd5b80614042611573565b55506109e39050565b60606112dd83836000614083565b6000826000018281548110614070576140706149d0565b9060005260206000200154905092915050565b6060814710156140a85760405163cd78605960e01b8152306004820152602401610768565b600080856001600160a01b031684866040516140c49190614a03565b60006040518083038185875af1925050503d8060008114614101576040519150601f19603f3d011682016040523d82523d6000602084013e614106565b606091505b5091509150614116868383614120565b9695505050505050565b606082614135576141308261417c565b6112dd565b815115801561414c57506001600160a01b0384163b155b1561417557604051639996b31560e01b81526001600160a01b0385166004820152602401610768565b50806112dd565b80511561418c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825590600052602060002090810190610d3691906141e1565b5080546000825590600052602060002090810190610d369190614204565b5b808211156142005780546001600160a81b03191681556001016141e2565b5090565b5b808211156142005760008155600101614205565b60005b8381101561423457818101518382015260200161421c565b50506000910152565b60008151808452614255816020860160208601614219565b601f01601f19169290920160200192915050565b6020815260006112dd602083018461423d565b60006020828403121561428e57600080fd5b5035919050565b6001600160a01b0381168114610d3657600080fd5b80356142b581614295565b919050565b600080604083850312156142cd57600080fd5b82356142d881614295565b946020939093013593505050565b600080602083850312156142f957600080fd5b82356001600160401b038082111561431057600080fd5b818501915085601f83011261432457600080fd5b81358181111561433357600080fd5b86602082850101111561434557600080fd5b60209290920196919550909350505050565b60008060006060848603121561436c57600080fd5b833561437781614295565b9250602084013561438781614295565b929592945050506040919091013590565b60038110610d3657600080fd5b6000806000606084860312156143ba57600080fd5b833592506020840135915060408401356143d381614398565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715614417576144176143de565b60405290565b604051608081016001600160401b0381118282101715614417576144176143de565b604051606081016001600160401b0381118282101715614417576144176143de565b604080519081016001600160401b0381118282101715614417576144176143de565b604051601f8201601f191681016001600160401b03811182821017156144ab576144ab6143de565b604052919050565b60006001600160401b038311156144cc576144cc6143de565b6144df601f8401601f1916602001614483565b90508281528383830111156144f357600080fd5b828260208301376000602084830101529392505050565b600082601f83011261451b57600080fd5b6112dd838335602085016144b3565b6001600160401b0381168114610d3657600080fd5b80356142b58161452a565b6000806040838503121561455d57600080fd5b82356001600160401b038082111561457457600080fd5b90840190610120828703121561458957600080fd5b6145916143f4565b8235828111156145a057600080fd5b6145ac8882860161450a565b8252506020830135828111156145c157600080fd5b6145cd8882860161450a565b60208301525060408301356040820152606083013560608201526145f36080840161453f565b608082015261460460a084016142aa565b60a082015261461560c084016142aa565b60c082015260e083013560e082015261010091506146348284016142aa565b8282015280945050505061464a602084016142aa565b90509250929050565b60006020828403121561466557600080fd5b81356112dd81614295565b6000806040838503121561468357600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b60038110610d3657610d36614692565b60008151808452602080850194506020840160005b838110156147225781518051600681106146e9576146e9614692565b885280840151848901526040808201516001600160a01b03169089015260609081015190880152608090960195908201906001016146cd565b509495945050505050565b60008151808452602080850194506020840160005b838110156147225781518051614757816146a8565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101614742565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156147df57835180516147bd816146a8565b835285015160ff168583015292840192600192909201916040909101906147a8565b50838701519350601f199250828682030160408701526147ff81856146b8565b93505050604085015181858403016060860152614116838261472d565b8015158114610d3657600080fd5b6000806040838503121561483d57600080fd5b823561484881614295565b915060208301356148588161481c565b809150509250929050565b6000806000806080858703121561487957600080fd5b843561488481614295565b9350602085013561489481614295565b92506040850135915060608501356001600160401b038111156148b657600080fd5b8501601f810187136148c757600080fd5b6148d6878235602084016144b3565b91505092959194509250565b600080604083850312156148f557600080fd5b82356001600160401b038082111561490c57600080fd5b6149188683870161450a565b9350602085013591508082111561492e57600080fd5b5061493b8582860161450a565b9150509250929050565b6000806040838503121561495857600080fd5b823561496381614295565b9150602083013561485881614295565b600181811c9082168061498757607f821691505b60208210810361191457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561071b5761071b6149a7565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156149f857600080fd5b81516112dd8161481c565b60008251614a15818460208701614219565b9190910192915050565b805160208083015191908110156119145760001960209190910360031b1b16919050565b60008151808452602080850194506020840160005b838110156147225781516001600160a01b031687529582019590820190600101614a58565b838152606060208201526000614a966060830185614a43565b9050826040830152949350505050565b60008351614ab8818460208801614219565b835190830190614acc818360208801614219565b01949350505050565b600060208284031215614ae757600080fd5b81516112dd81614295565b601f8211156109e3576000816000526020600020601f850160051c81016020861015614b1b5750805b601f850160051c820191505b818110156109c057828155600101614b27565b81516001600160401b03811115614b5357614b536143de565b614b6781614b618454614973565b84614af2565b602080601f831160018114614b9c5760008415614b845750858301515b600019600386901b1c1916600185901b1785556109c0565b600085815260208120601f198616915b82811015614bcb57888601518255948401946001909101908401614bac565b5085821015614be95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215614c0b57600080fd5b5051919050565b600060018201614c2457614c246149a7565b5060010190565b600082614c4857634e487b7160e01b600052601260045260246000fd5b500490565b60208101614c5a836146a8565b91905290565b600060208284031215614c7257600080fd5b81516112dd8161452a565b600060208284031215614c8f57600080fd5b815161ffff811681146112dd57600080fd5b8082018082111561071b5761071b6149a7565b6001600160401b03818116838216019080821115614cd457614cd46149a7565b5092915050565b60006001600160401b03821115614cf457614cf46143de565b5060051b60200190565b60006020808385031215614d1157600080fd5b82516001600160401b03811115614d2757600080fd5b8301601f81018513614d3857600080fd5b8051614d4b614d4682614cdb565b614483565b81815260059190911b82018301908381019087831115614d6a57600080fd5b928401925b82841015613191578351614d8281614295565b82529284019290840190614d6f565b60008060408385031215614da457600080fd5b8251614daf81614295565b602084015190925061485881614295565b60018060a01b03851681528360208201528260408201526080606082015260006141166080830184614a43565b805160ff811681146142b557600080fd5b600082601f830112614e0f57600080fd5b81516020614e1f614d4683614cdb565b82815260079290921b84018101918181019086841115614e3e57600080fd5b8286015b84811015614ea85760808189031215614e5b5760008081fd5b614e6361441d565b815160068110614e735760008081fd5b81528185015185820152604080830151614e8c81614295565b9082015260608281015190820152835291830191608001614e42565b509695505050505050565b600082601f830112614ec457600080fd5b81516020614ed4614d4683614cdb565b82815260609283028501820192828201919087851115614ef357600080fd5b8387015b85811015614f515781818a031215614f0f5760008081fd5b614f1761443f565b8151614f2281614398565b8152614f2f828701614ded565b868201526040614f40818401614ded565b908201528452928401928101614ef7565b5090979650505050505050565b60006020808385031215614f7157600080fd5b82516001600160401b0380821115614f8857600080fd5b9084019060608287031215614f9c57600080fd5b614fa461443f565b825182811115614fb357600080fd5b8301601f81018813614fc457600080fd5b8051614fd2614d4682614cdb565b81815260069190911b8201860190868101908a831115614ff157600080fd5b928701925b82841015615045576040848c03121561500f5760008081fd5b615017614461565b845161502281614398565b815261502f858a01614ded565b818a015282526040939093019290870190614ff6565b8452505050828401518281111561505b57600080fd5b61506788828601614dfe565b8583015250604083015193508184111561508057600080fd5b61508c87858501614eb3565b60408201529695505050505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906141169083018461423d565b6000602082840312156150e057600080fd5b81516001600160e01b0319811681146112dd57600080fd5b808202811582820484141761071b5761071b6149a756fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0154f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0034516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0034516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e01","sourceMap":"1432:11491:207:-:0;;;;;;;;;;;;-1:-1:-1;378:22:67;:20;:22::i;:::-;1432:11491:207;;1653:314:82;296:66:83;1779:14:82;;;;;;;1775:62;;;1802:35;;-1:-1:-1;;;1802:35:82;;;;;;;;;;;1775:62;1848:9;;1860:16;1848:9;;;:28;1844:119;;;1886:28;;-1:-1:-1;;1886:28:82;1898:16;1886:28;;;;;1927:29;;158:42:398;;;1927:29:82;;146:2:398;131:18;1927:29:82;;;;;;;1844:119;1694:273;1653:314::o;14:192:398:-;1432:11491:207;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061020f5760003560e01c806370a082311161011857806395d89b41116100a0578063c87b56dd1161006f578063c87b56dd146105d0578063d2f01f19146105f0578063df9a9fe614610610578063e847abdd14610630578063e985e9c51461064557600080fd5b806395d89b411461056857806397fb7c1e1461057d578063a22cb4651461059d578063b88d4fde146105bd57600080fd5b80638120f0ba116100e75780638120f0ba146104d15780638c625b06146104fe57806392c399ff1461051157806393b13cb71461053e57806395d600c81461055357600080fd5b806370a082311461046957806379dda585146104895780637adc9cbe1461049e5780637c9669ac146104be57600080fd5b80634739e8051161019b5780635becd24a1161016a5780635becd24a146103df5780636352211e146103ff578063657e45e81461041f57806369d5f38a14610434578063706b8e091461045457600080fd5b80634739e8051461035f5780634c2abfbe1461037f57806351cff8d91461039f5780635803909f146103bf57600080fd5b80631278076a116101e25780631278076a146102ac57806317c95709146102cf57806318160ddd1461032457806323b872dd1461033957806342842e0e1461034c57600080fd5b806306fdde0314610214578063081812fc1461023f578063095ea7b3146102775780630ef1be5f1461028c575b600080fd5b34801561022057600080fd5b50610229610675565b6040516102369190614269565b60405180910390f35b34801561024b57600080fd5b5061025f61025a36600461427c565b610710565b6040516001600160a01b039091168152602001610236565b61028a6102853660046142ba565b610721565b005b34801561029857600080fd5b5061028a6102a73660046142e6565b610731565b3480156102b857600080fd5b506102c16107b0565b604051908152602001610236565b3480156102db57600080fd5b506102c16102ea36600461427c565b60009081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b031690565b34801561033057600080fd5b506102c16107c7565b61028a610347366004614357565b6107d1565b61028a61035a366004614357565b6109c8565b34801561036b57600080fd5b5061028a61037a3660046143a5565b6109e8565b34801561038b57600080fd5b5061028a61039a36600461454a565b610a51565b3480156103ab57600080fd5b5061028a6103ba366004614653565b610ac7565b3480156103cb57600080fd5b506102c16103da36600461427c565b610b69565b3480156103eb57600080fd5b5061028a6103fa36600461427c565b610b7c565b34801561040b57600080fd5b5061025f61041a36600461427c565b610c01565b34801561042b57600080fd5b5061025f610c0c565b34801561044057600080fd5b5061028a61044f36600461427c565b610c16565b34801561046057600080fd5b506102c1610cc4565b34801561047557600080fd5b506102c1610484366004614653565b610cce565b34801561049557600080fd5b5061025f610cd9565b3480156104aa57600080fd5b5061028a6104b9366004614653565b610ce3565b61028a6104cc36600461427c565b610d39565b3480156104dd57600080fd5b506104e6610e96565b6040516001600160401b039091168152602001610236565b61028a61050c366004614653565b610ea0565b34801561051d57600080fd5b5061053161052c366004614670565b6112af565b6040516102369190614783565b34801561054a57600080fd5b506102296112e4565b34801561055f57600080fd5b506102c16112ee565b34801561057457600080fd5b506102296112f8565b34801561058957600080fd5b5061028a61059836600461427c565b611310565b3480156105a957600080fd5b5061028a6105b836600461482a565b611365565b61028a6105cb366004614863565b6113e2565b3480156105dc57600080fd5b506102296105eb36600461427c565b61142c565b3480156105fc57600080fd5b5061028a61060b3660046148e2565b6114bc565b34801561061c57600080fd5b5061028a61062b366004614653565b611510565b34801561063c57600080fd5b5061025f61155d565b34801561065157600080fd5b50610665610660366004614945565b611567565b6040519015158152602001610236565b606061067f611573565b600201805461068d90614973565b80601f01602080910402602001604051908101604052809291908181526020018280546106b990614973565b80156107065780601f106106db57610100808354040283529160200191610706565b820191906000526020600020905b8154815290600101906020018083116106e957829003601f168201915b5050505050905090565b600061071b82611597565b92915050565b61072d828260016115e4565b5050565b610739611699565b6001600160a01b0316336001600160a01b031614610771576040516365f4906560e01b81523360048201526024015b60405180910390fd5b61072d82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061176392505050565b60006107c26107bd61177a565b611799565b905090565b60006107c261177a565b60006107dc82611899565b9050836001600160a01b0316816001600160a01b03161461080f5760405162a1148160e81b815260040160405180910390fd5b60008061081b84611934565b91509150610840818761082b3390565b6001600160a01b039081169116811491141790565b61086b5761084e8633611567565b61086b57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661089257604051633a954ecd60e21b815260040160405180910390fd5b801561089d57600082555b6108a5611573565b6001600160a01b03871660009081526005919091016020526040902080546000190190556108d1611573565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b17610908611573565b60008681526004919091016020526040812091909155600160e11b8416900361097e5760018401610937611573565b60008281526004919091016020526040812054900361097c57610958611573565b54811461097c5783610968611573565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6109e3838383604051806020016040528060008152506113e2565b505050565b60026000805160206151508339815191525403610a1857604051635db5c7cd60e11b815260040160405180910390fd5b610a2f600260008051602061515083398151915255565b610a3a83838361195c565b6109e3600160008051602061515083398151915255565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610a9b57604051630ef4733760e31b815260040160405180910390fd5b610aab6322fa1fe560e21b611bff565b610ab58282611cdd565b61072d82600001518360200151611e00565b610acf611699565b6001600160a01b0316336001600160a01b031614610b02576040516365f4906560e01b8152336004820152602401610768565b6001600160a01b038116610b2957604051635fbd571760e01b815260040160405180910390fd5b6000610b33611e2a565b905080600003610b5657604051635894b54560e11b815260040160405180910390fd5b61072d610b61611e3d565b308484611e59565b600061071b82610b7761177a565b611e9f565b610b84611699565b6001600160a01b0316336001600160a01b031614610bb7576040516365f4906560e01b8152336004820152602401610768565b6000610bc1611ee5565b90508015801590610bd157508082115b15610bef5760405163c3983b9160e01b815260040160405180910390fd5b610bf882611ef8565b61072d82611f9d565b600061071b82611899565b60006107c2611e3d565b610c1e611699565b6001600160a01b0316336001600160a01b031614610c51576040516365f4906560e01b8152336004820152602401610768565b610c5a81611fe0565b610c6261206e565b6001600160a01b03166391b7f5ed826040518263ffffffff1660e01b8152600401610c8f91815260200190565b600060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b5050505050565b60006107c261208a565b600061071b82612129565b60006107c2612191565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610d2d57604051630ef4733760e31b815260040160405180910390fd5b610d36816121ad565b50565b60026000805160206151508339815191525403610d6957604051635db5c7cd60e11b815260040160405180910390fd5b610d80600260008051602061515083398151915255565b6000610d8b82610c01565b90506001600160a01b038116610db457604051635fbd571760e01b815260040160405180910390fd5b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b0316610df36121e8565b6001600160401b0316610e0642836149bd565b10610e245760405163dce9a1d360e01b815260040160405180910390fd5b6000610e3284610b7761177a565b90508015610e6b576000610e46848361226e565b90506000610e5482846149bd565b90508015610e6857610e668582612386565b505b50505b610e7c84610e776121e8565b612524565b505050610d36600160008051602061515083398151915255565b60006107c26121e8565b60026000805160206151508339815191525403610ed057604051635db5c7cd60e11b815260040160405180910390fd5b610ee7600260008051602061515083398151915255565b610ef0816125ed565b60405133606081901b6bffffffffffffffffffffffff19166020830152436034830152906000906054016040516020818303038152906040528051906020012090506000610fb282610f868486610f4687612656565b604080516020808201959095526001600160a01b039390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9050610ff4818486604051602001610fe09291906001600160a01b0392831681529116602082015260400190565b60405160208183030381529060405261268b565b34156110045761100481346126d2565b6000611030604051806040016040528060098152602001684a6f696e537061636560b81b815250612758565b90506000806000611040336129a2565b845190915060005b81811015611220576000868281518110611064576110646149d0565b6020026020010151905080604001516112175760005b8160800151518110156112155760008260800151828151811061109f5761109f6149d0565b60200260200101519050806001600160a01b0316632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110b91906149e6565b6111f457806001600160a01b0316630cf0b5336000801b88604051806040016040528060098152602001684a6f696e537061636560b81b8152506040516020016111559190614a03565b60405160208183030381529060405261116d90614a1f565b6040518463ffffffff1660e01b815260040161118b93929190614a7d565b602060405180830381865afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc91906149e6565b156111eb576111da8a612c0a565b505050505050505050505050611298565b6001965061120c565b6112038a828560000151612dbc565b60009650600197505b5060010161107a565b505b50600101611048565b508315801561122c5750825b1561128f5761124a866040518060200160405280600081525061268b565b341561125a5761125a868961306b565b6040516001600160a01b038a16907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a25b50505050505050505b610d36600160008051602061515083398151915255565b6112d360405180606001604052806060815260200160608152602001606081525090565b6112dd83836130a2565b9392505050565b60606107c261319c565b60006107c2611ee5565b6060611302611573565b600301805461068d90614973565b611318611699565b6001600160a01b0316336001600160a01b03161461134b576040516365f4906560e01b8152336004820152602401610768565b61135c8161135761177a565b6131b4565b610d36816131d5565b8061136e611573565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6113ed8484846107d1565b6001600160a01b0383163b1561142657611409848484846131e5565b611426576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6060611437826132d0565b61145457604051630a14c4b560e41b815260040160405180910390fd5b600061146b60408051602081019091526000815290565b9050805160000361148b57604051806020016040528060008152506112dd565b806114958461330c565b6040516020016114a6929190614aa6565b6040516020818303038152906040529392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661150657604051630ef4733760e31b815260040160405180910390fd5b61072d8282611e00565b611518611699565b6001600160a01b0316336001600160a01b03161461154b576040516365f4906560e01b8152336004820152602401610768565b61155481613350565b610d3681613408565b60006107c261206e565b60006112dd8383613435565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090565b60006115a2826132d0565b6115bf576040516333d1c03960e21b815260040160405180910390fd5b6115c7611573565b60009283526006016020525060409020546001600160a01b031690565b60006115ef83610c01565b9050811561162e57336001600160a01b0382161461162e576116118133613435565b61162e576040516367d9dca160e11b815260040160405180910390fd5b83611637611573565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015611739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614ad5565b91505090565b8061176c613472565b600c019061072d9082614b3a565b600080611785611573565b60010154611791611573565b540303919050565b6000806117a4613472565b905060006117b061208a565b60088301549091506001600160a01b031615611844576008820154604051635cf4ee9160e01b815260048101839052602481018690526001600160a01b0390911690635cf4ee9190604401602060405180830381865afa158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183c9190614bf9565b949350505050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611818573d6000803e3d6000fd5b6000806118a4611573565b60008481526004820160205260408120549350909150600160e01b8316900361191a578160000361191457805483106118f057604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156118f1575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b6000806000611941611573565b60009485526006016020525050604090912080549092909150565b6000838152600080516020615130833981519152602052604090208054600080516020615110833981519152919061010090046001600160a01b031615806119a65750805460ff16155b156119c457604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff16156119f657604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b81811015611b345760008981526001870160205260408120805483908110611a3757611a376149d0565b60009182526020909120018054909150336001600160a01b0390911603611ac35760008154600160a01b900460ff166002811115611a7757611a77614692565b14611a95576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b836002811115611ab957611ab9614692565b0217905550600195505b60018154600160a01b900460ff166002811115611ae257611ae2614692565b03611af95784611af181614c12565b955050611b2b565b60028154600160a01b900460ff166002811115611b1857611b18614692565b03611b2b5783611b2781614c12565b9450505b50600101611a0d565b5083611b5357604051638223a7e960e01b815260040160405180910390fd5b611b5e600282614c2b565b831180611b745750611b71600282614c2b565b82115b15611bf45760008881526002860160205260408120805460ff19166001179055828411611ba2576002611ba5565b60015b9050611bb18a82613496565b897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051611be19190614c4d565b60405180910390a2611bf28a613538565b505b505050505050505050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114611c8c576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055611ca5565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b6000611ce7613472565b6006810180546001600160a01b038086166001600160a01b031992831617909255610100860151600884018054919093169082161790915560048201805490911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1790556060840151600382015560e08401516007820181905590915015611d6b57611d6b8360e00151611ef8565b611d79836101000151613350565b6040830151156109e357611d908360400151611fe0565b600881015460408085015190516391b7f5ed60e01b81526001600160a01b03909216916391b7f5ed91611dc99160040190815260200190565b600060405180830381600087803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b50505050505050565b611e106380ac58cd60e01b611bff565b611e20635b5e139f60e01b611bff565b61072d8282613605565b6000611e34613472565b600a0154905090565b6000611e47613472565b600401546001600160a01b0316919050565b80156114265773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03851601611e9357611e8e8282613637565b611426565b611426848484846136da565b600080611eaa613472565b600085815260098201602052604090205490915015611edc57600084815260099091016020526040902054905061071b565b61183c83611799565b6000611eef613472565b60030154905090565b6000611f02613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7d9190614bf9565b82111561072d5760405163c3983b9160e01b815260040160405180910390fd5b6000611fa7613472565b6007810183905560405190915082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f90600090a25050565b6000611fea612191565b6001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204b9190614bf9565b90508082101561072d57604051631a23d64760e11b815260040160405180910390fd5b6000612078613472565b600801546001600160a01b0316919050565b600080612095613472565b600781015490915080156120a95792915050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190614bf9565b9250505090565b60006001600160a01b038216612152576040516323d3ad8160e21b815260040160405180910390fd5b6001600160401b03612162611573565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b600061219b613472565b600601546001600160a01b0316919050565b6121bd636afd38fd60e11b611bff565b60008051602061511083398151915280546001600160a01b0319166001600160a01b03831617905550565b6000806121f3613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614c60565b600080612279613472565b6006810154600480830154604080516301332c8360e61b815290519495506001600160a01b039384169493909116926000928592634ccb20c092818301926020928290030181865afa1580156122d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f79190614ad5565b90506000836001600160a01b0316639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235d9190614c7d565b905061236d878261ffff1661372d565b955061237b83898489611e59565b505050505092915050565b600080612391613472565b9050600061239d611e3d565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038216016123e8578382600a0160008282546123d89190614ca1565b9091555084935061071b92505050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190614bf9565b905061246383883089611e59565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156124aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ce9190614bf9565b905060006124dc83836149bd565b90508781146124fe57604051635894b54560e11b815260040160405180910390fd5b8086600a0160008282546125129190614ca1565b90915550909998505050505050505050565b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce006020819052604082205490916001600160401b039091169081810361257a576125738442614cb4565b9050612587565b6125848483614cb4565b90505b60008581526020848152604091829020805467ffffffffffffffff19166001600160401b038516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b6001600160a01b03811661261457604051635fbd571760e01b815260040160405180910390fd5b61261c611ee5565b15801590612638575061262d611ee5565b61263561177a565b10155b15610d3657604051637efcdb4960e01b815260040160405180910390fd5b60008181526000805160206151708339815191526020819052604082208054908361268083614c12565b909155509392505050565b60008281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0260205260409020600080516020615170833981519152906114268382614b3a565b806000036126f35760405163acdc0d4960e01b815260040160405180910390fd5b8034146127135760405163acdc0d4960e01b815260040160405180910390fd5b60008281526000805160206151908339815191526020526040812080546000805160206151708339815191529284929161274e908490614ca1565b9091555050505050565b606060006127646137a2565b80519091506000816001600160401b03811115612783576127836143de565b6040519080825280602002602001820160405280156127ac578160200160208202803683370190505b5085516020870120909150600090815b8481101561287b5760006127e88783815181106127db576127db6149d0565b60200260200101516137cd565b509250505060005b8151811015612871578382828151811061280c5761280c6149d0565b6020026020010151805190602001200361286957878381518110612832576128326149d0565b602002602001015186868151811061284c5761284c6149d0565b60209081029190910101528461286181614c12565b955050612871565b6001016127f0565b50506001016127bc565b506000826001600160401b03811115612896576128966143de565b6040519080825280602002602001820160405280156128fb57816020015b6128e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816128b45790505b50905060005b8381101561299657600085828151811061291d5761291d6149d0565b60200260200101519050600080600080612936856137cd565b93509350935093506040518060a00160405280868152602001858152602001841515815260200183815260200182815250878781518110612979576129796149d0565b602002602001018190525050505050508080600101915050612901565b50979650505050505050565b606060006129ae613472565b6006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa1580156129fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a269190810190614cfe565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa158015612a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a969190614ad5565b905081516000148015612ab157506001600160a01b03811615155b15612b2b5760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015612b00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b289190810190614cfe565b91505b81516000612b3a826001614ca1565b6001600160401b03811115612b5157612b516143de565b604051908082528060200260200182016040528015612b7a578160200160208202803683370190505b50905060005b82811015612bd457848181518110612b9a57612b9a6149d0565b6020026020010151828281518110612bb457612bb46149d0565b6001600160a01b0390921660209283029190910190910152600101612b80565b5086818381518110612be857612be86149d0565b6001600160a01b03909216602092830291909101909101529695505050505050565b600080612c16836138ef565b806020019051810190612c299190614d91565b915091506000612c3761177a565b9050600080612c4461208a565b90506000612c506139c0565b905083821115612c6d5760009250612c68878761306b565b612c97565b8015612c8b5760009250612c8160016139ea565b612c68878761306b565b612c9484611799565b92505b6000612ca1613a28565b90508315612d65576000888152600080516020615190833981519152602052604081205490819003612ce657604051635894b54560e11b815260040160405180910390fd5b848114612d06576040516334a7a93d60e01b815260040160405180910390fd5b612d108286613a32565b6000612d1c898761226e565b90506000612d2a82886149bd565b90508015612d3e57612d3c8a82612386565b505b612d488b88613a52565b612d618b6040518060200160405280600081525061268b565b5050505b612d70866001613a8d565b612d7c81610e776121e8565b60405181906001600160a01b038816907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b57690600090a35050505050505050565b6000838152600080516020615130833981519152602052604090208054600080516020615110833981519152919060ff161515600103612e4e5760005b6004820154811015612e4c5783826004018281548110612e1b57612e1b6149d0565b906000526020600020015403612e44576040516301ab53df60e31b815260040160405180910390fd5b600101612df9565b505b81546001600160a01b0316612e6557612e65613aa7565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015612eae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ed69190810190614cfe565b825490915060ff16612f175781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b8151811015613007578260010160008681526020019081526020016000206040518060400160405280848481518110612f6c57612f6c6149d0565b60200260200101516001600160a01b0316815260200160006002811115612f9557612f95614692565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b836002811115612ff857612ff8614692565b02179055505050600101612f31565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e59061303d9033908a9089908790600401614dc0565b600060405180830381600087803b15801561305757600080fd5b505af1158015611bf2573d6000803e3d6000fd5b6000828152600080516020615190833981519152602052604090205480156109e3576130978382613a52565b6109e3610b61611e3d565b6130c660405180606001604052806060815260200160608152602001606081525090565b60008381526000805160206151308339815191526020526040812080546000805160206151108339815191529260ff9091161515900361311957604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015613169573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131919190810190614f5e565b979650505050505050565b60606131a6613472565b600c01805461068d90614973565b8082101561072d57604051636664d51760e11b815260040160405180910390fd5b806131de613472565b6003015550565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061321a90339089908890889060040161509b565b6020604051808303816000875af1925050508015613255575060408051601f3d908101601f19168201909252613252918101906150ce565b60015b6132b3573d808015613283576040519150601f19603f3d011682016040523d82523d6000602084013e613288565b606091505b5080516000036132ab576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60006132da611573565b548210801561071b5750600160e01b6132f1611573565b60008481526004919091016020526040902054161592915050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806133265750819003601f19909101908152919050565b6001600160a01b03811661337757604051630e88bf4b60e01b815260040160405180910390fd5b61337f612191565b6040516346fc05eb60e11b81526001600160a01b0383811660048301529190911690638df80bd690602401602060405180830381865afa1580156133c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133eb91906149e6565b610d3657604051630e88bf4b60e01b815260040160405180910390fd5b80613411613472565b60080180546001600160a01b0319166001600160a01b039290921691909117905550565b600061343f611573565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090565b60018160028111156134aa576134aa614692565b036134b85761072d82612c0a565b6000806134c4846138ef565b8060200190518101906134d79190614d91565b915091506134f4846040518060200160405280600081525061268b565b6134fe848361306b565b6040516001600160a01b038216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a250505050565b600081815260008051602061513083398151915260205260408120600080516020615110833981519152915b60048201548110156135b85781600101600083600401838154811061358b5761358b6149d0565b9060005260206000200154815260200190815260200160002060006135b091906141a5565b600101613564565b506135c76004820160006141c3565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610cbd60048301826141c3565b600061360f611573565b90506002810161361f8482614b3a565b506003810161362e8382614b3a565b50600090555050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613684576040519150601f19603f3d011682016040523d82523d6000602084013e613689565b606091505b50509050806109e35760405162461bcd60e51b815260206004820152601c60248201527f6e617469766520746f6b656e207472616e73666572206661696c6564000000006044820152606401610768565b816001600160a01b0316836001600160a01b0316031561142657306001600160a01b0384160361371857611e8e6001600160a01b0385168383613b5b565b6114266001600160a01b038516848484613bba565b600061271082111561378b5760405162461bcd60e51b815260206004820152602160248201527f426173697320706f696e74732063616e6e6f74206578636565642031305f30306044820152600360fc1b6064820152608401610768565b61271061379883856150f8565b6112dd9190614c2b565b60606107c27f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01613bf3565b60008181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360205260408120805460609291839182917f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd009161382f90614973565b80601f016020809104026020016040519081016040528092919081815260200182805461385b90614973565b80156138a85780601f1061387d576101008083540402835291602001916138a8565b820191906000526020600020905b81548152906001019060200180831161388b57829003601f168201915b50505060008981526003850160205260409020600181015493985060ff90931696506138da926002019150613c009050565b92506138e586613c0b565b9150509193509193565b60008181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040902080546060916000805160206151708339815191529161393a90614973565b80601f016020809104026020016040519081016040528092919081815260200182805461396690614973565b80156139b35780601f10613988576101008083540402835291602001916139b3565b820191906000526020600020905b81548152906001019060200180831161399657829003601f168201915b5050505050915050919050565b60007f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c00805482908290600090613a1f9084906149bd565b90915550505050565b60006139e4611573565b80613a3b613472565b600093845260090160205260409092209190915550565b60008281526000805160206151908339815191526020526040812080546000805160206151708339815191529284929161274e9084906149bd565b61072d828260405180602001604052806000815250613ce8565b6000805160206151108339815191526000613ac0613472565b60060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015613b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b3c9190614ad5565b82546001600160a01b0319166001600160a01b03919091161790915550565b6040516001600160a01b038381166024830152604482018390526109e391859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613d5e565b6040516001600160a01b0384811660248301528381166044830152606482018390526114269186918216906323b872dd90608401613b88565b606060006112dd83613dc1565b606061071b82613e1d565b60008181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360205260408120606091600490910190613c4a82613efa565b90506000816001600160401b03811115613c6657613c666143de565b604051908082528060200260200182016040528015613c8f578160200160208202803683370190505b50905060005b82811015613cdf576000613ca98583613f04565b905080838381518110613cbe57613cbe6149d0565b6001600160a01b039092166020928302919091019091015250600101613c95565b50949350505050565b613cf28383613f10565b6001600160a01b0383163b156109e3576000613d0c611573565b5490508281035b613d2660008683806001019450866131e5565b613d43576040516368d2bf6b60e11b815260040160405180910390fd5b818110613d135781613d53611573565b5414610cbd57600080fd5b6000613d736001600160a01b0384168361404b565b90508051600014158015613d98575080806020019051810190613d9691906149e6565b155b156109e357604051635274afe760e01b81526001600160a01b0384166004820152602401610768565b606081600001805480602002602001604051908101604052809291908181526020018280548015613e1157602002820191906000526020600020905b815481526020019060010190808311613dfd575b50505050509050919050565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015613eef578382906000526020600020018054613e6290614973565b80601f0160208091040260200160405190810160405280929190818152602001828054613e8e90614973565b8015613edb5780601f10613eb057610100808354040283529160200191613edb565b820191906000526020600020905b815481529060010190602001808311613ebe57829003601f168201915b505050505081526020019060010190613e43565b505050509050919050565b600061071b825490565b60006112dd8383614059565b6000613f1a611573565b5490506000829003613f3f5760405163b562e8dd60e01b815260040160405180910390fd5b680100000000000000018202613f53611573565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b1717613f8e611573565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461401857808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613fe0565b508160000361403957604051622e076360e81b815260040160405180910390fd5b80614042611573565b55506109e39050565b60606112dd83836000614083565b6000826000018281548110614070576140706149d0565b9060005260206000200154905092915050565b6060814710156140a85760405163cd78605960e01b8152306004820152602401610768565b600080856001600160a01b031684866040516140c49190614a03565b60006040518083038185875af1925050503d8060008114614101576040519150601f19603f3d011682016040523d82523d6000602084013e614106565b606091505b5091509150614116868383614120565b9695505050505050565b606082614135576141308261417c565b6112dd565b815115801561414c57506001600160a01b0384163b155b1561417557604051639996b31560e01b81526001600160a01b0385166004820152602401610768565b50806112dd565b80511561418c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825590600052602060002090810190610d3691906141e1565b5080546000825590600052602060002090810190610d369190614204565b5b808211156142005780546001600160a81b03191681556001016141e2565b5090565b5b808211156142005760008155600101614205565b60005b8381101561423457818101518382015260200161421c565b50506000910152565b60008151808452614255816020860160208601614219565b601f01601f19169290920160200192915050565b6020815260006112dd602083018461423d565b60006020828403121561428e57600080fd5b5035919050565b6001600160a01b0381168114610d3657600080fd5b80356142b581614295565b919050565b600080604083850312156142cd57600080fd5b82356142d881614295565b946020939093013593505050565b600080602083850312156142f957600080fd5b82356001600160401b038082111561431057600080fd5b818501915085601f83011261432457600080fd5b81358181111561433357600080fd5b86602082850101111561434557600080fd5b60209290920196919550909350505050565b60008060006060848603121561436c57600080fd5b833561437781614295565b9250602084013561438781614295565b929592945050506040919091013590565b60038110610d3657600080fd5b6000806000606084860312156143ba57600080fd5b833592506020840135915060408401356143d381614398565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715614417576144176143de565b60405290565b604051608081016001600160401b0381118282101715614417576144176143de565b604051606081016001600160401b0381118282101715614417576144176143de565b604080519081016001600160401b0381118282101715614417576144176143de565b604051601f8201601f191681016001600160401b03811182821017156144ab576144ab6143de565b604052919050565b60006001600160401b038311156144cc576144cc6143de565b6144df601f8401601f1916602001614483565b90508281528383830111156144f357600080fd5b828260208301376000602084830101529392505050565b600082601f83011261451b57600080fd5b6112dd838335602085016144b3565b6001600160401b0381168114610d3657600080fd5b80356142b58161452a565b6000806040838503121561455d57600080fd5b82356001600160401b038082111561457457600080fd5b90840190610120828703121561458957600080fd5b6145916143f4565b8235828111156145a057600080fd5b6145ac8882860161450a565b8252506020830135828111156145c157600080fd5b6145cd8882860161450a565b60208301525060408301356040820152606083013560608201526145f36080840161453f565b608082015261460460a084016142aa565b60a082015261461560c084016142aa565b60c082015260e083013560e082015261010091506146348284016142aa565b8282015280945050505061464a602084016142aa565b90509250929050565b60006020828403121561466557600080fd5b81356112dd81614295565b6000806040838503121561468357600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b60038110610d3657610d36614692565b60008151808452602080850194506020840160005b838110156147225781518051600681106146e9576146e9614692565b885280840151848901526040808201516001600160a01b03169089015260609081015190880152608090960195908201906001016146cd565b509495945050505050565b60008151808452602080850194506020840160005b838110156147225781518051614757816146a8565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101614742565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156147df57835180516147bd816146a8565b835285015160ff168583015292840192600192909201916040909101906147a8565b50838701519350601f199250828682030160408701526147ff81856146b8565b93505050604085015181858403016060860152614116838261472d565b8015158114610d3657600080fd5b6000806040838503121561483d57600080fd5b823561484881614295565b915060208301356148588161481c565b809150509250929050565b6000806000806080858703121561487957600080fd5b843561488481614295565b9350602085013561489481614295565b92506040850135915060608501356001600160401b038111156148b657600080fd5b8501601f810187136148c757600080fd5b6148d6878235602084016144b3565b91505092959194509250565b600080604083850312156148f557600080fd5b82356001600160401b038082111561490c57600080fd5b6149188683870161450a565b9350602085013591508082111561492e57600080fd5b5061493b8582860161450a565b9150509250929050565b6000806040838503121561495857600080fd5b823561496381614295565b9150602083013561485881614295565b600181811c9082168061498757607f821691505b60208210810361191457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561071b5761071b6149a7565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156149f857600080fd5b81516112dd8161481c565b60008251614a15818460208701614219565b9190910192915050565b805160208083015191908110156119145760001960209190910360031b1b16919050565b60008151808452602080850194506020840160005b838110156147225781516001600160a01b031687529582019590820190600101614a58565b838152606060208201526000614a966060830185614a43565b9050826040830152949350505050565b60008351614ab8818460208801614219565b835190830190614acc818360208801614219565b01949350505050565b600060208284031215614ae757600080fd5b81516112dd81614295565b601f8211156109e3576000816000526020600020601f850160051c81016020861015614b1b5750805b601f850160051c820191505b818110156109c057828155600101614b27565b81516001600160401b03811115614b5357614b536143de565b614b6781614b618454614973565b84614af2565b602080601f831160018114614b9c5760008415614b845750858301515b600019600386901b1c1916600185901b1785556109c0565b600085815260208120601f198616915b82811015614bcb57888601518255948401946001909101908401614bac565b5085821015614be95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215614c0b57600080fd5b5051919050565b600060018201614c2457614c246149a7565b5060010190565b600082614c4857634e487b7160e01b600052601260045260246000fd5b500490565b60208101614c5a836146a8565b91905290565b600060208284031215614c7257600080fd5b81516112dd8161452a565b600060208284031215614c8f57600080fd5b815161ffff811681146112dd57600080fd5b8082018082111561071b5761071b6149a7565b6001600160401b03818116838216019080821115614cd457614cd46149a7565b5092915050565b60006001600160401b03821115614cf457614cf46143de565b5060051b60200190565b60006020808385031215614d1157600080fd5b82516001600160401b03811115614d2757600080fd5b8301601f81018513614d3857600080fd5b8051614d4b614d4682614cdb565b614483565b81815260059190911b82018301908381019087831115614d6a57600080fd5b928401925b82841015613191578351614d8281614295565b82529284019290840190614d6f565b60008060408385031215614da457600080fd5b8251614daf81614295565b602084015190925061485881614295565b60018060a01b03851681528360208201528260408201526080606082015260006141166080830184614a43565b805160ff811681146142b557600080fd5b600082601f830112614e0f57600080fd5b81516020614e1f614d4683614cdb565b82815260079290921b84018101918181019086841115614e3e57600080fd5b8286015b84811015614ea85760808189031215614e5b5760008081fd5b614e6361441d565b815160068110614e735760008081fd5b81528185015185820152604080830151614e8c81614295565b9082015260608281015190820152835291830191608001614e42565b509695505050505050565b600082601f830112614ec457600080fd5b81516020614ed4614d4683614cdb565b82815260609283028501820192828201919087851115614ef357600080fd5b8387015b85811015614f515781818a031215614f0f5760008081fd5b614f1761443f565b8151614f2281614398565b8152614f2f828701614ded565b868201526040614f40818401614ded565b908201528452928401928101614ef7565b5090979650505050505050565b60006020808385031215614f7157600080fd5b82516001600160401b0380821115614f8857600080fd5b9084019060608287031215614f9c57600080fd5b614fa461443f565b825182811115614fb357600080fd5b8301601f81018813614fc457600080fd5b8051614fd2614d4682614cdb565b81815260069190911b8201860190868101908a831115614ff157600080fd5b928701925b82841015615045576040848c03121561500f5760008081fd5b615017614461565b845161502281614398565b815261502f858a01614ded565b818a015282526040939093019290870190614ff6565b8452505050828401518281111561505b57600080fd5b61506788828601614dfe565b8583015250604083015193508184111561508057600080fd5b61508c87858501614eb3565b60408201529695505050505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906141169083018461423d565b6000602082840312156150e057600080fd5b81516001600160e01b0319811681146112dd57600080fd5b808202811582820484141761071b5761071b6149a756fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0154f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0034516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0034516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e01","sourceMap":"1432:11491:207:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:116:123;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3498:132;;;;;;;;;;-1:-1:-1;3498:132:123;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1119:32:398;;;1101:51;;1089:2;1074:18;3498:132:123;955:203:398;3236:128:123;;;;;;:::i;:::-;;:::i;:::-;;11262:113:207;;;;;;;;;;-1:-1:-1;11262:113:207;;;;;:::i;:::-;;:::i;9054:115::-;;;;;;;;;;;;;:::i;:::-;;;2501:25:398;;;2489:2;2474:18;9054:115:207;2355:177:398;7708:105:207;;;;;;;;;;-1:-1:-1;7708:105:207;;;;;:::i;:::-;7767:7;1083:43:120;;;290:66:121;1083:43:120;;;;;;-1:-1:-1;;;;;1083:43:120;;7708:105:207;1503:93:123;;;;;;;;;;;;;:::i;4893:2680::-;;;;;;:::i;:::-;;:::i;7656:167::-;;;;;;:::i;:::-;;:::i;1216:205:197:-;;;;;;;;;;-1:-1:-1;1216:205:197;;;;;:::i;:::-;;:::i;1768:267:207:-;;;;;;;;;;-1:-1:-1;1768:267:207;;;;;:::i;:::-;;:::i;2215:363::-;;;;;;;;;;-1:-1:-1;2215:363:207;;;;;:::i;:::-;;:::i;9203:161::-;;;;;;;;;;-1:-1:-1;9203:161:207;;;;;:::i;:::-;;:::i;9574:528::-;;;;;;;;;;-1:-1:-1;9574:528:207;;;;;:::i;:::-;;:::i;2867:152:123:-;;;;;;;;;;-1:-1:-1;2867:152:123;;;;;:::i;:::-;;:::i;10980:107:207:-;;;;;;;;;;;;;:::i;8858:162::-;;;;;;;;;;-1:-1:-1;8858:162:207;;;;;:::i;:::-;;:::i;10136:119::-;;;;;;;;;;;;;:::i;1673:107:123:-;;;;;;;;;;-1:-1:-1;1673:107:123;;;;;:::i;:::-;;:::i;11694:95:207:-;;;;;;;;;;;;;:::i;683:171:197:-;;;;;;;;;;-1:-1:-1;683:171:197;;;;;:::i;:::-;;:::i;6845:829:207:-;;;;;;:::i;:::-;;:::i;8022:106::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;7916:31:398;;;7898:50;;7886:2;7871:18;8022:106:207;7754:200:398;3242:1788:207;;;;;;:::i;:::-;;:::i;1508:182:197:-;;;;;;;;;;-1:-1:-1;1508:182:197;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11379:107:207:-;;;;;;;;;;;;;:::i;10664:::-;;;;;;;;;;;;;:::i;2199:120:123:-;;;;;;;;;;;;;:::i;10471:159:207:-;;;;;;;;;;-1:-1:-1;10471:159:207;;;;;:::i;:::-;;:::i;3933:269:123:-;;;;;;;;;;-1:-1:-1;3933:269:123;;;;;:::i;:::-;;:::i;8372:348::-;;;;;;:::i;:::-;;:::i;2412:329::-;;;;;;;;;;-1:-1:-1;2412:329:123;;;;;:::i;:::-;;:::i;869:157::-;;;;;;;;;;-1:-1:-1;869:157:123;;;;;:::i;:::-;;:::i;8339:170:207:-;;;;;;;;;;-1:-1:-1;8339:170:207;;;;;:::i;:::-;;:::i;8543:107::-;;;;;;;;;;;;;:::i;4340:167:123:-;;;;;;;;;;-1:-1:-1;4340:167:123;;;;;:::i;:::-;;:::i;:::-;;;13848:14:398;;13841:22;13823:41;;13811:2;13796:18;4340:167:123;13683:187:398;2020:116:123;2074:13;2102:23;:21;:23::i;:::-;:29;;2095:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:116;:::o;3498:132::-;3582:7;3604:21;3617:7;3604:12;:21::i;:::-;3597:28;3498:132;-1:-1:-1;;3498:132:123:o;3236:128::-;3332:27;3341:2;3345:7;3354:4;3332:8;:27::i;:::-;3236:128;;:::o;11262:113:207:-;641:8:102;:6;:8::i;:::-;-1:-1:-1;;;;;627:22:102;:10;-1:-1:-1;;;;;627:22:102;;623:79;;666:29;;-1:-1:-1;;;666:29:102;;684:10;666:29;;;1101:51:398;1074:18;;666:29:102;;;;;;;;623:79;11341:29:207::1;11361:8;;11341:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;11341:19:207::1;::::0;-1:-1:-1;;;11341:29:207:i:1;9054:115::-:0;9107:7;9129:35;9149:14;:12;:14::i;:::-;9129:19;:35::i;:::-;9122:42;;9054:115;:::o;1503:93:123:-;1555:7;1577:14;:12;:14::i;4893:2680::-;5012:27;5042;5061:7;5042:18;:27::i;:::-;5012:57;;5121:4;-1:-1:-1;;;;;5080:45:123;5096:19;-1:-1:-1;;;;;5080:45:123;;5076:92;;5140:28;;-1:-1:-1;;;5140:28:123;;;;;;;;;;;5076:92;5183:27;5218:23;5250:35;5277:7;5250:26;:35::i;:::-;5175:110;;;;5374:68;5399:15;5416:4;5422:19;29364:10:124;;29282:97;5422:19:123;-1:-1:-1;;;;;11870:32:124;;;11728:28;;11985:20;;12007:30;;11982:56;;11461:587;5374:68:123;5369:181;;5455:43;5472:4;29364:10:124;4340:167:123;:::i;5455:43::-;5450:100;;5515:35;;-1:-1:-1;;;5515:35:123;;;;;;;;;;;5450:100;-1:-1:-1;;;;;5561:16:123;;5557:52;;5586:23;;-1:-1:-1;;;5586:23:123;;;;;;;;;;;5557:52;5734:15;5731:135;;;5856:1;5835:19;5828:30;5731:135;6206:23;:21;:23::i;:::-;-1:-1:-1;;;;;6206:48:123;;;;;;:42;;;;;:48;;;;;6204:50;;-1:-1:-1;;6204:50:123;;;6292:23;:21;:23::i;:::-;-1:-1:-1;;;;;6292:46:123;;;;;;:42;;;;;:46;;;;;;6290:48;;;;;;10229:11:124;10204:23;10200:41;10187:63;-1:-1:-1;;;10187:63:124;6566:23:123;:21;:23::i;:::-;:50;;;;:41;;;;;:50;;;;;:184;;;;-1:-1:-1;;;6855:47:123;;:52;;6851:625;;6951:1;6941:11;;7056:23;:21;:23::i;:::-;:54;;;;:41;;;;;:54;;;;;;:59;;7052:416;;7196:23;:21;:23::i;:::-;:37;7181:52;;7177:281;;7426:19;7341:23;:21;:23::i;:::-;:82;;;;:41;;;;;:82;;;;;:104;7177:281;6909:567;6851:625;7512:7;7508:2;-1:-1:-1;;;;;7493:27:123;7502:4;-1:-1:-1;;;;;7493:27:123;;;;;;;;;;;7526:42;5006:2567;;;4893:2680;;;:::o;7656:167::-;7779:39;7796:4;7802:2;7806:7;7779:39;;;;;;;;;;;;:16;:39::i;:::-;7656:167;;;:::o;1216:205:197:-;408:1:111;-1:-1:-1;;;;;;;;;;;508:38:111;:66;504:117;;589:32;;-1:-1:-1;;;589:32:111;;;;;;;;;;;504:117;627:22;408:1;-1:-1:-1;;;;;;;;;;;825:65:111;770:125;627:22;1358:58:197::1;1386:13;1401:6;1409;1358:27;:58::i;:::-;662:24:111::0;468:1;-1:-1:-1;;;;;;;;;;;825:65:111;770:125;1768:267:207;296:66:83;1263:42:82;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:82;;;;;;;;;;;1258:100;1885:44:207::1;-1:-1:-1::0;;;1885:13:207::1;:44::i;:::-;1935:41;1957:4;1963:12;1935:21;:41::i;:::-;1982:48;2007:4;:9;;;2018:4;:11;;;1982:24;:48::i;2215:363::-:0;641:8:102;:6;:8::i;:::-;-1:-1:-1;;;;;627:22:102;:10;-1:-1:-1;;;;;627:22:102;;623:79;;666:29;;-1:-1:-1;;;666:29:102;;684:10;666:29;;;1101:51:398;1074:18;;666:29:102;955:203:398;623:79:102;-1:-1:-1;;;;;2279:21:207;::::1;2275:62;;2309:28;;-1:-1:-1::0;;;2309:28:207::1;;;;;;;;;;;2275:62;2343:15;2361:20;:18;:20::i;:::-;2343:38;;2391:7;2402:1;2391:12:::0;2387:58:::1;;2412:33;;-1:-1:-1::0;;;2412:33:207::1;;;;;;;;;;;2387:58;2451:122;2492:24;:22;:24::i;:::-;2532:4;2545:7;2560;2451:33;:122::i;9203:161::-:0;9286:7;9308:51;9335:7;9344:14;:12;:14::i;:::-;9308:26;:51::i;9574:528::-;641:8:102;:6;:8::i;:::-;-1:-1:-1;;;;;627:22:102;:10;-1:-1:-1;;;;;627:22:102;;623:79;;666:29;;-1:-1:-1;;;666:29:102;;684:10;666:29;;;1101:51:398;1074:18;;666:29:102;955:203:398;623:79:102;9699:26:207::1;9728:27;:25;:27::i;:::-;9699:56:::0;-1:-1:-1;9827:23:207;;;::::1;::::0;:61:::1;;;9870:18;9854:13;:34;9827:61;9823:115;;;9903:35;;-1:-1:-1::0;;;9903:35:207::1;;;;;;;;;;;9823:115;10012:36;10034:13;10012:21;:36::i;:::-;10054:43;10083:13;10054:28;:43::i;2867:152:123:-:0;2947:7;2985:27;3004:7;2985:18;:27::i;10980:107:207:-;11036:7;11058:24;:22;:24::i;8858:162::-;641:8:102;:6;:8::i;:::-;-1:-1:-1;;;;;627:22:102;:10;-1:-1:-1;;;;;627:22:102;;623:79;;666:29;;-1:-1:-1;;;666:29:102;;684:10;666:29;;;1101:51:398;1074:18;;666:29:102;955:203:398;623:79:102;8929:22:207::1;8942:8;8929:12;:22::i;:::-;8976:19;:17;:19::i;:::-;-1:-1:-1::0;;;;;8957:48:207::1;;9006:8;8957:58;;;;;;;;;;;;;2501:25:398::0;;2489:2;2474:18;;2355:177;8957:58:207::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8858:162:::0;:::o;10136:119::-;10198:7;10220:30;:28;:30::i;1673:107:123:-;1736:7;1758:17;1769:5;1758:10;:17::i;11694:95:207:-;11744:7;11766:18;:16;:18::i;683:171:197:-;296:66:83;1263:42:82;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:82;;;;;;;;;;;1258:100;796:53:197::1;830:18;796:33;:53::i;:::-;683:171:::0;:::o;6845:829:207:-;408:1:111;-1:-1:-1;;;;;;;;;;;508:38:111;:66;504:117;;589:32;;-1:-1:-1;;;589:32:111;;;;;;;;;;;504:117;627:22;408:1;-1:-1:-1;;;;;;;;;;;825:65:111;770:125;627:22;6923:16:207::1;6942:17;6951:7;6942:8;:17::i;:::-;6923:36:::0;-1:-1:-1;;;;;;6970:22:207;::::1;6966:63;;7001:28;;-1:-1:-1::0;;;7001:28:207::1;;;;;;;;;;;6966:63;7093:18;1083:43:120::0;;;290:66:121;1083:43:120;;;;;;-1:-1:-1;;;;;1083:43:120;7175:24:207::1;:22;:24::i;:::-;-1:-1:-1::0;;;;;7143:56:207::1;:28;7156:15;7143:10:::0;:28:::1;:::i;:::-;:56;7139:99;;7214:24;;-1:-1:-1::0;;;7214:24:207::1;;;;;;;;;;;7139:99;7290:23;7316:69;7350:7;7365:14;:12;:14::i;7316:69::-;7290:95:::0;-1:-1:-1;7396:19:207;;7392:218:::1;;7425:19;7447:46;7467:8;7477:15;7447:19;:46::i;:::-;7425:68:::0;-1:-1:-1;7501:15:207::1;7519:29;7425:68:::0;7519:15;:29:::1;:::i;:::-;7501:47:::0;-1:-1:-1;7560:11:207;;7556:47:::1;;7573:30;7585:8;7595:7;7573:11;:30::i;:::-;;7556:47;7417:193;;7392:218;7616:53;7635:7;7644:24;:22;:24::i;:::-;7616:18;:53::i;:::-;6917:757;;;662:24:111::0;468:1;-1:-1:-1;;;;;;;;;;;825:65:111;770:125;8022:106:207;8078:6;8099:24;:22;:24::i;3242:1788::-;408:1:111;-1:-1:-1;;;;;;;;;;;508:38:111;:66;504:117;;589:32;;-1:-1:-1;;;589:32:111;;;;;;;;;;;504:117;627:22;408:1;-1:-1:-1;;;;;;;;;;;825:65:111;770:125;627:22;3315:28:207::1;3334:8;3315:18;:28::i;:::-;3411:38;::::0;3367:10:::1;14702:2:398::0;14698:15;;;-1:-1:-1;;14694:53:398;3411:38:207::1;::::0;::::1;14682:66:398::0;3436:12:207::1;14764::398::0;;;14757:28;3367:10:207;-1:-1:-1;;14801:12:398;;3411:38:207::1;;;;;;;;;;;;3401:49;;;;;;3383:67;;3456:21;3480:111;3503:7;3518:67;3541:7;3550:6;3558:26;3576:7;3558:17;:26::i;:::-;1989:37:187::0;;;;;;;22057:25:398;;;;-1:-1:-1;;;;;22118:32:398;;;;22098:18;;;22091:60;22167:18;;;;22160:34;;;;1989:37:187;;;;;;;;;;22030:18:398;;;;1989:37:187;;;1979:48;;;;;;1827:206;3518:67:207::1;2165:36:187::0;;;;;;;22362:19:398;;;;22397:12;;;22390:28;;;;2165:36:187;;;;;;;;;22434:12:398;;;;2165:36:187;;2155:47;;;;;;2037:170;3480:111:207::1;3456:135;;3598:57;3611:13;3637:6;3645:8;3626:28;;;;;;;;-1:-1:-1::0;;;;;15054:15:398;;;15036:34;;15106:15;;15101:2;15086:18;;15079:43;14986:2;14971:18;;14824:304;3626:28:207::1;;;;;;;;;;;;;3598:12;:57::i;:::-;3665:9;:13:::0;3661:73:::1;;3688:39;3702:13;3717:9;3688:13;:39::i;:::-;3740:30;3773:58;3804:21;;;;;;;;;;;;;-1:-1:-1::0;;;3804:21:207::1;;::::0;3773:23:::1;:58::i;:::-;3740:91;;3838:24;3868:17:::0;3892:30:::1;3925:37;3951:10;3925:25;:37::i;:::-;3987:12:::0;;3892:70;;-1:-1:-1;3968:16:207::1;4006:798;4030:8;4026:1;:12;4006:798;;;4053:27;4083:5;4089:1;4083:8;;;;;;;;:::i;:::-;;;;;;;4053:38;;4105:4;:13;;;4100:698;;4135:9;4130:660;4154:4;:17;;;:24;4150:1;:28;4130:660;;;4197:24;4237:4;:17;;;4255:1;4237:20;;;;;;;;:::i;:::-;;;;;;;4197:61;;4276:11;-1:-1:-1::0;;;;;4276:24:207::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4271:509;;4322:11;-1:-1:-1::0;;;;;4322:22:207::1;;1438:3:174;4345:7:207::0;::::1;4354:13;1677:21;;;;;;;;;;;;;-1:-1:-1::0;;;1677:21:207::1;;::::0;1660:39:::1;;;;;;;;:::i;:::-;;;;;;;;;;;;;1652:48;;;:::i;:::-;4322:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4318:199;;;4398:26;4410:13;4398:11;:26::i;:::-;4440:7;;;;;;;;;;;;;;4318:199;4498:4;4483:19;;4271:509;;;4549:144;4589:13;4643:11;4672:4;:7;;;4549:24;:144::i;:::-;4722:5;4707:20;;4763:4;4741:26;;4271:509;-1:-1:-1::0;4180:3:207::1;;4130:660;;;;4100:698;-1:-1:-1::0;4040:3:207::1;;4006:798;;;;4815:19;4814:20;:36;;;;;4838:12;4814:36;4810:216;;;4860:31;4873:13;4860:31;;;;;;;;;;;::::0;:12:::1;:31::i;:::-;4903:9;:13:::0;4899:75:::1;;4928:37;4943:13;4958:6;4928:14;:37::i;:::-;4986:33;::::0;-1:-1:-1;;;;;4986:33:207;::::1;::::0;::::1;::::0;;;::::1;4810:216;3309:1721;;;;;;;;655:1:111;662:24:::0;468:1;-1:-1:-1;;;;;;;;;;;825:65:111;770:125;1508:182:197;1603:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;1603:32:197;1650:35;1663:13;1678:6;1650:12;:35::i;:::-;1643:42;1508:182;-1:-1:-1;;;1508:182:197:o;11379:107:207:-;11432:13;11460:21;:19;:21::i;10664:107::-;10717:7;10739:27;:25;:27::i;2199:120:123:-;2255:13;2283:23;:21;:23::i;:::-;:31;;2276:38;;;;;:::i;10471:159:207:-;641:8:102;:6;:8::i;:::-;-1:-1:-1;;;;;627:22:102;:10;-1:-1:-1;;;;;627:22:102;;623:79;;666:29;;-1:-1:-1;;;666:29:102;;684:10;666:29;;;1101:51:398;1074:18;;666:29:102;955:203:398;623:79:102;10542:42:207::1;10559:8;10569:14;:12;:14::i;:::-;10542:16;:42::i;:::-;10590:35;10616:8;10590:25;:35::i;3933:269:123:-:0;4123:8;4035:23;:21;:23::i;:::-;29364:10:124;4035:63:123;;;;:42;;;;;:63;;;;;;;;-1:-1:-1;;;;;4035:85:123;;;;;;;;;;;;:96;;-1:-1:-1;;4035:96:123;;;;;;;;;;;4142:55;;13848:14:398;;13841:22;13823:41;;4035:85:123;;29364:10:124;;4142:55:123;;13796:18:398;4142:55:123;;;;;;;3933:269;;:::o;8372:348::-;8519:31;8532:4;8538:2;8542:7;8519:12;:31::i;:::-;-1:-1:-1;;;;;8560:14:123;;;:19;8556:160;;8592:56;8623:4;8629:2;8633:7;8642:5;8592:30;:56::i;:::-;8587:129;;8667:40;;-1:-1:-1;;;8667:40:123;;;;;;;;;;;8587:129;8372:348;;;;:::o;2412:329::-;2493:13;2519:16;2527:7;2519;:16::i;:::-;2514:59;;2544:29;;-1:-1:-1;;;2544:29:123;;;;;;;;;;;2514:59;2580:21;2604:10;6617:9:124;;;;;;;;;-1:-1:-1;6617:9:124;;;6545:86;2604:10:123;2580:34;;2639:7;2633:21;2658:1;2633:26;:103;;;;;;;;;;;;;;;;;2694:7;2703:18;2713:7;2703:9;:18::i;:::-;2677:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2620:116;2412:329;-1:-1:-1;;;2412:329:123:o;869:157::-;296:66:83;1263:42:82;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:82;;;;;;;;;;;1258:100;981:40:123::1;1006:5;1013:7;981:24;:40::i;8339:170:207:-:0;641:8:102;:6;:8::i;:::-;-1:-1:-1;;;;;627:22:102;:10;-1:-1:-1;;;;;627:22:102;;623:79;;666:29;;-1:-1:-1;;;666:29:102;;684:10;666:29;;;1101:51:398;1074:18;;666:29:102;955:203:398;623:79:102;8431:35:207::1;8452:13;8431:20;:35::i;:::-;8472:32;8490:13;8472:17;:32::i;8543:107::-:0;8604:7;8626:19;:17;:19::i;4340:167:123:-;4449:4;4468:34;4486:5;4493:8;4468:17;:34::i;1689:139:126:-;293:66;;1689:139::o;22504:230:124:-;22582:7;22602:16;22610:7;22602;:16::i;:::-;22597:64;;22627:34;;-1:-1:-1;;;22627:34:124;;;;;;;;;;;22597:64;22675:23;:21;:23::i;:::-;:48;;;;:39;;:48;;-1:-1:-1;22675:48:124;;;:54;-1:-1:-1;;;;;22675:54:124;;22504:230::o;23284:439::-;23390:13;23406:17;23415:7;23406:8;:17::i;:::-;23390:33;;23434:13;23430:184;;;29364:10;-1:-1:-1;;;;;23459:28:124;;;23455:159;;23502:45;23520:5;29364:10;23502:17;:45::i;:::-;23497:117;;23568:35;;-1:-1:-1;;;23568:35:124;;;;;;;;;;;23497:117;23677:2;23620:23;:21;:23::i;:::-;:48;;;;:39;;;;;:48;;;;;;:59;;-1:-1:-1;;;;;;23620:59:124;-1:-1:-1;;;;;23620:59:124;;;;;;23690:28;23620:48;;23690:28;;;;;;;;;;23620:48;23690:28;23384:339;23284:439;;;:::o;717:189:102:-;779:67;;;;;;;;295:66:104;779:67:102;-1:-1:-1;;;;;779:67:102;;;;;;;;;;;;;859:42;;-1:-1:-1;;;859:42:102;;;;;2501:25:398;;;;859:42:102;;758:13;;859:30;;2474:18:398;;;;;859:42:102;;;;;;779:67;859:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;852:49;;;717:189;:::o;8763:120:206:-;8873:5;8828:26;:24;:26::i;:::-;:42;;;:50;;:42;:50;:::i;2978:351:124:-;3025:7;;3256:23;:21;:23::i;:::-;:36;;;3208:23;:21;:23::i;:::-;:37;:84;:110;;2978:351;-1:-1:-1;2978:351:124:o;5024:506:206:-;5113:7;5128:35;5166:26;:24;:26::i;:::-;5128:64;;5226:22;5251:30;:28;:30::i;:::-;5292:16;;;;5226:55;;-1:-1:-1;;;;;;5292:16:206;:30;5288:161;;5364:16;;;;5345:104;;-1:-1:-1;;;5345:104:206;;;;;20115:25:398;;;20156:18;;;20149:34;;;-1:-1:-1;;;;;5364:16:206;;;;5345:45;;20088:18:398;;5345:104:206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5330:119;5024:506;-1:-1:-1;;;;5024:506:206:o;5288:161::-;5485:2;:15;;;;;;;;;;-1:-1:-1;;;;;5485:15:206;-1:-1:-1;;;;;5463:60:206;;:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7829:1501:124;7905:14;7967:32;8002:23;:21;:23::i;:::-;8043:29;;;;:20;;;:29;;;;;;;-1:-1:-1;7967:58:124;;-1:-1:-1;;;;8108:24:124;;:29;;8104:1172;;8229:6;8239:1;8229:11;8225:791;;8269:16;;8258:27;;8254:83;;8306:31;;-1:-1:-1;;;8306:31:124;;;;;;;;;;;8254:83;8824:182;-1:-1:-1;;8903:9:124;;;8882:31;;;;:20;;;:31;;;;;;8903:9;;8882:31;;-1:-1:-1;8941:25:124;;8824:182;8941:25;;8980:13;7829:1501;;;:::o;8104:1172::-;7959:1323;9294:31;;-1:-1:-1;;;9294:31:124;;;;;;;;;;;12148:478;12244:27;12273:23;12306:38;12347:30;:28;:30::i;:::-;:62;;;;:53;;:62;;-1:-1:-1;;12347:62:124;;;;12590:26;;12347:62;;12590:26;;-1:-1:-1;12148:478:124:o;2764:1911:198:-;2894:41;3017:30;;;-1:-1:-1;;;;;;;;;;;3017:30:198;;;;;3065:25;;-1:-1:-1;;;;;;;;;;;462:66:199;3017:30:198;3065:25;;;-1:-1:-1;;;;;3065:25:198;:39;;:73;;-1:-1:-1;3108:21:198;;;;:30;3065:73;3054:156;;;3160:43;;-1:-1:-1;;;3160:43:198;;;;;;;;;;;3054:156;3220:31;;;;:23;;;:31;;;;;;;;3216:110;;;3268:51;;-1:-1:-1;;;3268:51:198;;;;;;;;;;;3216:110;3413:10;3535:34;;;:26;;;:34;;;;;:41;3413:10;;;;;3583:573;3607:22;3603:1;:26;3583:573;;;3644:25;3672:34;;;:26;;;:34;;;;;:37;;3707:1;;3672:37;;;;;;:::i;:::-;;;;;;;;;;3760:13;;3672:37;;-1:-1:-1;3777:10:198;-1:-1:-1;;;;;3760:13:198;;;:27;3756:217;;3820:24;3803:13;;-1:-1:-1;;;3803:13:198;;;;:41;;;;;;;;:::i;:::-;;3799:112;;3865:35;;-1:-1:-1;;;3865:35:198;;;;;;;;;;;3799:112;3920:22;;3936:6;;3920:8;;-1:-1:-1;;;;3920:22:198;-1:-1:-1;;;3936:6:198;3920:22;;;;;;;;:::i;:::-;;;;;;3960:4;3952:12;;3756:217;4023:21;4006:13;;-1:-1:-1;;;4006:13:198;;;;:38;;;;;;;;:::i;:::-;;4002:148;;4056:8;;;;:::i;:::-;;;;4002:148;;;4100:21;4083:13;;-1:-1:-1;;;4083:13:198;;;;:38;;;;;;;;:::i;:::-;;4079:71;;4133:8;;;;:::i;:::-;;;;4079:71;-1:-1:-1;3631:3:198;;3583:573;;;;4167:5;4162:65;;4189:31;;-1:-1:-1;;;4189:31:198;;;;;;;;;;;4162:65;4253:26;4278:1;4253:22;:26;:::i;:::-;4244:6;:35;:74;;;-1:-1:-1;4292:26:198;4317:1;4292:22;:26;:::i;:::-;4283:6;:35;4244:74;4233:438;;;4333:31;;;;:23;;;:31;;;;;:38;;-1:-1:-1;;4333:38:198;4367:4;4333:38;;;4408:15;;;:79;;4466:21;4408:79;;;4434:21;4408:79;4379:108;;4495:59;4527:13;4542:11;4495:31;:59::i;:::-;4596:13;4567:56;4611:11;4567:56;;;;;;:::i;:::-;;;;;;;;4631:33;4650:13;4631:18;:33::i;:::-;4325:346;4233:438;2888:1787;;;;;;2764:1911;;;:::o;445:282:85:-;-1:-1:-1;;;;;;1114:62:85;;1089:4;1114:62;;;296:66:87;1114:62:85;;;;;;;;:70;;:62;:70;503:182;;-1:-1:-1;;;;;;549:62:85;;:49;:62;;;296:66:87;549:62:85;;;;;:69;;-1:-1:-1;;549:69:85;614:4;549:69;;;503:182;;;646:32;;-1:-1:-1;;;646:32:85;;;;;;;;;;;503:182;695:27;;-1:-1:-1;;;;;;695:27:85;;;;;;;;445:282;:::o;891:671:206:-;995:35;1033:26;:24;:26::i;:::-;1066:15;;;:30;;-1:-1:-1;;;;;1066:30:206;;;-1:-1:-1;;;;;;1066:30:206;;;;;;;;1121:18;;;1102:16;;;:37;;;;;;;;;;;;;1145:21;;;:53;;;;;432:42:258;1145:53:206;;;1229:14;;;;1204:22;;;:39;1269:19;;;;1249:17;;;:39;;;995:64;;-1:-1:-1;1299:23:206;1295:86;;1332:42;1354:4;:19;;;1332:21;:42::i;:::-;1387:40;1408:4;:18;;;1387:20;:40::i;:::-;1438:10;;;;:14;1434:124;;1462:24;1475:4;:10;;;1462:12;:24::i;:::-;1513:16;;;;1540:10;;;;;1494:57;;-1:-1:-1;;;1494:57:206;;-1:-1:-1;;;;;1513:16:206;;;;1494:45;;:57;;;;2501:25:398;;;2489:2;2474:18;;2355:177;1494:57:206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;989:573;891:671;;:::o;1030:282:123:-;1135:25;-1:-1:-1;;;1135:13:123;:25::i;:::-;1200;-1:-1:-1;;;1200:13:123;:25::i;:::-;1273:34;1292:5;1299:7;1273:18;:34::i;3331:119:206:-;3384:7;3406:26;:24;:26::i;:::-;:39;;;3399:46;;3331:119;:::o;8032:129::-;8089:7;8111:26;:24;:26::i;:::-;:45;;;-1:-1:-1;;;;;8111:45:206;;8032:129;-1:-1:-1;8032:129:206:o;713:315:258:-;834:38;;859:7;834:38;-1:-1:-1;;;;;;;882:24:258;;;878:146;;916:35;940:2;944:6;916:23;:35::i;:::-;878:146;;;972:45;990:8;1000:4;1006:2;1010:6;972:17;:45::i;5711:335:206:-;5820:7;5835:35;5873:26;:24;:26::i;:::-;5946:1;5910:33;;;:24;;;:33;;;;;;5835:64;;-1:-1:-1;5910:37:206;5906:89;;5962:33;;;;:24;;;;:33;;;;;;;-1:-1:-1;5955:40:206;;5906:89;6009:32;6029:11;6009:19;:32::i;7721:133::-;7781:7;7803:26;:24;:26::i;:::-;:46;;;7796:53;;7721:133;:::o;6226:362::-;6300:35;6338:26;:24;:26::i;:::-;6300:64;;6493:2;:15;;;;;;;;;;-1:-1:-1;;;;;6493:15:206;-1:-1:-1;;;;;6471:61:206;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6449:13;:85;6438:145;;;6548:35;;-1:-1:-1;;;6548:35:206;;;;;;;;;;;6592:241;6668:35;6706:26;:24;:26::i;:::-;6738:17;;;:33;;;6782:46;;6668:64;;-1:-1:-1;6758:13:206;;6782:46;;;;;6662:171;6592:241;:::o;4739:219::-;4799:16;4840:18;:16;:18::i;:::-;-1:-1:-1;;;;;4818:70:206;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4799:91;;4911:8;4900;:19;4896:57;;;4928:25;;-1:-1:-1;;;4928:25:206;;;;;;;;;;;4443:119;4495:7;4517:26;:24;:26::i;:::-;:40;;;-1:-1:-1;;;;;4517:40:206;;4443:119;-1:-1:-1;4443:119:206:o;6837:324::-;6900:7;6915:35;6953:26;:24;:26::i;:::-;7011:17;;;;6915:64;;-1:-1:-1;7039:18:206;;7035:45;;7066:14;6837:324;-1:-1:-1;;6837:324:206:o;7035:45::-;7115:2;:15;;;;;;;;;;-1:-1:-1;;;;;7115:15:206;-1:-1:-1;;;;;7093:61:206;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7086:70;;;;6837:324;:::o;3333:242:124:-;3391:7;-1:-1:-1;;;;;3410:19:124;;3406:60;;3438:28;;-1:-1:-1;;;3438:28:124;;;;;;;;;;;3406:60;-1:-1:-1;;;;;3485:23:124;:21;:23::i;:::-;:42;;:49;3528:5;-1:-1:-1;;;;;3485:49:124;-1:-1:-1;;;;;3485:49:124;;;;;;;;;;;;;:85;3472:98;;3333:242;;;:::o;8338:117:206:-;8389:7;8411:26;:24;:26::i;:::-;:39;;;-1:-1:-1;;;;;8411:39:206;;8338:117;-1:-1:-1;8338:117:206:o;858:209:197:-;964:50;-1:-1:-1;;;964:13:197;:50::i;:::-;-1:-1:-1;;;;;;;;;;;1361:72:198;;-1:-1:-1;;;;;;1361:72:198;-1:-1:-1;;;;;1361:72:198;;;;;683:171:197;:::o;3628:215:206:-;3685:6;3699:35;3737:26;:24;:26::i;:::-;3699:64;;3798:2;:15;;;;;;;;;;-1:-1:-1;;;;;3798:15:206;-1:-1:-1;;;;;3776:60:206;;:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1743:698::-;1842:22;1872:35;1910:26;:24;:26::i;:::-;1997:15;;;;2039:21;;;;;2094:26;;;-1:-1:-1;;;2094:26:206;;;;1997:15;;-1:-1:-1;;;;;;1997:15:206;;;;2039:21;;;;;1942:30;;1997:15;;2094:24;;:26;;;;;;;;;;;1997:15;2094:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2066:54;;2126:13;2142:8;-1:-1:-1;;;;;2142:25:206;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2126:43;;2192:46;2214:15;2231:6;2192:46;;:21;:46::i;:::-;2175:63;;2307:129;2348:8;2364:5;2385:17;2416:14;2307:33;:129::i;:::-;1866:575;;;;;1743:698;;;;:::o;2445:882::-;2526:7;2541:35;2579:26;:24;:26::i;:::-;2541:64;;2662:16;2681:24;:22;:24::i;:::-;2662:43;-1:-1:-1;;;;;;;;2716:41:206;;;2712:108;;2786:6;2767:2;:15;;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;2807:6:206;;-1:-1:-1;2800:13:206;;-1:-1:-1;;;2800:13:206;2712:108;2914:30;;-1:-1:-1;;;2914:30:206;;2938:4;2914:30;;;1101:51:398;2875:8:206;;2853:12;;-1:-1:-1;;;;;2914:15:206;;;;;1074:18:398;;2914:30:206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2890:54;;2950:72;2984:8;2994:4;3008;3015:6;2950:33;:72::i;:::-;3051:30;;-1:-1:-1;;;3051:30:206;;3075:4;3051:30;;;1101:51:398;3028:20:206;;-1:-1:-1;;;;;3051:15:206;;;;;1074:18:398;;3051:30:206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3028:53;-1:-1:-1;3138:19:206;3160:28;3175:13;3028:53;3160:28;:::i;:::-;3138:50;;3213:6;3198:11;:21;3194:67;;3228:33;;-1:-1:-1;;;3228:33:206;;;;;;;;;;;3194:67;3287:11;3268:2;:15;;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;3311:11:206;;2445:882;-1:-1:-1;;;;;;;;;2445:882:206:o;249:588:120:-;326:32;418:22;;;290:66:121;418:22:120;;;;;;;;290:66:121;;-1:-1:-1;;;;;418:22:120;;;;477;;;473:261;;525:34;551:8;532:15;525:34;:::i;:::-;509:50;;473:261;;;699:28;719:8;699:17;:28;:::i;:::-;683:44;;473:261;740:13;:22;;;;;;;;;;;;:38;;-1:-1:-1;;740:38:120;-1:-1:-1;;;;;740:38:120;;;;;;;;790:42;;7898:50:398;;;740:22:120;;790:42;;7871:18:398;790:42:120;;;;;;;320:517;;;249:588;;:::o;2755:282:207:-;-1:-1:-1;;;;;2825:22:207;;2821:63;;2856:28;;-1:-1:-1;;;2856:28:207;;;;;;;;;;;2821:63;2901:27;:25;:27::i;:::-;:32;;;;:87;;;2961:27;:25;:27::i;:::-;2943:14;:12;:14::i;:::-;:45;;2901:87;2890:142;;;3002:30;;-1:-1:-1;;;3002:30:207;;;;;;;;;;;1634:189:187;1696:7;1788:28;;;-1:-1:-1;;;;;;;;;;;1788:28:187;;;;;;;:30;;;1696:7;1788:30;;;:::i;:::-;;;;-1:-1:-1;1781:37:187;1634:189;-1:-1:-1;;;1634:189:187:o;267:194::-;346:35;416:33;;;:18;:33;;;;;-1:-1:-1;;;;;;;;;;;289:66:188;416:40:187;452:4;416:33;:40;:::i;684:315::-;764:5;773:1;764:10;760:49;;783:26;;-1:-1:-1;;;783:26:187;;;;;;;;;;;760:49;832:5;819:9;:18;815:57;;846:26;;-1:-1:-1;;;846:26:187;;;;;;;;;;;815:57;879:35;949:36;;;-1:-1:-1;;;;;;;;;;;949:36:187;;;;;:45;;-1:-1:-1;;;;;;;;;;;289:66:188;989:5:187;;949:36;:45;;989:5;;949:45;:::i;:::-;;;;-1:-1:-1;;;;;684:315:187:o;2755:1424:230:-;2845:13;2866:24;2893:13;:11;:13::i;:::-;2932:14;;2866:40;;-1:-1:-1;2912:17:230;2932:14;-1:-1:-1;;;;;2986:24:230;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2986:24:230;-1:-1:-1;3070:28:230;;;;;;2952:58;;-1:-1:-1;3016:13:230;;;3179:341;3203:9;3199:1;:13;3179:341;;;3232:27;3265:20;3274:7;3282:1;3274:10;;;;;;;;:::i;:::-;;;;;;;3265:8;:20::i;:::-;3227:58;;;;;3298:9;3293:221;3317:11;:18;3313:1;:22;3293:221;;;3392:19;3372:11;3384:1;3372:14;;;;;;;;:::i;:::-;;;;;;;3356:32;;;;;;:55;3352:154;;3449:7;3457:1;3449:10;;;;;;;;:::i;:::-;;;;;;;3425:14;3440:5;3425:21;;;;;;;;:::i;:::-;;;;;;;;;;:34;3471:7;;;;:::i;:::-;;;;3490:5;;3352:154;3337:3;;3293:221;;;-1:-1:-1;;3214:3:230;;3179:341;;;;3585:33;3632:5;-1:-1:-1;;;;;3621:17:230;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3621:17:230;;;;;;;;;;;;;;;;;3585:53;;3704:9;3699:443;3723:5;3719:1;:9;3699:443;;;3743:14;3760;3775:1;3760:17;;;;;;;;:::i;:::-;;;;;;;3743:34;;3795:18;3823:16;3849:27;3886:34;3931:16;3940:6;3931:8;:16::i;:::-;3785:162;;;;;;;;3980:155;;;;;;;;3999:6;3980:155;;;;4021:4;3980:155;;;;4045:11;3980:155;;;;;;4079:11;3980:155;;;;4114:12;3980:155;;;3955:19;3975:1;3955:22;;;;;;;;:::i;:::-;;;;;;:180;;;;3735:407;;;;;3730:3;;;;;;;3699:443;;;-1:-1:-1;4155:19:230;2755:1424;-1:-1:-1;;;;;;;2755:1424:230:o;4541:861:174:-;4624:16;4648:14;4677:26;:24;:26::i;:::-;:39;;;4756:31;;-1:-1:-1;;;4756:31:174;;-1:-1:-1;;;;;1119:32:398;;;4756:31:174;;;1101:51:398;4677:39:174;;;;-1:-1:-1;4677:39:174;;;;4756:22;;1074:18:398;;4756:31:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4756:31:174;;;;;;;;;;;;:::i;:::-;4908;;-1:-1:-1;;;4908:31:174;;-1:-1:-1;;;;;1119:32:398;;;4908:31:174;;;1101:51:398;4723:64:174;;-1:-1:-1;4881:24:174;;4908:22;;;;;1074:18:398;;4908:31:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4881:58;;4949:13;:20;4973:1;4949:25;:59;;;;-1:-1:-1;;;;;;4978:30:174;;;;4949:59;4945:161;;;5068:31;;-1:-1:-1;;;5068:31:174;;-1:-1:-1;;;;;1119:32:398;;;5068:31:174;;;1101:51:398;5028:16:174;;-1:-1:-1;5028:16:174;;5068:22;;;;;1074:18:398;;5068:31:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5068:31:174;;;;;;;;;;;;:::i;:::-;5052:47;;4945:161;5142:20;;5112:27;5210:23;5142:20;5232:1;5210:23;:::i;:::-;-1:-1:-1;;;;;5196:38:174;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5196:38:174;;5169:65;;5245:9;5240:94;5264:19;5260:1;:23;5240:94;;;5311:13;5325:1;5311:16;;;;;;;;:::i;:::-;;;;;;;5298:7;5306:1;5298:10;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5298:29:174;;;:10;;;;;;;;;;;:29;5285:3;;5240:94;;;;5370:7;5339;5347:19;5339:28;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5339:38:174;;;:28;;;;;;;;;;;:38;5390:7;4541:861;-1:-1:-1;;;;;;4541:861:174:o;5034:1603:207:-;5094:14;5110:16;5148:31;5165:13;5148:16;:31::i;:::-;5130:81;;;;;;;;;;;;:::i;:::-;5093:118;;;;5218:19;5240:14;:12;:14::i;:::-;5218:36;;5260:23;5290:22;5315:30;:28;:30::i;:::-;5290:55;;5351:21;5375:19;:17;:19::i;:::-;5351:43;;5422:11;5405:14;:28;5401:316;;;5461:1;5443:19;;5470:37;5485:13;5500:6;5470:14;:37::i;:::-;5401:316;;;5524:17;;5520:197;;5569:1;5551:19;;5578:16;5592:1;5578:13;:16::i;:::-;5602:37;5617:13;5632:6;5602:14;:37::i;5520:197::-;5678:32;5698:11;5678:19;:32::i;:::-;5660:50;;5520:197;5743:15;5761:14;:12;:14::i;:::-;5743:32;-1:-1:-1;5786:19:207;;5782:652;;5815:17;1396:36:187;;;-1:-1:-1;;;;;;;;;;;1396:36:187;;;;;;;5880:14:207;;;5876:60;;5903:33;;-1:-1:-1;;;5903:33:207;;;;;;;;;;;5876:60;5961:15;5948:9;:28;5944:69;;5985:28;;-1:-1:-1;;;5985:28:207;;;;;;;;;;;5944:69;6059:52;6086:7;6095:15;6059:26;:52::i;:::-;6119:19;6141:44;6161:6;6169:15;6141:19;:44::i;:::-;6119:66;-1:-1:-1;6194:15:207;6212:29;6119:66;6212:15;:29;:::i;:::-;6194:47;-1:-1:-1;6253:11:207;;6249:45;;6266:28;6278:6;6286:7;6266:11;:28::i;:::-;;6249:45;6335:53;6357:13;6372:15;6335:21;:53::i;:::-;6396:31;6409:13;6396:31;;;;;;;;;;;;:12;:31::i;:::-;5807:627;;;5782:652;6463:22;6473:8;6483:1;6463:9;:22::i;:::-;6528:53;6547:7;6556:24;:22;:24::i;6528:53::-;6592:40;;6624:7;;-1:-1:-1;;;;;6592:40:207;;;;;;;;5087:1550;;;;;;;5034:1603;:::o;1442:1318:198:-;1576:41;1700:30;;;-1:-1:-1;;;;;;;;;;;1700:30:198;;;;;1741:21;;-1:-1:-1;;;;;;;;;;;462:66:199;1700:30:198;1741:21;;:29;;1700:15;1741:29;1737:244;;1785:9;1780:195;1804:19;;;:26;1800:30;;1780:195;;;1877:6;1851:11;:19;;1871:1;1851:22;;;;;;;;:::i;:::-;;;;;;;;;:32;1847:120;;1904:52;;-1:-1:-1;;;1904:52:198;;;;;;;;;;;1847:120;1832:3;;1780:195;;;;1737:244;2058:21;;-1:-1:-1;;;;;2058:21:198;2046:97;;2104:32;:30;:32::i;:::-;2182:21;;:39;;-1:-1:-1;;;2182:39:198;;2219:1;2182:39;;;2501:25:398;2149:30:198;;-1:-1:-1;;;;;2182:21:198;;:36;;2474:18:398;;2182:39:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2182:39:198;;;;;;;;;;;;:::i;:::-;2233:21;;2149:72;;-1:-1:-1;2233:21:198;;2228:162;;2264:28;;2300:23;;;:37;;-1:-1:-1;;;;;;2300:37:198;-1:-1:-1;;;;;2300:37:198;;;;;-1:-1:-1;;;;;;2345:38:198;2264:28;2373:10;2345:38;;-1:-1:-1;2345:38:198;;;2228:162;2396:19;;;:32;;;;;;;-1:-1:-1;2396:32:198;;;;;;;;;;2435:189;2459:13;:20;2455:1;:24;2435:189;;;2494:11;:26;;:34;2521:6;2494:34;;;;;;;;;;;2543:66;;;;;;;;2559:13;2573:1;2559:16;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2543:66:198;;;;;2583:24;2543:66;;;;;;;;:::i;:::-;;;2494:123;;;;;;;-1:-1:-1;2494:123:198;;;;;;;;;;;;;;-1:-1:-1;;;;;;2494:123:198;;-1:-1:-1;;;;;2494:123:198;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2494:123:198;;-1:-1:-1;;;2494:123:198;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;2481:3:198;;2435:189;;;-1:-1:-1;2630:21:198;;:125;;-1:-1:-1;;;2630:125:198;;-1:-1:-1;;;;;2630:21:198;;;;:45;;:125;;2683:10;;2701:13;;2722:6;;2736:13;;2630:125;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12559:362:207;12637:17;1396:36:187;;;-1:-1:-1;;;;;;;;;;;1396:36:187;;;;;;12699:13:207;;12695:222;;12722:47;12744:13;12759:9;12722:21;:47::i;:::-;12777:133;12820:24;:22;:24::i;5117:575:198:-;5213:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;5213:32:198;5253:41;5377:30;;;-1:-1:-1;;;;;;;;;;;5377:30:198;;;;;5418:21;;-1:-1:-1;;;;;;;;;;;462:66:199;5418:21:198;;;;:30;;;;5414:101;;5465:43;;-1:-1:-1;;;5465:43:198;;;;;;;;;;;5414:101;5568:23;;;;5643:22;;-1:-1:-1;;;5643:22:198;;;;;2501:25:398;;;-1:-1:-1;;;;;5568:23:198;;;;5521:19;;5568:23;;5643:14;;2474:18:398;;5643:22:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5643:22:198;;;;;;;;;;;;:::i;:::-;5599:66;5117:575;-1:-1:-1;;;;;;;5117:575:198:o;8630:129:206:-;8684:13;8712:26;:24;:26::i;:::-;:42;;8705:49;;;;;:::i;7346:237::-;7528:11;7517:8;:22;7513:65;;;7548:30;;-1:-1:-1;;;7548:30:206;;;;;;;;;;;7587:130;7704:8;7655:26;:24;:26::i;:::-;:46;;:57;-1:-1:-1;7587:130:206:o;14707:674:124:-;14870:139;;-1:-1:-1;;;14870:139:124;;14848:4;;-1:-1:-1;;;;;14870:56:124;;;;;:139;;29364:10;;14965:4;;14979:7;;14996:5;;14870:139;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14870:139:124;;;;;;;;-1:-1:-1;;14870:139:124;;;;;;;;;;;;:::i;:::-;;;14860:517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15192:6;:13;15209:1;15192:18;15188:183;;15229:40;;-1:-1:-1;;;15229:40:124;;;;;;;;;;;15188:183;15345:6;15339:13;15330:6;15326:2;15322:15;15315:38;14860:517;-1:-1:-1;;;;;;15061:83:124;-1:-1:-1;;;15061:83:124;;-1:-1:-1;14707:674:124;;;;;;:::o;11064:301::-;11129:4;11200:23;:21;:23::i;:::-;:37;11190:47;;11154:187;;;;;-1:-1:-1;;;11268:23:124;:21;:23::i;:::-;:50;;;;:41;;;;;:50;;;;;;:68;:73;11141:200;11064:301;-1:-1:-1;;11064:301:124:o;29468:1574::-;29541:17;29935:4;29928;29922:11;29918:22;30013:1;30007:4;30000:15;30074:4;30071:1;30067:12;30060:19;;;30142:1;30137:3;30130:14;30231:3;30441:5;30423:419;30488:1;30483:3;30479:11;30472:18;;30656:2;30650:4;30646:13;30642:2;30638:22;30633:3;30625:36;30748:2;30738:13;;30803:25;30423:419;30803:25;-1:-1:-1;30864:13:124;;;-1:-1:-1;;30965:14:124;;;31013:19;;;30965:14;29468:1574;-1:-1:-1;29468:1574:124:o;4024:279:206:-;-1:-1:-1;;;;;4101:27:206;;4097:74;;4137:34;;-1:-1:-1;;;4137:34:206;;;;;;;;;;;4097:74;4199:18;:16;:18::i;:::-;4183:66;;-1:-1:-1;;;4183:66:206;;-1:-1:-1;;;;;1119:32:398;;;4183:66:206;;;1101:51:398;4183::206;;;;;;;1074:18:398;;4183:66:206;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4178:120;;4264:34;;-1:-1:-1;;;4264:34:206;;;;;;;;;;;4307:132;4418:16;4375:26;:24;:26::i;:::-;:40;;:59;;-1:-1:-1;;;;;;4375:59:206;-1:-1:-1;;;;;4375:59:206;;;;;;;;;;-1:-1:-1;4307:132:206:o;22314:186:124:-;22417:4;22436:23;:21;:23::i;:::-;-1:-1:-1;;;;;22436:49:124;;;;;;;:42;;;;;:49;;;;;;;;:59;;;;;;;;;;-1:-1:-1;22436:59:124;;;;;22314:186::o;903:139:208:-;287:66;;903:139::o;12051:504:207:-;12210:21;12200:6;:31;;;;;;;;:::i;:::-;;12196:355;;12241:26;12253:13;12241:11;:26::i;12196:355::-;12289:14;12305:16;12345:31;12362:13;12345:16;:31::i;:::-;12325:87;;;;;;;;;;;;:::i;:::-;12288:124;;;;12421:31;12434:13;12421:31;;;;;;;;;;;;:12;:31::i;:::-;12460:37;12475:13;12490:6;12460:14;:37::i;:::-;12511:33;;-1:-1:-1;;;;;12511:33:207;;;;;;;;12280:271;;12051:504;;:::o;4679:434:198:-;4745:41;4869:30;;;-1:-1:-1;;;;;;;;;;;4869:30:198;;;;;-1:-1:-1;;;;;;;;;;;462:66:199;4905:129:198;4929:19;;;:26;4925:30;;4905:129;;;4977:11;:26;;:50;5004:11;:19;;5024:1;5004:22;;;;;;;;:::i;:::-;;;;;;;;;4977:50;;;;;;;;;;;;4970:57;;;;:::i;:::-;4957:3;;4905:129;;;-1:-1:-1;5039:26:198;5046:19;;;;5039:26;:::i;:::-;5078:30;;;;:15;;;:30;;;;;5071:37;;-1:-1:-1;;;;;;5071:37:198;;;;;;;;-1:-1:-1;;;;;;5071:37:198;;;5078:30;5071:37;;;;5078:30;5071:37;:::i;2553:247:124:-;2650:32;2685:23;:21;:23::i;:::-;2650:58;-1:-1:-1;2715:8:124;;;:15;2726:4;2715:8;:15;:::i;:::-;-1:-1:-1;2736:10:124;;;:19;2749:6;2736:10;:19;:::i;:::-;-1:-1:-1;3941:7:124;2761:34;;-1:-1:-1;;2553:247:124:o;2554:178:258:-;2630:12;2648:2;-1:-1:-1;;;;;2648:7:258;2663:5;2648:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2629:44;;;2687:7;2679:48;;;;-1:-1:-1;;;2679:48:258;;31912:2:398;2679:48:258;;;31894:21:398;31951:2;31931:18;;;31924:30;31990;31970:18;;;31963:58;32038:18;;2679:48:258;31710:352:398;2180:315:258;2311:2;-1:-1:-1;;;;;2303:10:258;:4;-1:-1:-1;;;;;2303:10:258;;2299:37;2323:7;2299:37;2362:4;-1:-1:-1;;;;;2346:21:258;;;2342:149;;2377:38;-1:-1:-1;;;;;2377:26:258;;2404:2;2408:6;2377:26;:38::i;2342:149::-;2436:48;-1:-1:-1;;;;;2436:30:258;;2467:4;2473:2;2477:6;2436:30;:48::i;361:224:257:-;452:7;116:6;475:11;:22;;467:68;;;;-1:-1:-1;;;467:68:257;;32269:2:398;467:68:257;;;32251:21:398;32308:2;32288:18;;;32281:30;32347:34;32327:18;;;32320:62;-1:-1:-1;;;32398:18:398;;;32391:31;32439:19;;467:68:257;32067:397:398;467:68:257;116:6;549:20;558:11;549:6;:20;:::i;:::-;548:32;;;;:::i;9967:126:230:-;10013:24;10052:36;:27;:34;:36::i;9486:477::-;9596:16;9772:19;;;:11;:19;;;;;9765:31;;9570:18;;9596:16;9570:18;;;;427:66:231;;9765:31:230;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9816:19:230;;;;:11;;;:19;;;;;:31;;;;9765;;-1:-1:-1;9816:31:230;;;;;-1:-1:-1;9867:40:230;;:31;;;-1:-1:-1;9867:38:230;;-1:-1:-1;9867:40:230:i;:::-;9853:54;;9928:30;9951:6;9928:22;:30::i;:::-;9913:45;;9698:265;9486:477;;;;;:::o;465:215:187:-;565:35;642:33;;;:18;:33;;;;;635:40;;545:12;;-1:-1:-1;;;;;;;;;;;289:66:188;635:40:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;465:215;;;:::o;562:108:224:-;614:7;272:66:226;636:22:224;:29;;562:108;-1:-1:-1;562:108:224:o;418:140::-;272:66:226;534:19:224;;547:6;;272:66:226;;472:31:224;;534:19;;547:6;;534:19;:::i;:::-;;;;-1:-1:-1;;;;418:140:224:o;4035:119:124:-;4090:7;4112:23;:21;:23::i;5534:173:206:-;5693:9;5633:26;:24;:26::i;:::-;:57;;;;:48;;:57;;;;;;:69;;;;-1:-1:-1;5534:173:206:o;1003:216:187:-;1099:35;1169:36;;;-1:-1:-1;;;;;;;;;;;1169:36:187;;;;;:45;;-1:-1:-1;;;;;;;;;;;289:66:188;1209:5:187;;1169:36;:45;;1209:5;;1169:45;:::i;21749:104:124:-;21821:27;21831:2;21835:8;21821:27;;;;;;;;;;;;:9;:27::i;5884:366:198:-;-1:-1:-1;;;;;;;;;;;5941:41:198;6090:26;:24;:26::i;:::-;:39;;;6059:117;;-1:-1:-1;;;6059:117:198;;-1:-1:-1;;;6059:117:198;;;32851:34:398;-1:-1:-1;;;;;6090:39:198;;;;6059:100;;32824:18:398;;6059:117:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6182:63;;-1:-1:-1;;;;;;6182:63:198;-1:-1:-1;;;;;6182:63:198;;;;;;;;-1:-1:-1;5884:366:198:o;1303:160:330:-;1412:43;;-1:-1:-1;;;;;33088:32:398;;;1412:43:330;;;33070:51:398;33137:18;;;33130:34;;;1385:71:330;;1405:5;;1427:14;;;;;33043:18:398;;1412:43:330;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1412:43:330;;;;;;;;;;;1385:19;:71::i;1702:188::-;1829:53;;-1:-1:-1;;;;;33433:15:398;;;1829:53:330;;;33415:34:398;33485:15;;;33465:18;;;33458:43;33517:18;;;33510:34;;;1802:81:330;;1822:5;;1844:18;;;;;33350::398;;1829:53:330;33175:375:398;12671:297:350;12731:16;12759:22;12784:19;12792:3;12784:7;:19::i;5591:103:253:-;5647:15;5677:12;5685:3;5677:7;:12::i;10097:588:230:-;10205:45;10253:52;;;:44;:52;;;;;10176:21;;10253:72;;;;;10357:21;10253:72;10357:19;:21::i;:::-;10332:46;;10385:39;10453:14;-1:-1:-1;;;;;10427:46:230;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10427:46:230;;10385:88;;10485:9;10480:170;10504:14;10500:1;:18;10480:170;;;10533:26;10562:18;:12;10578:1;10562:15;:18::i;:::-;10533:47;;10624:18;10588:17;10606:1;10588:20;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10588:55:230;;;:20;;;;;;;;;;;:55;-1:-1:-1;10520:3:230;;10480:170;;;-1:-1:-1;10663:17:230;10097:588;-1:-1:-1;;;;10097:588:230:o;21081:597:124:-;21189:19;21195:2;21199:8;21189:5;:19::i;:::-;-1:-1:-1;;;;;21237:14:124;;;:19;21233:435;;21268:11;21282:23;:21;:23::i;:::-;:37;;-1:-1:-1;21345:14:124;;;21369:189;21389:62;21428:1;21432:2;21436:7;;;;;;21445:5;21389:30;:62::i;:::-;21384:143;;21474:40;;-1:-1:-1;;;21474:40:124;;;;;;;;;;;21384:143;21553:3;21545:5;:11;21369:189;;21646:3;21605:23;:21;:23::i;:::-;:37;:44;21601:58;;21651:8;;;4059:629:330;4478:23;4504:33;-1:-1:-1;;;;;4504:27:330;;4532:4;4504:27;:33::i;:::-;4478:59;;4551:10;:17;4572:1;4551:22;;:57;;;;;4589:10;4578:30;;;;;;;;;;;;:::i;:::-;4577:31;4551:57;4547:135;;;4631:40;;-1:-1:-1;;;4631:40:330;;-1:-1:-1;;;;;1119:32:398;;4631:40:330;;;1101:51:398;1074:18;;4631:40:330;955:203:398;5581:109:350;5637:16;5672:3;:11;;5665:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:109;;;:::o;3597:102:253:-;3653:15;3683:3;:11;;3676:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3597:102;;;:::o;9117:115:350:-;9180:7;9206:19;9214:3;4556:18;;4474:107;9574:156;9648:7;9698:22;9702:3;9714:5;9698:3;:22::i;15799:2642:124:-;15867:20;15890:23;:21;:23::i;:::-;:37;;-1:-1:-1;15890:37:124;15937:13;;;15933:44;;15959:18;;-1:-1:-1;;;15959:18:124;;;;;;;;;;;15933:44;16474:32;16454:53;;16396:23;:21;:23::i;:::-;-1:-1:-1;;;;;16396:46:124;;;;;;:42;;;;;:46;;;;;;:111;;;;;;;;;10229:11;10204:23;10200:41;-1:-1:-1;10624:15:124;;10598:24;10594:46;10197:52;10187:63;16707:23;:21;:23::i;:::-;:71;;;;:41;;;;;:71;;;;;:188;;;;-1:-1:-1;;;;;17416:25:124;;;16942:23;;;;16758:12;;17416:25;;17602;16707:71;;17488:260;18026:1;18012:12;18008:20;17977:275;18058:3;18049:7;18046:16;17977:275;;18234:7;18224:8;18221:1;18194:25;18191:1;18188;18183:59;18100:1;18087:15;17977:275;;;17981:57;18271:8;18283:1;18271:13;18267:45;;18293:19;;-1:-1:-1;;;18293:19:124;;;;;;;;;;;18267:45;18361:3;18321:23;:21;:23::i;:::-;:43;-1:-1:-1;18376:60:124;;-1:-1:-1;8372:348:123;2705:151:335;2780:12;2811:38;2833:6;2841:4;2847:1;2811:21;:38::i;4923:118:350:-;4990:7;5016:3;:11;;5028:5;5016:18;;;;;;;;:::i;:::-;;;;;;;;;5009:25;;4923:118;;;;:::o;3180:392:335:-;3279:12;3331:5;3307:21;:29;3303:108;;;3359:41;;-1:-1:-1;;;3359:41:335;;3394:4;3359:41;;;1101:51:398;1074:18;;3359:41:335;955:203:398;3303:108:335;3421:12;3435:23;3462:6;-1:-1:-1;;;;;3462:11:335;3481:5;3488:4;3462:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3420:73;;;;3510:55;3537:6;3545:7;3554:10;3510:26;:55::i;:::-;3503:62;3180:392;-1:-1:-1;;;;;;3180:392:335:o;4625:582::-;4769:12;4798:7;4793:408;;4821:19;4829:10;4821:7;:19::i;:::-;4793:408;;;5045:17;;:22;:49;;;;-1:-1:-1;;;;;;5071:18:335;;;:23;5045:49;5041:119;;;5121:24;;-1:-1:-1;;;5121:24:335;;-1:-1:-1;;;;;1119:32:398;;5121:24:335;;;1101:51:398;1074:18;;5121:24:335;955:203:398;5041:119:335;-1:-1:-1;5180:10:335;5173:17;;5743:516;5874:17;;:21;5870:383;;6102:10;6096:17;6158:15;6145:10;6141:2;6137:19;6130:44;5870:383;6225:17;;-1:-1:-1;;;6225:17:335;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:250:398;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:398;238:16;;231:27;14:250::o;269:271::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;522:2;501:15;-1:-1:-1;;497:29:398;488:39;;;;529:4;484:50;;269:271;-1:-1:-1;;269:271:398:o;545:220::-;694:2;683:9;676:21;657:4;714:45;755:2;744:9;740:18;732:6;714:45;:::i;770:180::-;829:6;882:2;870:9;861:7;857:23;853:32;850:52;;;898:1;895;888:12;850:52;-1:-1:-1;921:23:398;;770:180;-1:-1:-1;770:180:398:o;1163:131::-;-1:-1:-1;;;;;1238:31:398;;1228:42;;1218:70;;1284:1;1281;1274:12;1299:134;1367:20;;1396:31;1367:20;1396:31;:::i;:::-;1299:134;;;:::o;1438:315::-;1506:6;1514;1567:2;1555:9;1546:7;1542:23;1538:32;1535:52;;;1583:1;1580;1573:12;1535:52;1622:9;1609:23;1641:31;1666:5;1641:31;:::i;:::-;1691:5;1743:2;1728:18;;;;1715:32;;-1:-1:-1;;;1438:315:398:o;1758:592::-;1829:6;1837;1890:2;1878:9;1869:7;1865:23;1861:32;1858:52;;;1906:1;1903;1896:12;1858:52;1946:9;1933:23;-1:-1:-1;;;;;2016:2:398;2008:6;2005:14;2002:34;;;2032:1;2029;2022:12;2002:34;2070:6;2059:9;2055:22;2045:32;;2115:7;2108:4;2104:2;2100:13;2096:27;2086:55;;2137:1;2134;2127:12;2086:55;2177:2;2164:16;2203:2;2195:6;2192:14;2189:34;;;2219:1;2216;2209:12;2189:34;2264:7;2259:2;2250:6;2246:2;2242:15;2238:24;2235:37;2232:57;;;2285:1;2282;2275:12;2232:57;2316:2;2308:11;;;;;2338:6;;-1:-1:-1;1758:592:398;;-1:-1:-1;;;;1758:592:398:o;2537:456::-;2614:6;2622;2630;2683:2;2671:9;2662:7;2658:23;2654:32;2651:52;;;2699:1;2696;2689:12;2651:52;2738:9;2725:23;2757:31;2782:5;2757:31;:::i;:::-;2807:5;-1:-1:-1;2864:2:398;2849:18;;2836:32;2877:33;2836:32;2877:33;:::i;:::-;2537:456;;2929:7;;-1:-1:-1;;;2983:2:398;2968:18;;;;2955:32;;2537:456::o;2998:113::-;3085:1;3078:5;3075:12;3065:40;;3101:1;3098;3091:12;3116:415;3213:6;3221;3229;3282:2;3270:9;3261:7;3257:23;3253:32;3250:52;;;3298:1;3295;3288:12;3250:52;3334:9;3321:23;3311:33;;3391:2;3380:9;3376:18;3363:32;3353:42;;3445:2;3434:9;3430:18;3417:32;3458:43;3495:5;3458:43;:::i;:::-;3520:5;3510:15;;;3116:415;;;;;:::o;3536:127::-;3597:10;3592:3;3588:20;3585:1;3578:31;3628:4;3625:1;3618:15;3652:4;3649:1;3642:15;3668:255;3740:2;3734:9;3782:6;3770:19;;-1:-1:-1;;;;;3804:34:398;;3840:22;;;3801:62;3798:88;;;3866:18;;:::i;:::-;3902:2;3895:22;3668:255;:::o;3928:253::-;4000:2;3994:9;4042:4;4030:17;;-1:-1:-1;;;;;4062:34:398;;4098:22;;;4059:62;4056:88;;;4124:18;;:::i;4186:253::-;4258:2;4252:9;4300:4;4288:17;;-1:-1:-1;;;;;4320:34:398;;4356:22;;;4317:62;4314:88;;;4382:18;;:::i;4444:257::-;4516:4;4510:11;;;4548:17;;-1:-1:-1;;;;;4580:34:398;;4616:22;;;4577:62;4574:88;;;4642:18;;:::i;4706:275::-;4777:2;4771:9;4842:2;4823:13;;-1:-1:-1;;4819:27:398;4807:40;;-1:-1:-1;;;;;4862:34:398;;4898:22;;;4859:62;4856:88;;;4924:18;;:::i;:::-;4960:2;4953:22;4706:275;;-1:-1:-1;4706:275:398:o;4986:407::-;5051:5;-1:-1:-1;;;;;5077:6:398;5074:30;5071:56;;;5107:18;;:::i;:::-;5145:57;5190:2;5169:15;;-1:-1:-1;;5165:29:398;5196:4;5161:40;5145:57;:::i;:::-;5136:66;;5225:6;5218:5;5211:21;5265:3;5256:6;5251:3;5247:16;5244:25;5241:45;;;5282:1;5279;5272:12;5241:45;5331:6;5326:3;5319:4;5312:5;5308:16;5295:43;5385:1;5378:4;5369:6;5362:5;5358:18;5354:29;5347:40;4986:407;;;;;:::o;5398:222::-;5441:5;5494:3;5487:4;5479:6;5475:17;5471:27;5461:55;;5512:1;5509;5502:12;5461:55;5534:80;5610:3;5601:6;5588:20;5581:4;5573:6;5569:17;5534:80;:::i;5625:129::-;-1:-1:-1;;;;;5703:5:398;5699:30;5692:5;5689:41;5679:69;;5744:1;5741;5734:12;5759:132;5826:20;;5855:30;5826:20;5855:30;:::i;5896:1321::-;5993:6;6001;6054:2;6042:9;6033:7;6029:23;6025:32;6022:52;;;6070:1;6067;6060:12;6022:52;6110:9;6097:23;-1:-1:-1;;;;;6180:2:398;6172:6;6169:14;6166:34;;;6196:1;6193;6186:12;6166:34;6219:22;;;;6275:6;6257:16;;;6253:29;6250:49;;;6295:1;6292;6285:12;6250:49;6321:22;;:::i;:::-;6381:2;6368:16;6409:2;6399:8;6396:16;6393:36;;;6425:1;6422;6415:12;6393:36;6452:45;6489:7;6478:8;6474:2;6470:17;6452:45;:::i;:::-;6445:5;6438:60;;6544:2;6540;6536:11;6523:25;6573:2;6563:8;6560:16;6557:36;;;6589:1;6586;6579:12;6557:36;6625:45;6662:7;6651:8;6647:2;6643:17;6625:45;:::i;:::-;6620:2;6613:5;6609:14;6602:69;;6724:2;6720;6716:11;6703:25;6698:2;6691:5;6687:14;6680:49;6782:2;6778;6774:11;6761:25;6756:2;6749:5;6745:14;6738:49;6820:31;6846:3;6842:2;6838:12;6820:31;:::i;:::-;6814:3;6807:5;6803:15;6796:56;6885:32;6912:3;6908:2;6904:12;6885:32;:::i;:::-;6879:3;6872:5;6868:15;6861:57;6951:32;6978:3;6974:2;6970:12;6951:32;:::i;:::-;6945:3;6938:5;6934:15;6927:57;7038:3;7034:2;7030:12;7017:26;7011:3;7004:5;7000:15;6993:51;7063:3;7053:13;;7098:31;7125:2;7121;7117:11;7098:31;:::i;:::-;7093:2;7086:5;7082:14;7075:55;7149:5;7139:15;;;;;7173:38;7207:2;7196:9;7192:18;7173:38;:::i;:::-;7163:48;;5896:1321;;;;;:::o;7222:247::-;7281:6;7334:2;7322:9;7313:7;7309:23;7305:32;7302:52;;;7350:1;7347;7340:12;7302:52;7389:9;7376:23;7408:31;7433:5;7408:31;:::i;7959:248::-;8027:6;8035;8088:2;8076:9;8067:7;8063:23;8059:32;8056:52;;;8104:1;8101;8094:12;8056:52;-1:-1:-1;;8127:23:398;;;8197:2;8182:18;;;8169:32;;-1:-1:-1;7959:248:398:o;8212:127::-;8273:10;8268:3;8264:20;8261:1;8254:31;8304:4;8301:1;8294:15;8328:4;8325:1;8318:15;8344:126;8438:1;8431:5;8428:12;8418:46;;8444:18;;:::i;8475:807::-;8542:3;8580:5;8574:12;8607:6;8602:3;8595:19;8633:4;8662;8657:3;8653:14;8646:21;;8701:4;8694:5;8690:16;8724:1;8734:523;8748:6;8745:1;8742:13;8734:523;;;8813:6;8807:13;8849:2;8843:9;8882:1;8878:2;8875:9;8865:43;;8888:18;;:::i;:::-;8921:15;;8976:11;;;8970:18;8956:12;;;8949:40;9012:4;9060:11;;;9054:18;-1:-1:-1;;;;;9050:44:398;9036:12;;;9029:66;9118:4;9162:11;;;9156:18;9142:12;;;9135:40;9204:4;9195:14;;;;9232:15;;;;9091:1;8763:9;8734:523;;;-1:-1:-1;9273:3:398;;8475:807;-1:-1:-1;;;;;8475:807:398:o;9287:797::-;9356:3;9394:5;9388:12;9421:6;9416:3;9409:19;9447:4;9476;9471:3;9467:14;9460:21;;9515:4;9508:5;9504:16;9538:1;9548:511;9562:6;9559:1;9556:13;9548:511;;;9627:6;9621:13;9663:2;9657:9;9679:47;9723:2;9679:47;:::i;:::-;9739:15;;9793:11;;;9787:18;9828:4;9866:21;;;9852:12;;;9845:43;9911:4;9959:11;;;9953:18;9949:27;9935:12;;;9928:49;10006:4;9997:14;;;;10034:15;;;;9584:1;9577:9;9548:511;;10089:1338;10264:2;10275:21;;;10367:13;;10416:4;10396:18;;;10389:32;10470:19;;10334:3;10319:19;;10498:22;;;10235:4;;10264:2;10578:21;;;10235:4;;10551:3;10536:19;;;10627:352;10641:6;10638:1;10635:13;10627:352;;;10706:6;10700:13;10742:2;10736:9;10758:47;10802:2;10758:47;:::i;:::-;10818:15;;10877:11;;10871:18;10891:4;10867:29;10853:12;;;10846:51;10954:15;;;;10663:1;10656:9;;;;;10926:4;10917:14;;;;10627:352;;;10631:3;11028:2;11020:6;11016:15;11010:22;10988:44;;11055:2;11051:7;11041:17;;11121:2;11109:9;11104:3;11100:19;11096:28;11089:4;11078:9;11074:20;11067:58;11148:63;11207:3;11191:14;11148:63;:::i;:::-;11134:77;;;;11260:4;11252:6;11248:17;11242:24;11332:2;11320:9;11312:6;11308:22;11304:31;11297:4;11286:9;11282:20;11275:61;11353:68;11414:6;11398:14;11353:68;:::i;11432:118::-;11518:5;11511:13;11504:21;11497:5;11494:32;11484:60;;11540:1;11537;11530:12;11555:382;11620:6;11628;11681:2;11669:9;11660:7;11656:23;11652:32;11649:52;;;11697:1;11694;11687:12;11649:52;11736:9;11723:23;11755:31;11780:5;11755:31;:::i;:::-;11805:5;-1:-1:-1;11862:2:398;11847:18;;11834:32;11875:30;11834:32;11875:30;:::i;:::-;11924:7;11914:17;;;11555:382;;;;;:::o;11942:795::-;12037:6;12045;12053;12061;12114:3;12102:9;12093:7;12089:23;12085:33;12082:53;;;12131:1;12128;12121:12;12082:53;12170:9;12157:23;12189:31;12214:5;12189:31;:::i;:::-;12239:5;-1:-1:-1;12296:2:398;12281:18;;12268:32;12309:33;12268:32;12309:33;:::i;:::-;12361:7;-1:-1:-1;12415:2:398;12400:18;;12387:32;;-1:-1:-1;12470:2:398;12455:18;;12442:32;-1:-1:-1;;;;;12486:30:398;;12483:50;;;12529:1;12526;12519:12;12483:50;12552:22;;12605:4;12597:13;;12593:27;-1:-1:-1;12583:55:398;;12634:1;12631;12624:12;12583:55;12657:74;12723:7;12718:2;12705:16;12700:2;12696;12692:11;12657:74;:::i;:::-;12647:84;;;11942:795;;;;;;;:::o;12742:543::-;12830:6;12838;12891:2;12879:9;12870:7;12866:23;12862:32;12859:52;;;12907:1;12904;12897:12;12859:52;12947:9;12934:23;-1:-1:-1;;;;;13017:2:398;13009:6;13006:14;13003:34;;;13033:1;13030;13023:12;13003:34;13056:50;13098:7;13089:6;13078:9;13074:22;13056:50;:::i;:::-;13046:60;;13159:2;13148:9;13144:18;13131:32;13115:48;;13188:2;13178:8;13175:16;13172:36;;;13204:1;13201;13194:12;13172:36;;13227:52;13271:7;13260:8;13249:9;13245:24;13227:52;:::i;:::-;13217:62;;;12742:543;;;;;:::o;13290:388::-;13358:6;13366;13419:2;13407:9;13398:7;13394:23;13390:32;13387:52;;;13435:1;13432;13425:12;13387:52;13474:9;13461:23;13493:31;13518:5;13493:31;:::i;:::-;13543:5;-1:-1:-1;13600:2:398;13585:18;;13572:32;13613:33;13572:32;13613:33;:::i;13875:380::-;13954:1;13950:12;;;;13997;;;14018:61;;14072:4;14064:6;14060:17;14050:27;;14018:61;14125:2;14117:6;14114:14;14094:18;14091:38;14088:161;;14171:10;14166:3;14162:20;14159:1;14152:31;14206:4;14203:1;14196:15;14234:4;14231:1;14224:15;14260:127;14321:10;14316:3;14312:20;14309:1;14302:31;14352:4;14349:1;14342:15;14376:4;14373:1;14366:15;14392:128;14459:9;;;14480:11;;;14477:37;;;14494:18;;:::i;15133:127::-;15194:10;15189:3;15185:20;15182:1;15175:31;15225:4;15222:1;15215:15;15249:4;15246:1;15239:15;15265:245;15332:6;15385:2;15373:9;15364:7;15360:23;15356:32;15353:52;;;15401:1;15398;15391:12;15353:52;15433:9;15427:16;15452:28;15474:5;15452:28;:::i;15515:289::-;15646:3;15684:6;15678:13;15700:66;15759:6;15754:3;15747:4;15739:6;15735:17;15700:66;:::i;:::-;15782:16;;;;;15515:289;-1:-1:-1;;15515:289:398:o;15809:297::-;15927:12;;15974:4;15963:16;;;15957:23;;15927:12;15992:16;;15989:111;;;-1:-1:-1;;16066:4:398;16062:17;;;;16059:1;16055:25;16051:38;16040:50;;15809:297;-1:-1:-1;15809:297:398:o;16111:465::-;16164:3;16202:5;16196:12;16229:6;16224:3;16217:19;16255:4;16284;16279:3;16275:14;16268:21;;16323:4;16316:5;16312:16;16346:1;16356:195;16370:6;16367:1;16364:13;16356:195;;;16435:13;;-1:-1:-1;;;;;16431:39:398;16419:52;;16491:12;;;;16526:15;;;;16467:1;16385:9;16356:195;;16581:403;16816:6;16805:9;16798:25;16859:2;16854;16843:9;16839:18;16832:30;16779:4;16879:56;16931:2;16920:9;16916:18;16908:6;16879:56;:::i;:::-;16871:64;;16971:6;16966:2;16955:9;16951:18;16944:34;16581:403;;;;;;:::o;16989:496::-;17168:3;17206:6;17200:13;17222:66;17281:6;17276:3;17269:4;17261:6;17257:17;17222:66;:::i;:::-;17351:13;;17310:16;;;;17373:70;17351:13;17310:16;17420:4;17408:17;;17373:70;:::i;:::-;17459:20;;16989:496;-1:-1:-1;;;;16989:496:398:o;17490:251::-;17560:6;17613:2;17601:9;17592:7;17588:23;17584:32;17581:52;;;17629:1;17626;17619:12;17581:52;17661:9;17655:16;17680:31;17705:5;17680:31;:::i;17872:543::-;17974:2;17969:3;17966:11;17963:446;;;18010:1;18034:5;18031:1;18024:16;18078:4;18075:1;18065:18;18148:2;18136:10;18132:19;18129:1;18125:27;18119:4;18115:38;18184:4;18172:10;18169:20;18166:47;;;-1:-1:-1;18207:4:398;18166:47;18262:2;18257:3;18253:12;18250:1;18246:20;18240:4;18236:31;18226:41;;18317:82;18335:2;18328:5;18325:13;18317:82;;;18380:17;;;18361:1;18350:13;18317:82;;18591:1345;18717:3;18711:10;-1:-1:-1;;;;;18736:6:398;18733:30;18730:56;;;18766:18;;:::i;:::-;18795:97;18885:6;18845:38;18877:4;18871:11;18845:38;:::i;:::-;18839:4;18795:97;:::i;:::-;18947:4;;19004:2;18993:14;;19021:1;19016:663;;;;19723:1;19740:6;19737:89;;;-1:-1:-1;19792:19:398;;;19786:26;19737:89;-1:-1:-1;;18548:1:398;18544:11;;;18540:24;18536:29;18526:40;18572:1;18568:11;;;18523:57;19839:81;;18986:944;;19016:663;17819:1;17812:14;;;17856:4;17843:18;;-1:-1:-1;;19052:20:398;;;19170:236;19184:7;19181:1;19178:14;19170:236;;;19273:19;;;19267:26;19252:42;;19365:27;;;;19333:1;19321:14;;;;19200:19;;19170:236;;;19174:3;19434:6;19425:7;19422:19;19419:201;;;19495:19;;;19489:26;-1:-1:-1;;19578:1:398;19574:14;;;19590:3;19570:24;19566:37;19562:42;19547:58;19532:74;;19419:201;-1:-1:-1;;;;;19666:1:398;19650:14;;;19646:22;19633:36;;-1:-1:-1;18591:1345:398:o;20194:184::-;20264:6;20317:2;20305:9;20296:7;20292:23;20288:32;20285:52;;;20333:1;20330;20323:12;20285:52;-1:-1:-1;20356:16:398;;20194:184;-1:-1:-1;20194:184:398:o;20383:135::-;20422:3;20443:17;;;20440:43;;20463:18;;:::i;:::-;-1:-1:-1;20510:1:398;20499:13;;20383:135::o;20523:217::-;20563:1;20589;20579:132;;20633:10;20628:3;20624:20;20621:1;20614:31;20668:4;20665:1;20658:15;20696:4;20693:1;20686:15;20579:132;-1:-1:-1;20725:9:398;;20523:217::o;20745:255::-;20897:2;20882:18;;20909:51;20953:6;20909:51;:::i;:::-;20969:25;;;20745:255;:::o;21005:249::-;21074:6;21127:2;21115:9;21106:7;21102:23;21098:32;21095:52;;;21143:1;21140;21133:12;21095:52;21175:9;21169:16;21194:30;21218:5;21194:30;:::i;21259:276::-;21328:6;21381:2;21369:9;21360:7;21356:23;21352:32;21349:52;;;21397:1;21394;21387:12;21349:52;21429:9;21423:16;21479:6;21472:5;21468:18;21461:5;21458:29;21448:57;;21501:1;21498;21491:12;21540:125;21605:9;;;21626:10;;;21623:36;;;21639:18;;:::i;21670:180::-;-1:-1:-1;;;;;21775:10:398;;;21787;;;21771:27;;21810:11;;;21807:37;;;21824:18;;:::i;:::-;21807:37;21670:180;;;;:::o;23805:183::-;23865:4;-1:-1:-1;;;;;23890:6:398;23887:30;23884:56;;;23920:18;;:::i;:::-;-1:-1:-1;23965:1:398;23961:14;23977:4;23957:25;;23805:183::o;23993:956::-;24088:6;24119:2;24162;24150:9;24141:7;24137:23;24133:32;24130:52;;;24178:1;24175;24168:12;24130:52;24211:9;24205:16;-1:-1:-1;;;;;24236:6:398;24233:30;24230:50;;;24276:1;24273;24266:12;24230:50;24299:22;;24352:4;24344:13;;24340:27;-1:-1:-1;24330:55:398;;24381:1;24378;24371:12;24330:55;24410:2;24404:9;24433:60;24449:43;24489:2;24449:43;:::i;:::-;24433:60;:::i;:::-;24527:15;;;24609:1;24605:10;;;;24597:19;;24593:28;;;24558:12;;;;24633:19;;;24630:39;;;24665:1;24662;24655:12;24630:39;24689:11;;;;24709:210;24725:6;24720:3;24717:15;24709:210;;;24798:3;24792:10;24815:31;24840:5;24815:31;:::i;:::-;24859:18;;24742:12;;;;24897;;;;24709:210;;24954:401;25049:6;25057;25110:2;25098:9;25089:7;25085:23;25081:32;25078:52;;;25126:1;25123;25116:12;25078:52;25158:9;25152:16;25177:31;25202:5;25177:31;:::i;:::-;25277:2;25262:18;;25256:25;25227:5;;-1:-1:-1;25290:33:398;25256:25;25290:33;:::i;25550:502::-;25842:1;25838;25833:3;25829:11;25825:19;25817:6;25813:32;25802:9;25795:51;25882:6;25877:2;25866:9;25862:18;25855:34;25925:6;25920:2;25909:9;25905:18;25898:34;25968:3;25963:2;25952:9;25948:18;25941:31;25776:4;25989:57;26041:3;26030:9;26026:19;26018:6;25989:57;:::i;26057:160::-;26134:13;;26187:4;26176:16;;26166:27;;26156:55;;26207:1;26204;26197:12;26222:1342;26301:5;26354:3;26347:4;26339:6;26335:17;26331:27;26321:55;;26372:1;26369;26362:12;26321:55;26401:6;26395:13;26427:4;26451:60;26467:43;26507:2;26467:43;:::i;26451:60::-;26545:15;;;26631:1;26627:10;;;;26615:23;;26611:32;;;26576:12;;;;26655:15;;;26652:35;;;26683:1;26680;26673:12;26652:35;26719:2;26711:6;26707:15;26731:804;26747:6;26742:3;26739:15;26731:804;;;26825:4;26819:3;26814;26810:13;26806:24;26803:114;;;26871:1;26900:2;26896;26889:14;26803:114;26943:22;;:::i;:::-;26999:3;26993:10;27038:1;27029:7;27026:14;27016:112;;27082:1;27111:2;27107;27100:14;27016:112;27141:22;;27205:12;;;27199:19;27183:14;;;27176:43;27242:2;27278:12;;;27272:19;27304:33;27272:19;27304:33;:::i;:::-;27357:14;;;27350:31;27404:2;27448:12;;;27442:19;27426:14;;;27419:43;27475:18;;27513:12;;;;26773:4;26764:14;26731:804;;;-1:-1:-1;27553:5:398;26222:1342;-1:-1:-1;;;;;;26222:1342:398:o;27569:1181::-;27650:5;27703:3;27696:4;27688:6;27684:17;27680:27;27670:55;;27721:1;27718;27711:12;27670:55;27750:6;27744:13;27776:4;27800:60;27816:43;27856:2;27816:43;:::i;27800:60::-;27894:15;;;27956:4;27999:13;;;27987:26;;27983:35;;;27925:12;;;;27882:3;28030:15;;;28027:35;;;28058:1;28055;28048:12;28027:35;28094:2;28086:6;28082:15;28106:615;28122:6;28117:3;28114:15;28106:615;;;28198:2;28192:3;28187;28183:13;28179:22;28176:112;;;28242:1;28271:2;28267;28260:14;28176:112;28314:22;;:::i;:::-;28370:3;28364:10;28387:45;28424:7;28387:45;:::i;:::-;28445:22;;28503:41;28531:12;;;28503:41;:::i;:::-;28498:2;28491:5;28487:14;28480:65;28568:2;28606:41;28643:2;28638:3;28634:12;28606:41;:::i;:::-;28590:14;;;28583:65;28661:18;;28699:12;;;;28139;;28106:615;;;-1:-1:-1;28739:5:398;;27569:1181;-1:-1:-1;;;;;;;27569:1181:398:o;28755:1951::-;28852:6;28883:2;28926;28914:9;28905:7;28901:23;28897:32;28894:52;;;28942:1;28939;28932:12;28894:52;28975:9;28969:16;-1:-1:-1;;;;;29045:2:398;29037:6;29034:14;29031:34;;;29061:1;29058;29051:12;29031:34;29084:22;;;;29140:4;29122:16;;;29118:27;29115:47;;;29158:1;29155;29148:12;29115:47;29184:22;;:::i;:::-;29237:2;29231:9;29265:2;29255:8;29252:16;29249:36;;;29281:1;29278;29271:12;29249:36;29304:17;;29352:4;29344:13;;29340:27;-1:-1:-1;29330:55:398;;29381:1;29378;29371:12;29330:55;29410:2;29404:9;29433:60;29449:43;29489:2;29449:43;:::i;29433:60::-;29527:15;;;29609:1;29605:10;;;;29597:19;;29593:28;;;29558:12;;;;29633:19;;;29630:39;;;29665:1;29662;29655:12;29630:39;29689:11;;;;29709:528;29725:6;29720:3;29717:15;29709:528;;;29807:4;29801:3;29792:7;29788:17;29784:28;29781:118;;;29853:1;29882:2;29878;29871:14;29781:118;29927:22;;:::i;:::-;29983:3;29977:10;30000:45;30037:7;30000:45;:::i;:::-;30058:24;;30120:41;30148:12;;;30120:41;:::i;:::-;30102:16;;;30095:67;30175:20;;29751:4;29742:14;;;;;30215:12;;;;29709:528;;;30246:20;;-1:-1:-1;;;30297:11:398;;;30291:18;30321:16;;;30318:36;;;30350:1;30347;30340:12;30318:36;30386:81;30459:7;30448:8;30444:2;30440:17;30386:81;:::i;:::-;30381:2;30374:5;30370:14;30363:105;;30507:4;30503:2;30499:13;30493:20;30477:36;;30538:2;30528:8;30525:16;30522:36;;;30554:1;30551;30544:12;30522:36;30592:83;30667:7;30656:8;30652:2;30648:17;30592:83;:::i;:::-;30585:4;30574:16;;30567:109;30578:5;28755:1951;-1:-1:-1;;;;;;28755:1951:398:o;30711:489::-;-1:-1:-1;;;;;30980:15:398;;;30962:34;;31032:15;;31027:2;31012:18;;31005:43;31079:2;31064:18;;31057:34;;;31127:3;31122:2;31107:18;;31100:31;;;30905:4;;31148:46;;31174:19;;31166:6;31148:46;:::i;31205:290::-;31274:6;31327:2;31315:9;31306:7;31302:23;31298:32;31295:52;;;31343:1;31340;31333:12;31295:52;31369:16;;-1:-1:-1;;;;;;31414:32:398;;31404:43;;31394:71;;31461:1;31458;31451:12;32469:168;32542:9;;;32573;;32590:15;;;32584:22;;32570:37;32560:71;;32611:18;;:::i","linkReferences":{}},"methodIdentifiers":{"__ERC721A_init(string,string)":"d2f01f19","__EntitlementGated_init(address)":"7adc9cbe","__Membership_init((string,string,uint256,uint256,uint64,address,address,uint256,address),address)":"4c2abfbe","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","expiresAt(uint256)":"17c95709","getApproved(uint256)":"081812fc","getMembershipCurrency()":"657e45e8","getMembershipDuration()":"8120f0ba","getMembershipFreeAllocation()":"706b8e09","getMembershipImage()":"93b13cb7","getMembershipLimit()":"95d600c8","getMembershipPrice()":"1278076a","getMembershipPricingModule()":"e847abdd","getMembershipRenewalPrice(uint256)":"5803909f","getRuleData(bytes32,uint256)":"92c399ff","getSpaceFactory()":"79dda585","isApprovedForAll(address,address)":"e985e9c5","joinSpace(address)":"8c625b06","name()":"06fdde03","ownerOf(uint256)":"6352211e","postEntitlementCheckResult(bytes32,uint256,uint8)":"4739e805","renewMembership(uint256)":"7c9669ac","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setMembershipFreeAllocation(uint256)":"5becd24a","setMembershipImage(string)":"0ef1be5f","setMembershipLimit(uint256)":"97fb7c1e","setMembershipPrice(uint256)":"69d5f38a","setMembershipPricingModule(address)":"df9a9fe6","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","withdraw(address)":"51cff8d9"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AddressInsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__AlreadyBanned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banning__CannotBanOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banning__CannotBanSelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__NotBanned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Dispatcher__InvalidCaller\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Dispatcher__InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC5643__DurationZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC5643__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC5643__NotApprovedOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC5643__SubscriptionNotRenewable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_NodeAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_NodeNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_TransactionCheckAlreadyCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_TransactionCheckAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_TransactionNotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__ValueAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedInnerCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_InInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_NotInInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_AlreadySupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_NotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__AlreadyMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InsufficientPayment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidCurrency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidFeeRecipient\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidFreeAllocation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidMaxSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidPayment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidPrice\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidPricingModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__MaxSupplyReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__NotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Membership__PriceTooLow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintERC2309QuantityExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintZeroQuantity\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Ownable__NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Ownable__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnershipNotInitializedForExtraData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__NotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__Paused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Prepay__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Prepay__InvalidAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Prepay__InvalidMembership\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Prepay__InvalidSupplyAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuard__ReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__EntitlementAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__EntitlementDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__InvalidEntitlementAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__InvalidPermission\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__PermissionAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__PermissionDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__RoleDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"URIQueryForNonexistentToken\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"moderator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"ConsecutiveTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IEntitlementGatedBase.NodeVoteStatus\",\"name\":\"result\",\"type\":\"uint8\"}],\"name\":\"EntitlementCheckResultPosted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"MembershipCurrencyUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"MembershipFeeRecipientUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"allocation\",\"type\":\"uint256\"}],\"name\":\"MembershipFreeAllocationUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"MembershipLimitUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"name\":\"MembershipPriceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MembershipTokenIssued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"MembershipTokenRejected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"MembershipWithdrawal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"supply\",\"type\":\"uint256\"}],\"name\":\"Prepay__Prepaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"RoleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remover\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"RoleRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"updater\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"RoleUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"expiration\",\"type\":\"uint64\"}],\"name\":\"SubscriptionUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"moderator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Unbanned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"name\":\"__ERC721A_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IEntitlementChecker\",\"name\":\"entitlementChecker\",\"type\":\"address\"}],\"name\":\"__EntitlementGated_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"duration\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"freeAllocation\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"pricingModule\",\"type\":\"address\"}],\"internalType\":\"struct IMembershipBase.Membership\",\"name\":\"info\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"spaceFactory\",\"type\":\"address\"}],\"name\":\"__Membership_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"expiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipCurrency\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipDuration\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipFreeAllocation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipImage\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMembershipPricingModule\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getMembershipRenewalPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getRuleData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlementBase.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlementBase.RuleData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSpaceFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"joinSpace\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"enum IEntitlementGatedBase.NodeVoteStatus\",\"name\":\"result\",\"type\":\"uint8\"}],\"name\":\"postEntitlementCheckResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"renewMembership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newAllocation\",\"type\":\"uint256\"}],\"name\":\"setMembershipFreeAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newImage\",\"type\":\"string\"}],\"name\":\"setMembershipImage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newLimit\",\"type\":\"uint256\"}],\"name\":\"setMembershipLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"setMembershipPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pricingModule\",\"type\":\"address\"}],\"name\":\"setMembershipPricingModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AddressInsufficientBalance(address)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"FailedInnerCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"ConsecutiveTransfer(uint256,uint256,address,address)\":{\"details\":\"Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, as defined in the [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. See {_mintERC2309} for more details.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"This emits when ownership of a contract changes.\"},\"SubscriptionUpdate(uint256,uint64)\":{\"details\":\"When a subscription is canceled, the expiration value should also be 0.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"__Membership_init((string,string,uint256,uint256,uint64,address,address,uint256,address),address)\":{\"details\":\"Initialization logic when facet is added to diamond\"},\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in `owner`'s account.\"},\"expiresAt(uint256)\":{\"params\":{\"tokenId\":\"The token id of the membership\"}},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"getMembershipCurrency()\":{\"returns\":{\"_0\":\"The membership currency\"}},\"getMembershipDuration()\":{\"returns\":{\"_0\":\"The membership duration\"}},\"getMembershipFreeAllocation()\":{\"returns\":{\"_0\":\"The membership free allocation\"}},\"getMembershipImage()\":{\"returns\":{\"_0\":\"The membership image\"}},\"getMembershipLimit()\":{\"returns\":{\"_0\":\"The membership limit\"}},\"getMembershipPrice()\":{\"returns\":{\"_0\":\"The membership price\"}},\"getMembershipPricingModule()\":{\"returns\":{\"_0\":\"The membership pricing module\"}},\"getMembershipRenewalPrice(uint256)\":{\"params\":{\"tokenId\":\"The token id of the membership\"},\"returns\":{\"_0\":\"The membership renewal price\"}},\"getSpaceFactory()\":{\"returns\":{\"_0\":\"The space factory\"}},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}.\"},\"joinSpace(address)\":{\"params\":{\"receiver\":\"The address of the receiver\"}},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"renewMembership(uint256)\":{\"params\":{\"tokenId\":\"The token id of the membership\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, tokenId, '')`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"setMembershipFreeAllocation(uint256)\":{\"params\":{\"newAllocation\":\"The new membership free allocation\"}},\"setMembershipLimit(uint256)\":{\"params\":{\"newLimit\":\"The new membership limit\"}},\"setMembershipPrice(uint256)\":{\"params\":{\"newPrice\":\"The new membership price\"}},\"setMembershipPricingModule(address)\":{\"params\":{\"pricingModule\":\"The new pricing module\"}},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"totalSupply()\":{\"details\":\"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"ApprovalCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"ApprovalQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"BalanceQueryForZeroAddress()\":[{\"notice\":\"Cannot query the balance for the zero address.\"}],\"MintERC2309QuantityExceedsLimit()\":[{\"notice\":\"The `quantity` minted with ERC2309 exceeds the safety limit.\"}],\"MintToZeroAddress()\":[{\"notice\":\"Cannot mint to the zero address.\"}],\"MintZeroQuantity()\":[{\"notice\":\"The quantity of tokens minted must be more than zero.\"}],\"OwnerQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"OwnershipNotInitializedForExtraData()\":[{\"notice\":\"The `extraData` cannot be set on an unintialized ownership slot.\"}],\"TransferCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"TransferFromIncorrectOwner()\":[{\"notice\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"notice\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"notice\":\"Cannot transfer to the zero address.\"}],\"URIQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}]},\"events\":{\"InterfaceAdded(bytes4)\":{\"notice\":\"Emitted when an interface is added to the contract via `_addInterface`.\"},\"InterfaceRemoved(bytes4)\":{\"notice\":\"Emitted when an interface is removed from the contract via `_removeInterface`.\"},\"SubscriptionUpdate(uint256,uint64)\":{\"notice\":\"Emitted when a subscription expiration changes\"}},\"kind\":\"user\",\"methods\":{\"expiresAt(uint256)\":{\"notice\":\"Return the expiration date of a membership\"},\"getMembershipCurrency()\":{\"notice\":\"Get the membership currency\"},\"getMembershipDuration()\":{\"notice\":\"Get the membership duration\"},\"getMembershipFreeAllocation()\":{\"notice\":\"Get the membership free allocation\"},\"getMembershipImage()\":{\"notice\":\"Get the membership image\"},\"getMembershipLimit()\":{\"notice\":\"Get the membership limit\"},\"getMembershipPrice()\":{\"notice\":\"Get the membership price\"},\"getMembershipPricingModule()\":{\"notice\":\"Get the membership pricing module\"},\"getMembershipRenewalPrice(uint256)\":{\"notice\":\"Get the membership renewal price\"},\"getRuleData(bytes32,uint256)\":{\"notice\":\"deprecated Use EntitlementDataQueryable.getCrossChainEntitlementData instead\"},\"getSpaceFactory()\":{\"notice\":\"Get the space factory\"},\"joinSpace(address)\":{\"notice\":\"Join a space\"},\"renewMembership(uint256)\":{\"notice\":\"Renew a space membership\"},\"setMembershipFreeAllocation(uint256)\":{\"notice\":\"Set the membership free allocation\"},\"setMembershipLimit(uint256)\":{\"notice\":\"Set the membership limit\"},\"setMembershipPrice(uint256)\":{\"notice\":\"Set the membership price\"},\"setMembershipPricingModule(address)\":{\"notice\":\"Set the membership pricing module\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/facets/membership/MembershipFacet.sol\":\"MembershipFacet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/checker/IEntitlementChecker.sol\":{\"keccak256\":\"0xbeb7bfa236f19172b29eac53be03a3b377de3524b2d836192b0c64ebe708c204\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d5a103a2b7b6be1ffa6662db6081763bcd210216fefc25307b835c555e0cf4d\",\"dweb:/ipfs/QmUCvhZdZpVnyJuZVgd2qGduTf11384TmmBJb2RaEBHxhh\"]},\"contracts/src/diamond/facets/Facet.sol\":{\"keccak256\":\"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863\",\"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc\"]},\"contracts/src/diamond/facets/initializable/Initializable.sol\":{\"keccak256\":\"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552\",\"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC\"]},\"contracts/src/diamond/facets/initializable/InitializableStorage.sol\":{\"keccak256\":\"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4\",\"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg\"]},\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/introspection/IntrospectionBase.sol\":{\"keccak256\":\"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1\",\"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw\"]},\"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol\":{\"keccak256\":\"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91\",\"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM\"]},\"contracts/src/diamond/facets/ownable/IERC173.sol\":{\"keccak256\":\"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b\",\"dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd\"]},\"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol\":{\"keccak256\":\"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb\",\"dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol\":{\"keccak256\":\"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb\",\"dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol\":{\"keccak256\":\"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf\",\"dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F\"]},\"contracts/src/diamond/facets/pausable/IPausable.sol\":{\"keccak256\":\"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684\",\"dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ\"]},\"contracts/src/diamond/facets/pausable/PausableBase.sol\":{\"keccak256\":\"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3\",\"dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V\"]},\"contracts/src/diamond/facets/pausable/PausableStorage.sol\":{\"keccak256\":\"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd\",\"dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj\"]},\"contracts/src/diamond/facets/reentrancy/IReentrancyGuard.sol\":{\"keccak256\":\"0x89ad30ac5476efd023189fca20b13214fe5541ea5fff11760e00f229c62c896e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc04fb0c48333cb0f4b84b01e50498d60510d52495c3772f0bf632773ec47a7d\",\"dweb:/ipfs/QmQUuYriat7eRRsPUHTeD2CDEwHzYxqW6qix7xf44kWByo\"]},\"contracts/src/diamond/facets/reentrancy/ReentrancyGuard.sol\":{\"keccak256\":\"0xb481ee6684d1589254563cb5c318b1eb75f6f15f96baecbd5f5e42b72b7a5003\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e1bafcd0779c6241ee7716ae2058dd6f7d5a75bb211f5bfcb9aefa434228f8\",\"dweb:/ipfs/QmSbsdGjL1be4VBjgWrk5CodWGvszXZt5HX32PxhvXTZ5Y\"]},\"contracts/src/diamond/facets/reentrancy/ReentrancyGuardStorage.sol\":{\"keccak256\":\"0xe4a08e5712446357756a6da7b65ae80845732dfebac180bd478caaf64dfc790e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09f5691ae9aedbe094cc83a0e8a4272c4d6dd5f57e69fec5870b148f2d94395e\",\"dweb:/ipfs/QmTLHQWuRp1L45oRV8oWWbk4Y4MMNYW1Rp9WUJ86gzVVRv\"]},\"contracts/src/diamond/facets/token/ERC5643/ERC5643Base.sol\":{\"keccak256\":\"0x21d3c281732e54c93520a4f2cc72cc5af38c517f2a150ee67aa84704a3d78627\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ce7c061da0142a4d775bb85896410d363d4a28c0275d3171a70872344fc9a4\",\"dweb:/ipfs/Qmdwgs3TaC4b83JVn6RG5pJJdCrxb74ZMRqZbYSe5DuqZf\"]},\"contracts/src/diamond/facets/token/ERC5643/ERC5643Storage.sol\":{\"keccak256\":\"0x68cbff071e6a6a6b91b675af567616799435676fbbbebf4f9226e1226d6128b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2c7aee6ef32477733a50ba667cc510c8c165b9a9e146609b1f800acd0e4832\",\"dweb:/ipfs/QmcWAz74x3AR6kpzWdyPWw3iLQ1yHBT3ZVoK6jT7T3LwXq\"]},\"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol\":{\"keccak256\":\"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615\",\"dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721A.sol\":{\"keccak256\":\"0x5662ab29272ecaabdaf5792c368a71693fcad9df24566f9e470ff1ec3510fd8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef719ff8dce040daf5bcfe328f3463261fb3acfe5c41c589365143916748cc3\",\"dweb:/ipfs/QmUm4PHj4y2237H7hnCwnfRyTWbp1DHWpc8GN26M6T4ToC\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol\":{\"keccak256\":\"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba\",\"dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol\":{\"keccak256\":\"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04\",\"dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey\"]},\"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol\":{\"keccak256\":\"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d\",\"dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz\"]},\"contracts/src/factory/facets/architect/pricing/IPricingModules.sol\":{\"keccak256\":\"0xa45fcd2bb5037c0b9b80bb02a3a4bd00fa99598a8d9e0a5ee2dff7a04c670171\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f95100f32791a9aa2e3cc47fb9cd58542e9250834bfc38756012cc4baaa786\",\"dweb:/ipfs/QmYGPF6HQLoq5bCgMYW1AyT2Vz1H12Lt8LDdmzTadN5Ppm\"]},\"contracts/src/factory/facets/platform/requirements/IPlatformRequirements.sol\":{\"keccak256\":\"0xd1c61d42973382822d0b8256b5d308ad693dfa59240864cce0bec1bd4208e4c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bff6d50557810f7aa9de451f6ac2b279fe5983eefc0b38ef8be7ebb2ffde0f86\",\"dweb:/ipfs/QmS6DXYXtPTfePgtrUxH1vmPycsVoumBQRJZugjGButowT\"]},\"contracts/src/factory/facets/registry/IImplementationRegistry.sol\":{\"keccak256\":\"0xb447f7654cd152c29718c95983b62e390a59658d7d1a22b97f79d0aee9fb5de7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://756a9a38364c01937088ba927f09af2726d2df207eea4e0e2842e3fc66ccd32c\",\"dweb:/ipfs/QmbxBRXgtkEQsGtxq1uSM6vX38FkjPq6tpodCdtBmdEmXA\"]},\"contracts/src/factory/facets/wallet-link/IWalletLink.sol\":{\"keccak256\":\"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0\",\"dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5\"]},\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":{\"keccak256\":\"0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd\",\"dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j\"]},\"contracts/src/spaces/facets/Entitled.sol\":{\"keccak256\":\"0x90204085688bf4dd1e1b6ca30684ee37db79210070c405406898c8a77d50bfce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9b194cc9977b03fbccc81529147a0fce7857893c8146927570c1ee5a28aa900\",\"dweb:/ipfs/QmZMvPPj5ZPYaRQaSraBkv3PSMeUZ4wN1tQ9EVvwW6SL4r\"]},\"contracts/src/spaces/facets/Permissions.sol\":{\"keccak256\":\"0x08f1d02cacf8b8adcb38219623f999d15908185eefca4e3d0ea2c3486091d08c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6b021cd9adfed316fc1f43b99e5430d75469ef13d252fa5eb25057155908b77\",\"dweb:/ipfs/QmYAhL8hWcbtHARsAY9nauyRB4BERUi9s7SSRYkb1e1kCh\"]},\"contracts/src/spaces/facets/banning/BanningBase.sol\":{\"keccak256\":\"0x38c44494221f96568f3efb540a8a6c7af141de95f25caf26df6e8a8333f31249\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1f509347cab5090655ff8272443d18f9716fea5ef27cd86269ccbd2570aa7e\",\"dweb:/ipfs/QmbF8StzLRGnVvVXWYBowvdULoPPqQkU5hZR548cnRzuVs\"]},\"contracts/src/spaces/facets/banning/BanningStorage.sol\":{\"keccak256\":\"0xcfbf5c113056e569abf23158853ff4877744b22a4bf2bf49a282d04dab23ab17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f825e97ca65c9cd3bd5885d2fa8b8e5f8f0dcbe227dec064abbbab645685fbe\",\"dweb:/ipfs/QmXAMntxrjzeNUKh9WcyHvzDmnV89vrJ9PkKRceqxJSxZp\"]},\"contracts/src/spaces/facets/banning/IBanning.sol\":{\"keccak256\":\"0x350ec182a95a86a41335979cd7212132858c5cfcd366602b2f6cd0ec0694b63e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb4ad0c5a1086c38448b3e279733f33edc0cc39648368e5cb43dfff139ff7e8\",\"dweb:/ipfs/QmWYfYE8Haqk9kBRxmLijfQSfqbfxf7LB3wQ24d3pG5PE3\"]},\"contracts/src/spaces/facets/channels/ChannelService.sol\":{\"keccak256\":\"0xdac0460cb66d31e57593154fb31ccd112dd1d51c34ea6e5ce316250ac5548abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56c99fa9d482bd02ea96a01e1a960e1678edbbc1a9580511f68543ca194f6fb5\",\"dweb:/ipfs/QmbUjxxkjLCGXVC3bNtWQDas2vJwUmS5NraTGwWiKJAXvH\"]},\"contracts/src/spaces/facets/channels/ChannelStorage.sol\":{\"keccak256\":\"0xeb4174513a652b1571b3a92cbefa80e9d450144e8d07bfb29c863d7d9de9313c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c3b73c84a2b4a56fcc8bd1fbaa0a8896a2dfc62a7fde07b13c6d8b05dcf8fe6\",\"dweb:/ipfs/QmRPukfmps5ESAR5saLNLJp6GEg1nNCTq5qChGeAjgtLV4\"]},\"contracts/src/spaces/facets/delegation/WalletLinkProxyBase.sol\":{\"keccak256\":\"0xffef403556b46744bd1833e5df57b02eb79e010841b16610e1740bc0dac929b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1afa30929e8c6b0c69528d328774c98789825a8de53e5945a1e95092bee2ad08\",\"dweb:/ipfs/QmTbCqLJTBHgcMuFwWSTbrgR7uaASJqwqYuku4YkGzTWW1\"]},\"contracts/src/spaces/facets/delegation/WalletLinkProxyStorage.sol\":{\"keccak256\":\"0x9667e475b9ad9f1130583840c9b0594a7512f7edd33163b926b3db21f70d9909\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6271ce56258b1e9150378872d250cfaeb4501b5d0288e8f19f02096114c687f\",\"dweb:/ipfs/QmXSBA2CpLL9BdvZb994JYStgB9fJfsHwgcke6gsD3zybW\"]},\"contracts/src/spaces/facets/dispatcher/DispatcherBase.sol\":{\"keccak256\":\"0xc6743de898114347a9c8d7ac890849b857f21fe787d4e381c477da23ac29d371\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6e61de497274ed14026979ac8d383ae833776513ed56f3e19ba1e33db3aced6\",\"dweb:/ipfs/QmZve5YBgaw8pGkNbKKNodegSWSM5ERLouwPh3R1GzEWZt\"]},\"contracts/src/spaces/facets/dispatcher/DispatcherStorage.sol\":{\"keccak256\":\"0x0173a174a8241b5fee8610af734f25e92f311e4a66ad08d21c5897cc8895d543\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a25813aa9421f1dca29a7013f7d8be1d37d53d97791633c3c822ccb8fb42758a\",\"dweb:/ipfs/QmXHKAa6G8pEm3tUsVukLzgZDuEAcsKJwpjkKhR4pRwf5v\"]},\"contracts/src/spaces/facets/dispatcher/IDispatcher.sol\":{\"keccak256\":\"0x11c732ddae8bec5424cb0f963a8dee276a4f1ef329d1f9feae215b39ab3e3220\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e3c82b87050e634ec0754f36fb8b38bea0c5d4d5395a8b333270f097db74679a\",\"dweb:/ipfs/QmXwZKPQsHrtZj3dnneD2LZuVdMLErJ9xsmcN6vWgcqbS6\"]},\"contracts/src/spaces/facets/entitlements/EntitlementsManagerService.sol\":{\"keccak256\":\"0x1c52a860e8d0c9d025cdd0e6490aa68e82f0e12450966ed182825299f10dbc54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e82770448781ca94e9f4bf02ac981f6bebc55b2553de7bb8f977bc7335b26d11\",\"dweb:/ipfs/QmSP1gnWqnWEJwf9eFYptd2v6M8kuTa7JzNKtG6DzkzoK6\"]},\"contracts/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol\":{\"keccak256\":\"0x688692231af49bcca80f7da97be12d448b0c20a4338d259d5f654b95c5b046ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be9964e110363bf68fb4bbb8ff230fecf8c26e695077910ba07163db57030a8e\",\"dweb:/ipfs/QmNS3eUqCQU7H48LtW6hrB9xPGy9DrKCqh7JKWsAtje5dK\"]},\"contracts/src/spaces/facets/gated/EntitlementGated.sol\":{\"keccak256\":\"0xeef97a726ad3c7b7df920121be223d8de2ad6180ad39ff2ff42bc8b06f1e5ae1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://680f050ec4d0e151e81a6d5319109f88c081c3dd7666212b3c045db9ff3a6635\",\"dweb:/ipfs/QmZH9JUJvZbevyt4yX7WBbsxRp1ipbUfGg3NktGt5paJiE\"]},\"contracts/src/spaces/facets/gated/EntitlementGatedBase.sol\":{\"keccak256\":\"0xcefa5c3c81c73fefaa7da433ddd5c419dc4c31cd86e8c31f47894663ca7269e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27fe60a48a69d5be67fdf17f5aac1e90ef0234da564ec4f6e2cbfe53fbb9ba0c\",\"dweb:/ipfs/QmPemsjAUmjjjyLWbHzVmqLxyBAN7CFi6DViy9uQEM3wjt\"]},\"contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol\":{\"keccak256\":\"0xb058672a61d2742e8232232cc66f052443d82beb8b2cdc681f10c23a49351b84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f39d39a3bd3e39c2f6a5b21b82a7339176c163d82335f901a64c57dd73ffa5a3\",\"dweb:/ipfs/QmP8RmYv79xX8hLmrvjfceW9mdRYCYxMaxpywRpR281tMo\"]},\"contracts/src/spaces/facets/gated/IEntitlementGated.sol\":{\"keccak256\":\"0x948de1018f7f78366263a40e0f8269e10941216bd03a9996edb24a6230959e74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc985539ce639f39fd68723acca6424a78deac6cec3693c9d8e1084a487c83ec\",\"dweb:/ipfs/QmQujX5rmDwhJZurp11FTiPLb7ev9swLTtdkagA8wydZiT\"]},\"contracts/src/spaces/facets/membership/IMembership.sol\":{\"keccak256\":\"0x7fbf37c681ae95610ed376a30d68808b9da602a3225dbe1724dfe7c1c82de672\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa8d56cca2d01883595cfbd1a6aa3b63202ed25fb56ac1e57d3cf645665dd77\",\"dweb:/ipfs/QmbLF87ZZCovJn3enbs78mcJu39zXi8FYum72fTufZt3e4\"]},\"contracts/src/spaces/facets/membership/MembershipBase.sol\":{\"keccak256\":\"0x4f42c9176fb345d3da7825e0045e57707396d52bb8e208c81ed81e9d76bd90eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fac0c230acd543d90c1b88174e3dcdc9a135e7217741a32580b250941ad30bf\",\"dweb:/ipfs/QmXaLoyaFmomPPZCcJiY3dzsRjZiWoVkNdKtDa67vh16CR\"]},\"contracts/src/spaces/facets/membership/MembershipFacet.sol\":{\"keccak256\":\"0xb33ce51656ccc56703419a274bbbd05dc3aa285434f851ca6cf53c40280c87b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bea49ffb82f8b54f41cba1fdb51345f618a80e3e5a9c79f5306c5244575c9e0\",\"dweb:/ipfs/QmeCN8nKYsJakVLiuWuwYPjcYjpTsUhwhcnxKLHD6ktYPq\"]},\"contracts/src/spaces/facets/membership/MembershipStorage.sol\":{\"keccak256\":\"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a\",\"dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa\"]},\"contracts/src/spaces/facets/membership/pricing/IMembershipPricing.sol\":{\"keccak256\":\"0x9e3b6766b92d0e48b4b23a024f9622923f30d90f6f8673ded81e423171ec30c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6f76b6045a8c6eeb24d6a9a42f82495cb1cb125dd90921d16a949b00a6f52dc\",\"dweb:/ipfs/QmPbRy4sAabTkEnZBoubzPqH2ycPevEzcEJ4NYJsCWmTFF\"]},\"contracts/src/spaces/facets/prepay/IPrepay.sol\":{\"keccak256\":\"0x4cc23cd204f20bd4a094d9292aaa494f73478d27c8f59e646454cbba11d781fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f54c224f56396ac03335c95c4808acbeec6366f0c475d29edb2461cd53bcd15\",\"dweb:/ipfs/QmdDKUR8VVXJuR5Fj29SZxvR9GwxXeNQ6rtAT3TxX8VjwT\"]},\"contracts/src/spaces/facets/prepay/PrepayBase.sol\":{\"keccak256\":\"0x07fbb598088d52ff90a2dc5c3fea344823ae240f39b104f8db8a0b3953752ba3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d34b9a5703ac33b27f91049a81f106bdf327ac57f4ac5886e21f3782104a5084\",\"dweb:/ipfs/QmR8ds7bpXxSLZX6QNhVRVYY8Fk2xHVFNqcAD1fY38kERs\"]},\"contracts/src/spaces/facets/prepay/PrepayStorage.sol\":{\"keccak256\":\"0x5daebdd10dafc3bc3552064a2fecd4a2639226b1af240351dd2e005a7ab270b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06cf75e08e360a74822cd846728c5d9f8440698bb43d29a8bcab3c0cebbec336\",\"dweb:/ipfs/QmZ4UfwTNqQg88A7mHmXM3ZExjTJQhPf3qvFLGzcVaGwwG\"]},\"contracts/src/spaces/facets/roles/IRoles.sol\":{\"keccak256\":\"0xa69cfbcd989b8794187a56a93deffbefaee8ca456e381ce30f85897893c50272\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf8e9b2711f66eefb949f5b5ead4d72005f1845cd63f22b287fdba3339101bd4\",\"dweb:/ipfs/Qmf7sPY4BgmvZf7p4GBsyVyd4o66yJXMgAmEgpdQAQyBdx\"]},\"contracts/src/spaces/facets/roles/RolesBase.sol\":{\"keccak256\":\"0x0ba296166ab3d7165e5d9422bca641fb4c687917304e2c062209c7182035ce79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a86d3b393fc521face2b749f5ffd4e111173728aac97f1f7137c58354413cd0a\",\"dweb:/ipfs/Qmeq5WLHDB2GX2kHEuZqgzg1Mw2PivwZZfYKAuNu5a7PCC\"]},\"contracts/src/spaces/facets/roles/RolesStorage.sol\":{\"keccak256\":\"0xc000f429d628abed048b0f6fe015a0c1505f4880562a981da966cd1e9d44f729\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://202ca9557330508e576337b60cd145009d2ed9e609030ef6802eb704b79caf7f\",\"dweb:/ipfs/QmRcArv84PmEFbKX9aWFJiJetd3eFUKR2GAPJmJ9c57cwB\"]},\"contracts/src/utils/StringSet.sol\":{\"keccak256\":\"0x2b9880e846f275864e847e8c7079d29a02c4a060c5a9d580fb153ff0e7b49ff6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df9c170f28318746eab23befba1318735652c7d198e273a322a0ff2702680605\",\"dweb:/ipfs/QmanQQi9YiPHb9Cn4wpfQ9VYUi7UZ9iQibLL6V46JPibLu\"]},\"contracts/src/utils/Validator.sol\":{\"keccak256\":\"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306\",\"dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt\"]},\"contracts/src/utils/interfaces/IWETH.sol\":{\"keccak256\":\"0xb0a9a284b02664b2ceda4ed7cc8e7dbdd39cc09292b65b97a3417ba5b1440dd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://701edb4dbdb8ab50ed2fdb568cc0956c07184e1f4e7d63854efc158408fa72a5\",\"dweb:/ipfs/QmV58ikDDcTC92hGEuQKerfsygnPg5cwCVLuMh9R9uYXb6\"]},\"contracts/src/utils/libraries/BasisPoints.sol\":{\"keccak256\":\"0xfaa5790726afc20e29f2a00e67693a59ae85a045beaa95f8f58bcbcef01ed87b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2da5e15739fc7093ea7b935c6542f7c01d9c33843a3d1a1d8895db404f8160e\",\"dweb:/ipfs/QmYVUkSh3QX7u9rnKfqLeb9Rh8tko5Q3Gpry6KnhTRF58L\"]},\"contracts/src/utils/libraries/CurrencyTransfer.sol\":{\"keccak256\":\"0x3242d518aedc3ca9a49fb4221de4596ee219b9569abf0548d28dbbecd569a336\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2260078d61b0ee998b54f60c4db4bc8e8a9afdf351018a343c82fa984aca88d\",\"dweb:/ipfs/QmT83nFPb4JzsWCPf9j58xTsaDvuMmq5MH1z8GrEWtBLcx\"]},\"lib/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d\",\"dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi\"]},\"lib/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0\",\"dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3\"]},\"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"lib/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"AddressInsufficientBalance"},{"inputs":[],"type":"error","name":"ApprovalCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"ApprovalQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"BalanceQueryForZeroAddress"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__AlreadyBanned"},{"inputs":[],"type":"error","name":"Banning__CannotBanOwner"},{"inputs":[],"type":"error","name":"Banning__CannotBanSelf"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__InvalidTokenId"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__NotBanned"},{"inputs":[],"type":"error","name":"Dispatcher__InvalidCaller"},{"inputs":[],"type":"error","name":"Dispatcher__InvalidValue"},{"inputs":[],"type":"error","name":"ERC5643__DurationZero"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC5643__InvalidTokenId"},{"inputs":[],"type":"error","name":"ERC5643__NotApprovedOrOwner"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC5643__SubscriptionNotRenewable"},{"inputs":[],"type":"error","name":"EntitlementGated_InvalidAddress"},{"inputs":[],"type":"error","name":"EntitlementGated_NodeAlreadyVoted"},{"inputs":[],"type":"error","name":"EntitlementGated_NodeNotFound"},{"inputs":[],"type":"error","name":"EntitlementGated_TransactionCheckAlreadyCompleted"},{"inputs":[],"type":"error","name":"EntitlementGated_TransactionCheckAlreadyRegistered"},{"inputs":[],"type":"error","name":"EntitlementGated_TransactionNotRegistered"},{"inputs":[],"type":"error","name":"Entitlement__InvalidValue"},{"inputs":[],"type":"error","name":"Entitlement__NotAllowed"},{"inputs":[],"type":"error","name":"Entitlement__NotMember"},{"inputs":[],"type":"error","name":"Entitlement__ValueAlreadyExists"},{"inputs":[],"type":"error","name":"FailedInnerCall"},{"inputs":[],"type":"error","name":"Initializable_InInitializingState"},{"inputs":[],"type":"error","name":"Initializable_NotInInitializingState"},{"inputs":[],"type":"error","name":"Introspection_AlreadySupported"},{"inputs":[],"type":"error","name":"Introspection_NotSupported"},{"inputs":[],"type":"error","name":"Membership__AlreadyMember"},{"inputs":[],"type":"error","name":"Membership__InsufficientAllowance"},{"inputs":[],"type":"error","name":"Membership__InsufficientPayment"},{"inputs":[],"type":"error","name":"Membership__InvalidAddress"},{"inputs":[],"type":"error","name":"Membership__InvalidCurrency"},{"inputs":[],"type":"error","name":"Membership__InvalidDuration"},{"inputs":[],"type":"error","name":"Membership__InvalidFeeRecipient"},{"inputs":[],"type":"error","name":"Membership__InvalidFreeAllocation"},{"inputs":[],"type":"error","name":"Membership__InvalidLimit"},{"inputs":[],"type":"error","name":"Membership__InvalidMaxSupply"},{"inputs":[],"type":"error","name":"Membership__InvalidPayment"},{"inputs":[],"type":"error","name":"Membership__InvalidPrice"},{"inputs":[],"type":"error","name":"Membership__InvalidPricingModule"},{"inputs":[],"type":"error","name":"Membership__InvalidTokenId"},{"inputs":[],"type":"error","name":"Membership__MaxSupplyReached"},{"inputs":[],"type":"error","name":"Membership__NotExpired"},{"inputs":[],"type":"error","name":"Membership__PriceTooLow"},{"inputs":[],"type":"error","name":"MintERC2309QuantityExceedsLimit"},{"inputs":[],"type":"error","name":"MintToZeroAddress"},{"inputs":[],"type":"error","name":"MintZeroQuantity"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"Ownable__NotOwner"},{"inputs":[],"type":"error","name":"Ownable__ZeroAddress"},{"inputs":[],"type":"error","name":"OwnerQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"OwnershipNotInitializedForExtraData"},{"inputs":[],"type":"error","name":"Pausable__NotPaused"},{"inputs":[],"type":"error","name":"Pausable__Paused"},{"inputs":[],"type":"error","name":"Prepay__InvalidAddress"},{"inputs":[],"type":"error","name":"Prepay__InvalidAmount"},{"inputs":[],"type":"error","name":"Prepay__InvalidMembership"},{"inputs":[],"type":"error","name":"Prepay__InvalidSupplyAmount"},{"inputs":[],"type":"error","name":"ReentrancyGuard__ReentrantCall"},{"inputs":[],"type":"error","name":"Roles__EntitlementAlreadyExists"},{"inputs":[],"type":"error","name":"Roles__EntitlementDoesNotExist"},{"inputs":[],"type":"error","name":"Roles__InvalidEntitlementAddress"},{"inputs":[],"type":"error","name":"Roles__InvalidPermission"},{"inputs":[],"type":"error","name":"Roles__PermissionAlreadyExists"},{"inputs":[],"type":"error","name":"Roles__PermissionDoesNotExist"},{"inputs":[],"type":"error","name":"Roles__RoleDoesNotExist"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"TransferCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"TransferFromIncorrectOwner"},{"inputs":[],"type":"error","name":"TransferToNonERC721ReceiverImplementer"},{"inputs":[],"type":"error","name":"TransferToZeroAddress"},{"inputs":[],"type":"error","name":"URIQueryForNonexistentToken"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"moderator","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Banned","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"toTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"ConsecutiveTransfer","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32","indexed":true},{"internalType":"enum IEntitlementGatedBase.NodeVoteStatus","name":"result","type":"uint8","indexed":false}],"type":"event","name":"EntitlementCheckResultPosted","anonymous":false},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceAdded","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"MembershipCurrencyUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true}],"type":"event","name":"MembershipFeeRecipientUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"allocation","type":"uint256","indexed":true}],"type":"event","name":"MembershipFreeAllocationUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256","indexed":true}],"type":"event","name":"MembershipLimitUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"price","type":"uint256","indexed":true}],"type":"event","name":"MembershipPriceUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"MembershipTokenIssued","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true}],"type":"event","name":"MembershipTokenRejected","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"MembershipWithdrawal","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"uint256","name":"supply","type":"uint256","indexed":false}],"type":"event","name":"Prepay__Prepaid","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":true},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":true}],"type":"event","name":"RoleCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"remover","type":"address","indexed":true},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":true}],"type":"event","name":"RoleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"updater","type":"address","indexed":true},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":true}],"type":"event","name":"RoleUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint64","name":"expiration","type":"uint64","indexed":false}],"type":"event","name":"SubscriptionUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"moderator","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Unbanned","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"__ERC721A_init"},{"inputs":[{"internalType":"contract IEntitlementChecker","name":"entitlementChecker","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"__EntitlementGated_init"},{"inputs":[{"internalType":"struct IMembershipBase.Membership","name":"info","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"uint64","name":"duration","type":"uint64"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"feeRecipient","type":"address"},{"internalType":"uint256","name":"freeAllocation","type":"uint256"},{"internalType":"address","name":"pricingModule","type":"address"}]},{"internalType":"address","name":"spaceFactory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"__Membership_init"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"expiresAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipCurrency","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipDuration","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipFreeAllocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipImage","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMembershipPricingModule","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMembershipRenewalPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRuleData","outputs":[{"internalType":"struct IRuleEntitlementBase.RuleData","name":"","type":"tuple","components":[{"internalType":"struct IRuleEntitlementBase.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlementBase.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlementBase.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getSpaceFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"payable","type":"function","name":"joinSpace"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"enum IEntitlementGatedBase.NodeVoteStatus","name":"result","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"postEntitlementCheckResult"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"renewMembership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"uint256","name":"newAllocation","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMembershipFreeAllocation"},{"inputs":[{"internalType":"string","name":"newImage","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setMembershipImage"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMembershipLimit"},{"inputs":[{"internalType":"uint256","name":"newPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMembershipPrice"},{"inputs":[{"internalType":"address","name":"pricingModule","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMembershipPricingModule"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{"__Membership_init((string,string,uint256,uint256,uint64,address,address,uint256,address),address)":{"details":"Initialization logic when facet is added to diamond"},"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator."},"balanceOf(address)":{"details":"Returns the number of tokens in `owner`'s account."},"expiresAt(uint256)":{"params":{"tokenId":"The token id of the membership"}},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"getMembershipCurrency()":{"returns":{"_0":"The membership currency"}},"getMembershipDuration()":{"returns":{"_0":"The membership duration"}},"getMembershipFreeAllocation()":{"returns":{"_0":"The membership free allocation"}},"getMembershipImage()":{"returns":{"_0":"The membership image"}},"getMembershipLimit()":{"returns":{"_0":"The membership limit"}},"getMembershipPrice()":{"returns":{"_0":"The membership price"}},"getMembershipPricingModule()":{"returns":{"_0":"The membership pricing module"}},"getMembershipRenewalPrice(uint256)":{"params":{"tokenId":"The token id of the membership"},"returns":{"_0":"The membership renewal price"}},"getSpaceFactory()":{"returns":{"_0":"The space factory"}},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}."},"joinSpace(address)":{"params":{"receiver":"The address of the receiver"}},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"renewMembership(uint256)":{"params":{"tokenId":"The token id of the membership"}},"safeTransferFrom(address,address,uint256)":{"details":"Equivalent to `safeTransferFrom(from, to, tokenId, '')`."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"setMembershipFreeAllocation(uint256)":{"params":{"newAllocation":"The new membership free allocation"}},"setMembershipLimit(uint256)":{"params":{"newLimit":"The new membership limit"}},"setMembershipPrice(uint256)":{"params":{"newPrice":"The new membership price"}},"setMembershipPricingModule(address)":{"params":{"pricingModule":"The new pricing module"}},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"totalSupply()":{"details":"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{"expiresAt(uint256)":{"notice":"Return the expiration date of a membership"},"getMembershipCurrency()":{"notice":"Get the membership currency"},"getMembershipDuration()":{"notice":"Get the membership duration"},"getMembershipFreeAllocation()":{"notice":"Get the membership free allocation"},"getMembershipImage()":{"notice":"Get the membership image"},"getMembershipLimit()":{"notice":"Get the membership limit"},"getMembershipPrice()":{"notice":"Get the membership price"},"getMembershipPricingModule()":{"notice":"Get the membership pricing module"},"getMembershipRenewalPrice(uint256)":{"notice":"Get the membership renewal price"},"getRuleData(bytes32,uint256)":{"notice":"deprecated Use EntitlementDataQueryable.getCrossChainEntitlementData instead"},"getSpaceFactory()":{"notice":"Get the space factory"},"joinSpace(address)":{"notice":"Join a space"},"renewMembership(uint256)":{"notice":"Renew a space membership"},"setMembershipFreeAllocation(uint256)":{"notice":"Set the membership free allocation"},"setMembershipLimit(uint256)":{"notice":"Set the membership limit"},"setMembershipPrice(uint256)":{"notice":"Set the membership price"},"setMembershipPricingModule(address)":{"notice":"Set the membership pricing module"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/facets/membership/MembershipFacet.sol":"MembershipFacet"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/checker/IEntitlementChecker.sol":{"keccak256":"0xbeb7bfa236f19172b29eac53be03a3b377de3524b2d836192b0c64ebe708c204","urls":["bzz-raw://3d5a103a2b7b6be1ffa6662db6081763bcd210216fefc25307b835c555e0cf4d","dweb:/ipfs/QmUCvhZdZpVnyJuZVgd2qGduTf11384TmmBJb2RaEBHxhh"],"license":"MIT"},"contracts/src/diamond/facets/Facet.sol":{"keccak256":"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57","urls":["bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863","dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"],"license":"MIT"},"contracts/src/diamond/facets/initializable/Initializable.sol":{"keccak256":"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90","urls":["bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552","dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"],"license":"MIT"},"contracts/src/diamond/facets/initializable/InitializableStorage.sol":{"keccak256":"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a","urls":["bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4","dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionBase.sol":{"keccak256":"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f","urls":["bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1","dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol":{"keccak256":"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763","urls":["bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91","dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"],"license":"MIT"},"contracts/src/diamond/facets/ownable/IERC173.sol":{"keccak256":"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303","urls":["bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b","dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol":{"keccak256":"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816","urls":["bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb","dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol":{"keccak256":"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4","urls":["bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb","dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol":{"keccak256":"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479","urls":["bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf","dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F"],"license":"MIT"},"contracts/src/diamond/facets/pausable/IPausable.sol":{"keccak256":"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1","urls":["bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684","dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableBase.sol":{"keccak256":"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0","urls":["bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3","dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableStorage.sol":{"keccak256":"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f","urls":["bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd","dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/IReentrancyGuard.sol":{"keccak256":"0x89ad30ac5476efd023189fca20b13214fe5541ea5fff11760e00f229c62c896e","urls":["bzz-raw://fc04fb0c48333cb0f4b84b01e50498d60510d52495c3772f0bf632773ec47a7d","dweb:/ipfs/QmQUuYriat7eRRsPUHTeD2CDEwHzYxqW6qix7xf44kWByo"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/ReentrancyGuard.sol":{"keccak256":"0xb481ee6684d1589254563cb5c318b1eb75f6f15f96baecbd5f5e42b72b7a5003","urls":["bzz-raw://70e1bafcd0779c6241ee7716ae2058dd6f7d5a75bb211f5bfcb9aefa434228f8","dweb:/ipfs/QmSbsdGjL1be4VBjgWrk5CodWGvszXZt5HX32PxhvXTZ5Y"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/ReentrancyGuardStorage.sol":{"keccak256":"0xe4a08e5712446357756a6da7b65ae80845732dfebac180bd478caaf64dfc790e","urls":["bzz-raw://09f5691ae9aedbe094cc83a0e8a4272c4d6dd5f57e69fec5870b148f2d94395e","dweb:/ipfs/QmTLHQWuRp1L45oRV8oWWbk4Y4MMNYW1Rp9WUJ86gzVVRv"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/ERC5643Base.sol":{"keccak256":"0x21d3c281732e54c93520a4f2cc72cc5af38c517f2a150ee67aa84704a3d78627","urls":["bzz-raw://52ce7c061da0142a4d775bb85896410d363d4a28c0275d3171a70872344fc9a4","dweb:/ipfs/Qmdwgs3TaC4b83JVn6RG5pJJdCrxb74ZMRqZbYSe5DuqZf"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/ERC5643Storage.sol":{"keccak256":"0x68cbff071e6a6a6b91b675af567616799435676fbbbebf4f9226e1226d6128b2","urls":["bzz-raw://2e2c7aee6ef32477733a50ba667cc510c8c165b9a9e146609b1f800acd0e4832","dweb:/ipfs/QmcWAz74x3AR6kpzWdyPWw3iLQ1yHBT3ZVoK6jT7T3LwXq"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol":{"keccak256":"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224","urls":["bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615","dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721A.sol":{"keccak256":"0x5662ab29272ecaabdaf5792c368a71693fcad9df24566f9e470ff1ec3510fd8f","urls":["bzz-raw://2ef719ff8dce040daf5bcfe328f3463261fb3acfe5c41c589365143916748cc3","dweb:/ipfs/QmUm4PHj4y2237H7hnCwnfRyTWbp1DHWpc8GN26M6T4ToC"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol":{"keccak256":"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62","urls":["bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba","dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol":{"keccak256":"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4","urls":["bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04","dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol":{"keccak256":"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782","urls":["bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d","dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz"],"license":"MIT"},"contracts/src/factory/facets/architect/pricing/IPricingModules.sol":{"keccak256":"0xa45fcd2bb5037c0b9b80bb02a3a4bd00fa99598a8d9e0a5ee2dff7a04c670171","urls":["bzz-raw://15f95100f32791a9aa2e3cc47fb9cd58542e9250834bfc38756012cc4baaa786","dweb:/ipfs/QmYGPF6HQLoq5bCgMYW1AyT2Vz1H12Lt8LDdmzTadN5Ppm"],"license":"MIT"},"contracts/src/factory/facets/platform/requirements/IPlatformRequirements.sol":{"keccak256":"0xd1c61d42973382822d0b8256b5d308ad693dfa59240864cce0bec1bd4208e4c6","urls":["bzz-raw://bff6d50557810f7aa9de451f6ac2b279fe5983eefc0b38ef8be7ebb2ffde0f86","dweb:/ipfs/QmS6DXYXtPTfePgtrUxH1vmPycsVoumBQRJZugjGButowT"],"license":"MIT"},"contracts/src/factory/facets/registry/IImplementationRegistry.sol":{"keccak256":"0xb447f7654cd152c29718c95983b62e390a59658d7d1a22b97f79d0aee9fb5de7","urls":["bzz-raw://756a9a38364c01937088ba927f09af2726d2df207eea4e0e2842e3fc66ccd32c","dweb:/ipfs/QmbxBRXgtkEQsGtxq1uSM6vX38FkjPq6tpodCdtBmdEmXA"],"license":"MIT"},"contracts/src/factory/facets/wallet-link/IWalletLink.sol":{"keccak256":"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee","urls":["bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0","dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5"],"license":"MIT"},"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":{"keccak256":"0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27","urls":["bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd","dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j"],"license":"MIT"},"contracts/src/spaces/facets/Entitled.sol":{"keccak256":"0x90204085688bf4dd1e1b6ca30684ee37db79210070c405406898c8a77d50bfce","urls":["bzz-raw://b9b194cc9977b03fbccc81529147a0fce7857893c8146927570c1ee5a28aa900","dweb:/ipfs/QmZMvPPj5ZPYaRQaSraBkv3PSMeUZ4wN1tQ9EVvwW6SL4r"],"license":"MIT"},"contracts/src/spaces/facets/Permissions.sol":{"keccak256":"0x08f1d02cacf8b8adcb38219623f999d15908185eefca4e3d0ea2c3486091d08c","urls":["bzz-raw://b6b021cd9adfed316fc1f43b99e5430d75469ef13d252fa5eb25057155908b77","dweb:/ipfs/QmYAhL8hWcbtHARsAY9nauyRB4BERUi9s7SSRYkb1e1kCh"],"license":"MIT"},"contracts/src/spaces/facets/banning/BanningBase.sol":{"keccak256":"0x38c44494221f96568f3efb540a8a6c7af141de95f25caf26df6e8a8333f31249","urls":["bzz-raw://cf1f509347cab5090655ff8272443d18f9716fea5ef27cd86269ccbd2570aa7e","dweb:/ipfs/QmbF8StzLRGnVvVXWYBowvdULoPPqQkU5hZR548cnRzuVs"],"license":"MIT"},"contracts/src/spaces/facets/banning/BanningStorage.sol":{"keccak256":"0xcfbf5c113056e569abf23158853ff4877744b22a4bf2bf49a282d04dab23ab17","urls":["bzz-raw://4f825e97ca65c9cd3bd5885d2fa8b8e5f8f0dcbe227dec064abbbab645685fbe","dweb:/ipfs/QmXAMntxrjzeNUKh9WcyHvzDmnV89vrJ9PkKRceqxJSxZp"],"license":"MIT"},"contracts/src/spaces/facets/banning/IBanning.sol":{"keccak256":"0x350ec182a95a86a41335979cd7212132858c5cfcd366602b2f6cd0ec0694b63e","urls":["bzz-raw://ecb4ad0c5a1086c38448b3e279733f33edc0cc39648368e5cb43dfff139ff7e8","dweb:/ipfs/QmWYfYE8Haqk9kBRxmLijfQSfqbfxf7LB3wQ24d3pG5PE3"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelService.sol":{"keccak256":"0xdac0460cb66d31e57593154fb31ccd112dd1d51c34ea6e5ce316250ac5548abb","urls":["bzz-raw://56c99fa9d482bd02ea96a01e1a960e1678edbbc1a9580511f68543ca194f6fb5","dweb:/ipfs/QmbUjxxkjLCGXVC3bNtWQDas2vJwUmS5NraTGwWiKJAXvH"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelStorage.sol":{"keccak256":"0xeb4174513a652b1571b3a92cbefa80e9d450144e8d07bfb29c863d7d9de9313c","urls":["bzz-raw://6c3b73c84a2b4a56fcc8bd1fbaa0a8896a2dfc62a7fde07b13c6d8b05dcf8fe6","dweb:/ipfs/QmRPukfmps5ESAR5saLNLJp6GEg1nNCTq5qChGeAjgtLV4"],"license":"MIT"},"contracts/src/spaces/facets/delegation/WalletLinkProxyBase.sol":{"keccak256":"0xffef403556b46744bd1833e5df57b02eb79e010841b16610e1740bc0dac929b2","urls":["bzz-raw://1afa30929e8c6b0c69528d328774c98789825a8de53e5945a1e95092bee2ad08","dweb:/ipfs/QmTbCqLJTBHgcMuFwWSTbrgR7uaASJqwqYuku4YkGzTWW1"],"license":"MIT"},"contracts/src/spaces/facets/delegation/WalletLinkProxyStorage.sol":{"keccak256":"0x9667e475b9ad9f1130583840c9b0594a7512f7edd33163b926b3db21f70d9909","urls":["bzz-raw://d6271ce56258b1e9150378872d250cfaeb4501b5d0288e8f19f02096114c687f","dweb:/ipfs/QmXSBA2CpLL9BdvZb994JYStgB9fJfsHwgcke6gsD3zybW"],"license":"MIT"},"contracts/src/spaces/facets/dispatcher/DispatcherBase.sol":{"keccak256":"0xc6743de898114347a9c8d7ac890849b857f21fe787d4e381c477da23ac29d371","urls":["bzz-raw://a6e61de497274ed14026979ac8d383ae833776513ed56f3e19ba1e33db3aced6","dweb:/ipfs/QmZve5YBgaw8pGkNbKKNodegSWSM5ERLouwPh3R1GzEWZt"],"license":"MIT"},"contracts/src/spaces/facets/dispatcher/DispatcherStorage.sol":{"keccak256":"0x0173a174a8241b5fee8610af734f25e92f311e4a66ad08d21c5897cc8895d543","urls":["bzz-raw://a25813aa9421f1dca29a7013f7d8be1d37d53d97791633c3c822ccb8fb42758a","dweb:/ipfs/QmXHKAa6G8pEm3tUsVukLzgZDuEAcsKJwpjkKhR4pRwf5v"],"license":"MIT"},"contracts/src/spaces/facets/dispatcher/IDispatcher.sol":{"keccak256":"0x11c732ddae8bec5424cb0f963a8dee276a4f1ef329d1f9feae215b39ab3e3220","urls":["bzz-raw://e3c82b87050e634ec0754f36fb8b38bea0c5d4d5395a8b333270f097db74679a","dweb:/ipfs/QmXwZKPQsHrtZj3dnneD2LZuVdMLErJ9xsmcN6vWgcqbS6"],"license":"MIT"},"contracts/src/spaces/facets/entitlements/EntitlementsManagerService.sol":{"keccak256":"0x1c52a860e8d0c9d025cdd0e6490aa68e82f0e12450966ed182825299f10dbc54","urls":["bzz-raw://e82770448781ca94e9f4bf02ac981f6bebc55b2553de7bb8f977bc7335b26d11","dweb:/ipfs/QmSP1gnWqnWEJwf9eFYptd2v6M8kuTa7JzNKtG6DzkzoK6"],"license":"MIT"},"contracts/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol":{"keccak256":"0x688692231af49bcca80f7da97be12d448b0c20a4338d259d5f654b95c5b046ca","urls":["bzz-raw://be9964e110363bf68fb4bbb8ff230fecf8c26e695077910ba07163db57030a8e","dweb:/ipfs/QmNS3eUqCQU7H48LtW6hrB9xPGy9DrKCqh7JKWsAtje5dK"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGated.sol":{"keccak256":"0xeef97a726ad3c7b7df920121be223d8de2ad6180ad39ff2ff42bc8b06f1e5ae1","urls":["bzz-raw://680f050ec4d0e151e81a6d5319109f88c081c3dd7666212b3c045db9ff3a6635","dweb:/ipfs/QmZH9JUJvZbevyt4yX7WBbsxRp1ipbUfGg3NktGt5paJiE"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGatedBase.sol":{"keccak256":"0xcefa5c3c81c73fefaa7da433ddd5c419dc4c31cd86e8c31f47894663ca7269e8","urls":["bzz-raw://27fe60a48a69d5be67fdf17f5aac1e90ef0234da564ec4f6e2cbfe53fbb9ba0c","dweb:/ipfs/QmPemsjAUmjjjyLWbHzVmqLxyBAN7CFi6DViy9uQEM3wjt"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol":{"keccak256":"0xb058672a61d2742e8232232cc66f052443d82beb8b2cdc681f10c23a49351b84","urls":["bzz-raw://f39d39a3bd3e39c2f6a5b21b82a7339176c163d82335f901a64c57dd73ffa5a3","dweb:/ipfs/QmP8RmYv79xX8hLmrvjfceW9mdRYCYxMaxpywRpR281tMo"],"license":"MIT"},"contracts/src/spaces/facets/gated/IEntitlementGated.sol":{"keccak256":"0x948de1018f7f78366263a40e0f8269e10941216bd03a9996edb24a6230959e74","urls":["bzz-raw://dc985539ce639f39fd68723acca6424a78deac6cec3693c9d8e1084a487c83ec","dweb:/ipfs/QmQujX5rmDwhJZurp11FTiPLb7ev9swLTtdkagA8wydZiT"],"license":"MIT"},"contracts/src/spaces/facets/membership/IMembership.sol":{"keccak256":"0x7fbf37c681ae95610ed376a30d68808b9da602a3225dbe1724dfe7c1c82de672","urls":["bzz-raw://afa8d56cca2d01883595cfbd1a6aa3b63202ed25fb56ac1e57d3cf645665dd77","dweb:/ipfs/QmbLF87ZZCovJn3enbs78mcJu39zXi8FYum72fTufZt3e4"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipBase.sol":{"keccak256":"0x4f42c9176fb345d3da7825e0045e57707396d52bb8e208c81ed81e9d76bd90eb","urls":["bzz-raw://1fac0c230acd543d90c1b88174e3dcdc9a135e7217741a32580b250941ad30bf","dweb:/ipfs/QmXaLoyaFmomPPZCcJiY3dzsRjZiWoVkNdKtDa67vh16CR"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipFacet.sol":{"keccak256":"0xb33ce51656ccc56703419a274bbbd05dc3aa285434f851ca6cf53c40280c87b0","urls":["bzz-raw://8bea49ffb82f8b54f41cba1fdb51345f618a80e3e5a9c79f5306c5244575c9e0","dweb:/ipfs/QmeCN8nKYsJakVLiuWuwYPjcYjpTsUhwhcnxKLHD6ktYPq"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipStorage.sol":{"keccak256":"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0","urls":["bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a","dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa"],"license":"MIT"},"contracts/src/spaces/facets/membership/pricing/IMembershipPricing.sol":{"keccak256":"0x9e3b6766b92d0e48b4b23a024f9622923f30d90f6f8673ded81e423171ec30c4","urls":["bzz-raw://e6f76b6045a8c6eeb24d6a9a42f82495cb1cb125dd90921d16a949b00a6f52dc","dweb:/ipfs/QmPbRy4sAabTkEnZBoubzPqH2ycPevEzcEJ4NYJsCWmTFF"],"license":"MIT"},"contracts/src/spaces/facets/prepay/IPrepay.sol":{"keccak256":"0x4cc23cd204f20bd4a094d9292aaa494f73478d27c8f59e646454cbba11d781fa","urls":["bzz-raw://4f54c224f56396ac03335c95c4808acbeec6366f0c475d29edb2461cd53bcd15","dweb:/ipfs/QmdDKUR8VVXJuR5Fj29SZxvR9GwxXeNQ6rtAT3TxX8VjwT"],"license":"MIT"},"contracts/src/spaces/facets/prepay/PrepayBase.sol":{"keccak256":"0x07fbb598088d52ff90a2dc5c3fea344823ae240f39b104f8db8a0b3953752ba3","urls":["bzz-raw://d34b9a5703ac33b27f91049a81f106bdf327ac57f4ac5886e21f3782104a5084","dweb:/ipfs/QmR8ds7bpXxSLZX6QNhVRVYY8Fk2xHVFNqcAD1fY38kERs"],"license":"MIT"},"contracts/src/spaces/facets/prepay/PrepayStorage.sol":{"keccak256":"0x5daebdd10dafc3bc3552064a2fecd4a2639226b1af240351dd2e005a7ab270b4","urls":["bzz-raw://06cf75e08e360a74822cd846728c5d9f8440698bb43d29a8bcab3c0cebbec336","dweb:/ipfs/QmZ4UfwTNqQg88A7mHmXM3ZExjTJQhPf3qvFLGzcVaGwwG"],"license":"MIT"},"contracts/src/spaces/facets/roles/IRoles.sol":{"keccak256":"0xa69cfbcd989b8794187a56a93deffbefaee8ca456e381ce30f85897893c50272","urls":["bzz-raw://cf8e9b2711f66eefb949f5b5ead4d72005f1845cd63f22b287fdba3339101bd4","dweb:/ipfs/Qmf7sPY4BgmvZf7p4GBsyVyd4o66yJXMgAmEgpdQAQyBdx"],"license":"MIT"},"contracts/src/spaces/facets/roles/RolesBase.sol":{"keccak256":"0x0ba296166ab3d7165e5d9422bca641fb4c687917304e2c062209c7182035ce79","urls":["bzz-raw://a86d3b393fc521face2b749f5ffd4e111173728aac97f1f7137c58354413cd0a","dweb:/ipfs/Qmeq5WLHDB2GX2kHEuZqgzg1Mw2PivwZZfYKAuNu5a7PCC"],"license":"MIT"},"contracts/src/spaces/facets/roles/RolesStorage.sol":{"keccak256":"0xc000f429d628abed048b0f6fe015a0c1505f4880562a981da966cd1e9d44f729","urls":["bzz-raw://202ca9557330508e576337b60cd145009d2ed9e609030ef6802eb704b79caf7f","dweb:/ipfs/QmRcArv84PmEFbKX9aWFJiJetd3eFUKR2GAPJmJ9c57cwB"],"license":"MIT"},"contracts/src/utils/StringSet.sol":{"keccak256":"0x2b9880e846f275864e847e8c7079d29a02c4a060c5a9d580fb153ff0e7b49ff6","urls":["bzz-raw://df9c170f28318746eab23befba1318735652c7d198e273a322a0ff2702680605","dweb:/ipfs/QmanQQi9YiPHb9Cn4wpfQ9VYUi7UZ9iQibLL6V46JPibLu"],"license":"MIT"},"contracts/src/utils/Validator.sol":{"keccak256":"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f","urls":["bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306","dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt"],"license":"MIT"},"contracts/src/utils/interfaces/IWETH.sol":{"keccak256":"0xb0a9a284b02664b2ceda4ed7cc8e7dbdd39cc09292b65b97a3417ba5b1440dd0","urls":["bzz-raw://701edb4dbdb8ab50ed2fdb568cc0956c07184e1f4e7d63854efc158408fa72a5","dweb:/ipfs/QmV58ikDDcTC92hGEuQKerfsygnPg5cwCVLuMh9R9uYXb6"],"license":"MIT"},"contracts/src/utils/libraries/BasisPoints.sol":{"keccak256":"0xfaa5790726afc20e29f2a00e67693a59ae85a045beaa95f8f58bcbcef01ed87b","urls":["bzz-raw://a2da5e15739fc7093ea7b935c6542f7c01d9c33843a3d1a1d8895db404f8160e","dweb:/ipfs/QmYVUkSh3QX7u9rnKfqLeb9Rh8tko5Q3Gpry6KnhTRF58L"],"license":"MIT"},"contracts/src/utils/libraries/CurrencyTransfer.sol":{"keccak256":"0x3242d518aedc3ca9a49fb4221de4596ee219b9569abf0548d28dbbecd569a336","urls":["bzz-raw://c2260078d61b0ee998b54f60c4db4bc8e8a9afdf351018a343c82fa984aca88d","dweb:/ipfs/QmT83nFPb4JzsWCPf9j58xTsaDvuMmq5MH1z8GrEWtBLcx"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x6008dabfe393240d73d7dd7688033f72740d570aa422254d29a7dce8568f3aff","urls":["bzz-raw://f5196ec75139918c6c7bb4251b36395e668f1fa6d206beba7e7520e74913940d","dweb:/ipfs/QmSyqjksXxmm2mCG6qRd1yuwLykypkSVBbnBnGqJRcuJMi"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x37bb49513c49c87c4642a891b13b63571bc87013dde806617aa1efb54605f386","urls":["bzz-raw://b3036b3a83b7c48f96641f2a9002b9f2dcb6a5958dd670894ada21ae8229b3d0","dweb:/ipfs/QmUNfSBdoVtjhETaUJCYcaC7pTMgbhht926tJ2uXJbiVd3"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":207} \ No newline at end of file diff --git a/packages/generated/dev/abis/MembershipFacet.metadata.json b/packages/generated/dev/abis/MembershipFacet.metadata.json index 8999490f2..6715a3fd2 100644 --- a/packages/generated/dev/abis/MembershipFacet.metadata.json +++ b/packages/generated/dev/abis/MembershipFacet.metadata.json @@ -1181,17 +1181,17 @@ "name": "getRuleData", "outputs": [ { - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "name": "", "type": "tuple", "components": [ { - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "name": "operations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CombinedOperationType", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType", "name": "opType", "type": "uint8" }, @@ -1203,12 +1203,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "name": "checkOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CheckOperationType", + "internalType": "enum IRuleEntitlementBase.CheckOperationType", "name": "opType", "type": "uint8" }, @@ -1230,12 +1230,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "name": "logicalOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.LogicalOperationType", + "internalType": "enum IRuleEntitlementBase.LogicalOperationType", "name": "logOpType", "type": "uint8" }, @@ -1737,6 +1737,9 @@ "getMembershipRenewalPrice(uint256)": { "notice": "Get the membership renewal price" }, + "getRuleData(bytes32,uint256)": { + "notice": "deprecated Use EntitlementDataQueryable.getCrossChainEntitlementData instead" + }, "getSpaceFactory()": { "notice": "Get the space factory" }, @@ -2021,10 +2024,10 @@ "license": "MIT" }, "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol": { - "keccak256": "0x28650d058077713dfc28d5c613998d9f1e895a6f5f6b0d93467d25455fc3ea1d", + "keccak256": "0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27", "urls": [ - "bzz-raw://e2446b7958f8b5f2713860e2826acf1b123c6b24719f844c7811d1e3f5a87c86", - "dweb:/ipfs/Qmesso9ftmVUCHi6w2gkJs9tEjGG5ZZgqhAenkyTDgFPC2" + "bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd", + "dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j" ], "license": "MIT" }, @@ -2037,10 +2040,10 @@ "license": "MIT" }, "contracts/src/spaces/facets/Permissions.sol": { - "keccak256": "0xaeec9c70d231be9debb15660bf6939746532d0012c80d5518e8207dd33653de2", + "keccak256": "0x08f1d02cacf8b8adcb38219623f999d15908185eefca4e3d0ea2c3486091d08c", "urls": [ - "bzz-raw://bab7c5dd8f55f03f48d3908b8d6732b3e2d93f36312a0c3408ff10be258c165a", - "dweb:/ipfs/QmevmAc6tzP3kFoH84cRtipSq4ryqbrP3H4VB8mRZgnRxn" + "bzz-raw://b6b021cd9adfed316fc1f43b99e5430d75469ef13d252fa5eb25057155908b77", + "dweb:/ipfs/QmYAhL8hWcbtHARsAY9nauyRB4BERUi9s7SSRYkb1e1kCh" ], "license": "MIT" }, @@ -2141,10 +2144,10 @@ "license": "MIT" }, "contracts/src/spaces/facets/gated/EntitlementGated.sol": { - "keccak256": "0xd705dfd2d3124f62b5ca11cd2b0e0432da535ced6d8012f55799897a30480ba5", + "keccak256": "0xeef97a726ad3c7b7df920121be223d8de2ad6180ad39ff2ff42bc8b06f1e5ae1", "urls": [ - "bzz-raw://cdb855f903687fca333ac8be6e4545b99dc654a41d3878f6ad8f847500efd15b", - "dweb:/ipfs/QmZixZFxv5QBuCVrGXnB9PJknKZknXiXBepi2mG83Jpiza" + "bzz-raw://680f050ec4d0e151e81a6d5319109f88c081c3dd7666212b3c045db9ff3a6635", + "dweb:/ipfs/QmZH9JUJvZbevyt4yX7WBbsxRp1ipbUfGg3NktGt5paJiE" ], "license": "MIT" }, @@ -2245,10 +2248,10 @@ "license": "MIT" }, "contracts/src/spaces/facets/roles/RolesBase.sol": { - "keccak256": "0x0662c3457d1a192a6095677b9df680798cac335ec016244671d5e39004116881", + "keccak256": "0x0ba296166ab3d7165e5d9422bca641fb4c687917304e2c062209c7182035ce79", "urls": [ - "bzz-raw://fe07c240371cd47923c9fb6f49d9863df715e02cdeec180fda3f7808ea91f7a8", - "dweb:/ipfs/QmWtiHY1XkwWjRjQ55x4xFh8Rz1xos26uYgZGkWh2KzSLo" + "bzz-raw://a86d3b393fc521face2b749f5ffd4e111173728aac97f1f7137c58354413cd0a", + "dweb:/ipfs/Qmeq5WLHDB2GX2kHEuZqgzg1Mw2PivwZZfYKAuNu5a7PCC" ], "license": "MIT" }, diff --git a/packages/generated/dev/abis/MockEntitlementGated.abi.json b/packages/generated/dev/abis/MockEntitlementGated.abi.json index d5bffedf8..8b01a49c9 100644 --- a/packages/generated/dev/abis/MockEntitlementGated.abi.json +++ b/packages/generated/dev/abis/MockEntitlementGated.abi.json @@ -37,17 +37,17 @@ { "name": "", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -59,12 +59,12 @@ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -86,12 +86,12 @@ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", @@ -129,17 +129,17 @@ { "name": "", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -151,12 +151,12 @@ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -178,12 +178,12 @@ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", @@ -237,17 +237,17 @@ { "name": "ruleData", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -259,12 +259,12 @@ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -286,12 +286,12 @@ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", diff --git a/packages/generated/dev/abis/MockEntitlementGated.abi.ts b/packages/generated/dev/abis/MockEntitlementGated.abi.ts index 0d6db77c2..a304e8844 100644 --- a/packages/generated/dev/abis/MockEntitlementGated.abi.ts +++ b/packages/generated/dev/abis/MockEntitlementGated.abi.ts @@ -37,17 +37,17 @@ export default [ { "name": "", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -59,12 +59,12 @@ export default [ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -86,12 +86,12 @@ export default [ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", @@ -129,17 +129,17 @@ export default [ { "name": "", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -151,12 +151,12 @@ export default [ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -178,12 +178,12 @@ export default [ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", @@ -237,17 +237,17 @@ export default [ { "name": "ruleData", "type": "tuple", - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "components": [ { "name": "operations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CombinedOperationType" + "internalType": "enum IRuleEntitlementBase.CombinedOperationType" }, { "name": "index", @@ -259,12 +259,12 @@ export default [ { "name": "checkOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "components": [ { "name": "opType", "type": "uint8", - "internalType": "enum IRuleEntitlement.CheckOperationType" + "internalType": "enum IRuleEntitlementBase.CheckOperationType" }, { "name": "chainId", @@ -286,12 +286,12 @@ export default [ { "name": "logicalOperations", "type": "tuple[]", - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "components": [ { "name": "logOpType", "type": "uint8", - "internalType": "enum IRuleEntitlement.LogicalOperationType" + "internalType": "enum IRuleEntitlementBase.LogicalOperationType" }, { "name": "leftOperationIndex", diff --git a/packages/generated/dev/abis/MockEntitlementGated.json b/packages/generated/dev/abis/MockEntitlementGated.json index 765eee590..a416eb51d 100644 --- a/packages/generated/dev/abis/MockEntitlementGated.json +++ b/packages/generated/dev/abis/MockEntitlementGated.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"checker","type":"address","internalType":"contract IEntitlementChecker"}],"stateMutability":"nonpayable"},{"type":"function","name":"__EntitlementGated_init","inputs":[{"name":"entitlementChecker","type":"address","internalType":"contract IEntitlementChecker"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRuleData","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRuleEntitlement.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlement.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlement.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"stateMutability":"view"},{"type":"function","name":"getRuleData","inputs":[{"name":"transactionId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRuleEntitlement.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlement.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlement.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"stateMutability":"view"},{"type":"function","name":"postEntitlementCheckResult","inputs":[{"name":"transactionId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"result","type":"uint8","internalType":"enum IEntitlementGatedBase.NodeVoteStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestEntitlementCheck","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"ruleData","type":"tuple","internalType":"struct IRuleEntitlement.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlement.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlement.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlement.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlement.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"event","name":"EntitlementCheckResultPosted","inputs":[{"name":"transactionId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"result","type":"uint8","indexed":false,"internalType":"enum IEntitlementGatedBase.NodeVoteStatus"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"InterfaceAdded","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"InterfaceRemoved","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"error","name":"EntitlementGated_InvalidAddress","inputs":[]},{"type":"error","name":"EntitlementGated_NodeAlreadyVoted","inputs":[]},{"type":"error","name":"EntitlementGated_NodeNotFound","inputs":[]},{"type":"error","name":"EntitlementGated_TransactionCheckAlreadyCompleted","inputs":[]},{"type":"error","name":"EntitlementGated_TransactionCheckAlreadyRegistered","inputs":[]},{"type":"error","name":"EntitlementGated_TransactionNotRegistered","inputs":[]},{"type":"error","name":"Initializable_InInitializingState","inputs":[]},{"type":"error","name":"Initializable_NotInInitializingState","inputs":[]},{"type":"error","name":"Introspection_AlreadySupported","inputs":[]},{"type":"error","name":"Introspection_NotSupported","inputs":[]},{"type":"error","name":"ReentrancyGuard__ReentrantCall","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162001b9a38038062001b9a833981016040819052620000349162000127565b6200003e6200007f565b7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0080546001600160a01b0319166001600160a01b0383161790555062000159565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff1615620000cc576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156200012457805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6000602082840312156200013a57600080fd5b81516001600160a01b03811681146200015257600080fd5b9392505050565b611a3180620001696000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063069a3ee91461005c5780634739e8051461008557806357e700271461009a5780637adc9cbe146100bb57806392c399ff146100ce575b600080fd5b61006f61006a366004610e1e565b6100e1565b60405161007c9190610f28565b60405180910390f35b610098610093366004610fd8565b610314565b005b6100ad6100a8366004611011565b6103b8565b60405190815260200161007c565b6100986100c9366004611074565b610426565b61006f6100dc366004611091565b61047c565b61010560405180606001604052806060815260200160608152602001606081525090565b6000828152602081815260408083208151815460809481028201850190935260608101838152909491938593919285929185015b828210156101a257600084815260209020604080518082019091529083018054829060ff16600281111561016f5761016f610e37565b600281111561018057610180610e37565b81529054610100900460ff166020918201529082526001929092019101610139565b50505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101561025a576000848152602090206040805160808101909152600484029091018054829060ff16600581111561020a5761020a610e37565b600581111561021b5761021b610e37565b815260018281015460208084019190915260028401546001600160a01b03166040840152600390930154606090920191909152918352920191016101cf565b50505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b828210156103065760008481526020902060408051606081019091529083018054829060ff1660028111156102be576102be610e37565b60028111156102cf576102cf610e37565b8152905460ff6101008204811660208085019190915262010000909204166040909201919091529082526001929092019101610287565b505050915250909392505050565b60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a00540361035657604051635db5c7cd60e11b815260040160405180910390fd5b61037f60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b61038a8383836104aa565b6103b360017f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b505050565b600082815260208190526040812082906103d2828261140a565b50506040516bffffffffffffffffffffffff193260601b16602082015243603482015260009060540160405160208183030381529060405280519060200120905061041f81306000610743565b9392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661047057604051630ef4733760e31b815260040160405180910390fd5b610479816109f2565b50565b6104a060405180606001604052806060815260200160608152602001606081525090565b61041f8383610a2d565b6000838152600080516020611a118339815191526020526040902080546000805160206119f1833981519152919061010090046001600160a01b031615806104f45750805460ff16155b1561051257604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff161561054457604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b8181101561068257600089815260018701602052604081208054839081106105855761058561150e565b60009182526020909120018054909150336001600160a01b03909116036106115760008154600160a01b900460ff1660028111156105c5576105c5610e37565b146105e3576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b83600281111561060757610607610e37565b0217905550600195505b60018154600160a01b900460ff16600281111561063057610630610e37565b03610647578461063f81611524565b955050610679565b60028154600160a01b900460ff16600281111561066657610666610e37565b03610679578361067581611524565b9450505b5060010161055b565b50836106a157604051638223a7e960e01b815260040160405180910390fd5b6106ac60028261153d565b8311806106c257506106bf60028261153d565b82115b156107385760008881526002860160205260408120805460ff191660011790558284116106f05760026106f3565b60015b9050897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051610725919061155f565b60405180910390a26107368a610b27565b505b505050505050505050565b6000838152600080516020611a118339815191526020526040902080546000805160206119f1833981519152919060ff1615156001036107d55760005b60048201548110156107d357838260040182815481106107a2576107a261150e565b9060005260206000200154036107cb576040516301ab53df60e31b815260040160405180910390fd5b600101610780565b505b81546001600160a01b03166107ec576107ec610bfb565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015610835573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261085d9190810190611636565b825490915060ff1661089e5781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b815181101561098e5782600101600086815260200190815260200160002060405180604001604052808484815181106108f3576108f361150e565b60200260200101516001600160a01b031681526020016000600281111561091c5761091c610e37565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b83600281111561097f5761097f610e37565b021790555050506001016108b8565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e5906109c49033908a90899087906004016116ca565b600060405180830381600087803b1580156109de57600080fd5b505af1158015610736573d6000803e3d6000fd5b610a02636afd38fd60e11b610ccc565b6000805160206119f183398151915280546001600160a01b0319166001600160a01b03831617905550565b610a5160405180606001604052806060815260200160608152602001606081525090565b6000838152600080516020611a118339815191526020526040812080546000805160206119f18339815191529260ff90911615159003610aa457604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015610af4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b1c9190810190611893565b979650505050505050565b6000818152600080516020611a11833981519152602052604081206000805160206119f1833981519152915b6004820154811015610ba757816001016000836004018381548110610b7a57610b7a61150e565b906000526020600020015481526020019081526020016000206000610b9f9190610daa565b600101610b53565b50610bb6600482016000610dc8565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610bf46004830182610dc8565b5050505050565b60006000805160206119f1833981519152905060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60060060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015610c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cad91906119d3565b82546001600160a01b0319166001600160a01b03919091161790915550565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114610d59576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055610d72565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b50805460008255906000526020600020908101906104799190610de6565b50805460008255906000526020600020908101906104799190610e09565b5b80821115610e055780546001600160a81b0319168155600101610de7565b5090565b5b80821115610e055760008155600101610e0a565b600060208284031215610e3057600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6003811061047957610479610e37565b60008151808452602080850194506020840160005b83811015610ec7578151805160068110610e8e57610e8e610e37565b885280840151848901526040808201516001600160a01b0316908901526060908101519088015260809096019590820190600101610e72565b509495945050505050565b60008151808452602080850194506020840160005b83811015610ec75781518051610efc81610e4d565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101610ee7565b6020808252825160608383015280516080840181905260009291820190839060a08601905b80831015610f845783518051610f6281610e4d565b835285015160ff16858301529284019260019290920191604090910190610f4d565b50838701519350601f19925082868203016040870152610fa48185610e5d565b93505050604085015181858403016060860152610fc18382610ed2565b9695505050505050565b6003811061047957600080fd5b600080600060608486031215610fed57600080fd5b8335925060208401359150604084013561100681610fcb565b809150509250925092565b6000806040838503121561102457600080fd5b82359150602083013567ffffffffffffffff81111561104257600080fd5b83016060818603121561105457600080fd5b809150509250929050565b6001600160a01b038116811461047957600080fd5b60006020828403121561108657600080fd5b813561041f8161105f565b600080604083850312156110a457600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff8116811461047957600080fd5b81356110f981610fcb565b61110281610e4d565b60ff1982541660ff82168117835550506020820135611120816110df565b815461ff001916600882901b61ff0016178255505050565b6000808335601e1984360301811261114f57600080fd5b83018035915067ffffffffffffffff82111561116a57600080fd5b6020019150600781901b360382131561118257600080fd5b9250929050565b6006811061047957600080fd5b81356111a181611189565b600681106111b1576111b1610e37565b60ff1982541660ff8216811783555050602082013560018201556002810160408301356111dd8161105f565b81546001600160a01b0319166001600160a01b03919091161790556060919091013560039190910155565b600160401b83111561121c5761121c6110b3565b80548382558084101561129a5760026001600160fe1b038281168314611244576112446110c9565b8086168614611255576112556110c9565b506000838152602081208360021b81018760021b820191505b8082101561129557828255826001830155828483015582600383015560048201915061126e565b505050505b5060008181526020812083915b858110156112cf576112b98383611196565b60809290920191600491909101906001016112a7565b505050505050565b6000808335601e198436030181126112ee57600080fd5b83018035915067ffffffffffffffff82111561130957600080fd5b602001915060608102360382131561118257600080fd5b813561132b81610fcb565b61133481610e4d565b60ff1982541660ff82168117835550506020820135611352816110df565b815461ff001916600882901b61ff0016178255506040820135611374816110df565b815462ff0000191660109190911b62ff00001617905550565b600160401b8311156113a1576113a16110b3565b8054838255808410156113d8576000828152602081208581019083015b808210156113d4578282556001820191506113be565b5050505b5060008181526020812083915b858110156112cf576113f78383611320565b60609290920191600191820191016113e5565b8135601e1983360301811261141e57600080fd5b8201803567ffffffffffffffff81111561143757600080fd5b6020820191508060061b360382131561144f57600080fd5b600160401b811115611463576114636110b3565b82548184558082101561149a576000848152602081208381019083015b8082101561149657828255600182019150611480565b5050505b5060008381526020902060005b828110156114cc576114b984836110ee565b60409390930192600191820191016114a7565b505050506114dd6020830183611138565b6114eb818360018601611208565b50506114fa60408301836112d7565b61150881836002860161138d565b50505050565b634e487b7160e01b600052603260045260246000fd5b600060018201611536576115366110c9565b5060010190565b60008261155a57634e487b7160e01b600052601260045260246000fd5b500490565b6020810161156c83610e4d565b91905290565b6040516080810167ffffffffffffffff81118282101715611595576115956110b3565b60405290565b6040516060810167ffffffffffffffff81118282101715611595576115956110b3565b6040805190810167ffffffffffffffff81118282101715611595576115956110b3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561160a5761160a6110b3565b604052919050565b600067ffffffffffffffff82111561162c5761162c6110b3565b5060051b60200190565b6000602080838503121561164957600080fd5b825167ffffffffffffffff81111561166057600080fd5b8301601f8101851361167157600080fd5b805161168461167f82611612565b6115e1565b81815260059190911b820183019083810190878311156116a357600080fd5b928401925b82841015610b1c5783516116bb8161105f565b825292840192908401906116a8565b60006080820160018060a01b03808816845260208760208601528660408601526080606086015282865180855260a08701915060208801945060005b81811015611724578551851683529483019491830191600101611706565b50909a9950505050505050505050565b600082601f83011261174557600080fd5b8151602061175561167f83611612565b82815260079290921b8401810191818101908684111561177457600080fd5b8286015b848110156117d957608081890312156117915760008081fd5b611799611572565b81516117a481611189565b815281850151858201526040808301516117bd8161105f565b9082015260608281015190820152835291830191608001611778565b509695505050505050565b600082601f8301126117f557600080fd5b8151602061180561167f83611612565b8281526060928302850182019282820191908785111561182457600080fd5b8387015b858110156118865781818a0312156118405760008081fd5b61184861159b565b815161185381610fcb565b815281860151611862816110df565b81870152604082810151611875816110df565b908201528452928401928101611828565b5090979650505050505050565b600060208083850312156118a657600080fd5b825167ffffffffffffffff808211156118be57600080fd5b90840190606082870312156118d257600080fd5b6118da61159b565b8251828111156118e957600080fd5b8301601f810188136118fa57600080fd5b805161190861167f82611612565b81815260069190911b8201860190868101908a83111561192757600080fd5b928701925b8284101561197d576040848c0312156119455760008081fd5b61194d6115be565b845161195881610fcb565b815284890151611967816110df565b818a01528252604093909301929087019061192c565b8452505050828401518281111561199357600080fd5b61199f88828601611734565b858301525060408301519350818411156119b857600080fd5b6119c4878585016117e4565b60408201529695505050505050565b6000602082840312156119e557600080fd5b815161041f8161105f56fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e01","sourceMap":"346:932:282:-:0;;;513:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;378:22:69;:20;:22::i;:::-;462:66:201;1361:72:200;;-1:-1:-1;;;;;;1361:72:200;-1:-1:-1;;;;;1361:72:200;;;;;513:83:282;346:932;;1653:314:84;296:66:85;1779:14:84;;;;;;;1775:62;;;1802:35;;-1:-1:-1;;;1802:35:84;;;;;;;;;;;1775:62;1848:9;;1860:16;1848:9;;;:28;1844:119;;;1886:28;;-1:-1:-1;;1886:28:84;1898:16;1886:28;;;;;1927:29;;481:42:404;;;1927:29:84;;469:2:404;454:18;1927:29:84;;;;;;;1844:119;1694:273;1653:314::o;14:318:404:-;112:6;165:2;153:9;144:7;140:23;136:32;133:52;;;181:1;178;171:12;133:52;207:16;;-1:-1:-1;;;;;252:31:404;;242:42;;232:70;;298:1;295;288:12;232:70;321:5;14:318;-1:-1:-1;;;14:318:404:o;337:192::-;346:932:282;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063069a3ee91461005c5780634739e8051461008557806357e700271461009a5780637adc9cbe146100bb57806392c399ff146100ce575b600080fd5b61006f61006a366004610e1e565b6100e1565b60405161007c9190610f28565b60405180910390f35b610098610093366004610fd8565b610314565b005b6100ad6100a8366004611011565b6103b8565b60405190815260200161007c565b6100986100c9366004611074565b610426565b61006f6100dc366004611091565b61047c565b61010560405180606001604052806060815260200160608152602001606081525090565b6000828152602081815260408083208151815460809481028201850190935260608101838152909491938593919285929185015b828210156101a257600084815260209020604080518082019091529083018054829060ff16600281111561016f5761016f610e37565b600281111561018057610180610e37565b81529054610100900460ff166020918201529082526001929092019101610139565b50505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101561025a576000848152602090206040805160808101909152600484029091018054829060ff16600581111561020a5761020a610e37565b600581111561021b5761021b610e37565b815260018281015460208084019190915260028401546001600160a01b03166040840152600390930154606090920191909152918352920191016101cf565b50505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b828210156103065760008481526020902060408051606081019091529083018054829060ff1660028111156102be576102be610e37565b60028111156102cf576102cf610e37565b8152905460ff6101008204811660208085019190915262010000909204166040909201919091529082526001929092019101610287565b505050915250909392505050565b60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a00540361035657604051635db5c7cd60e11b815260040160405180910390fd5b61037f60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b61038a8383836104aa565b6103b360017f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b505050565b600082815260208190526040812082906103d2828261140a565b50506040516bffffffffffffffffffffffff193260601b16602082015243603482015260009060540160405160208183030381529060405280519060200120905061041f81306000610743565b9392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661047057604051630ef4733760e31b815260040160405180910390fd5b610479816109f2565b50565b6104a060405180606001604052806060815260200160608152602001606081525090565b61041f8383610a2d565b6000838152600080516020611a118339815191526020526040902080546000805160206119f1833981519152919061010090046001600160a01b031615806104f45750805460ff16155b1561051257604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff161561054457604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b8181101561068257600089815260018701602052604081208054839081106105855761058561150e565b60009182526020909120018054909150336001600160a01b03909116036106115760008154600160a01b900460ff1660028111156105c5576105c5610e37565b146105e3576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b83600281111561060757610607610e37565b0217905550600195505b60018154600160a01b900460ff16600281111561063057610630610e37565b03610647578461063f81611524565b955050610679565b60028154600160a01b900460ff16600281111561066657610666610e37565b03610679578361067581611524565b9450505b5060010161055b565b50836106a157604051638223a7e960e01b815260040160405180910390fd5b6106ac60028261153d565b8311806106c257506106bf60028261153d565b82115b156107385760008881526002860160205260408120805460ff191660011790558284116106f05760026106f3565b60015b9050897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051610725919061155f565b60405180910390a26107368a610b27565b505b505050505050505050565b6000838152600080516020611a118339815191526020526040902080546000805160206119f1833981519152919060ff1615156001036107d55760005b60048201548110156107d357838260040182815481106107a2576107a261150e565b9060005260206000200154036107cb576040516301ab53df60e31b815260040160405180910390fd5b600101610780565b505b81546001600160a01b03166107ec576107ec610bfb565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015610835573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261085d9190810190611636565b825490915060ff1661089e5781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b815181101561098e5782600101600086815260200190815260200160002060405180604001604052808484815181106108f3576108f361150e565b60200260200101516001600160a01b031681526020016000600281111561091c5761091c610e37565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b83600281111561097f5761097f610e37565b021790555050506001016108b8565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e5906109c49033908a90899087906004016116ca565b600060405180830381600087803b1580156109de57600080fd5b505af1158015610736573d6000803e3d6000fd5b610a02636afd38fd60e11b610ccc565b6000805160206119f183398151915280546001600160a01b0319166001600160a01b03831617905550565b610a5160405180606001604052806060815260200160608152602001606081525090565b6000838152600080516020611a118339815191526020526040812080546000805160206119f18339815191529260ff90911615159003610aa457604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015610af4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b1c9190810190611893565b979650505050505050565b6000818152600080516020611a11833981519152602052604081206000805160206119f1833981519152915b6004820154811015610ba757816001016000836004018381548110610b7a57610b7a61150e565b906000526020600020015481526020019081526020016000206000610b9f9190610daa565b600101610b53565b50610bb6600482016000610dc8565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610bf46004830182610dc8565b5050505050565b60006000805160206119f1833981519152905060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60060060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015610c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cad91906119d3565b82546001600160a01b0319166001600160a01b03919091161790915550565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114610d59576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055610d72565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b50805460008255906000526020600020908101906104799190610de6565b50805460008255906000526020600020908101906104799190610e09565b5b80821115610e055780546001600160a81b0319168155600101610de7565b5090565b5b80821115610e055760008155600101610e0a565b600060208284031215610e3057600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6003811061047957610479610e37565b60008151808452602080850194506020840160005b83811015610ec7578151805160068110610e8e57610e8e610e37565b885280840151848901526040808201516001600160a01b0316908901526060908101519088015260809096019590820190600101610e72565b509495945050505050565b60008151808452602080850194506020840160005b83811015610ec75781518051610efc81610e4d565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101610ee7565b6020808252825160608383015280516080840181905260009291820190839060a08601905b80831015610f845783518051610f6281610e4d565b835285015160ff16858301529284019260019290920191604090910190610f4d565b50838701519350601f19925082868203016040870152610fa48185610e5d565b93505050604085015181858403016060860152610fc18382610ed2565b9695505050505050565b6003811061047957600080fd5b600080600060608486031215610fed57600080fd5b8335925060208401359150604084013561100681610fcb565b809150509250925092565b6000806040838503121561102457600080fd5b82359150602083013567ffffffffffffffff81111561104257600080fd5b83016060818603121561105457600080fd5b809150509250929050565b6001600160a01b038116811461047957600080fd5b60006020828403121561108657600080fd5b813561041f8161105f565b600080604083850312156110a457600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff8116811461047957600080fd5b81356110f981610fcb565b61110281610e4d565b60ff1982541660ff82168117835550506020820135611120816110df565b815461ff001916600882901b61ff0016178255505050565b6000808335601e1984360301811261114f57600080fd5b83018035915067ffffffffffffffff82111561116a57600080fd5b6020019150600781901b360382131561118257600080fd5b9250929050565b6006811061047957600080fd5b81356111a181611189565b600681106111b1576111b1610e37565b60ff1982541660ff8216811783555050602082013560018201556002810160408301356111dd8161105f565b81546001600160a01b0319166001600160a01b03919091161790556060919091013560039190910155565b600160401b83111561121c5761121c6110b3565b80548382558084101561129a5760026001600160fe1b038281168314611244576112446110c9565b8086168614611255576112556110c9565b506000838152602081208360021b81018760021b820191505b8082101561129557828255826001830155828483015582600383015560048201915061126e565b505050505b5060008181526020812083915b858110156112cf576112b98383611196565b60809290920191600491909101906001016112a7565b505050505050565b6000808335601e198436030181126112ee57600080fd5b83018035915067ffffffffffffffff82111561130957600080fd5b602001915060608102360382131561118257600080fd5b813561132b81610fcb565b61133481610e4d565b60ff1982541660ff82168117835550506020820135611352816110df565b815461ff001916600882901b61ff0016178255506040820135611374816110df565b815462ff0000191660109190911b62ff00001617905550565b600160401b8311156113a1576113a16110b3565b8054838255808410156113d8576000828152602081208581019083015b808210156113d4578282556001820191506113be565b5050505b5060008181526020812083915b858110156112cf576113f78383611320565b60609290920191600191820191016113e5565b8135601e1983360301811261141e57600080fd5b8201803567ffffffffffffffff81111561143757600080fd5b6020820191508060061b360382131561144f57600080fd5b600160401b811115611463576114636110b3565b82548184558082101561149a576000848152602081208381019083015b8082101561149657828255600182019150611480565b5050505b5060008381526020902060005b828110156114cc576114b984836110ee565b60409390930192600191820191016114a7565b505050506114dd6020830183611138565b6114eb818360018601611208565b50506114fa60408301836112d7565b61150881836002860161138d565b50505050565b634e487b7160e01b600052603260045260246000fd5b600060018201611536576115366110c9565b5060010190565b60008261155a57634e487b7160e01b600052601260045260246000fd5b500490565b6020810161156c83610e4d565b91905290565b6040516080810167ffffffffffffffff81118282101715611595576115956110b3565b60405290565b6040516060810167ffffffffffffffff81118282101715611595576115956110b3565b6040805190810167ffffffffffffffff81118282101715611595576115956110b3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561160a5761160a6110b3565b604052919050565b600067ffffffffffffffff82111561162c5761162c6110b3565b5060051b60200190565b6000602080838503121561164957600080fd5b825167ffffffffffffffff81111561166057600080fd5b8301601f8101851361167157600080fd5b805161168461167f82611612565b6115e1565b81815260059190911b820183019083810190878311156116a357600080fd5b928401925b82841015610b1c5783516116bb8161105f565b825292840192908401906116a8565b60006080820160018060a01b03808816845260208760208601528660408601526080606086015282865180855260a08701915060208801945060005b81811015611724578551851683529483019491830191600101611706565b50909a9950505050505050505050565b600082601f83011261174557600080fd5b8151602061175561167f83611612565b82815260079290921b8401810191818101908684111561177457600080fd5b8286015b848110156117d957608081890312156117915760008081fd5b611799611572565b81516117a481611189565b815281850151858201526040808301516117bd8161105f565b9082015260608281015190820152835291830191608001611778565b509695505050505050565b600082601f8301126117f557600080fd5b8151602061180561167f83611612565b8281526060928302850182019282820191908785111561182457600080fd5b8387015b858110156118865781818a0312156118405760008081fd5b61184861159b565b815161185381610fcb565b815281860151611862816110df565b81870152604082810151611875816110df565b908201528452928401928101611828565b5090979650505050505050565b600060208083850312156118a657600080fd5b825167ffffffffffffffff808211156118be57600080fd5b90840190606082870312156118d257600080fd5b6118da61159b565b8251828111156118e957600080fd5b8301601f810188136118fa57600080fd5b805161190861167f82611612565b81815260069190911b8201860190868101908a83111561192757600080fd5b928701925b8284101561197d576040848c0312156119455760008081fd5b61194d6115be565b845161195881610fcb565b815284890151611967816110df565b818a01528252604093909301929087019061192c565b8452505050828401518281111561199357600080fd5b61199f88828601611734565b858301525060408301519350818411156119b857600080fd5b6119c4878585016117e4565b60408201529695505050505050565b6000602082840312156119e557600080fd5b815161041f8161105f56fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e01","sourceMap":"346:932:282:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;746:145;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1216:205:199;;;;;;:::i;:::-;;:::i;:::-;;895:381:282;;;;;;:::i;:::-;;:::i;:::-;;;4564:25:404;;;4552:2;4537:18;895:381:282;4418:177:404;683:171:199;;;;;;:::i;:::-;;:::i;1425:182::-;;;;;;:::i;:::-;;:::i;746:145:282:-;814:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;814:32:282;861:17;:25;;;;;;;;;;;854:32;;;;;;;;;;;;;;;;;;;;;;;861:25;;854:32;;;;861:25;;854:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;854:32:282;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;854:32:282;;-1:-1:-1;854:32:282;;746:145;-1:-1:-1;;;746:145:282:o;1216:205:199:-;408:1:113;295:66:114;508:38:113;:66;504:117;;589:32;;-1:-1:-1;;;589:32:113;;;;;;;;;;;504:117;627:22;408:1;295:66:114;825:65:113;770:125;627:22;1358:58:199::1;1386:13;1401:6;1409;1358:27;:58::i;:::-;662:24:113::0;468:1;295:66:114;825:65:113;770:125;662:24;1216:205:199;;;:::o;895:381:282:-;1019:7;1034:25;;;;;;;;;;1062:8;;1034:36;1062:8;1034:25;:36;:::i;:::-;-1:-1:-1;;1117:41:282;;-1:-1:-1;;1134:9:282;13920:2:404;13916:15;13912:53;1117:41:282;;;13900:66:404;1145:12:282;13982::404;;;13975:28;1076:21:282;;14019:12:404;;1117:41:282;;;;;;;;;;;;1100:64;;;;;;1076:88;;1170:75;1195:13;1235:4;1243:1;1170:24;:75::i;:::-;1258:13;895:381;-1:-1:-1;;;895:381:282:o;683:171:199:-;296:66:85;1263:42:84;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:84;;;;;;;;;;;1258:100;796:53:199::1;830:18;796:33;:53::i;:::-;683:171:::0;:::o;1425:182::-;1520:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;1520:32:199;1567:35;1580:13;1595:6;1567:12;:35::i;2764:1911:200:-;2894:41;3017:30;;;-1:-1:-1;;;;;;;;;;;3017:30:200;;;;;3065:25;;-1:-1:-1;;;;;;;;;;;462:66:201;3017:30:200;3065:25;;;-1:-1:-1;;;;;3065:25:200;:39;;:73;;-1:-1:-1;3108:21:200;;;;:30;3065:73;3054:156;;;3160:43;;-1:-1:-1;;;3160:43:200;;;;;;;;;;;3054:156;3220:31;;;;:23;;;:31;;;;;;;;3216:110;;;3268:51;;-1:-1:-1;;;3268:51:200;;;;;;;;;;;3216:110;3413:10;3535:34;;;:26;;;:34;;;;;:41;3413:10;;;;;3583:573;3607:22;3603:1;:26;3583:573;;;3644:25;3672:34;;;:26;;;:34;;;;;:37;;3707:1;;3672:37;;;;;;:::i;:::-;;;;;;;;;;3760:13;;3672:37;;-1:-1:-1;3777:10:200;-1:-1:-1;;;;;3760:13:200;;;:27;3756:217;;3820:24;3803:13;;-1:-1:-1;;;3803:13:200;;;;:41;;;;;;;;:::i;:::-;;3799:112;;3865:35;;-1:-1:-1;;;3865:35:200;;;;;;;;;;;3799:112;3920:22;;3936:6;;3920:8;;-1:-1:-1;;;;3920:22:200;-1:-1:-1;;;3936:6:200;3920:22;;;;;;;;:::i;:::-;;;;;;3960:4;3952:12;;3756:217;4023:21;4006:13;;-1:-1:-1;;;4006:13:200;;;;:38;;;;;;;;:::i;:::-;;4002:148;;4056:8;;;;:::i;:::-;;;;4002:148;;;4100:21;4083:13;;-1:-1:-1;;;4083:13:200;;;;:38;;;;;;;;:::i;:::-;;4079:71;;4133:8;;;;:::i;:::-;;;;4079:71;-1:-1:-1;3631:3:200;;3583:573;;;;4167:5;4162:65;;4189:31;;-1:-1:-1;;;4189:31:200;;;;;;;;;;;4162:65;4253:26;4278:1;4253:22;:26;:::i;:::-;4244:6;:35;:74;;;-1:-1:-1;4292:26:200;4317:1;4292:22;:26;:::i;:::-;4283:6;:35;4244:74;4233:438;;;4333:31;;;;:23;;;:31;;;;;:38;;-1:-1:-1;;4333:38:200;4367:4;4333:38;;;4408:15;;;:79;;4466:21;4408:79;;;4434:21;4408:79;4379:108;;4596:13;4567:56;4611:11;4567:56;;;;;;:::i;:::-;;;;;;;;4631:33;4650:13;4631:18;:33::i;:::-;4325:346;4233:438;2888:1787;;;;;;2764:1911;;;:::o;1442:1318::-;1576:41;1700:30;;;-1:-1:-1;;;;;;;;;;;1700:30:200;;;;;1741:21;;-1:-1:-1;;;;;;;;;;;462:66:201;1700:30:200;1741:21;;:29;;1700:15;1741:29;1737:244;;1785:9;1780:195;1804:19;;;:26;1800:30;;1780:195;;;1877:6;1851:11;:19;;1871:1;1851:22;;;;;;;;:::i;:::-;;;;;;;;;:32;1847:120;;1904:52;;-1:-1:-1;;;1904:52:200;;;;;;;;;;;1847:120;1832:3;;1780:195;;;;1737:244;2058:21;;-1:-1:-1;;;;;2058:21:200;2046:97;;2104:32;:30;:32::i;:::-;2182:21;;:39;;-1:-1:-1;;;2182:39:200;;2219:1;2182:39;;;4564:25:404;2149:30:200;;-1:-1:-1;;;;;2182:21:200;;:36;;4537:18:404;;2182:39:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2182:39:200;;;;;;;;;;;;:::i;:::-;2233:21;;2149:72;;-1:-1:-1;2233:21:200;;2228:162;;2264:28;;2300:23;;;:37;;-1:-1:-1;;;;;;2300:37:200;-1:-1:-1;;;;;2300:37:200;;;;;-1:-1:-1;;;;;;2345:38:200;2264:28;2373:10;2345:38;;-1:-1:-1;2345:38:200;;;2228:162;2396:19;;;:32;;;;;;;-1:-1:-1;2396:32:200;;;;;;;;;;2435:189;2459:13;:20;2455:1;:24;2435:189;;;2494:11;:26;;:34;2521:6;2494:34;;;;;;;;;;;2543:66;;;;;;;;2559:13;2573:1;2559:16;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2543:66:200;;;;;2583:24;2543:66;;;;;;;;:::i;:::-;;;2494:123;;;;;;;-1:-1:-1;2494:123:200;;;;;;;;;;;;;;-1:-1:-1;;;;;;2494:123:200;;-1:-1:-1;;;;;2494:123:200;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2494:123:200;;-1:-1:-1;;;2494:123:200;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;2481:3:200;;2435:189;;;-1:-1:-1;2630:21:200;;:125;;-1:-1:-1;;;2630:125:200;;-1:-1:-1;;;;;2630:21:200;;;;:45;;:125;;2683:10;;2701:13;;2722:6;;2736:13;;2630:125;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;858:209:199;964:50;-1:-1:-1;;;964:13:199;:50::i;:::-;-1:-1:-1;;;;;;;;;;;1361:72:200;;-1:-1:-1;;;;;;1361:72:200;-1:-1:-1;;;;;1361:72:200;;;;;683:171:199;:::o;5117:575:200:-;5213:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;5213:32:200;5253:41;5377:30;;;-1:-1:-1;;;;;;;;;;;5377:30:200;;;;;5418:21;;-1:-1:-1;;;;;;;;;;;462:66:201;5418:21:200;;;;:30;;;;5414:101;;5465:43;;-1:-1:-1;;;5465:43:200;;;;;;;;;;;5414:101;5568:23;;;;5643:22;;-1:-1:-1;;;5643:22:200;;;;;4564:25:404;;;-1:-1:-1;;;;;5568:23:200;;;;5521:19;;5568:23;;5643:14;;4537:18:404;;5643:22:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5643:22:200;;;;;;;;;;;;:::i;:::-;5599:66;5117:575;-1:-1:-1;;;;;;;5117:575:200:o;4679:434::-;4745:41;4869:30;;;-1:-1:-1;;;;;;;;;;;4869:30:200;;;;;-1:-1:-1;;;;;;;;;;;462:66:201;4905:129:200;4929:19;;;:26;4925:30;;4905:129;;;4977:11;:26;;:50;5004:11;:19;;5024:1;5004:22;;;;;;;;:::i;:::-;;;;;;;;;4977:50;;;;;;;;;;;;4970:57;;;;:::i;:::-;4957:3;;4905:129;;;-1:-1:-1;5039:26:200;5046:19;;;;5039:26;:::i;:::-;5078:30;;;;:15;;;:30;;;;;5071:37;;-1:-1:-1;;;;;;5071:37:200;;;;;;;;-1:-1:-1;;;;;;5071:37:200;;;5078:30;5071:37;;;;5078:30;5071:37;:::i;:::-;;;4739:374;;4679:434;:::o;5884:366::-;5941:41;-1:-1:-1;;;;;;;;;;;5941:83:200;-1:-1:-1;6030:26:200;287:66:210;6090:39:200;;;6059:117;;-1:-1:-1;;;6059:117:200;;-1:-1:-1;;;6059:117:200;;;23132:34:404;-1:-1:-1;;;;;6090:39:200;;;;6059:100;;23105:18:404;;6059:117:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6182:63;;-1:-1:-1;;;;;;6182:63:200;-1:-1:-1;;;;;6182:63:200;;;;;;;;-1:-1:-1;5884:366:200:o;445:282:87:-;-1:-1:-1;;;;;;1114:62:87;;1089:4;1114:62;;;296:66:89;1114:62:87;;;;;;;;:70;;:62;:70;503:182;;-1:-1:-1;;;;;;549:62:87;;:49;:62;;;296:66:89;549:62:87;;;;;:69;;-1:-1:-1;;549:69:87;614:4;549:69;;;503:182;;;646:32;;-1:-1:-1;;;646:32:87;;;;;;;;;;;503:182;695:27;;-1:-1:-1;;;;;;695:27:87;;;;;;;;445:282;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:180:404;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:404;;14:180;-1:-1:-1;14:180:404:o;199:127::-;260:10;255:3;251:20;248:1;241:31;291:4;288:1;281:15;315:4;312:1;305:15;331:126;425:1;418:5;415:12;405:46;;431:18;;:::i;462:807::-;529:3;567:5;561:12;594:6;589:3;582:19;620:4;649;644:3;640:14;633:21;;688:4;681:5;677:16;711:1;721:523;735:6;732:1;729:13;721:523;;;800:6;794:13;836:2;830:9;869:1;865:2;862:9;852:43;;875:18;;:::i;:::-;908:15;;963:11;;;957:18;943:12;;;936:40;999:4;1047:11;;;1041:18;-1:-1:-1;;;;;1037:44:404;1023:12;;;1016:66;1105:4;1149:11;;;1143:18;1129:12;;;1122:40;1191:4;1182:14;;;;1219:15;;;;1078:1;750:9;721:523;;;-1:-1:-1;1260:3:404;;462:807;-1:-1:-1;;;;;462:807:404:o;1274:797::-;1343:3;1381:5;1375:12;1408:6;1403:3;1396:19;1434:4;1463;1458:3;1454:14;1447:21;;1502:4;1495:5;1491:16;1525:1;1535:511;1549:6;1546:1;1543:13;1535:511;;;1614:6;1608:13;1650:2;1644:9;1666:47;1710:2;1666:47;:::i;:::-;1726:15;;1780:11;;;1774:18;1815:4;1853:21;;;1839:12;;;1832:43;1898:4;1946:11;;;1940:18;1936:27;1922:12;;;1915:49;1993:4;1984:14;;;;2021:15;;;;1571:1;1564:9;1535:511;;2076:1338;2251:2;2262:21;;;2354:13;;2403:4;2383:18;;;2376:32;2457:19;;2321:3;2306:19;;2485:22;;;2222:4;;2251:2;2565:21;;;2222:4;;2538:3;2523:19;;;2614:352;2628:6;2625:1;2622:13;2614:352;;;2693:6;2687:13;2729:2;2723:9;2745:47;2789:2;2745:47;:::i;:::-;2805:15;;2864:11;;2858:18;2878:4;2854:29;2840:12;;;2833:51;2941:15;;;;2650:1;2643:9;;;;;2913:4;2904:14;;;;2614:352;;;2618:3;3015:2;3007:6;3003:15;2997:22;2975:44;;3042:2;3038:7;3028:17;;3108:2;3096:9;3091:3;3087:19;3083:28;3076:4;3065:9;3061:20;3054:58;3135:63;3194:3;3178:14;3135:63;:::i;:::-;3121:77;;;;3247:4;3239:6;3235:17;3229:24;3319:2;3307:9;3299:6;3295:22;3291:31;3284:4;3273:9;3269:20;3262:61;3340:68;3401:6;3385:14;3340:68;:::i;:::-;3332:76;2076:1338;-1:-1:-1;;;;;;2076:1338:404:o;3419:113::-;3506:1;3499:5;3496:12;3486:40;;3522:1;3519;3512:12;3537:415;3634:6;3642;3650;3703:2;3691:9;3682:7;3678:23;3674:32;3671:52;;;3719:1;3716;3709:12;3671:52;3755:9;3742:23;3732:33;;3812:2;3801:9;3797:18;3784:32;3774:42;;3866:2;3855:9;3851:18;3838:32;3879:43;3916:5;3879:43;:::i;:::-;3941:5;3931:15;;;3537:415;;;;;:::o;3957:456::-;4054:6;4062;4115:2;4103:9;4094:7;4090:23;4086:32;4083:52;;;4131:1;4128;4121:12;4083:52;4167:9;4154:23;4144:33;;4228:2;4217:9;4213:18;4200:32;4255:18;4247:6;4244:30;4241:50;;;4287:1;4284;4277:12;4241:50;4310:22;;4366:2;4348:16;;;4344:25;4341:45;;;4382:1;4379;4372:12;4341:45;4405:2;4395:12;;;3957:456;;;;;:::o;4600:152::-;-1:-1:-1;;;;;4696:31:404;;4686:42;;4676:70;;4742:1;4739;4732:12;4757:296;4844:6;4897:2;4885:9;4876:7;4872:23;4868:32;4865:52;;;4913:1;4910;4903:12;4865:52;4952:9;4939:23;4971:52;5017:5;4971:52;:::i;5058:248::-;5126:6;5134;5187:2;5175:9;5166:7;5162:23;5158:32;5155:52;;;5203:1;5200;5193:12;5155:52;-1:-1:-1;;5226:23:404;;;5296:2;5281:18;;;5268:32;;-1:-1:-1;5058:248:404:o;5311:127::-;5372:10;5367:3;5363:20;5360:1;5353:31;5403:4;5400:1;5393:15;5427:4;5424:1;5417:15;5443:127;5504:10;5499:3;5495:20;5492:1;5485:31;5535:4;5532:1;5525:15;5559:4;5556:1;5549:15;5721:114;5805:4;5798:5;5794:16;5787:5;5784:27;5774:55;;5825:1;5822;5815:12;6025:527;6163:5;6150:19;6178:45;6215:7;6178:45;:::i;:::-;6232:52;6276:7;6232:52;:::i;:::-;6329:3;6325:8;6318:4;6312:11;6308:26;6381:3;6372:7;6368:17;6359:7;6356:30;6350:4;6343:44;;;6435:2;6428:5;6424:14;6411:28;6448:31;6471:7;6448:31;:::i;:::-;5930:11;;-1:-1:-1;;5966:19:404;5995:1;5991:13;;;6006:5;5987:25;5963:50;5950:64;;1216:205:199;;;:::o;6557:558:404:-;6663:4;6669:6;6729:11;6716:25;6823:2;6819:7;6808:8;6792:14;6788:29;6784:43;6764:18;6760:68;6750:96;;6842:1;6839;6832:12;6750:96;6869:33;;6921:20;;;-1:-1:-1;6964:18:404;6953:30;;6950:50;;;6996:1;6993;6986:12;6950:50;7029:4;7017:17;;-1:-1:-1;7080:1:404;7076:14;;;7060;7056:35;7046:46;;7043:66;;;7105:1;7102;7095:12;7043:66;6557:558;;;;;:::o;7120:117::-;7211:1;7204:5;7201:12;7191:40;;7227:1;7224;7217:12;7242:778;7390:5;7377:19;7405:49;7446:7;7405:49;:::i;:::-;7485:1;7476:7;7473:14;7463:48;;7491:18;;:::i;:::-;7556:3;7552:8;7545:4;7539:11;7535:26;7608:3;7599:7;7595:17;7586:7;7583:30;7577:4;7570:44;;;7668:2;7661:5;7657:14;7644:28;7640:1;7634:4;7630:12;7623:50;7710:1;7704:4;7700:12;7760:2;7753:5;7749:14;7736:28;7773:54;7819:7;7773:54;:::i;:::-;7862:17;;-1:-1:-1;;;;;;7858:60:404;-1:-1:-1;;;;;7920:33:404;;;;7855:99;7836:119;;8009:2;7998:14;;;;7985:28;7981:1;7971:12;;;;7964:50;7242:778::o;8025:1372::-;-1:-1:-1;;;8185:3:404;8182:29;8179:55;;;8214:18;;:::i;:::-;8263:4;8257:11;8290:3;8284:4;8277:17;8314:6;8309:3;8306:15;8303:689;;;8354:1;-1:-1:-1;;;;;8431:15:404;;;8420:27;;8410:61;;8451:18;;:::i;:::-;8511:2;8506:3;8502:12;8497:3;8494:21;8484:55;;8519:18;;:::i;:::-;8484:55;8562:1;8587:4;8583:2;8576:16;8631:4;8627:2;8617:19;8676:6;8673:1;8669:14;8663:4;8659:25;8727:3;8724:1;8720:11;8714:4;8710:22;8697:35;;8745:237;8763:2;8756:5;8753:13;8745:237;;;8838:2;8831:5;8824:17;8880:2;8876:1;8869:5;8865:13;8858:25;8923:2;8918;8911:5;8907:14;8900:26;8965:2;8961:1;8954:5;8950:13;8943:25;8789:1;8782:5;8778:13;8769:22;;8745:237;;;8749:3;;;;8303:689;-1:-1:-1;5668:1:404;5661:14;;;5705:4;5692:18;;9015:5;;9131:260;9145:3;9142:1;9139:10;9131:260;;;9191:104;9288:6;9275:11;9191:104;:::i;:::-;9330:3;9318:16;;;;;9379:1;9362:19;;;;;9164:1;9157:9;9131:260;;;9135:3;;;8025:1372;;;:::o;9402:563::-;9510:4;9516:6;9576:11;9563:25;9670:2;9666:7;9655:8;9639:14;9635:29;9631:43;9611:18;9607:68;9597:96;;9689:1;9686;9679:12;9597:96;9716:33;;9768:20;;;-1:-1:-1;9811:18:404;9800:30;;9797:50;;;9843:1;9840;9833:12;9797:50;9876:4;9864:17;;-1:-1:-1;9935:4:404;9923:17;;9907:14;9903:38;9893:49;;9890:69;;;9955:1;9952;9945:12;9970:745;10122:5;10109:19;10137:45;10174:7;10137:45;:::i;:::-;10191:52;10235:7;10191:52;:::i;:::-;10288:3;10284:8;10277:4;10271:11;10267:26;10340:3;10331:7;10327:17;10318:7;10315:30;10309:4;10302:44;;;10394:2;10387:5;10383:14;10370:28;10407:31;10430:7;10407:31;:::i;:::-;5930:11;;-1:-1:-1;;5966:19:404;5995:1;5991:13;;;6006:5;5987:25;5963:50;5950:64;;10447:58;10553:2;10546:5;10542:14;10529:28;10566:31;10589:7;10566:31;:::i;:::-;10616:11;;-1:-1:-1;;10652:22:404;10684:2;10680:16;;;;10698:8;10676:31;10649:59;10636:73;;-1:-1:-1;9970:745:404:o;10720:998::-;-1:-1:-1;;;10884:3:404;10881:29;10878:55;;;10913:18;;:::i;:::-;10962:4;10956:11;10989:3;10983:4;10976:17;11013:6;11008:3;11005:15;11002:308;;;11053:1;11067:15;;;11120:4;11107:18;;11191:14;;;;11148:17;;11218:82;11236:2;11229:5;11226:13;11218:82;;;11295:2;11288:5;11281:17;11262:1;11255:5;11251:13;11242:22;;11218:82;;;11222:3;;;11002:308;-1:-1:-1;5668:1:404;5661:14;;;5705:4;5692:18;;11333:5;;11449:263;11463:3;11460:1;11457:10;11449:263;;;11509:108;11610:6;11597:11;11509:108;:::i;:::-;11652:2;11640:15;;;;;11700:1;11683:19;;;;11475:9;11449:263;;11723:2015;11903:5;11890:19;11988:2;11984:7;11976:5;11960:14;11956:26;11952:40;11932:18;11928:65;11918:93;;12007:1;12004;11997:12;11918:93;12032:30;;12085:18;;12126;12115:30;;12112:50;;;12158:1;12155;12148:12;12112:50;12195:4;12189;12185:15;12171:29;;12251:6;12248:1;12244:14;12228;12224:35;12216:6;12212:48;12209:68;;;12273:1;12270;12263:12;12209:68;-1:-1:-1;;;12292:6:404;12289:32;12286:58;;;12324:18;;:::i;:::-;12373:4;12367:11;12400:6;12394:4;12387:20;12430:6;12422;12419:18;12416:314;;;12470:1;12484:15;;;12537:4;12524:18;;12608:17;;;;12565;;12638:82;12656:2;12649:5;12646:13;12638:82;;;12715:2;12708:5;12701:17;12682:1;12675:5;12671:13;12662:22;;12638:82;;;12642:3;;;12416:314;-1:-1:-1;5668:1:404;5661:14;;;5705:4;5692:18;;12860:1;12870:252;12884:6;12881:1;12878:13;12870:252;;;12933:94;13020:6;13007:11;12933:94;:::i;:::-;13062:2;13050:15;;;;;13110:1;13093:19;;;;12899:9;12870:252;;;12874:3;;;;13165:95;13254:4;13247:5;13243:16;13236:5;13165:95;:::i;:::-;13269:154;13409:13;13396:11;13392:1;13386:4;13382:12;13269:154;:::i;:::-;;;13468:95;13559:2;13552:5;13548:14;13541:5;13468:95;:::i;:::-;13572:160;13718:13;13703;13699:1;13693:4;13689:12;13572:160;:::i;:::-;;;11723:2015;;:::o;14042:127::-;14103:10;14098:3;14094:20;14091:1;14084:31;14134:4;14131:1;14124:15;14158:4;14155:1;14148:15;14174:135;14213:3;14234:17;;;14231:43;;14254:18;;:::i;:::-;-1:-1:-1;14301:1:404;14290:13;;14174:135::o;14314:217::-;14354:1;14380;14370:132;;14424:10;14419:3;14415:20;14412:1;14405:31;14459:4;14456:1;14449:15;14487:4;14484:1;14477:15;14370:132;-1:-1:-1;14516:9:404;;14314:217::o;14536:255::-;14688:2;14673:18;;14700:51;14744:6;14700:51;:::i;:::-;14760:25;;;14536:255;:::o;14986:253::-;15058:2;15052:9;15100:4;15088:17;;15135:18;15120:34;;15156:22;;;15117:62;15114:88;;;15182:18;;:::i;:::-;15218:2;15211:22;14986:253;:::o;15244:::-;15316:2;15310:9;15358:4;15346:17;;15393:18;15378:34;;15414:22;;;15375:62;15372:88;;;15440:18;;:::i;15502:257::-;15574:4;15568:11;;;15606:17;;15653:18;15638:34;;15674:22;;;15635:62;15632:88;;;15700:18;;:::i;15764:275::-;15835:2;15829:9;15900:2;15881:13;;-1:-1:-1;;15877:27:404;15865:40;;15935:18;15920:34;;15956:22;;;15917:62;15914:88;;;15982:18;;:::i;:::-;16018:2;16011:22;15764:275;;-1:-1:-1;15764:275:404:o;16044:183::-;16104:4;16137:18;16129:6;16126:30;16123:56;;;16159:18;;:::i;:::-;-1:-1:-1;16204:1:404;16200:14;16216:4;16196:25;;16044:183::o;16232:977::-;16327:6;16358:2;16401;16389:9;16380:7;16376:23;16372:32;16369:52;;;16417:1;16414;16407:12;16369:52;16450:9;16444:16;16483:18;16475:6;16472:30;16469:50;;;16515:1;16512;16505:12;16469:50;16538:22;;16591:4;16583:13;;16579:27;-1:-1:-1;16569:55:404;;16620:1;16617;16610:12;16569:55;16649:2;16643:9;16672:60;16688:43;16728:2;16688:43;:::i;:::-;16672:60;:::i;:::-;16766:15;;;16848:1;16844:10;;;;16836:19;;16832:28;;;16797:12;;;;16872:19;;;16869:39;;;16904:1;16901;16894:12;16869:39;16928:11;;;;16948:231;16964:6;16959:3;16956:15;16948:231;;;17037:3;17031:10;17054:52;17100:5;17054:52;:::i;:::-;17119:18;;16981:12;;;;17157;;;;16948:231;;17214:904;17440:4;17488:3;17477:9;17473:19;17528:1;17524;17519:3;17515:11;17511:19;17569:2;17561:6;17557:15;17546:9;17539:34;17592:2;17630:6;17625:2;17614:9;17610:18;17603:34;17673:6;17668:2;17657:9;17653:18;17646:34;17716:3;17711:2;17700:9;17696:18;17689:31;17740:6;17775;17769:13;17806:6;17798;17791:22;17844:3;17833:9;17829:19;17822:26;;17883:2;17875:6;17871:15;17857:29;;17904:1;17914:178;17928:6;17925:1;17922:13;17914:178;;;17993:13;;17989:22;;17977:35;;18067:15;;;;18032:12;;;;17950:1;17943:9;17914:178;;;-1:-1:-1;18109:3:404;;17214:904;-1:-1:-1;;;;;;;;;;17214:904:404:o;18305:1300::-;18384:5;18437:3;18430:4;18422:6;18418:17;18414:27;18404:55;;18455:1;18452;18445:12;18404:55;18484:6;18478:13;18510:4;18534:60;18550:43;18590:2;18550:43;:::i;18534:60::-;18628:15;;;18714:1;18710:10;;;;18698:23;;18694:32;;;18659:12;;;;18738:15;;;18735:35;;;18766:1;18763;18756:12;18735:35;18802:2;18794:6;18790:15;18814:762;18830:6;18825:3;18822:15;18814:762;;;18908:4;18902:3;18897;18893:13;18889:24;18886:114;;;18954:1;18983:2;18979;18972:14;18886:114;19026:22;;:::i;:::-;19082:3;19076:10;19099:49;19140:7;19099:49;:::i;:::-;19161:22;;19225:12;;;19219:19;19203:14;;;19196:43;19262:2;19298:12;;;19292:19;19324:54;19292:19;19324:54;:::i;:::-;19398:14;;;19391:31;19445:2;19489:12;;;19483:19;19467:14;;;19460:43;19516:18;;19554:12;;;;18856:4;18847:14;18814:762;;;-1:-1:-1;19594:5:404;18305:1300;-1:-1:-1;;;;;;18305:1300:404:o;19610:1295::-;19691:5;19744:3;19737:4;19729:6;19725:17;19721:27;19711:55;;19762:1;19759;19752:12;19711:55;19791:6;19785:13;19817:4;19841:60;19857:43;19897:2;19857:43;:::i;19841:60::-;19935:15;;;19997:4;20040:13;;;20028:26;;20024:35;;;19966:12;;;;19923:3;20071:15;;;20068:35;;;20099:1;20096;20089:12;20068:35;20135:2;20127:6;20123:15;20147:729;20163:6;20158:3;20155:15;20147:729;;;20239:2;20233:3;20228;20224:13;20220:22;20217:112;;;20283:1;20312:2;20308;20301:14;20217:112;20355:22;;:::i;:::-;20411:3;20405:10;20428:45;20465:7;20428:45;:::i;:::-;20486:22;;20542:12;;;20536:19;20568:31;20536:19;20568:31;:::i;:::-;20619:14;;;20612:31;20666:2;20702:12;;;20696:19;20728:31;20696:19;20728:31;:::i;:::-;20779:14;;;20772:31;20816:18;;20854:12;;;;20180;;20147:729;;;-1:-1:-1;20894:5:404;;19610:1295;-1:-1:-1;;;;;;;19610:1295:404:o;20910:2008::-;21007:6;21038:2;21081;21069:9;21060:7;21056:23;21052:32;21049:52;;;21097:1;21094;21087:12;21049:52;21130:9;21124:16;21159:18;21200:2;21192:6;21189:14;21186:34;;;21216:1;21213;21206:12;21186:34;21239:22;;;;21295:4;21277:16;;;21273:27;21270:47;;;21313:1;21310;21303:12;21270:47;21339:22;;:::i;:::-;21392:2;21386:9;21420:2;21410:8;21407:16;21404:36;;;21436:1;21433;21426:12;21404:36;21459:17;;21507:4;21499:13;;21495:27;-1:-1:-1;21485:55:404;;21536:1;21533;21526:12;21485:55;21565:2;21559:9;21588:60;21604:43;21644:2;21604:43;:::i;21588:60::-;21682:15;;;21764:1;21760:10;;;;21752:19;;21748:28;;;21713:12;;;;21788:19;;;21785:39;;;21820:1;21817;21810:12;21785:39;21844:11;;;;21864:585;21880:6;21875:3;21872:15;21864:585;;;21962:4;21956:3;21947:7;21943:17;21939:28;21936:118;;;22008:1;22037:2;22033;22026:14;21936:118;22082:22;;:::i;:::-;22138:3;22132:10;22155:45;22192:7;22155:45;:::i;:::-;22213:24;;22271:12;;;22265:19;22297:31;22265:19;22297:31;:::i;:::-;22348:16;;;22341:33;22387:20;;21906:4;21897:14;;;;;22427:12;;;;21864:585;;;22458:20;;-1:-1:-1;;;22509:11:404;;;22503:18;22533:16;;;22530:36;;;22562:1;22559;22552:12;22530:36;22598:81;22671:7;22660:8;22656:2;22652:17;22598:81;:::i;:::-;22593:2;22586:5;22582:14;22575:105;;22719:4;22715:2;22711:13;22705:20;22689:36;;22750:2;22740:8;22737:16;22734:36;;;22766:1;22763;22756:12;22734:36;22804:83;22879:7;22868:8;22864:2;22860:17;22804:83;:::i;:::-;22797:4;22786:16;;22779:109;22790:5;20910:2008;-1:-1:-1;;;;;;20910:2008:404:o;23177:272::-;23247:6;23300:2;23288:9;23279:7;23275:23;23271:32;23268:52;;;23316:1;23313;23306:12;23268:52;23348:9;23342:16;23367:52;23413:5;23367:52;:::i","linkReferences":{}},"methodIdentifiers":{"__EntitlementGated_init(address)":"7adc9cbe","getRuleData(bytes32,uint256)":"92c399ff","getRuleData(uint256)":"069a3ee9","postEntitlementCheckResult(bytes32,uint256,uint8)":"4739e805","requestEntitlementCheck(uint256,((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]))":"57e70027"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IEntitlementChecker\",\"name\":\"checker\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EntitlementGated_InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_NodeAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_NodeNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_TransactionCheckAlreadyCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_TransactionCheckAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_TransactionNotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_InInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_NotInInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_AlreadySupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_NotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuard__ReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IEntitlementGatedBase.NodeVoteStatus\",\"name\":\"result\",\"type\":\"uint8\"}],\"name\":\"EntitlementCheckResultPosted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IEntitlementChecker\",\"name\":\"entitlementChecker\",\"type\":\"address\"}],\"name\":\"__EntitlementGated_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getRuleData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlement.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlement.RuleData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getRuleData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlement.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlement.RuleData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"enum IEntitlementGatedBase.NodeVoteStatus\",\"name\":\"result\",\"type\":\"uint8\"}],\"name\":\"postEntitlementCheckResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlement.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlement.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlement.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlement.RuleData\",\"name\":\"ruleData\",\"type\":\"tuple\"}],\"name\":\"requestEntitlementCheck\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"InterfaceAdded(bytes4)\":{\"notice\":\"Emitted when an interface is added to the contract via `_addInterface`.\"},\"InterfaceRemoved(bytes4)\":{\"notice\":\"Emitted when an interface is removed from the contract via `_removeInterface`.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/mocks/MockEntitlementGated.sol\":\"MockEntitlementGated\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/checker/IEntitlementChecker.sol\":{\"keccak256\":\"0xbeb7bfa236f19172b29eac53be03a3b377de3524b2d836192b0c64ebe708c204\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d5a103a2b7b6be1ffa6662db6081763bcd210216fefc25307b835c555e0cf4d\",\"dweb:/ipfs/QmUCvhZdZpVnyJuZVgd2qGduTf11384TmmBJb2RaEBHxhh\"]},\"contracts/src/diamond/facets/Facet.sol\":{\"keccak256\":\"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863\",\"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc\"]},\"contracts/src/diamond/facets/initializable/Initializable.sol\":{\"keccak256\":\"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552\",\"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC\"]},\"contracts/src/diamond/facets/initializable/InitializableStorage.sol\":{\"keccak256\":\"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4\",\"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg\"]},\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/introspection/IntrospectionBase.sol\":{\"keccak256\":\"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1\",\"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw\"]},\"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol\":{\"keccak256\":\"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91\",\"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM\"]},\"contracts/src/diamond/facets/reentrancy/IReentrancyGuard.sol\":{\"keccak256\":\"0x89ad30ac5476efd023189fca20b13214fe5541ea5fff11760e00f229c62c896e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc04fb0c48333cb0f4b84b01e50498d60510d52495c3772f0bf632773ec47a7d\",\"dweb:/ipfs/QmQUuYriat7eRRsPUHTeD2CDEwHzYxqW6qix7xf44kWByo\"]},\"contracts/src/diamond/facets/reentrancy/ReentrancyGuard.sol\":{\"keccak256\":\"0xb481ee6684d1589254563cb5c318b1eb75f6f15f96baecbd5f5e42b72b7a5003\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e1bafcd0779c6241ee7716ae2058dd6f7d5a75bb211f5bfcb9aefa434228f8\",\"dweb:/ipfs/QmSbsdGjL1be4VBjgWrk5CodWGvszXZt5HX32PxhvXTZ5Y\"]},\"contracts/src/diamond/facets/reentrancy/ReentrancyGuardStorage.sol\":{\"keccak256\":\"0xe4a08e5712446357756a6da7b65ae80845732dfebac180bd478caaf64dfc790e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09f5691ae9aedbe094cc83a0e8a4272c4d6dd5f57e69fec5870b148f2d94395e\",\"dweb:/ipfs/QmTLHQWuRp1L45oRV8oWWbk4Y4MMNYW1Rp9WUJ86gzVVRv\"]},\"contracts/src/factory/facets/registry/IImplementationRegistry.sol\":{\"keccak256\":\"0xb447f7654cd152c29718c95983b62e390a59658d7d1a22b97f79d0aee9fb5de7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://756a9a38364c01937088ba927f09af2726d2df207eea4e0e2842e3fc66ccd32c\",\"dweb:/ipfs/QmbxBRXgtkEQsGtxq1uSM6vX38FkjPq6tpodCdtBmdEmXA\"]},\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":{\"keccak256\":\"0x28650d058077713dfc28d5c613998d9f1e895a6f5f6b0d93467d25455fc3ea1d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2446b7958f8b5f2713860e2826acf1b123c6b24719f844c7811d1e3f5a87c86\",\"dweb:/ipfs/Qmesso9ftmVUCHi6w2gkJs9tEjGG5ZZgqhAenkyTDgFPC2\"]},\"contracts/src/spaces/facets/gated/EntitlementGated.sol\":{\"keccak256\":\"0xd705dfd2d3124f62b5ca11cd2b0e0432da535ced6d8012f55799897a30480ba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cdb855f903687fca333ac8be6e4545b99dc654a41d3878f6ad8f847500efd15b\",\"dweb:/ipfs/QmZixZFxv5QBuCVrGXnB9PJknKZknXiXBepi2mG83Jpiza\"]},\"contracts/src/spaces/facets/gated/EntitlementGatedBase.sol\":{\"keccak256\":\"0xcefa5c3c81c73fefaa7da433ddd5c419dc4c31cd86e8c31f47894663ca7269e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27fe60a48a69d5be67fdf17f5aac1e90ef0234da564ec4f6e2cbfe53fbb9ba0c\",\"dweb:/ipfs/QmPemsjAUmjjjyLWbHzVmqLxyBAN7CFi6DViy9uQEM3wjt\"]},\"contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol\":{\"keccak256\":\"0xb058672a61d2742e8232232cc66f052443d82beb8b2cdc681f10c23a49351b84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f39d39a3bd3e39c2f6a5b21b82a7339176c163d82335f901a64c57dd73ffa5a3\",\"dweb:/ipfs/QmP8RmYv79xX8hLmrvjfceW9mdRYCYxMaxpywRpR281tMo\"]},\"contracts/src/spaces/facets/gated/IEntitlementGated.sol\":{\"keccak256\":\"0x948de1018f7f78366263a40e0f8269e10941216bd03a9996edb24a6230959e74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc985539ce639f39fd68723acca6424a78deac6cec3693c9d8e1084a487c83ec\",\"dweb:/ipfs/QmQujX5rmDwhJZurp11FTiPLb7ev9swLTtdkagA8wydZiT\"]},\"contracts/src/spaces/facets/membership/MembershipStorage.sol\":{\"keccak256\":\"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a\",\"dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa\"]},\"contracts/test/mocks/MockEntitlementGated.sol\":{\"keccak256\":\"0xc6ddf45d5ece26e1f5e692fc94c5aa7753812fceb53233868b0a9fe4f0748f28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c907bb53f65dc97bc0e4a7b8feffbb85691d2be92c00c45241001a2cd1aeea9\",\"dweb:/ipfs/QmW9PPy7LkhvZBT2pvE1ucCsmSiYqsRLUkesiZt94kdN33\"]},\"lib/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IEntitlementChecker","name":"checker","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EntitlementGated_InvalidAddress"},{"inputs":[],"type":"error","name":"EntitlementGated_NodeAlreadyVoted"},{"inputs":[],"type":"error","name":"EntitlementGated_NodeNotFound"},{"inputs":[],"type":"error","name":"EntitlementGated_TransactionCheckAlreadyCompleted"},{"inputs":[],"type":"error","name":"EntitlementGated_TransactionCheckAlreadyRegistered"},{"inputs":[],"type":"error","name":"EntitlementGated_TransactionNotRegistered"},{"inputs":[],"type":"error","name":"Initializable_InInitializingState"},{"inputs":[],"type":"error","name":"Initializable_NotInInitializingState"},{"inputs":[],"type":"error","name":"Introspection_AlreadySupported"},{"inputs":[],"type":"error","name":"Introspection_NotSupported"},{"inputs":[],"type":"error","name":"ReentrancyGuard__ReentrantCall"},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32","indexed":true},{"internalType":"enum IEntitlementGatedBase.NodeVoteStatus","name":"result","type":"uint8","indexed":false}],"type":"event","name":"EntitlementCheckResultPosted","anonymous":false},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceAdded","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceRemoved","anonymous":false},{"inputs":[{"internalType":"contract IEntitlementChecker","name":"entitlementChecker","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"__EntitlementGated_init"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRuleData","outputs":[{"internalType":"struct IRuleEntitlement.RuleData","name":"","type":"tuple","components":[{"internalType":"struct IRuleEntitlement.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlement.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlement.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}]},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRuleData","outputs":[{"internalType":"struct IRuleEntitlement.RuleData","name":"","type":"tuple","components":[{"internalType":"struct IRuleEntitlement.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlement.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlement.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}]},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"enum IEntitlementGatedBase.NodeVoteStatus","name":"result","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"postEntitlementCheckResult"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"struct IRuleEntitlement.RuleData","name":"ruleData","type":"tuple","components":[{"internalType":"struct IRuleEntitlement.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlement.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlement.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlement.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}],"stateMutability":"nonpayable","type":"function","name":"requestEntitlementCheck","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/test/mocks/MockEntitlementGated.sol":"MockEntitlementGated"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/checker/IEntitlementChecker.sol":{"keccak256":"0xbeb7bfa236f19172b29eac53be03a3b377de3524b2d836192b0c64ebe708c204","urls":["bzz-raw://3d5a103a2b7b6be1ffa6662db6081763bcd210216fefc25307b835c555e0cf4d","dweb:/ipfs/QmUCvhZdZpVnyJuZVgd2qGduTf11384TmmBJb2RaEBHxhh"],"license":"MIT"},"contracts/src/diamond/facets/Facet.sol":{"keccak256":"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57","urls":["bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863","dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"],"license":"MIT"},"contracts/src/diamond/facets/initializable/Initializable.sol":{"keccak256":"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90","urls":["bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552","dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"],"license":"MIT"},"contracts/src/diamond/facets/initializable/InitializableStorage.sol":{"keccak256":"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a","urls":["bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4","dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionBase.sol":{"keccak256":"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f","urls":["bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1","dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol":{"keccak256":"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763","urls":["bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91","dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/IReentrancyGuard.sol":{"keccak256":"0x89ad30ac5476efd023189fca20b13214fe5541ea5fff11760e00f229c62c896e","urls":["bzz-raw://fc04fb0c48333cb0f4b84b01e50498d60510d52495c3772f0bf632773ec47a7d","dweb:/ipfs/QmQUuYriat7eRRsPUHTeD2CDEwHzYxqW6qix7xf44kWByo"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/ReentrancyGuard.sol":{"keccak256":"0xb481ee6684d1589254563cb5c318b1eb75f6f15f96baecbd5f5e42b72b7a5003","urls":["bzz-raw://70e1bafcd0779c6241ee7716ae2058dd6f7d5a75bb211f5bfcb9aefa434228f8","dweb:/ipfs/QmSbsdGjL1be4VBjgWrk5CodWGvszXZt5HX32PxhvXTZ5Y"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/ReentrancyGuardStorage.sol":{"keccak256":"0xe4a08e5712446357756a6da7b65ae80845732dfebac180bd478caaf64dfc790e","urls":["bzz-raw://09f5691ae9aedbe094cc83a0e8a4272c4d6dd5f57e69fec5870b148f2d94395e","dweb:/ipfs/QmTLHQWuRp1L45oRV8oWWbk4Y4MMNYW1Rp9WUJ86gzVVRv"],"license":"MIT"},"contracts/src/factory/facets/registry/IImplementationRegistry.sol":{"keccak256":"0xb447f7654cd152c29718c95983b62e390a59658d7d1a22b97f79d0aee9fb5de7","urls":["bzz-raw://756a9a38364c01937088ba927f09af2726d2df207eea4e0e2842e3fc66ccd32c","dweb:/ipfs/QmbxBRXgtkEQsGtxq1uSM6vX38FkjPq6tpodCdtBmdEmXA"],"license":"MIT"},"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":{"keccak256":"0x28650d058077713dfc28d5c613998d9f1e895a6f5f6b0d93467d25455fc3ea1d","urls":["bzz-raw://e2446b7958f8b5f2713860e2826acf1b123c6b24719f844c7811d1e3f5a87c86","dweb:/ipfs/Qmesso9ftmVUCHi6w2gkJs9tEjGG5ZZgqhAenkyTDgFPC2"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGated.sol":{"keccak256":"0xd705dfd2d3124f62b5ca11cd2b0e0432da535ced6d8012f55799897a30480ba5","urls":["bzz-raw://cdb855f903687fca333ac8be6e4545b99dc654a41d3878f6ad8f847500efd15b","dweb:/ipfs/QmZixZFxv5QBuCVrGXnB9PJknKZknXiXBepi2mG83Jpiza"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGatedBase.sol":{"keccak256":"0xcefa5c3c81c73fefaa7da433ddd5c419dc4c31cd86e8c31f47894663ca7269e8","urls":["bzz-raw://27fe60a48a69d5be67fdf17f5aac1e90ef0234da564ec4f6e2cbfe53fbb9ba0c","dweb:/ipfs/QmPemsjAUmjjjyLWbHzVmqLxyBAN7CFi6DViy9uQEM3wjt"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol":{"keccak256":"0xb058672a61d2742e8232232cc66f052443d82beb8b2cdc681f10c23a49351b84","urls":["bzz-raw://f39d39a3bd3e39c2f6a5b21b82a7339176c163d82335f901a64c57dd73ffa5a3","dweb:/ipfs/QmP8RmYv79xX8hLmrvjfceW9mdRYCYxMaxpywRpR281tMo"],"license":"MIT"},"contracts/src/spaces/facets/gated/IEntitlementGated.sol":{"keccak256":"0x948de1018f7f78366263a40e0f8269e10941216bd03a9996edb24a6230959e74","urls":["bzz-raw://dc985539ce639f39fd68723acca6424a78deac6cec3693c9d8e1084a487c83ec","dweb:/ipfs/QmQujX5rmDwhJZurp11FTiPLb7ev9swLTtdkagA8wydZiT"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipStorage.sol":{"keccak256":"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0","urls":["bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a","dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa"],"license":"MIT"},"contracts/test/mocks/MockEntitlementGated.sol":{"keccak256":"0xc6ddf45d5ece26e1f5e692fc94c5aa7753812fceb53233868b0a9fe4f0748f28","urls":["bzz-raw://5c907bb53f65dc97bc0e4a7b8feffbb85691d2be92c00c45241001a2cd1aeea9","dweb:/ipfs/QmW9PPy7LkhvZBT2pvE1ucCsmSiYqsRLUkesiZt94kdN33"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":282} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"checker","type":"address","internalType":"contract IEntitlementChecker"}],"stateMutability":"nonpayable"},{"type":"function","name":"__EntitlementGated_init","inputs":[{"name":"entitlementChecker","type":"address","internalType":"contract IEntitlementChecker"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getRuleData","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRuleEntitlementBase.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlementBase.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"stateMutability":"view"},{"type":"function","name":"getRuleData","inputs":[{"name":"transactionId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRuleEntitlementBase.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlementBase.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"stateMutability":"view"},{"type":"function","name":"postEntitlementCheckResult","inputs":[{"name":"transactionId","type":"bytes32","internalType":"bytes32"},{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"result","type":"uint8","internalType":"enum IEntitlementGatedBase.NodeVoteStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestEntitlementCheck","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"ruleData","type":"tuple","internalType":"struct IRuleEntitlementBase.RuleData","components":[{"name":"operations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.Operation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CombinedOperationType"},{"name":"index","type":"uint8","internalType":"uint8"}]},{"name":"checkOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.CheckOperation[]","components":[{"name":"opType","type":"uint8","internalType":"enum IRuleEntitlementBase.CheckOperationType"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"contractAddress","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]},{"name":"logicalOperations","type":"tuple[]","internalType":"struct IRuleEntitlementBase.LogicalOperation[]","components":[{"name":"logOpType","type":"uint8","internalType":"enum IRuleEntitlementBase.LogicalOperationType"},{"name":"leftOperationIndex","type":"uint8","internalType":"uint8"},{"name":"rightOperationIndex","type":"uint8","internalType":"uint8"}]}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"event","name":"EntitlementCheckResultPosted","inputs":[{"name":"transactionId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"result","type":"uint8","indexed":false,"internalType":"enum IEntitlementGatedBase.NodeVoteStatus"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"InterfaceAdded","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"InterfaceRemoved","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"error","name":"EntitlementGated_InvalidAddress","inputs":[]},{"type":"error","name":"EntitlementGated_NodeAlreadyVoted","inputs":[]},{"type":"error","name":"EntitlementGated_NodeNotFound","inputs":[]},{"type":"error","name":"EntitlementGated_TransactionCheckAlreadyCompleted","inputs":[]},{"type":"error","name":"EntitlementGated_TransactionCheckAlreadyRegistered","inputs":[]},{"type":"error","name":"EntitlementGated_TransactionNotRegistered","inputs":[]},{"type":"error","name":"Initializable_InInitializingState","inputs":[]},{"type":"error","name":"Initializable_NotInInitializingState","inputs":[]},{"type":"error","name":"Introspection_AlreadySupported","inputs":[]},{"type":"error","name":"Introspection_NotSupported","inputs":[]},{"type":"error","name":"ReentrancyGuard__ReentrantCall","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162001b9a38038062001b9a833981016040819052620000349162000127565b6200003e6200007f565b7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0080546001600160a01b0319166001600160a01b0383161790555062000159565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff1615620000cc576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156200012457805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6000602082840312156200013a57600080fd5b81516001600160a01b03811681146200015257600080fd5b9392505050565b611a3180620001696000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063069a3ee91461005c5780634739e8051461008557806357e700271461009a5780637adc9cbe146100bb57806392c399ff146100ce575b600080fd5b61006f61006a366004610e1e565b6100e1565b60405161007c9190610f28565b60405180910390f35b610098610093366004610fd8565b610314565b005b6100ad6100a8366004611011565b6103b8565b60405190815260200161007c565b6100986100c9366004611074565b610426565b61006f6100dc366004611091565b61047c565b61010560405180606001604052806060815260200160608152602001606081525090565b6000828152602081815260408083208151815460809481028201850190935260608101838152909491938593919285929185015b828210156101a257600084815260209020604080518082019091529083018054829060ff16600281111561016f5761016f610e37565b600281111561018057610180610e37565b81529054610100900460ff166020918201529082526001929092019101610139565b50505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101561025a576000848152602090206040805160808101909152600484029091018054829060ff16600581111561020a5761020a610e37565b600581111561021b5761021b610e37565b815260018281015460208084019190915260028401546001600160a01b03166040840152600390930154606090920191909152918352920191016101cf565b50505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b828210156103065760008481526020902060408051606081019091529083018054829060ff1660028111156102be576102be610e37565b60028111156102cf576102cf610e37565b8152905460ff6101008204811660208085019190915262010000909204166040909201919091529082526001929092019101610287565b505050915250909392505050565b60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a00540361035657604051635db5c7cd60e11b815260040160405180910390fd5b61037f60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b61038a8383836104aa565b6103b360017f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b505050565b600082815260208190526040812082906103d2828261140a565b50506040516bffffffffffffffffffffffff193260601b16602082015243603482015260009060540160405160208183030381529060405280519060200120905061041f81306000610743565b9392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661047057604051630ef4733760e31b815260040160405180910390fd5b610479816109f2565b50565b6104a060405180606001604052806060815260200160608152602001606081525090565b61041f8383610a2d565b6000838152600080516020611a118339815191526020526040902080546000805160206119f1833981519152919061010090046001600160a01b031615806104f45750805460ff16155b1561051257604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff161561054457604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b8181101561068257600089815260018701602052604081208054839081106105855761058561150e565b60009182526020909120018054909150336001600160a01b03909116036106115760008154600160a01b900460ff1660028111156105c5576105c5610e37565b146105e3576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b83600281111561060757610607610e37565b0217905550600195505b60018154600160a01b900460ff16600281111561063057610630610e37565b03610647578461063f81611524565b955050610679565b60028154600160a01b900460ff16600281111561066657610666610e37565b03610679578361067581611524565b9450505b5060010161055b565b50836106a157604051638223a7e960e01b815260040160405180910390fd5b6106ac60028261153d565b8311806106c257506106bf60028261153d565b82115b156107385760008881526002860160205260408120805460ff191660011790558284116106f05760026106f3565b60015b9050897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051610725919061155f565b60405180910390a26107368a610b27565b505b505050505050505050565b6000838152600080516020611a118339815191526020526040902080546000805160206119f1833981519152919060ff1615156001036107d55760005b60048201548110156107d357838260040182815481106107a2576107a261150e565b9060005260206000200154036107cb576040516301ab53df60e31b815260040160405180910390fd5b600101610780565b505b81546001600160a01b03166107ec576107ec610bfb565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015610835573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261085d9190810190611636565b825490915060ff1661089e5781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b815181101561098e5782600101600086815260200190815260200160002060405180604001604052808484815181106108f3576108f361150e565b60200260200101516001600160a01b031681526020016000600281111561091c5761091c610e37565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b83600281111561097f5761097f610e37565b021790555050506001016108b8565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e5906109c49033908a90899087906004016116ca565b600060405180830381600087803b1580156109de57600080fd5b505af1158015610736573d6000803e3d6000fd5b610a02636afd38fd60e11b610ccc565b6000805160206119f183398151915280546001600160a01b0319166001600160a01b03831617905550565b610a5160405180606001604052806060815260200160608152602001606081525090565b6000838152600080516020611a118339815191526020526040812080546000805160206119f18339815191529260ff90911615159003610aa457604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015610af4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b1c9190810190611893565b979650505050505050565b6000818152600080516020611a11833981519152602052604081206000805160206119f1833981519152915b6004820154811015610ba757816001016000836004018381548110610b7a57610b7a61150e565b906000526020600020015481526020019081526020016000206000610b9f9190610daa565b600101610b53565b50610bb6600482016000610dc8565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610bf46004830182610dc8565b5050505050565b60006000805160206119f1833981519152905060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60060060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015610c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cad91906119d3565b82546001600160a01b0319166001600160a01b03919091161790915550565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114610d59576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055610d72565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b50805460008255906000526020600020908101906104799190610de6565b50805460008255906000526020600020908101906104799190610e09565b5b80821115610e055780546001600160a81b0319168155600101610de7565b5090565b5b80821115610e055760008155600101610e0a565b600060208284031215610e3057600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6003811061047957610479610e37565b60008151808452602080850194506020840160005b83811015610ec7578151805160068110610e8e57610e8e610e37565b885280840151848901526040808201516001600160a01b0316908901526060908101519088015260809096019590820190600101610e72565b509495945050505050565b60008151808452602080850194506020840160005b83811015610ec75781518051610efc81610e4d565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101610ee7565b6020808252825160608383015280516080840181905260009291820190839060a08601905b80831015610f845783518051610f6281610e4d565b835285015160ff16858301529284019260019290920191604090910190610f4d565b50838701519350601f19925082868203016040870152610fa48185610e5d565b93505050604085015181858403016060860152610fc18382610ed2565b9695505050505050565b6003811061047957600080fd5b600080600060608486031215610fed57600080fd5b8335925060208401359150604084013561100681610fcb565b809150509250925092565b6000806040838503121561102457600080fd5b82359150602083013567ffffffffffffffff81111561104257600080fd5b83016060818603121561105457600080fd5b809150509250929050565b6001600160a01b038116811461047957600080fd5b60006020828403121561108657600080fd5b813561041f8161105f565b600080604083850312156110a457600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff8116811461047957600080fd5b81356110f981610fcb565b61110281610e4d565b60ff1982541660ff82168117835550506020820135611120816110df565b815461ff001916600882901b61ff0016178255505050565b6000808335601e1984360301811261114f57600080fd5b83018035915067ffffffffffffffff82111561116a57600080fd5b6020019150600781901b360382131561118257600080fd5b9250929050565b6006811061047957600080fd5b81356111a181611189565b600681106111b1576111b1610e37565b60ff1982541660ff8216811783555050602082013560018201556002810160408301356111dd8161105f565b81546001600160a01b0319166001600160a01b03919091161790556060919091013560039190910155565b600160401b83111561121c5761121c6110b3565b80548382558084101561129a5760026001600160fe1b038281168314611244576112446110c9565b8086168614611255576112556110c9565b506000838152602081208360021b81018760021b820191505b8082101561129557828255826001830155828483015582600383015560048201915061126e565b505050505b5060008181526020812083915b858110156112cf576112b98383611196565b60809290920191600491909101906001016112a7565b505050505050565b6000808335601e198436030181126112ee57600080fd5b83018035915067ffffffffffffffff82111561130957600080fd5b602001915060608102360382131561118257600080fd5b813561132b81610fcb565b61133481610e4d565b60ff1982541660ff82168117835550506020820135611352816110df565b815461ff001916600882901b61ff0016178255506040820135611374816110df565b815462ff0000191660109190911b62ff00001617905550565b600160401b8311156113a1576113a16110b3565b8054838255808410156113d8576000828152602081208581019083015b808210156113d4578282556001820191506113be565b5050505b5060008181526020812083915b858110156112cf576113f78383611320565b60609290920191600191820191016113e5565b8135601e1983360301811261141e57600080fd5b8201803567ffffffffffffffff81111561143757600080fd5b6020820191508060061b360382131561144f57600080fd5b600160401b811115611463576114636110b3565b82548184558082101561149a576000848152602081208381019083015b8082101561149657828255600182019150611480565b5050505b5060008381526020902060005b828110156114cc576114b984836110ee565b60409390930192600191820191016114a7565b505050506114dd6020830183611138565b6114eb818360018601611208565b50506114fa60408301836112d7565b61150881836002860161138d565b50505050565b634e487b7160e01b600052603260045260246000fd5b600060018201611536576115366110c9565b5060010190565b60008261155a57634e487b7160e01b600052601260045260246000fd5b500490565b6020810161156c83610e4d565b91905290565b6040516080810167ffffffffffffffff81118282101715611595576115956110b3565b60405290565b6040516060810167ffffffffffffffff81118282101715611595576115956110b3565b6040805190810167ffffffffffffffff81118282101715611595576115956110b3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561160a5761160a6110b3565b604052919050565b600067ffffffffffffffff82111561162c5761162c6110b3565b5060051b60200190565b6000602080838503121561164957600080fd5b825167ffffffffffffffff81111561166057600080fd5b8301601f8101851361167157600080fd5b805161168461167f82611612565b6115e1565b81815260059190911b820183019083810190878311156116a357600080fd5b928401925b82841015610b1c5783516116bb8161105f565b825292840192908401906116a8565b60006080820160018060a01b03808816845260208760208601528660408601526080606086015282865180855260a08701915060208801945060005b81811015611724578551851683529483019491830191600101611706565b50909a9950505050505050505050565b600082601f83011261174557600080fd5b8151602061175561167f83611612565b82815260079290921b8401810191818101908684111561177457600080fd5b8286015b848110156117d957608081890312156117915760008081fd5b611799611572565b81516117a481611189565b815281850151858201526040808301516117bd8161105f565b9082015260608281015190820152835291830191608001611778565b509695505050505050565b600082601f8301126117f557600080fd5b8151602061180561167f83611612565b8281526060928302850182019282820191908785111561182457600080fd5b8387015b858110156118865781818a0312156118405760008081fd5b61184861159b565b815161185381610fcb565b815281860151611862816110df565b81870152604082810151611875816110df565b908201528452928401928101611828565b5090979650505050505050565b600060208083850312156118a657600080fd5b825167ffffffffffffffff808211156118be57600080fd5b90840190606082870312156118d257600080fd5b6118da61159b565b8251828111156118e957600080fd5b8301601f810188136118fa57600080fd5b805161190861167f82611612565b81815260069190911b8201860190868101908a83111561192757600080fd5b928701925b8284101561197d576040848c0312156119455760008081fd5b61194d6115be565b845161195881610fcb565b815284890151611967816110df565b818a01528252604093909301929087019061192c565b8452505050828401518281111561199357600080fd5b61199f88828601611734565b858301525060408301519350818411156119b857600080fd5b6119c4878585016117e4565b60408201529695505050505050565b6000602082840312156119e557600080fd5b815161041f8161105f56fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e01","sourceMap":"346:932:280:-:0;;;513:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;378:22:68;:20;:22::i;:::-;462:66:200;1361:72:199;;-1:-1:-1;;;;;;1361:72:199;-1:-1:-1;;;;;1361:72:199;;;;;513:83:280;346:932;;1653:314:83;296:66:84;1779:14:83;;;;;;;1775:62;;;1802:35;;-1:-1:-1;;;1802:35:83;;;;;;;;;;;1775:62;1848:9;;1860:16;1848:9;;;:28;1844:119;;;1886:28;;-1:-1:-1;;1886:28:83;1898:16;1886:28;;;;;1927:29;;481:42:402;;;1927:29:83;;469:2:402;454:18;1927:29:83;;;;;;;1844:119;1694:273;1653:314::o;14:318:402:-;112:6;165:2;153:9;144:7;140:23;136:32;133:52;;;181:1;178;171:12;133:52;207:16;;-1:-1:-1;;;;;252:31:402;;242:42;;232:70;;298:1;295;288:12;232:70;321:5;14:318;-1:-1:-1;;;14:318:402:o;337:192::-;346:932:280;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063069a3ee91461005c5780634739e8051461008557806357e700271461009a5780637adc9cbe146100bb57806392c399ff146100ce575b600080fd5b61006f61006a366004610e1e565b6100e1565b60405161007c9190610f28565b60405180910390f35b610098610093366004610fd8565b610314565b005b6100ad6100a8366004611011565b6103b8565b60405190815260200161007c565b6100986100c9366004611074565b610426565b61006f6100dc366004611091565b61047c565b61010560405180606001604052806060815260200160608152602001606081525090565b6000828152602081815260408083208151815460809481028201850190935260608101838152909491938593919285929185015b828210156101a257600084815260209020604080518082019091529083018054829060ff16600281111561016f5761016f610e37565b600281111561018057610180610e37565b81529054610100900460ff166020918201529082526001929092019101610139565b50505050815260200160018201805480602002602001604051908101604052809291908181526020016000905b8282101561025a576000848152602090206040805160808101909152600484029091018054829060ff16600581111561020a5761020a610e37565b600581111561021b5761021b610e37565b815260018281015460208084019190915260028401546001600160a01b03166040840152600390930154606090920191909152918352920191016101cf565b50505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b828210156103065760008481526020902060408051606081019091529083018054829060ff1660028111156102be576102be610e37565b60028111156102cf576102cf610e37565b8152905460ff6101008204811660208085019190915262010000909204166040909201919091529082526001929092019101610287565b505050915250909392505050565b60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a00540361035657604051635db5c7cd60e11b815260040160405180910390fd5b61037f60027f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b61038a8383836104aa565b6103b360017f54f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0055565b505050565b600082815260208190526040812082906103d2828261140a565b50506040516bffffffffffffffffffffffff193260601b16602082015243603482015260009060540160405160208183030381529060405280519060200120905061041f81306000610743565b9392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661047057604051630ef4733760e31b815260040160405180910390fd5b610479816109f2565b50565b6104a060405180606001604052806060815260200160608152602001606081525090565b61041f8383610a2d565b6000838152600080516020611a118339815191526020526040902080546000805160206119f1833981519152919061010090046001600160a01b031615806104f45750805460ff16155b1561051257604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff161561054457604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b8181101561068257600089815260018701602052604081208054839081106105855761058561150e565b60009182526020909120018054909150336001600160a01b03909116036106115760008154600160a01b900460ff1660028111156105c5576105c5610e37565b146105e3576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b83600281111561060757610607610e37565b0217905550600195505b60018154600160a01b900460ff16600281111561063057610630610e37565b03610647578461063f81611524565b955050610679565b60028154600160a01b900460ff16600281111561066657610666610e37565b03610679578361067581611524565b9450505b5060010161055b565b50836106a157604051638223a7e960e01b815260040160405180910390fd5b6106ac60028261153d565b8311806106c257506106bf60028261153d565b82115b156107385760008881526002860160205260408120805460ff191660011790558284116106f05760026106f3565b60015b9050897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051610725919061155f565b60405180910390a26107368a610b27565b505b505050505050505050565b6000838152600080516020611a118339815191526020526040902080546000805160206119f1833981519152919060ff1615156001036107d55760005b60048201548110156107d357838260040182815481106107a2576107a261150e565b9060005260206000200154036107cb576040516301ab53df60e31b815260040160405180910390fd5b600101610780565b505b81546001600160a01b03166107ec576107ec610bfb565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015610835573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261085d9190810190611636565b825490915060ff1661089e5781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b815181101561098e5782600101600086815260200190815260200160002060405180604001604052808484815181106108f3576108f361150e565b60200260200101516001600160a01b031681526020016000600281111561091c5761091c610e37565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b83600281111561097f5761097f610e37565b021790555050506001016108b8565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e5906109c49033908a90899087906004016116ca565b600060405180830381600087803b1580156109de57600080fd5b505af1158015610736573d6000803e3d6000fd5b610a02636afd38fd60e11b610ccc565b6000805160206119f183398151915280546001600160a01b0319166001600160a01b03831617905550565b610a5160405180606001604052806060815260200160608152602001606081525090565b6000838152600080516020611a118339815191526020526040812080546000805160206119f18339815191529260ff90911615159003610aa457604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015610af4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b1c9190810190611893565b979650505050505050565b6000818152600080516020611a11833981519152602052604081206000805160206119f1833981519152915b6004820154811015610ba757816001016000836004018381548110610b7a57610b7a61150e565b906000526020600020015481526020019081526020016000206000610b9f9190610daa565b600101610b53565b50610bb6600482016000610dc8565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610bf46004830182610dc8565b5050505050565b60006000805160206119f1833981519152905060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60060060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015610c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cad91906119d3565b82546001600160a01b0319166001600160a01b03919091161790915550565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114610d59576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055610d72565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b50805460008255906000526020600020908101906104799190610de6565b50805460008255906000526020600020908101906104799190610e09565b5b80821115610e055780546001600160a81b0319168155600101610de7565b5090565b5b80821115610e055760008155600101610e0a565b600060208284031215610e3057600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b6003811061047957610479610e37565b60008151808452602080850194506020840160005b83811015610ec7578151805160068110610e8e57610e8e610e37565b885280840151848901526040808201516001600160a01b0316908901526060908101519088015260809096019590820190600101610e72565b509495945050505050565b60008151808452602080850194506020840160005b83811015610ec75781518051610efc81610e4d565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101610ee7565b6020808252825160608383015280516080840181905260009291820190839060a08601905b80831015610f845783518051610f6281610e4d565b835285015160ff16858301529284019260019290920191604090910190610f4d565b50838701519350601f19925082868203016040870152610fa48185610e5d565b93505050604085015181858403016060860152610fc18382610ed2565b9695505050505050565b6003811061047957600080fd5b600080600060608486031215610fed57600080fd5b8335925060208401359150604084013561100681610fcb565b809150509250925092565b6000806040838503121561102457600080fd5b82359150602083013567ffffffffffffffff81111561104257600080fd5b83016060818603121561105457600080fd5b809150509250929050565b6001600160a01b038116811461047957600080fd5b60006020828403121561108657600080fd5b813561041f8161105f565b600080604083850312156110a457600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff8116811461047957600080fd5b81356110f981610fcb565b61110281610e4d565b60ff1982541660ff82168117835550506020820135611120816110df565b815461ff001916600882901b61ff0016178255505050565b6000808335601e1984360301811261114f57600080fd5b83018035915067ffffffffffffffff82111561116a57600080fd5b6020019150600781901b360382131561118257600080fd5b9250929050565b6006811061047957600080fd5b81356111a181611189565b600681106111b1576111b1610e37565b60ff1982541660ff8216811783555050602082013560018201556002810160408301356111dd8161105f565b81546001600160a01b0319166001600160a01b03919091161790556060919091013560039190910155565b600160401b83111561121c5761121c6110b3565b80548382558084101561129a5760026001600160fe1b038281168314611244576112446110c9565b8086168614611255576112556110c9565b506000838152602081208360021b81018760021b820191505b8082101561129557828255826001830155828483015582600383015560048201915061126e565b505050505b5060008181526020812083915b858110156112cf576112b98383611196565b60809290920191600491909101906001016112a7565b505050505050565b6000808335601e198436030181126112ee57600080fd5b83018035915067ffffffffffffffff82111561130957600080fd5b602001915060608102360382131561118257600080fd5b813561132b81610fcb565b61133481610e4d565b60ff1982541660ff82168117835550506020820135611352816110df565b815461ff001916600882901b61ff0016178255506040820135611374816110df565b815462ff0000191660109190911b62ff00001617905550565b600160401b8311156113a1576113a16110b3565b8054838255808410156113d8576000828152602081208581019083015b808210156113d4578282556001820191506113be565b5050505b5060008181526020812083915b858110156112cf576113f78383611320565b60609290920191600191820191016113e5565b8135601e1983360301811261141e57600080fd5b8201803567ffffffffffffffff81111561143757600080fd5b6020820191508060061b360382131561144f57600080fd5b600160401b811115611463576114636110b3565b82548184558082101561149a576000848152602081208381019083015b8082101561149657828255600182019150611480565b5050505b5060008381526020902060005b828110156114cc576114b984836110ee565b60409390930192600191820191016114a7565b505050506114dd6020830183611138565b6114eb818360018601611208565b50506114fa60408301836112d7565b61150881836002860161138d565b50505050565b634e487b7160e01b600052603260045260246000fd5b600060018201611536576115366110c9565b5060010190565b60008261155a57634e487b7160e01b600052601260045260246000fd5b500490565b6020810161156c83610e4d565b91905290565b6040516080810167ffffffffffffffff81118282101715611595576115956110b3565b60405290565b6040516060810167ffffffffffffffff81118282101715611595576115956110b3565b6040805190810167ffffffffffffffff81118282101715611595576115956110b3565b604051601f8201601f1916810167ffffffffffffffff8111828210171561160a5761160a6110b3565b604052919050565b600067ffffffffffffffff82111561162c5761162c6110b3565b5060051b60200190565b6000602080838503121561164957600080fd5b825167ffffffffffffffff81111561166057600080fd5b8301601f8101851361167157600080fd5b805161168461167f82611612565b6115e1565b81815260059190911b820183019083810190878311156116a357600080fd5b928401925b82841015610b1c5783516116bb8161105f565b825292840192908401906116a8565b60006080820160018060a01b03808816845260208760208601528660408601526080606086015282865180855260a08701915060208801945060005b81811015611724578551851683529483019491830191600101611706565b50909a9950505050505050505050565b600082601f83011261174557600080fd5b8151602061175561167f83611612565b82815260079290921b8401810191818101908684111561177457600080fd5b8286015b848110156117d957608081890312156117915760008081fd5b611799611572565b81516117a481611189565b815281850151858201526040808301516117bd8161105f565b9082015260608281015190820152835291830191608001611778565b509695505050505050565b600082601f8301126117f557600080fd5b8151602061180561167f83611612565b8281526060928302850182019282820191908785111561182457600080fd5b8387015b858110156118865781818a0312156118405760008081fd5b61184861159b565b815161185381610fcb565b815281860151611862816110df565b81870152604082810151611875816110df565b908201528452928401928101611828565b5090979650505050505050565b600060208083850312156118a657600080fd5b825167ffffffffffffffff808211156118be57600080fd5b90840190606082870312156118d257600080fd5b6118da61159b565b8251828111156118e957600080fd5b8301601f810188136118fa57600080fd5b805161190861167f82611612565b81815260069190911b8201860190868101908a83111561192757600080fd5b928701925b8284101561197d576040848c0312156119455760008081fd5b61194d6115be565b845161195881610fcb565b815284890151611967816110df565b818a01528252604093909301929087019061192c565b8452505050828401518281111561199357600080fd5b61199f88828601611734565b858301525060408301519350818411156119b857600080fd5b6119c4878585016117e4565b60408201529695505050505050565b6000602082840312156119e557600080fd5b815161041f8161105f56fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e01","sourceMap":"346:932:280:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;746:145;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1216:205:198;;;;;;:::i;:::-;;:::i;:::-;;895:381:280;;;;;;:::i;:::-;;:::i;:::-;;;4564:25:402;;;4552:2;4537:18;895:381:280;4418:177:402;683:171:198;;;;;;:::i;:::-;;:::i;1508:182::-;;;;;;:::i;:::-;;:::i;746:145:280:-;814:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;814:32:280;861:17;:25;;;;;;;;;;;854:32;;;;;;;;;;;;;;;;;;;;;;;861:25;;854:32;;;;861:25;;854:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;854:32:280;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;854:32:280;;-1:-1:-1;854:32:280;;746:145;-1:-1:-1;;;746:145:280:o;1216:205:198:-;408:1:112;295:66:113;508:38:112;:66;504:117;;589:32;;-1:-1:-1;;;589:32:112;;;;;;;;;;;504:117;627:22;408:1;295:66:113;825:65:112;770:125;627:22;1358:58:198::1;1386:13;1401:6;1409;1358:27;:58::i;:::-;662:24:112::0;468:1;295:66:113;825:65:112;770:125;662:24;1216:205:198;;;:::o;895:381:280:-;1019:7;1034:25;;;;;;;;;;1062:8;;1034:36;1062:8;1034:25;:36;:::i;:::-;-1:-1:-1;;1117:41:280;;-1:-1:-1;;1134:9:280;13920:2:402;13916:15;13912:53;1117:41:280;;;13900:66:402;1145:12:280;13982::402;;;13975:28;1076:21:280;;14019:12:402;;1117:41:280;;;;;;;;;;;;1100:64;;;;;;1076:88;;1170:75;1195:13;1235:4;1243:1;1170:24;:75::i;:::-;1258:13;895:381;-1:-1:-1;;;895:381:280:o;683:171:198:-;296:66:84;1263:42:83;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:83;;;;;;;;;;;1258:100;796:53:198::1;830:18;796:33;:53::i;:::-;683:171:::0;:::o;1508:182::-;1603:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;1603:32:198;1650:35;1663:13;1678:6;1650:12;:35::i;2764:1911:199:-;2894:41;3017:30;;;-1:-1:-1;;;;;;;;;;;3017:30:199;;;;;3065:25;;-1:-1:-1;;;;;;;;;;;462:66:200;3017:30:199;3065:25;;;-1:-1:-1;;;;;3065:25:199;:39;;:73;;-1:-1:-1;3108:21:199;;;;:30;3065:73;3054:156;;;3160:43;;-1:-1:-1;;;3160:43:199;;;;;;;;;;;3054:156;3220:31;;;;:23;;;:31;;;;;;;;3216:110;;;3268:51;;-1:-1:-1;;;3268:51:199;;;;;;;;;;;3216:110;3413:10;3535:34;;;:26;;;:34;;;;;:41;3413:10;;;;;3583:573;3607:22;3603:1;:26;3583:573;;;3644:25;3672:34;;;:26;;;:34;;;;;:37;;3707:1;;3672:37;;;;;;:::i;:::-;;;;;;;;;;3760:13;;3672:37;;-1:-1:-1;3777:10:199;-1:-1:-1;;;;;3760:13:199;;;:27;3756:217;;3820:24;3803:13;;-1:-1:-1;;;3803:13:199;;;;:41;;;;;;;;:::i;:::-;;3799:112;;3865:35;;-1:-1:-1;;;3865:35:199;;;;;;;;;;;3799:112;3920:22;;3936:6;;3920:8;;-1:-1:-1;;;;3920:22:199;-1:-1:-1;;;3936:6:199;3920:22;;;;;;;;:::i;:::-;;;;;;3960:4;3952:12;;3756:217;4023:21;4006:13;;-1:-1:-1;;;4006:13:199;;;;:38;;;;;;;;:::i;:::-;;4002:148;;4056:8;;;;:::i;:::-;;;;4002:148;;;4100:21;4083:13;;-1:-1:-1;;;4083:13:199;;;;:38;;;;;;;;:::i;:::-;;4079:71;;4133:8;;;;:::i;:::-;;;;4079:71;-1:-1:-1;3631:3:199;;3583:573;;;;4167:5;4162:65;;4189:31;;-1:-1:-1;;;4189:31:199;;;;;;;;;;;4162:65;4253:26;4278:1;4253:22;:26;:::i;:::-;4244:6;:35;:74;;;-1:-1:-1;4292:26:199;4317:1;4292:22;:26;:::i;:::-;4283:6;:35;4244:74;4233:438;;;4333:31;;;;:23;;;:31;;;;;:38;;-1:-1:-1;;4333:38:199;4367:4;4333:38;;;4408:15;;;:79;;4466:21;4408:79;;;4434:21;4408:79;4379:108;;4596:13;4567:56;4611:11;4567:56;;;;;;:::i;:::-;;;;;;;;4631:33;4650:13;4631:18;:33::i;:::-;4325:346;4233:438;2888:1787;;;;;;2764:1911;;;:::o;1442:1318::-;1576:41;1700:30;;;-1:-1:-1;;;;;;;;;;;1700:30:199;;;;;1741:21;;-1:-1:-1;;;;;;;;;;;462:66:200;1700:30:199;1741:21;;:29;;1700:15;1741:29;1737:244;;1785:9;1780:195;1804:19;;;:26;1800:30;;1780:195;;;1877:6;1851:11;:19;;1871:1;1851:22;;;;;;;;:::i;:::-;;;;;;;;;:32;1847:120;;1904:52;;-1:-1:-1;;;1904:52:199;;;;;;;;;;;1847:120;1832:3;;1780:195;;;;1737:244;2058:21;;-1:-1:-1;;;;;2058:21:199;2046:97;;2104:32;:30;:32::i;:::-;2182:21;;:39;;-1:-1:-1;;;2182:39:199;;2219:1;2182:39;;;4564:25:402;2149:30:199;;-1:-1:-1;;;;;2182:21:199;;:36;;4537:18:402;;2182:39:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2182:39:199;;;;;;;;;;;;:::i;:::-;2233:21;;2149:72;;-1:-1:-1;2233:21:199;;2228:162;;2264:28;;2300:23;;;:37;;-1:-1:-1;;;;;;2300:37:199;-1:-1:-1;;;;;2300:37:199;;;;;-1:-1:-1;;;;;;2345:38:199;2264:28;2373:10;2345:38;;-1:-1:-1;2345:38:199;;;2228:162;2396:19;;;:32;;;;;;;-1:-1:-1;2396:32:199;;;;;;;;;;2435:189;2459:13;:20;2455:1;:24;2435:189;;;2494:11;:26;;:34;2521:6;2494:34;;;;;;;;;;;2543:66;;;;;;;;2559:13;2573:1;2559:16;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2543:66:199;;;;;2583:24;2543:66;;;;;;;;:::i;:::-;;;2494:123;;;;;;;-1:-1:-1;2494:123:199;;;;;;;;;;;;;;-1:-1:-1;;;;;;2494:123:199;;-1:-1:-1;;;;;2494:123:199;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2494:123:199;;-1:-1:-1;;;2494:123:199;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;2481:3:199;;2435:189;;;-1:-1:-1;2630:21:199;;:125;;-1:-1:-1;;;2630:125:199;;-1:-1:-1;;;;;2630:21:199;;;;:45;;:125;;2683:10;;2701:13;;2722:6;;2736:13;;2630:125;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;858:209:198;964:50;-1:-1:-1;;;964:13:198;:50::i;:::-;-1:-1:-1;;;;;;;;;;;1361:72:199;;-1:-1:-1;;;;;;1361:72:199;-1:-1:-1;;;;;1361:72:199;;;;;683:171:198;:::o;5117:575:199:-;5213:32;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;5213:32:199;5253:41;5377:30;;;-1:-1:-1;;;;;;;;;;;5377:30:199;;;;;5418:21;;-1:-1:-1;;;;;;;;;;;462:66:200;5418:21:199;;;;:30;;;;5414:101;;5465:43;;-1:-1:-1;;;5465:43:199;;;;;;;;;;;5414:101;5568:23;;;;5643:22;;-1:-1:-1;;;5643:22:199;;;;;4564:25:402;;;-1:-1:-1;;;;;5568:23:199;;;;5521:19;;5568:23;;5643:14;;4537:18:402;;5643:22:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5643:22:199;;;;;;;;;;;;:::i;:::-;5599:66;5117:575;-1:-1:-1;;;;;;;5117:575:199:o;4679:434::-;4745:41;4869:30;;;-1:-1:-1;;;;;;;;;;;4869:30:199;;;;;-1:-1:-1;;;;;;;;;;;462:66:200;4905:129:199;4929:19;;;:26;4925:30;;4905:129;;;4977:11;:26;;:50;5004:11;:19;;5024:1;5004:22;;;;;;;;:::i;:::-;;;;;;;;;4977:50;;;;;;;;;;;;4970:57;;;;:::i;:::-;4957:3;;4905:129;;;-1:-1:-1;5039:26:199;5046:19;;;;5039:26;:::i;:::-;5078:30;;;;:15;;;:30;;;;;5071:37;;-1:-1:-1;;;;;;5071:37:199;;;;;;;;-1:-1:-1;;;;;;5071:37:199;;;5078:30;5071:37;;;;5078:30;5071:37;:::i;:::-;;;4739:374;;4679:434;:::o;5884:366::-;5941:41;-1:-1:-1;;;;;;;;;;;5941:83:199;-1:-1:-1;6030:26:199;287:66:209;6090:39:199;;;6059:117;;-1:-1:-1;;;6059:117:199;;-1:-1:-1;;;6059:117:199;;;23132:34:402;-1:-1:-1;;;;;6090:39:199;;;;6059:100;;23105:18:402;;6059:117:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6182:63;;-1:-1:-1;;;;;;6182:63:199;-1:-1:-1;;;;;6182:63:199;;;;;;;;-1:-1:-1;5884:366:199:o;445:282:86:-;-1:-1:-1;;;;;;1114:62:86;;1089:4;1114:62;;;296:66:88;1114:62:86;;;;;;;;:70;;:62;:70;503:182;;-1:-1:-1;;;;;;549:62:86;;:49;:62;;;296:66:88;549:62:86;;;;;:69;;-1:-1:-1;;549:69:86;614:4;549:69;;;503:182;;;646:32;;-1:-1:-1;;;646:32:86;;;;;;;;;;;503:182;695:27;;-1:-1:-1;;;;;;695:27:86;;;;;;;;445:282;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;14:180:402;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:402;;14:180;-1:-1:-1;14:180:402:o;199:127::-;260:10;255:3;251:20;248:1;241:31;291:4;288:1;281:15;315:4;312:1;305:15;331:126;425:1;418:5;415:12;405:46;;431:18;;:::i;462:807::-;529:3;567:5;561:12;594:6;589:3;582:19;620:4;649;644:3;640:14;633:21;;688:4;681:5;677:16;711:1;721:523;735:6;732:1;729:13;721:523;;;800:6;794:13;836:2;830:9;869:1;865:2;862:9;852:43;;875:18;;:::i;:::-;908:15;;963:11;;;957:18;943:12;;;936:40;999:4;1047:11;;;1041:18;-1:-1:-1;;;;;1037:44:402;1023:12;;;1016:66;1105:4;1149:11;;;1143:18;1129:12;;;1122:40;1191:4;1182:14;;;;1219:15;;;;1078:1;750:9;721:523;;;-1:-1:-1;1260:3:402;;462:807;-1:-1:-1;;;;;462:807:402:o;1274:797::-;1343:3;1381:5;1375:12;1408:6;1403:3;1396:19;1434:4;1463;1458:3;1454:14;1447:21;;1502:4;1495:5;1491:16;1525:1;1535:511;1549:6;1546:1;1543:13;1535:511;;;1614:6;1608:13;1650:2;1644:9;1666:47;1710:2;1666:47;:::i;:::-;1726:15;;1780:11;;;1774:18;1815:4;1853:21;;;1839:12;;;1832:43;1898:4;1946:11;;;1940:18;1936:27;1922:12;;;1915:49;1993:4;1984:14;;;;2021:15;;;;1571:1;1564:9;1535:511;;2076:1338;2251:2;2262:21;;;2354:13;;2403:4;2383:18;;;2376:32;2457:19;;2321:3;2306:19;;2485:22;;;2222:4;;2251:2;2565:21;;;2222:4;;2538:3;2523:19;;;2614:352;2628:6;2625:1;2622:13;2614:352;;;2693:6;2687:13;2729:2;2723:9;2745:47;2789:2;2745:47;:::i;:::-;2805:15;;2864:11;;2858:18;2878:4;2854:29;2840:12;;;2833:51;2941:15;;;;2650:1;2643:9;;;;;2913:4;2904:14;;;;2614:352;;;2618:3;3015:2;3007:6;3003:15;2997:22;2975:44;;3042:2;3038:7;3028:17;;3108:2;3096:9;3091:3;3087:19;3083:28;3076:4;3065:9;3061:20;3054:58;3135:63;3194:3;3178:14;3135:63;:::i;:::-;3121:77;;;;3247:4;3239:6;3235:17;3229:24;3319:2;3307:9;3299:6;3295:22;3291:31;3284:4;3273:9;3269:20;3262:61;3340:68;3401:6;3385:14;3340:68;:::i;:::-;3332:76;2076:1338;-1:-1:-1;;;;;;2076:1338:402:o;3419:113::-;3506:1;3499:5;3496:12;3486:40;;3522:1;3519;3512:12;3537:415;3634:6;3642;3650;3703:2;3691:9;3682:7;3678:23;3674:32;3671:52;;;3719:1;3716;3709:12;3671:52;3755:9;3742:23;3732:33;;3812:2;3801:9;3797:18;3784:32;3774:42;;3866:2;3855:9;3851:18;3838:32;3879:43;3916:5;3879:43;:::i;:::-;3941:5;3931:15;;;3537:415;;;;;:::o;3957:456::-;4054:6;4062;4115:2;4103:9;4094:7;4090:23;4086:32;4083:52;;;4131:1;4128;4121:12;4083:52;4167:9;4154:23;4144:33;;4228:2;4217:9;4213:18;4200:32;4255:18;4247:6;4244:30;4241:50;;;4287:1;4284;4277:12;4241:50;4310:22;;4366:2;4348:16;;;4344:25;4341:45;;;4382:1;4379;4372:12;4341:45;4405:2;4395:12;;;3957:456;;;;;:::o;4600:152::-;-1:-1:-1;;;;;4696:31:402;;4686:42;;4676:70;;4742:1;4739;4732:12;4757:296;4844:6;4897:2;4885:9;4876:7;4872:23;4868:32;4865:52;;;4913:1;4910;4903:12;4865:52;4952:9;4939:23;4971:52;5017:5;4971:52;:::i;5058:248::-;5126:6;5134;5187:2;5175:9;5166:7;5162:23;5158:32;5155:52;;;5203:1;5200;5193:12;5155:52;-1:-1:-1;;5226:23:402;;;5296:2;5281:18;;;5268:32;;-1:-1:-1;5058:248:402:o;5311:127::-;5372:10;5367:3;5363:20;5360:1;5353:31;5403:4;5400:1;5393:15;5427:4;5424:1;5417:15;5443:127;5504:10;5499:3;5495:20;5492:1;5485:31;5535:4;5532:1;5525:15;5559:4;5556:1;5549:15;5721:114;5805:4;5798:5;5794:16;5787:5;5784:27;5774:55;;5825:1;5822;5815:12;6025:527;6163:5;6150:19;6178:45;6215:7;6178:45;:::i;:::-;6232:52;6276:7;6232:52;:::i;:::-;6329:3;6325:8;6318:4;6312:11;6308:26;6381:3;6372:7;6368:17;6359:7;6356:30;6350:4;6343:44;;;6435:2;6428:5;6424:14;6411:28;6448:31;6471:7;6448:31;:::i;:::-;5930:11;;-1:-1:-1;;5966:19:402;5995:1;5991:13;;;6006:5;5987:25;5963:50;5950:64;;1216:205:198;;;:::o;6557:558:402:-;6663:4;6669:6;6729:11;6716:25;6823:2;6819:7;6808:8;6792:14;6788:29;6784:43;6764:18;6760:68;6750:96;;6842:1;6839;6832:12;6750:96;6869:33;;6921:20;;;-1:-1:-1;6964:18:402;6953:30;;6950:50;;;6996:1;6993;6986:12;6950:50;7029:4;7017:17;;-1:-1:-1;7080:1:402;7076:14;;;7060;7056:35;7046:46;;7043:66;;;7105:1;7102;7095:12;7043:66;6557:558;;;;;:::o;7120:117::-;7211:1;7204:5;7201:12;7191:40;;7227:1;7224;7217:12;7242:778;7390:5;7377:19;7405:49;7446:7;7405:49;:::i;:::-;7485:1;7476:7;7473:14;7463:48;;7491:18;;:::i;:::-;7556:3;7552:8;7545:4;7539:11;7535:26;7608:3;7599:7;7595:17;7586:7;7583:30;7577:4;7570:44;;;7668:2;7661:5;7657:14;7644:28;7640:1;7634:4;7630:12;7623:50;7710:1;7704:4;7700:12;7760:2;7753:5;7749:14;7736:28;7773:54;7819:7;7773:54;:::i;:::-;7862:17;;-1:-1:-1;;;;;;7858:60:402;-1:-1:-1;;;;;7920:33:402;;;;7855:99;7836:119;;8009:2;7998:14;;;;7985:28;7981:1;7971:12;;;;7964:50;7242:778::o;8025:1372::-;-1:-1:-1;;;8185:3:402;8182:29;8179:55;;;8214:18;;:::i;:::-;8263:4;8257:11;8290:3;8284:4;8277:17;8314:6;8309:3;8306:15;8303:689;;;8354:1;-1:-1:-1;;;;;8431:15:402;;;8420:27;;8410:61;;8451:18;;:::i;:::-;8511:2;8506:3;8502:12;8497:3;8494:21;8484:55;;8519:18;;:::i;:::-;8484:55;8562:1;8587:4;8583:2;8576:16;8631:4;8627:2;8617:19;8676:6;8673:1;8669:14;8663:4;8659:25;8727:3;8724:1;8720:11;8714:4;8710:22;8697:35;;8745:237;8763:2;8756:5;8753:13;8745:237;;;8838:2;8831:5;8824:17;8880:2;8876:1;8869:5;8865:13;8858:25;8923:2;8918;8911:5;8907:14;8900:26;8965:2;8961:1;8954:5;8950:13;8943:25;8789:1;8782:5;8778:13;8769:22;;8745:237;;;8749:3;;;;8303:689;-1:-1:-1;5668:1:402;5661:14;;;5705:4;5692:18;;9015:5;;9131:260;9145:3;9142:1;9139:10;9131:260;;;9191:104;9288:6;9275:11;9191:104;:::i;:::-;9330:3;9318:16;;;;;9379:1;9362:19;;;;;9164:1;9157:9;9131:260;;;9135:3;;;8025:1372;;;:::o;9402:563::-;9510:4;9516:6;9576:11;9563:25;9670:2;9666:7;9655:8;9639:14;9635:29;9631:43;9611:18;9607:68;9597:96;;9689:1;9686;9679:12;9597:96;9716:33;;9768:20;;;-1:-1:-1;9811:18:402;9800:30;;9797:50;;;9843:1;9840;9833:12;9797:50;9876:4;9864:17;;-1:-1:-1;9935:4:402;9923:17;;9907:14;9903:38;9893:49;;9890:69;;;9955:1;9952;9945:12;9970:745;10122:5;10109:19;10137:45;10174:7;10137:45;:::i;:::-;10191:52;10235:7;10191:52;:::i;:::-;10288:3;10284:8;10277:4;10271:11;10267:26;10340:3;10331:7;10327:17;10318:7;10315:30;10309:4;10302:44;;;10394:2;10387:5;10383:14;10370:28;10407:31;10430:7;10407:31;:::i;:::-;5930:11;;-1:-1:-1;;5966:19:402;5995:1;5991:13;;;6006:5;5987:25;5963:50;5950:64;;10447:58;10553:2;10546:5;10542:14;10529:28;10566:31;10589:7;10566:31;:::i;:::-;10616:11;;-1:-1:-1;;10652:22:402;10684:2;10680:16;;;;10698:8;10676:31;10649:59;10636:73;;-1:-1:-1;9970:745:402:o;10720:998::-;-1:-1:-1;;;10884:3:402;10881:29;10878:55;;;10913:18;;:::i;:::-;10962:4;10956:11;10989:3;10983:4;10976:17;11013:6;11008:3;11005:15;11002:308;;;11053:1;11067:15;;;11120:4;11107:18;;11191:14;;;;11148:17;;11218:82;11236:2;11229:5;11226:13;11218:82;;;11295:2;11288:5;11281:17;11262:1;11255:5;11251:13;11242:22;;11218:82;;;11222:3;;;11002:308;-1:-1:-1;5668:1:402;5661:14;;;5705:4;5692:18;;11333:5;;11449:263;11463:3;11460:1;11457:10;11449:263;;;11509:108;11610:6;11597:11;11509:108;:::i;:::-;11652:2;11640:15;;;;;11700:1;11683:19;;;;11475:9;11449:263;;11723:2015;11903:5;11890:19;11988:2;11984:7;11976:5;11960:14;11956:26;11952:40;11932:18;11928:65;11918:93;;12007:1;12004;11997:12;11918:93;12032:30;;12085:18;;12126;12115:30;;12112:50;;;12158:1;12155;12148:12;12112:50;12195:4;12189;12185:15;12171:29;;12251:6;12248:1;12244:14;12228;12224:35;12216:6;12212:48;12209:68;;;12273:1;12270;12263:12;12209:68;-1:-1:-1;;;12292:6:402;12289:32;12286:58;;;12324:18;;:::i;:::-;12373:4;12367:11;12400:6;12394:4;12387:20;12430:6;12422;12419:18;12416:314;;;12470:1;12484:15;;;12537:4;12524:18;;12608:17;;;;12565;;12638:82;12656:2;12649:5;12646:13;12638:82;;;12715:2;12708:5;12701:17;12682:1;12675:5;12671:13;12662:22;;12638:82;;;12642:3;;;12416:314;-1:-1:-1;5668:1:402;5661:14;;;5705:4;5692:18;;12860:1;12870:252;12884:6;12881:1;12878:13;12870:252;;;12933:94;13020:6;13007:11;12933:94;:::i;:::-;13062:2;13050:15;;;;;13110:1;13093:19;;;;12899:9;12870:252;;;12874:3;;;;13165:95;13254:4;13247:5;13243:16;13236:5;13165:95;:::i;:::-;13269:154;13409:13;13396:11;13392:1;13386:4;13382:12;13269:154;:::i;:::-;;;13468:95;13559:2;13552:5;13548:14;13541:5;13468:95;:::i;:::-;13572:160;13718:13;13703;13699:1;13693:4;13689:12;13572:160;:::i;:::-;;;11723:2015;;:::o;14042:127::-;14103:10;14098:3;14094:20;14091:1;14084:31;14134:4;14131:1;14124:15;14158:4;14155:1;14148:15;14174:135;14213:3;14234:17;;;14231:43;;14254:18;;:::i;:::-;-1:-1:-1;14301:1:402;14290:13;;14174:135::o;14314:217::-;14354:1;14380;14370:132;;14424:10;14419:3;14415:20;14412:1;14405:31;14459:4;14456:1;14449:15;14487:4;14484:1;14477:15;14370:132;-1:-1:-1;14516:9:402;;14314:217::o;14536:255::-;14688:2;14673:18;;14700:51;14744:6;14700:51;:::i;:::-;14760:25;;;14536:255;:::o;14986:253::-;15058:2;15052:9;15100:4;15088:17;;15135:18;15120:34;;15156:22;;;15117:62;15114:88;;;15182:18;;:::i;:::-;15218:2;15211:22;14986:253;:::o;15244:::-;15316:2;15310:9;15358:4;15346:17;;15393:18;15378:34;;15414:22;;;15375:62;15372:88;;;15440:18;;:::i;15502:257::-;15574:4;15568:11;;;15606:17;;15653:18;15638:34;;15674:22;;;15635:62;15632:88;;;15700:18;;:::i;15764:275::-;15835:2;15829:9;15900:2;15881:13;;-1:-1:-1;;15877:27:402;15865:40;;15935:18;15920:34;;15956:22;;;15917:62;15914:88;;;15982:18;;:::i;:::-;16018:2;16011:22;15764:275;;-1:-1:-1;15764:275:402:o;16044:183::-;16104:4;16137:18;16129:6;16126:30;16123:56;;;16159:18;;:::i;:::-;-1:-1:-1;16204:1:402;16200:14;16216:4;16196:25;;16044:183::o;16232:977::-;16327:6;16358:2;16401;16389:9;16380:7;16376:23;16372:32;16369:52;;;16417:1;16414;16407:12;16369:52;16450:9;16444:16;16483:18;16475:6;16472:30;16469:50;;;16515:1;16512;16505:12;16469:50;16538:22;;16591:4;16583:13;;16579:27;-1:-1:-1;16569:55:402;;16620:1;16617;16610:12;16569:55;16649:2;16643:9;16672:60;16688:43;16728:2;16688:43;:::i;:::-;16672:60;:::i;:::-;16766:15;;;16848:1;16844:10;;;;16836:19;;16832:28;;;16797:12;;;;16872:19;;;16869:39;;;16904:1;16901;16894:12;16869:39;16928:11;;;;16948:231;16964:6;16959:3;16956:15;16948:231;;;17037:3;17031:10;17054:52;17100:5;17054:52;:::i;:::-;17119:18;;16981:12;;;;17157;;;;16948:231;;17214:904;17440:4;17488:3;17477:9;17473:19;17528:1;17524;17519:3;17515:11;17511:19;17569:2;17561:6;17557:15;17546:9;17539:34;17592:2;17630:6;17625:2;17614:9;17610:18;17603:34;17673:6;17668:2;17657:9;17653:18;17646:34;17716:3;17711:2;17700:9;17696:18;17689:31;17740:6;17775;17769:13;17806:6;17798;17791:22;17844:3;17833:9;17829:19;17822:26;;17883:2;17875:6;17871:15;17857:29;;17904:1;17914:178;17928:6;17925:1;17922:13;17914:178;;;17993:13;;17989:22;;17977:35;;18067:15;;;;18032:12;;;;17950:1;17943:9;17914:178;;;-1:-1:-1;18109:3:402;;17214:904;-1:-1:-1;;;;;;;;;;17214:904:402:o;18305:1300::-;18384:5;18437:3;18430:4;18422:6;18418:17;18414:27;18404:55;;18455:1;18452;18445:12;18404:55;18484:6;18478:13;18510:4;18534:60;18550:43;18590:2;18550:43;:::i;18534:60::-;18628:15;;;18714:1;18710:10;;;;18698:23;;18694:32;;;18659:12;;;;18738:15;;;18735:35;;;18766:1;18763;18756:12;18735:35;18802:2;18794:6;18790:15;18814:762;18830:6;18825:3;18822:15;18814:762;;;18908:4;18902:3;18897;18893:13;18889:24;18886:114;;;18954:1;18983:2;18979;18972:14;18886:114;19026:22;;:::i;:::-;19082:3;19076:10;19099:49;19140:7;19099:49;:::i;:::-;19161:22;;19225:12;;;19219:19;19203:14;;;19196:43;19262:2;19298:12;;;19292:19;19324:54;19292:19;19324:54;:::i;:::-;19398:14;;;19391:31;19445:2;19489:12;;;19483:19;19467:14;;;19460:43;19516:18;;19554:12;;;;18856:4;18847:14;18814:762;;;-1:-1:-1;19594:5:402;18305:1300;-1:-1:-1;;;;;;18305:1300:402:o;19610:1295::-;19691:5;19744:3;19737:4;19729:6;19725:17;19721:27;19711:55;;19762:1;19759;19752:12;19711:55;19791:6;19785:13;19817:4;19841:60;19857:43;19897:2;19857:43;:::i;19841:60::-;19935:15;;;19997:4;20040:13;;;20028:26;;20024:35;;;19966:12;;;;19923:3;20071:15;;;20068:35;;;20099:1;20096;20089:12;20068:35;20135:2;20127:6;20123:15;20147:729;20163:6;20158:3;20155:15;20147:729;;;20239:2;20233:3;20228;20224:13;20220:22;20217:112;;;20283:1;20312:2;20308;20301:14;20217:112;20355:22;;:::i;:::-;20411:3;20405:10;20428:45;20465:7;20428:45;:::i;:::-;20486:22;;20542:12;;;20536:19;20568:31;20536:19;20568:31;:::i;:::-;20619:14;;;20612:31;20666:2;20702:12;;;20696:19;20728:31;20696:19;20728:31;:::i;:::-;20779:14;;;20772:31;20816:18;;20854:12;;;;20180;;20147:729;;;-1:-1:-1;20894:5:402;;19610:1295;-1:-1:-1;;;;;;;19610:1295:402:o;20910:2008::-;21007:6;21038:2;21081;21069:9;21060:7;21056:23;21052:32;21049:52;;;21097:1;21094;21087:12;21049:52;21130:9;21124:16;21159:18;21200:2;21192:6;21189:14;21186:34;;;21216:1;21213;21206:12;21186:34;21239:22;;;;21295:4;21277:16;;;21273:27;21270:47;;;21313:1;21310;21303:12;21270:47;21339:22;;:::i;:::-;21392:2;21386:9;21420:2;21410:8;21407:16;21404:36;;;21436:1;21433;21426:12;21404:36;21459:17;;21507:4;21499:13;;21495:27;-1:-1:-1;21485:55:402;;21536:1;21533;21526:12;21485:55;21565:2;21559:9;21588:60;21604:43;21644:2;21604:43;:::i;21588:60::-;21682:15;;;21764:1;21760:10;;;;21752:19;;21748:28;;;21713:12;;;;21788:19;;;21785:39;;;21820:1;21817;21810:12;21785:39;21844:11;;;;21864:585;21880:6;21875:3;21872:15;21864:585;;;21962:4;21956:3;21947:7;21943:17;21939:28;21936:118;;;22008:1;22037:2;22033;22026:14;21936:118;22082:22;;:::i;:::-;22138:3;22132:10;22155:45;22192:7;22155:45;:::i;:::-;22213:24;;22271:12;;;22265:19;22297:31;22265:19;22297:31;:::i;:::-;22348:16;;;22341:33;22387:20;;21906:4;21897:14;;;;;22427:12;;;;21864:585;;;22458:20;;-1:-1:-1;;;22509:11:402;;;22503:18;22533:16;;;22530:36;;;22562:1;22559;22552:12;22530:36;22598:81;22671:7;22660:8;22656:2;22652:17;22598:81;:::i;:::-;22593:2;22586:5;22582:14;22575:105;;22719:4;22715:2;22711:13;22705:20;22689:36;;22750:2;22740:8;22737:16;22734:36;;;22766:1;22763;22756:12;22734:36;22804:83;22879:7;22868:8;22864:2;22860:17;22804:83;:::i;:::-;22797:4;22786:16;;22779:109;22790:5;20910:2008;-1:-1:-1;;;;;;20910:2008:402:o;23177:272::-;23247:6;23300:2;23288:9;23279:7;23275:23;23271:32;23268:52;;;23316:1;23313;23306:12;23268:52;23348:9;23342:16;23367:52;23413:5;23367:52;:::i","linkReferences":{}},"methodIdentifiers":{"__EntitlementGated_init(address)":"7adc9cbe","getRuleData(bytes32,uint256)":"92c399ff","getRuleData(uint256)":"069a3ee9","postEntitlementCheckResult(bytes32,uint256,uint8)":"4739e805","requestEntitlementCheck(uint256,((uint8,uint8)[],(uint8,uint256,address,uint256)[],(uint8,uint8,uint8)[]))":"57e70027"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IEntitlementChecker\",\"name\":\"checker\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EntitlementGated_InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_NodeAlreadyVoted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_NodeNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_TransactionCheckAlreadyCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_TransactionCheckAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementGated_TransactionNotRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_InInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_NotInInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_AlreadySupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_NotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuard__ReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IEntitlementGatedBase.NodeVoteStatus\",\"name\":\"result\",\"type\":\"uint8\"}],\"name\":\"EntitlementCheckResultPosted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IEntitlementChecker\",\"name\":\"entitlementChecker\",\"type\":\"address\"}],\"name\":\"__EntitlementGated_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getRuleData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlementBase.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlementBase.RuleData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getRuleData\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlementBase.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlementBase.RuleData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"transactionId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"enum IEntitlementGatedBase.NodeVoteStatus\",\"name\":\"result\",\"type\":\"uint8\"}],\"name\":\"postEntitlementCheckResult\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CombinedOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"index\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.CheckOperationType\",\"name\":\"opType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct IRuleEntitlementBase.CheckOperation[]\",\"name\":\"checkOperations\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"enum IRuleEntitlementBase.LogicalOperationType\",\"name\":\"logOpType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"leftOperationIndex\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"rightOperationIndex\",\"type\":\"uint8\"}],\"internalType\":\"struct IRuleEntitlementBase.LogicalOperation[]\",\"name\":\"logicalOperations\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IRuleEntitlementBase.RuleData\",\"name\":\"ruleData\",\"type\":\"tuple\"}],\"name\":\"requestEntitlementCheck\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"events\":{\"InterfaceAdded(bytes4)\":{\"notice\":\"Emitted when an interface is added to the contract via `_addInterface`.\"},\"InterfaceRemoved(bytes4)\":{\"notice\":\"Emitted when an interface is removed from the contract via `_removeInterface`.\"}},\"kind\":\"user\",\"methods\":{\"getRuleData(bytes32,uint256)\":{\"notice\":\"deprecated Use EntitlementDataQueryable.getCrossChainEntitlementData instead\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/mocks/MockEntitlementGated.sol\":\"MockEntitlementGated\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/base/registry/facets/checker/IEntitlementChecker.sol\":{\"keccak256\":\"0xbeb7bfa236f19172b29eac53be03a3b377de3524b2d836192b0c64ebe708c204\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d5a103a2b7b6be1ffa6662db6081763bcd210216fefc25307b835c555e0cf4d\",\"dweb:/ipfs/QmUCvhZdZpVnyJuZVgd2qGduTf11384TmmBJb2RaEBHxhh\"]},\"contracts/src/diamond/facets/Facet.sol\":{\"keccak256\":\"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863\",\"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc\"]},\"contracts/src/diamond/facets/initializable/Initializable.sol\":{\"keccak256\":\"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552\",\"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC\"]},\"contracts/src/diamond/facets/initializable/InitializableStorage.sol\":{\"keccak256\":\"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4\",\"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg\"]},\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/introspection/IntrospectionBase.sol\":{\"keccak256\":\"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1\",\"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw\"]},\"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol\":{\"keccak256\":\"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91\",\"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM\"]},\"contracts/src/diamond/facets/reentrancy/IReentrancyGuard.sol\":{\"keccak256\":\"0x89ad30ac5476efd023189fca20b13214fe5541ea5fff11760e00f229c62c896e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc04fb0c48333cb0f4b84b01e50498d60510d52495c3772f0bf632773ec47a7d\",\"dweb:/ipfs/QmQUuYriat7eRRsPUHTeD2CDEwHzYxqW6qix7xf44kWByo\"]},\"contracts/src/diamond/facets/reentrancy/ReentrancyGuard.sol\":{\"keccak256\":\"0xb481ee6684d1589254563cb5c318b1eb75f6f15f96baecbd5f5e42b72b7a5003\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70e1bafcd0779c6241ee7716ae2058dd6f7d5a75bb211f5bfcb9aefa434228f8\",\"dweb:/ipfs/QmSbsdGjL1be4VBjgWrk5CodWGvszXZt5HX32PxhvXTZ5Y\"]},\"contracts/src/diamond/facets/reentrancy/ReentrancyGuardStorage.sol\":{\"keccak256\":\"0xe4a08e5712446357756a6da7b65ae80845732dfebac180bd478caaf64dfc790e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09f5691ae9aedbe094cc83a0e8a4272c4d6dd5f57e69fec5870b148f2d94395e\",\"dweb:/ipfs/QmTLHQWuRp1L45oRV8oWWbk4Y4MMNYW1Rp9WUJ86gzVVRv\"]},\"contracts/src/factory/facets/registry/IImplementationRegistry.sol\":{\"keccak256\":\"0xb447f7654cd152c29718c95983b62e390a59658d7d1a22b97f79d0aee9fb5de7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://756a9a38364c01937088ba927f09af2726d2df207eea4e0e2842e3fc66ccd32c\",\"dweb:/ipfs/QmbxBRXgtkEQsGtxq1uSM6vX38FkjPq6tpodCdtBmdEmXA\"]},\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol\":{\"keccak256\":\"0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd\",\"dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j\"]},\"contracts/src/spaces/facets/gated/EntitlementGated.sol\":{\"keccak256\":\"0xeef97a726ad3c7b7df920121be223d8de2ad6180ad39ff2ff42bc8b06f1e5ae1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://680f050ec4d0e151e81a6d5319109f88c081c3dd7666212b3c045db9ff3a6635\",\"dweb:/ipfs/QmZH9JUJvZbevyt4yX7WBbsxRp1ipbUfGg3NktGt5paJiE\"]},\"contracts/src/spaces/facets/gated/EntitlementGatedBase.sol\":{\"keccak256\":\"0xcefa5c3c81c73fefaa7da433ddd5c419dc4c31cd86e8c31f47894663ca7269e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://27fe60a48a69d5be67fdf17f5aac1e90ef0234da564ec4f6e2cbfe53fbb9ba0c\",\"dweb:/ipfs/QmPemsjAUmjjjyLWbHzVmqLxyBAN7CFi6DViy9uQEM3wjt\"]},\"contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol\":{\"keccak256\":\"0xb058672a61d2742e8232232cc66f052443d82beb8b2cdc681f10c23a49351b84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f39d39a3bd3e39c2f6a5b21b82a7339176c163d82335f901a64c57dd73ffa5a3\",\"dweb:/ipfs/QmP8RmYv79xX8hLmrvjfceW9mdRYCYxMaxpywRpR281tMo\"]},\"contracts/src/spaces/facets/gated/IEntitlementGated.sol\":{\"keccak256\":\"0x948de1018f7f78366263a40e0f8269e10941216bd03a9996edb24a6230959e74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc985539ce639f39fd68723acca6424a78deac6cec3693c9d8e1084a487c83ec\",\"dweb:/ipfs/QmQujX5rmDwhJZurp11FTiPLb7ev9swLTtdkagA8wydZiT\"]},\"contracts/src/spaces/facets/membership/MembershipStorage.sol\":{\"keccak256\":\"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a\",\"dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa\"]},\"contracts/test/mocks/MockEntitlementGated.sol\":{\"keccak256\":\"0xc6ddf45d5ece26e1f5e692fc94c5aa7753812fceb53233868b0a9fe4f0748f28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5c907bb53f65dc97bc0e4a7b8feffbb85691d2be92c00c45241001a2cd1aeea9\",\"dweb:/ipfs/QmW9PPy7LkhvZBT2pvE1ucCsmSiYqsRLUkesiZt94kdN33\"]},\"lib/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IEntitlementChecker","name":"checker","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EntitlementGated_InvalidAddress"},{"inputs":[],"type":"error","name":"EntitlementGated_NodeAlreadyVoted"},{"inputs":[],"type":"error","name":"EntitlementGated_NodeNotFound"},{"inputs":[],"type":"error","name":"EntitlementGated_TransactionCheckAlreadyCompleted"},{"inputs":[],"type":"error","name":"EntitlementGated_TransactionCheckAlreadyRegistered"},{"inputs":[],"type":"error","name":"EntitlementGated_TransactionNotRegistered"},{"inputs":[],"type":"error","name":"Initializable_InInitializingState"},{"inputs":[],"type":"error","name":"Initializable_NotInInitializingState"},{"inputs":[],"type":"error","name":"Introspection_AlreadySupported"},{"inputs":[],"type":"error","name":"Introspection_NotSupported"},{"inputs":[],"type":"error","name":"ReentrancyGuard__ReentrantCall"},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32","indexed":true},{"internalType":"enum IEntitlementGatedBase.NodeVoteStatus","name":"result","type":"uint8","indexed":false}],"type":"event","name":"EntitlementCheckResultPosted","anonymous":false},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceAdded","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceRemoved","anonymous":false},{"inputs":[{"internalType":"contract IEntitlementChecker","name":"entitlementChecker","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"__EntitlementGated_init"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRuleData","outputs":[{"internalType":"struct IRuleEntitlementBase.RuleData","name":"","type":"tuple","components":[{"internalType":"struct IRuleEntitlementBase.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlementBase.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlementBase.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}]},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRuleData","outputs":[{"internalType":"struct IRuleEntitlementBase.RuleData","name":"","type":"tuple","components":[{"internalType":"struct IRuleEntitlementBase.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlementBase.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlementBase.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}]},{"inputs":[{"internalType":"bytes32","name":"transactionId","type":"bytes32"},{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"enum IEntitlementGatedBase.NodeVoteStatus","name":"result","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"postEntitlementCheckResult"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"struct IRuleEntitlementBase.RuleData","name":"ruleData","type":"tuple","components":[{"internalType":"struct IRuleEntitlementBase.Operation[]","name":"operations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CombinedOperationType","name":"opType","type":"uint8"},{"internalType":"uint8","name":"index","type":"uint8"}]},{"internalType":"struct IRuleEntitlementBase.CheckOperation[]","name":"checkOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.CheckOperationType","name":"opType","type":"uint8"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]},{"internalType":"struct IRuleEntitlementBase.LogicalOperation[]","name":"logicalOperations","type":"tuple[]","components":[{"internalType":"enum IRuleEntitlementBase.LogicalOperationType","name":"logOpType","type":"uint8"},{"internalType":"uint8","name":"leftOperationIndex","type":"uint8"},{"internalType":"uint8","name":"rightOperationIndex","type":"uint8"}]}]}],"stateMutability":"nonpayable","type":"function","name":"requestEntitlementCheck","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"getRuleData(bytes32,uint256)":{"notice":"deprecated Use EntitlementDataQueryable.getCrossChainEntitlementData instead"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/test/mocks/MockEntitlementGated.sol":"MockEntitlementGated"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/base/registry/facets/checker/IEntitlementChecker.sol":{"keccak256":"0xbeb7bfa236f19172b29eac53be03a3b377de3524b2d836192b0c64ebe708c204","urls":["bzz-raw://3d5a103a2b7b6be1ffa6662db6081763bcd210216fefc25307b835c555e0cf4d","dweb:/ipfs/QmUCvhZdZpVnyJuZVgd2qGduTf11384TmmBJb2RaEBHxhh"],"license":"MIT"},"contracts/src/diamond/facets/Facet.sol":{"keccak256":"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57","urls":["bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863","dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"],"license":"MIT"},"contracts/src/diamond/facets/initializable/Initializable.sol":{"keccak256":"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90","urls":["bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552","dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"],"license":"MIT"},"contracts/src/diamond/facets/initializable/InitializableStorage.sol":{"keccak256":"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a","urls":["bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4","dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionBase.sol":{"keccak256":"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f","urls":["bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1","dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol":{"keccak256":"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763","urls":["bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91","dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/IReentrancyGuard.sol":{"keccak256":"0x89ad30ac5476efd023189fca20b13214fe5541ea5fff11760e00f229c62c896e","urls":["bzz-raw://fc04fb0c48333cb0f4b84b01e50498d60510d52495c3772f0bf632773ec47a7d","dweb:/ipfs/QmQUuYriat7eRRsPUHTeD2CDEwHzYxqW6qix7xf44kWByo"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/ReentrancyGuard.sol":{"keccak256":"0xb481ee6684d1589254563cb5c318b1eb75f6f15f96baecbd5f5e42b72b7a5003","urls":["bzz-raw://70e1bafcd0779c6241ee7716ae2058dd6f7d5a75bb211f5bfcb9aefa434228f8","dweb:/ipfs/QmSbsdGjL1be4VBjgWrk5CodWGvszXZt5HX32PxhvXTZ5Y"],"license":"MIT"},"contracts/src/diamond/facets/reentrancy/ReentrancyGuardStorage.sol":{"keccak256":"0xe4a08e5712446357756a6da7b65ae80845732dfebac180bd478caaf64dfc790e","urls":["bzz-raw://09f5691ae9aedbe094cc83a0e8a4272c4d6dd5f57e69fec5870b148f2d94395e","dweb:/ipfs/QmTLHQWuRp1L45oRV8oWWbk4Y4MMNYW1Rp9WUJ86gzVVRv"],"license":"MIT"},"contracts/src/factory/facets/registry/IImplementationRegistry.sol":{"keccak256":"0xb447f7654cd152c29718c95983b62e390a59658d7d1a22b97f79d0aee9fb5de7","urls":["bzz-raw://756a9a38364c01937088ba927f09af2726d2df207eea4e0e2842e3fc66ccd32c","dweb:/ipfs/QmbxBRXgtkEQsGtxq1uSM6vX38FkjPq6tpodCdtBmdEmXA"],"license":"MIT"},"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol":{"keccak256":"0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27","urls":["bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd","dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGated.sol":{"keccak256":"0xeef97a726ad3c7b7df920121be223d8de2ad6180ad39ff2ff42bc8b06f1e5ae1","urls":["bzz-raw://680f050ec4d0e151e81a6d5319109f88c081c3dd7666212b3c045db9ff3a6635","dweb:/ipfs/QmZH9JUJvZbevyt4yX7WBbsxRp1ipbUfGg3NktGt5paJiE"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGatedBase.sol":{"keccak256":"0xcefa5c3c81c73fefaa7da433ddd5c419dc4c31cd86e8c31f47894663ca7269e8","urls":["bzz-raw://27fe60a48a69d5be67fdf17f5aac1e90ef0234da564ec4f6e2cbfe53fbb9ba0c","dweb:/ipfs/QmPemsjAUmjjjyLWbHzVmqLxyBAN7CFi6DViy9uQEM3wjt"],"license":"MIT"},"contracts/src/spaces/facets/gated/EntitlementGatedStorage.sol":{"keccak256":"0xb058672a61d2742e8232232cc66f052443d82beb8b2cdc681f10c23a49351b84","urls":["bzz-raw://f39d39a3bd3e39c2f6a5b21b82a7339176c163d82335f901a64c57dd73ffa5a3","dweb:/ipfs/QmP8RmYv79xX8hLmrvjfceW9mdRYCYxMaxpywRpR281tMo"],"license":"MIT"},"contracts/src/spaces/facets/gated/IEntitlementGated.sol":{"keccak256":"0x948de1018f7f78366263a40e0f8269e10941216bd03a9996edb24a6230959e74","urls":["bzz-raw://dc985539ce639f39fd68723acca6424a78deac6cec3693c9d8e1084a487c83ec","dweb:/ipfs/QmQujX5rmDwhJZurp11FTiPLb7ev9swLTtdkagA8wydZiT"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipStorage.sol":{"keccak256":"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0","urls":["bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a","dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa"],"license":"MIT"},"contracts/test/mocks/MockEntitlementGated.sol":{"keccak256":"0xc6ddf45d5ece26e1f5e692fc94c5aa7753812fceb53233868b0a9fe4f0748f28","urls":["bzz-raw://5c907bb53f65dc97bc0e4a7b8feffbb85691d2be92c00c45241001a2cd1aeea9","dweb:/ipfs/QmW9PPy7LkhvZBT2pvE1ucCsmSiYqsRLUkesiZt94kdN33"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"}},"version":1},"id":280} \ No newline at end of file diff --git a/packages/generated/dev/abis/MockEntitlementGated.metadata.json b/packages/generated/dev/abis/MockEntitlementGated.metadata.json index 35ee27da4..8dc8f615c 100644 --- a/packages/generated/dev/abis/MockEntitlementGated.metadata.json +++ b/packages/generated/dev/abis/MockEntitlementGated.metadata.json @@ -154,17 +154,17 @@ "name": "getRuleData", "outputs": [ { - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "name": "", "type": "tuple", "components": [ { - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "name": "operations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CombinedOperationType", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType", "name": "opType", "type": "uint8" }, @@ -176,12 +176,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "name": "checkOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CheckOperationType", + "internalType": "enum IRuleEntitlementBase.CheckOperationType", "name": "opType", "type": "uint8" }, @@ -203,12 +203,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "name": "logicalOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.LogicalOperationType", + "internalType": "enum IRuleEntitlementBase.LogicalOperationType", "name": "logOpType", "type": "uint8" }, @@ -246,17 +246,17 @@ "name": "getRuleData", "outputs": [ { - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "name": "", "type": "tuple", "components": [ { - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "name": "operations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CombinedOperationType", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType", "name": "opType", "type": "uint8" }, @@ -268,12 +268,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "name": "checkOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CheckOperationType", + "internalType": "enum IRuleEntitlementBase.CheckOperationType", "name": "opType", "type": "uint8" }, @@ -295,12 +295,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "name": "logicalOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.LogicalOperationType", + "internalType": "enum IRuleEntitlementBase.LogicalOperationType", "name": "logOpType", "type": "uint8" }, @@ -350,17 +350,17 @@ "type": "uint256" }, { - "internalType": "struct IRuleEntitlement.RuleData", + "internalType": "struct IRuleEntitlementBase.RuleData", "name": "ruleData", "type": "tuple", "components": [ { - "internalType": "struct IRuleEntitlement.Operation[]", + "internalType": "struct IRuleEntitlementBase.Operation[]", "name": "operations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CombinedOperationType", + "internalType": "enum IRuleEntitlementBase.CombinedOperationType", "name": "opType", "type": "uint8" }, @@ -372,12 +372,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.CheckOperation[]", + "internalType": "struct IRuleEntitlementBase.CheckOperation[]", "name": "checkOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.CheckOperationType", + "internalType": "enum IRuleEntitlementBase.CheckOperationType", "name": "opType", "type": "uint8" }, @@ -399,12 +399,12 @@ ] }, { - "internalType": "struct IRuleEntitlement.LogicalOperation[]", + "internalType": "struct IRuleEntitlementBase.LogicalOperation[]", "name": "logicalOperations", "type": "tuple[]", "components": [ { - "internalType": "enum IRuleEntitlement.LogicalOperationType", + "internalType": "enum IRuleEntitlementBase.LogicalOperationType", "name": "logOpType", "type": "uint8" }, @@ -442,7 +442,11 @@ }, "userdoc": { "kind": "user", - "methods": {}, + "methods": { + "getRuleData(bytes32,uint256)": { + "notice": "deprecated Use EntitlementDataQueryable.getCrossChainEntitlementData instead" + } + }, "version": 1 } }, @@ -569,18 +573,18 @@ "license": "MIT" }, "contracts/src/spaces/entitlements/rule/IRuleEntitlement.sol": { - "keccak256": "0x28650d058077713dfc28d5c613998d9f1e895a6f5f6b0d93467d25455fc3ea1d", + "keccak256": "0x2ad8c7e10beb26f80dde5445b9aa8fcb2fcbcb149c38d94e4434982924b6eb27", "urls": [ - "bzz-raw://e2446b7958f8b5f2713860e2826acf1b123c6b24719f844c7811d1e3f5a87c86", - "dweb:/ipfs/Qmesso9ftmVUCHi6w2gkJs9tEjGG5ZZgqhAenkyTDgFPC2" + "bzz-raw://de00bf4a319a6c4c8a227039e9ac39f01ddc21f5c61186d7067614d686d010fd", + "dweb:/ipfs/QmWseV2PXggxynEEDXq8HkLQstC9e8BFYVQFhrfxVaVH6j" ], "license": "MIT" }, "contracts/src/spaces/facets/gated/EntitlementGated.sol": { - "keccak256": "0xd705dfd2d3124f62b5ca11cd2b0e0432da535ced6d8012f55799897a30480ba5", + "keccak256": "0xeef97a726ad3c7b7df920121be223d8de2ad6180ad39ff2ff42bc8b06f1e5ae1", "urls": [ - "bzz-raw://cdb855f903687fca333ac8be6e4545b99dc654a41d3878f6ad8f847500efd15b", - "dweb:/ipfs/QmZixZFxv5QBuCVrGXnB9PJknKZknXiXBepi2mG83Jpiza" + "bzz-raw://680f050ec4d0e151e81a6d5319109f88c081c3dd7666212b3c045db9ff3a6635", + "dweb:/ipfs/QmZH9JUJvZbevyt4yX7WBbsxRp1ipbUfGg3NktGt5paJiE" ], "license": "MIT" }, diff --git a/packages/generated/dev/abis/MockRiverRegistry.bin b/packages/generated/dev/abis/MockRiverRegistry.bin index 1b17af2ea..dabb5639f 100644 --- a/packages/generated/dev/abis/MockRiverRegistry.bin +++ b/packages/generated/dev/abis/MockRiverRegistry.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b5060405162004f6238038062004f628339810160408190526200003491620004a6565b6200003e620000c1565b620000493362000169565b60005b8151811015620000b957620000838282815181106200006f576200006f62000578565b60200260200101516200023760201b60201c565b620000b08282815181106200009c576200009c62000578565b60200260200101516200031c60201b60201c565b6001016200004c565b5050620005df565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200010e576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156200016657805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b60006200019d7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b90506001600160a01b038216620001c757604051634e3ef82560e01b815260040160405180910390fd5b817f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae30080546001600160a01b0319166001600160a01b03928316179055604051838216918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116620002865760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526200027d91906004016200058e565b60405180910390fd5b62000293600882620003e9565b15620002d757604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526200027d91906004016200058e565b620002e460088262000410565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b038116620003625760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526200027d91906004016200058e565b6200036f600d8262000410565b620003b257604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526200027d91906004016200058e565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b6001600160a01b038116600090815260018301602052604081205415155b90505b92915050565b600062000407836001600160a01b03841660008181526001830160205260408120546200046a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200040a565b5060006200040a565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620004a157600080fd5b919050565b60006020808385031215620004ba57600080fd5b82516001600160401b0380821115620004d257600080fd5b818501915085601f830112620004e757600080fd5b815181811115620004fc57620004fc62000473565b8060051b604051601f19603f8301168101818110858211171562000524576200052462000473565b6040529182528482019250838101850191888311156200054357600080fd5b938501935b828510156200056c576200055c8562000489565b8452938501939285019262000548565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020808352835180602085015260005b81811015620005be57858101830151858201604001528201620005a0565b506000604082860101526040601f19601f8301168501019250505092915050565b61497380620005ef6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80639ee86d3811610130578063c87d1324116100b8578063d911c6321161007c578063d911c632146104ed578063ee885b12146104f5578063eecc66f414610508578063fc207c011461051b578063ff3a14ab1461052e57600080fd5b8063c87d13241461047e578063c8fe3a0114610491578063ca78c41a146104a6578063d4bd44a0146104c7578063d7a3158a146104da57600080fd5b8063b2b99ec9116100ff578063b2b99ec91461042a578063b7f227ee1461043d578063ba428b1a14610450578063c0f2208414610463578063c179b85f1461046b57600080fd5b80639ee86d38146103dc578063a09449a6146103ef578063a1174e7d14610402578063ac8a584a1461041757600080fd5b8063581f8b9b116101b35780637e4465e7116101825780637e4465e71461036e578063813049ec1461038157806386789fc6146103945780639283ae3a146103a95780639d209048146103bc57600080fd5b8063581f8b9b1461030557806368b454df146103185780636b883c39146103385780636d70f7ae1461034b57600080fd5b806331374511116101fa578063313745111461029257806332705ac4146102a557806339bf397e146102c55780633bd84c0c146102db5780633c2544d1146102e357600080fd5b8063035759e11461022c578063081814db146102415780631290abe81461025f578063242cae9f1461027f575b600080fd5b61023f61023a366004613ae6565b610541565b005b6102496106b5565b6040516102569190613b4f565b60405180910390f35b61027261026d366004613ae6565b610920565b6040516102569190613c6a565b61023f61028d366004613c99565b610a42565b61023f6102a0366004613cb4565b610a89565b6102b86102b3366004613c99565b610b1a565b6040516102569190613da9565b6102cd610dca565b604051908152602001610256565b6102b8610ddb565b6102f66102f1366004613ae6565b610f4c565b60405161025693929190613dbc565b61023f610313366004613e00565b61111d565b61032b610326366004613ae6565b6112bd565b6040516102569190613e33565b61023f610346366004613efb565b6113e4565b61035e610359366004613c99565b611649565b6040519015158152602001610256565b61023f61037c366004613fde565b61165c565b61023f61038f366004613c99565b611854565b61039c61194f565b604051610256919061402b565b6102496103b7366004613ae6565b61195b565b6103cf6103ca366004613c99565b611abd565b60405161025691906140fb565b61023f6103ea36600461410e565b611c3e565b61023f6103fd366004614148565b611dfb565b61040a6120ca565b60405161025691906141ce565b61023f610425366004613c99565b61229e565b61023f610438366004613c99565b612401565b61023f61044b366004614232565b6125ca565b61023f61045e366004613cb4565b612819565b6102cd6128a5565b61023f610479366004613c99565b6128b0565b6102cd61048c366004613c99565b6128f4565b61049961299c565b604051610256919061429a565b6104b96104b43660046142ad565b6129a8565b6040516102569291906142cf565b61035e6104d5366004613c99565b612ba1565b61023f6104e8366004614303565b612bae565b610499612d39565b61023f61050336600461410e565b612d45565b61023f610516366004614353565b612f91565b61035e610529366004613ae6565b61315b565b61023f61053c3660046143b0565b613168565b3361054d600d826133cf565b6105905760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b60405180910390fd5b8161059c600a826133f4565b6105d75760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6000838152600c60205260409020541561064a576000838152600c6020526040902080548061060857610608614425565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff19169055906106416002830182613991565b505090556105d7565b6000838152600c60205260408120610661916139cb565b61066c600a8461340c565b50604080518481526001600160401b03602082015260808183018190526000908201526001606082015290516000805160206149538339815191529181900360a00190a1505050565b60606000806106c4600a613418565b905060005b818110156107055760006106de600a83613422565b6000818152600c60205260409020549091506106fa9085614451565b9350506001016106c9565b506000826001600160401b0381111561072057610720613e46565b60405190808252806020026020018201604052801561076d57816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161073e5790505b509050600061077c600a613418565b90506000805b82811015610915576000610797600a83613422565b6000818152600c6020908152604080832080548251818502810185019093528083529495509293909291849084015b828210156108aa57600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b0316938301939093526002830180549293929184019161081990614464565b80601f016020809104026020016040519081016040528092919081815260200182805461084590614464565b80156108925780601f1061086757610100808354040283529160200191610892565b820191906000526020600020905b81548152906001019060200180831161087557829003601f168201915b505050505081525050815260200190600101906107c6565b50505050905060005b8151811015610907578181815181106108ce576108ce614498565b60200260200101518786806108e2906144ae565b9750815181106108f4576108f4614498565b60209081029190910101526001016108b3565b505050806001019050610782565b509195945050505050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061095490836133f4565b61098f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610a3257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a14575b5050505050815250509050919050565b610a4a61342e565b6001600160a01b0316336001600160a01b031614610a7d576040516365f4906560e01b8152336004820152602401610587565b610a868161345c565b50565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610ad357604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b1557610b0d838383818110610af357610af3614498565b9050602002016020810190610b089190613c99565b61352e565b600101610ad6565b505050565b60606000610b2781613418565b6001600160401b03811115610b3e57610b3e613e46565b604051908082528060200260200182016040528015610b67578160200160208202803683370190505b5090506000805b610b786000613418565b811015610c2d576000610b8b8183613422565b60008181526002602052604081209192505b6002820154811015610c1f57876001600160a01b0316826002018281548110610bc857610bc8614498565b6000918252602090912001546001600160a01b031603610c1757828686610bee816144c7565b975063ffffffff1681518110610c0657610c06614498565b602002602001018181525050610c1f565b600101610b9d565b505050806001019050610b6e565b5060008163ffffffff166001600160401b03811115610c4e57610c4e613e46565b604051908082528060200260200182016040528015610c8757816020015b610c746139ec565b815260200190600190039081610c6c5790505b50905060005b8263ffffffff16811015610dc1576040518060400160405280858381518110610cb857610cb8614498565b6020026020010151815260200160006002016000878581518110610cde57610cde614498565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b909104166060820152600282018054845181870281018701909552808552919492936080860193909290830182828015610d9057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d72575b505050505081525050815250828281518110610dae57610dae614498565b6020908102919091010152600101610c8d565b50949350505050565b6000610dd66005613418565b905090565b60606000610de881613418565b6001600160401b03811115610dff57610dff613e46565b604051908082528060200260200182016040528015610e3857816020015b610e256139ec565b815260200190600190039081610e1d5790505b50905060005b610e486000613418565b811015610f46576000610e5b8183613422565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610f1457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ef6575b505050505081525050815250838381518110610f3257610f32614498565b602090810291909101015250600101610e3e565b50919050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201819052909190610f8482856133f4565b610fbf5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b9091041660608201529482018054845181870281018701909552808552929695919491938793608086019391929183018282801561107957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161105b575b505050505081525050925080805461109090614464565b80601f01602080910402602001604051908101604052809291908181526020018280546110bc90614464565b80156111095780601f106110de57610100808354040283529160200191611109565b820191906000526020600020905b8154815290600101906020018083116110ec57829003601f168201915b505050505090509250925092509193909250565b6001600160a01b0380831660009081526007602052604090206002015483911661117d57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b336111896008826133cf565b6111c35760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808516600090815260076020526040902060030154859133911681146112215760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b038616600090815260076020526040902080546112489060ff16876135f3565b80548690829060ff191660018360058111156112665761126661406f565b021790555060028101546040516001600160a01b03909116907f20891cc7622c7951cbd8c70c61a5201eb45625b8c00e8f6c986cfca78f3dbfa0906112ac9089906144ea565b60405180910390a250505050505050565b6112c56139ec565b6112cf6000613418565b821061130c5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b60006113188184613422565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b90910416606082015291810180548651818602810186019097528087529697509395838701959294919360808601939291908301828280156113d157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113b3575b5050509190925250505090529392505050565b336000818152600760205260409020600201546001600160a01b031661144057604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b61144b6000866133f4565b1561148c57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b60005b8451811015611510576114c88582815181106114ad576114ad614498565b602002602001015160006005016133cf90919063ffffffff16565b61150857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b60010161148f565b506040805160a0810182528481526000602082018190529181018290526060810182905260808101869052906115469087613786565b5060008681526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff199099169190941617969096179590951617909355608084015180518594936115d693908501920190613a36565b50505060008681526003602052604090206115f1848261455d565b5060008681526004602052604090819020859055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb90611639908890889088908890614616565b60405180910390a1505050505050565b60006116566008836133cf565b92915050565b336116686008826133cf565b6116a25760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b0380841660009081526007602052604090206002015484911661170257604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808516600090815260076020526040902060030154859133911681146117605760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b038616600090815260076020908152604091829020915161178a91889101614652565b60405160208183030381529060405280519060200120816001016040516020016117b4919061466e565b60405160208183030381529060405280519060200120036118045760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b60018101611812878261455d565b5060028101546040516001600160a01b03909116907f4505168a8705a16fd4d0575197fd0f510db69df93a065e158ad2c0957ba12bac906112ac908990614412565b61185c61342e565b6001600160a01b0316336001600160a01b03161461188f576040516365f4906560e01b8152336004820152602401610587565b6001600160a01b0381166118d25760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b6118dd600d82613792565b6119185760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6040516001600160a01b038216907ff9889c857e5356066b564327caa757c325ecbc001b2b47d72edf8cf9aedb1be590600090a250565b6060610dd660006137a7565b606081611969600a826133f4565b6119a45760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6000838152600c6020908152604080832080548251818502810185019093528083529193909284015b82821015611ab157600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b03169383019390935260028301805492939291840191611a2090614464565b80601f0160208091040260200160405190810160405280929190818152602001828054611a4c90614464565b8015611a995780601f10611a6e57610100808354040283529160200191611a99565b820191906000526020600020905b815481529060010190602001808311611a7c57829003601f168201915b505050505081525050815260200190600101906119cd565b50505050915050919050565b611ae86040805160808101909152806000815260606020820181905260006040830181905291015290565b611af36005836133cf565b611b3357604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b038216600090815260076020526040908190208151608081019092528054829060ff166005811115611b6e57611b6e61406f565b6005811115611b7f57611b7f61406f565b8152602001600182018054611b9390614464565b80601f0160208091040260200160405190810160405280929190818152602001828054611bbf90614464565b8015611c0c5780601f10611be157610100808354040283529160200191611c0c565b820191906000526020600020905b815481529060010190602001808311611bef57829003601f168201915b505050918352505060028201546001600160a01b03908116602083015260039092015490911660409091015292915050565b81611c4a6000826133f4565b611c855760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808316600090815260076020526040902060020154839116611ce557604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b6000848152600260205260408120905b6002820154811015611d7e57846001600160a01b0316826002018281548110611d2057611d20614498565b6000918252602090912001546001600160a01b031603611d7657604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b600101611cf5565b5060028101805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b03881690811790915560408051898152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600160405180910390a15050505050565b33611e07600d826133cf565b611e415760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b67fffffffffffffffe196001600160401b03851601611e8f5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b6000829003611ecd5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b611ed8600a866133f4565b611ee957611ee7600a86613786565b505b6000858152600c6020526040812054905b81811015611fd0576000878152600c6020526040902080546001600160401b038816919083908110611f2e57611f2e614498565b60009182526020909120600160039092020101546001600160401b031603611fc8576000878152600c6020526040902080548691869184908110611f7457611f74614498565b90600052602060002090600302016002019182611f929291906146e4565b50600080516020614953833981519152878787876000604051611fb995949392919061479d565b60405180910390a150506120c3565b600101611efa565b506000600c0160008781526020019081526020016000206040518060600160405280888152602001876001600160401b0316815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050835460018082018655948252602091829020845160039092020190815590830151938101805467ffffffffffffffff19166001600160401b0390951694909417909355506040810151909190600282019061209a908261455d565b50505060008051602061495383398151915286868686600060405161163995949392919061479d565b5050505050565b606060006120d86005613418565b6001600160401b038111156120ef576120ef613e46565b60405190808252806020026020018201604052801561214b57816020015b6121386040805160808101909152806000815260606020820181905260006040830181905291015290565b81526020019060019003908161210d5790505b50905060005b61215b6005613418565b811015610f465760076000612171600584613422565b6001600160a01b03168152602081019190915260409081016000208151608081019092528054829060ff1660058111156121ad576121ad61406f565b60058111156121be576121be61406f565b81526020016001820180546121d290614464565b80601f01602080910402602001604051908101604052809291908181526020018280546121fe90614464565b801561224b5780601f106122205761010080835404028352916020019161224b565b820191906000526020600020905b81548152906001019060200180831161222e57829003601f168201915b505050918352505060028201546001600160a01b039081166020830152600390920154909116604090910152825183908390811061228b5761228b614498565b6020908102919091010152600101612151565b6122a661342e565b6001600160a01b0316336001600160a01b0316146122d9576040516365f4906560e01b8152336004820152602401610587565b6122e46008826133cf565b61232857604080518082018252601281527113d41154905513d497d393d517d193d5539160721b6020820152905162461bcd60e51b81526105879190600401614412565b60005b6123356005613418565b8110156123bd576001600160a01b03821660076000612355600585613422565b6001600160a01b03908116825260208201929092526040016000206003015416036123b557604080518082018252600d81526c4f55545f4f465f424f554e445360981b6020820152905162461bcd60e51b81526105879190600401614412565b60010161232b565b506123c9600882613792565b506040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b038082166000908152600760205260409020600301548291339116811461245f5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03838116600090815260076020526040902060020154166124bd57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b60056001600160a01b03841660009081526007602052604090205460ff1660058111156124ec576124ec61406f565b146125355760408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614412565b612540600584613792565b506001600160a01b0383166000908152600760205260408120805460ff191681559061256f6001830182613991565b506002810180546001600160a01b03199081169091556003909101805490911690556040516001600160a01b038416907fcfc24166db4bb677e857cacabd1541fb2b30645021b27c5130419589b84db52b90600090a2505050565b336125d6600d826133cf565b6126105760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6000805b6000858152600c6020526040902054811015612791576000858152600c6020526040902080546001600160401b03861691908390811061265657612656614498565b60009182526020909120600160039092020101546001600160401b031603612789576000858152600c602052604090208054612694906001906147ed565b815481106126a4576126a4614498565b90600052602060002090600302016000600c01600087815260200190815260200160002082815481106126d9576126d9614498565b600091825260209091208254600390920201908155600180830154908201805467ffffffffffffffff19166001600160401b0390921691909117905560028082019061272790840182614800565b5050506000858152600c6020526040902080548061274757612747614425565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff19169055906127806002830182613991565b50509055600191505b600101612614565b50806127ce5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b604080518581526001600160401b038516602082015260808183018190526000908201526001606082015290516000805160206149538339815191529181900360a00190a150505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661286357604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b155761289d83838381811061288357612883614498565b90506020020160208101906128989190613c99565b61345c565b600101612866565b6000610dd681613418565b6128b861342e565b6001600160a01b0316336001600160a01b0316146128eb576040516365f4906560e01b8152336004820152602401610587565b610a868161352e565b600080805b6129036000613418565b8110156129955760006129168183613422565b60008181526002602052604081209192505b600282015481101561298757866001600160a01b031682600201828154811061295357612953614498565b6000918252602090912001546001600160a01b03160361297f5784612977816144ae565b955050612987565b600101612928565b5050508060010190506128f9565b5092915050565b6060610dd660056137a7565b60606000828410604051806040016040528060078152602001664241445f41524760c81b815250906129ed5760405162461bcd60e51b81526004016105879190614412565b5060006129fa85856147ed565b6001600160401b03811115612a1157612a11613e46565b604051908082528060200260200182016040528015612a4a57816020015b612a376139ec565b815260200190600190039081612a2f5790505b50905060005b612a5a6000613418565b612a648288614451565b108015612a79575084612a778288614451565b105b15612b89576000612a95612a8d8389614451565b600090613422565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015612b4e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612b30575b505050505081525050815250838381518110612b6c57612b6c614498565b60200260200101819052505080612b82906144ae565b9050612a50565b5080612b956000613418565b90969410159450505050565b6000611656600d836133cf565b336000818152600760205260409020600201546001600160a01b0316612c0a57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b612c156000876133f4565b612c505760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b0386161790558215612cb8576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b0316600103612ce0576000878152600360205260408120612ce091613991565b60408051888152602081018790526001600160401b03861681830152841515606082015290517fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b9181900360800190a150505050505050565b6060610dd660086137a7565b81612d516000826133f4565b612d8c5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808316600090815260076020526040902060020154839116612dec57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b600084815260026020526040812090805b6002830154811015612f0657856001600160a01b0316836002018281548110612e2857612e28614498565b6000918252602090912001546001600160a01b031603612efe57600283018054612e54906001906147ed565b81548110612e6457612e64614498565b6000918252602090912001546002840180546001600160a01b039092169183908110612e9257612e92614498565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082600201805480612ed357612ed3614425565b600082815260209020810160001990810180546001600160a01b031916905501905560019150612f06565b600101612dfd565b5080612f4857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b604080518781526001600160a01b03871660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f90606001611639565b33612f9d6008826133cf565b612fd75760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03848116600090815260076020526040902060020154161561303657604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b600060405180608001604052808460058111156130555761305561406f565b8152602081018690526001600160a01b03871660408201523360609091015290506130816005866137b4565b506001600160a01b03851660009081526007602052604090208151815483929190829060ff191660018360058111156130bc576130bc61406f565b0217905550602082015160018201906130d5908261455d565b506040828101516002830180546001600160a01b03199081166001600160a01b039384161790915560609094015160039093018054909416928116929092179092559051908616907fd6f3629b08191adb8308c3a65d5f8803b7f8f3e359c433fa7ae623276635e5619061314c90879087906148cc565b60405180910390a25050505050565b6000611656600a836133f4565b336000818152600760205260409020600201546001600160a01b03166131c457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b60005b828110156133c957368484838181106131e2576131e2614498565b60a0029190910191506131f99050600082356133f4565b613271577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561323560808501606086016148ee565b60408051808201825260098152681393d517d193d5539160ba1b602082015290516132639493929190614909565b60405180910390a1506133c1565b80356000908152600260205260409081902090820135815561329960808301606084016148ee565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556132cc60a0830160808401614937565b15613304576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b61331460808301606084016148ee565b6001600160401b031660010361333d578135600090815260036020526040812061333d91613991565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561337560808601606087016148ee565b61338560a0870160808801614937565b6040516133b6949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b6001016131c7565b50505050565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600081815260018301602052604081205415156133ed565b60006133ed83836137c9565b6000611656825490565b60006133ed83836138bc565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b6001600160a01b03811661349f5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b6134aa6008826133cf565b156134eb57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b6134f66008826137b4565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b0381166135715760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b61357c600d826137b4565b6135bc57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b60008260058111156136075761360761406f565b148061365b575060018260058111156136225761362261406f565b14801561365b5750600381600581111561363e5761363e61406f565b148061365b575060048160058111156136595761365961406f565b145b806136ae575060028260058111156136755761367561406f565b1480156136ae575060038160058111156136915761369161406f565b14806136ae575060048160058111156136ac576136ac61406f565b145b80613701575060048260058111156136c8576136c861406f565b148015613701575060038160058111156136e4576136e461406f565b1480613701575060058160058111156136ff576136ff61406f565b145b806137395750600382600581111561371b5761371b61406f565b148015613739575060058160058111156137375761373761406f565b145b15613742575050565b60408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614412565b60006133ed83836138e6565b60006133ed836001600160a01b0384166137c9565b606060006133ed83613935565b60006133ed836001600160a01b0384166138e6565b600081815260018301602052604081205480156138b25760006137ed6001836147ed565b8554909150600090613801906001906147ed565b905080821461386657600086600001828154811061382157613821614498565b906000526020600020015490508087600001848154811061384457613844614498565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061387757613877614425565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611656565b6000915050611656565b60008260000182815481106138d3576138d3614498565b9060005260206000200154905092915050565b600081815260018301602052604081205461392d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611656565b506000611656565b60608160000180548060200260200160405190810160405280929190818152602001828054801561398557602002820191906000526020600020905b815481526020019060010190808311613971575b50505050509050919050565b50805461399d90614464565b6000825580601f106139ad575050565b601f016020900490600052602060002090810190610a869190613a9b565b5080546000825560030290600052602060002090810190610a869190613ab0565b604080518082019091526000815260208101613a316040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b828054828255906000526020600020908101928215613a8b579160200282015b82811115613a8b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613a56565b50613a97929150613a9b565b5090565b5b80821115613a975760008155600101613a9c565b80821115613a9757600080825560018201805467ffffffffffffffff19169055613add6002830182613991565b50600301613ab0565b600060208284031215613af857600080fd5b5035919050565b60005b83811015613b1a578181015183820152602001613b02565b50506000910152565b60008151808452613b3b816020860160208601613aff565b601f01601f19169290920160200192915050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613bcb57888303603f19018552815180518452878101516001600160401b0316888501528601516060878501819052613bb781860183613b23565b968901969450505090860190600101613b78565b509098975050505050505050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015613c5f5784516001600160a01b03168252938301936001929092019190830190613c36565b509695505050505050565b6020815260006133ed6020830184613bd9565b80356001600160a01b0381168114613c9457600080fd5b919050565b600060208284031215613cab57600080fd5b6133ed82613c7d565b60008060208385031215613cc757600080fd5b82356001600160401b0380821115613cde57600080fd5b818501915085601f830112613cf257600080fd5b813581811115613d0157600080fd5b8660208260051b8501011115613d1657600080fd5b60209290920196919550909350505050565b805182526000602082015160406020850152613d476040850182613bd9565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015613d9c57601f19868403018952613d8a838351613d28565b98840198925090830190600101613d6e565b5090979650505050505050565b6020815260006133ed6020830184613d4f565b606081526000613dcf6060830186613bd9565b8460208401528281036040840152613de78185613b23565b9695505050505050565b803560068110613c9457600080fd5b60008060408385031215613e1357600080fd5b613e1c83613c7d565b9150613e2a60208401613df1565b90509250929050565b6020815260006133ed6020830184613d28565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613e8457613e84613e46565b604052919050565b600082601f830112613e9d57600080fd5b81356001600160401b03811115613eb657613eb6613e46565b613ec9601f8201601f1916602001613e5c565b818152846020838601011115613ede57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613f1157600080fd5b843593506020808601356001600160401b0380821115613f3057600080fd5b818801915088601f830112613f4457600080fd5b813581811115613f5657613f56613e46565b8060051b613f65858201613e5c565b918252838101850191858101908c841115613f7f57600080fd5b948601945b83861015613fa457613f9586613c7d565b82529486019490860190613f84565b9850505050604088013594506060880135925080831115613fc457600080fd5b5050613fd287828801613e8c565b91505092959194509250565b60008060408385031215613ff157600080fd5b613ffa83613c7d565b915060208301356001600160401b0381111561401557600080fd5b61402185828601613e8c565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561406357835183529284019291840191600101614047565b50909695505050505050565b634e487b7160e01b600052602160045260246000fd5b600681106140a357634e487b7160e01b600052602160045260246000fd5b9052565b6140b2828251614085565b60006020820151608060208501526140cd6080850182613b23565b6040848101516001600160a01b03908116918701919091526060948501511693909401929092525090919050565b6020815260006133ed60208301846140a7565b6000806040838503121561412157600080fd5b82359150613e2a60208401613c7d565b80356001600160401b0381168114613c9457600080fd5b6000806000806060858703121561415e57600080fd5b8435935061416e60208601614131565b925060408501356001600160401b038082111561418a57600080fd5b818701915087601f83011261419e57600080fd5b8135818111156141ad57600080fd5b8860208285010111156141bf57600080fd5b95989497505060200194505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561422557603f198886030184526142138583516140a7565b945092850192908501906001016141f7565b5092979650505050505050565b6000806040838503121561424557600080fd5b82359150613e2a60208401614131565b60008151808452602080850194506020840160005b8381101561428f5781516001600160a01b03168752958201959082019060010161426a565b509495945050505050565b6020815260006133ed6020830184614255565b600080604083850312156142c057600080fd5b50508035926020909101359150565b6040815260006142e26040830185613d4f565b905082151560208301529392505050565b80358015158114613c9457600080fd5b600080600080600060a0868803121561431b57600080fd5b85359450602086013593506040860135925061433960608701614131565b9150614347608087016142f3565b90509295509295909350565b60008060006060848603121561436857600080fd5b61437184613c7d565b925060208401356001600160401b0381111561438c57600080fd5b61439886828701613e8c565b9250506143a760408501613df1565b90509250925092565b600080602083850312156143c357600080fd5b82356001600160401b03808211156143da57600080fd5b818501915085601f8301126143ee57600080fd5b8135818111156143fd57600080fd5b86602060a083028501011115613d1657600080fd5b6020815260006133ed6020830184613b23565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156116565761165661443b565b600181811c9082168061447857607f821691505b602082108103610f4657634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016144c0576144c061443b565b5060010190565b600063ffffffff8083168181036144e0576144e061443b565b6001019392505050565b602081016116568284614085565b601f821115610b15576000816000526020600020601f850160051c810160208610156145215750805b601f850160051c820191505b818110156145405782815560010161452d565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561457657614576613e46565b61458a816145848454614464565b846144f8565b602080601f8311600181146145b957600084156145a75750858301515b6145b18582614548565b865550614540565b600085815260208120601f198616915b828110156145e8578886015182559484019460019091019084016145c9565b50858210156146065787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061462f6080830186614255565b84604084015282810360608401526146478185613b23565b979650505050505050565b60008251614664818460208701613aff565b9190910192915050565b600080835461467c81614464565b6001828116801561469457600181146146a9576146d8565b60ff19841687528215158302870194506146d8565b8760005260208060002060005b858110156146cf5781548a8201529084019082016146b6565b50505082870194505b50929695505050505050565b6001600160401b038311156146fb576146fb613e46565b61470f836147098354614464565b836144f8565b6000601f84116001811461473d576000851561472b5750838201355b6147358682614548565b8455506120c3565b600083815260209020601f19861690835b8281101561476e578685013582556020948501946001909201910161474e565b508682101561478b5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8581526001600160401b038516602082015260806040820152826080820152828460a0830137600081840160a0908101919091529115156060820152601f909201601f1916909101019392505050565b818103818111156116565761165661443b565b81810361480b575050565b6148158254614464565b6001600160401b0381111561482c5761482c613e46565b61483a816145848454614464565b6000601f82116001811461486857600083156148565750848201545b6148608482614548565b8555506120c3565b600085815260209020601f19841690600086815260209020845b838110156148a25782860154825560019586019590910190602001614882565b50858310156146065793015460001960f8600387901b161c19169092555050600190811b01905550565b6040815260006148df6040830185613b23565b90506133ed6020830184614085565b60006020828403121561490057600080fd5b6133ed82614131565b8481528360208201526001600160401b0383166040820152608060608201526000613de76080830184613b23565b60006020828403121561494957600080fd5b6133ed826142f356fec01483261a841a868b99cb8802faed4ea44a1a816651c4f7ee061a96a205fe98 \ No newline at end of file +60806040523480156200001157600080fd5b5060405162004f6038038062004f608339810160408190526200003491620004a6565b6200003e620000c1565b620000493362000169565b60005b8151811015620000b957620000838282815181106200006f576200006f62000578565b60200260200101516200023760201b60201c565b620000b08282815181106200009c576200009c62000578565b60200260200101516200031c60201b60201c565b6001016200004c565b5050620005df565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200010e576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156200016657805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b60006200019d7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b90506001600160a01b038216620001c757604051634e3ef82560e01b815260040160405180910390fd5b817f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae30080546001600160a01b0319166001600160a01b03928316179055604051838216918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116620002865760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526200027d91906004016200058e565b60405180910390fd5b62000293600882620003e9565b15620002d757604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526200027d91906004016200058e565b620002e460088262000410565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b038116620003625760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526200027d91906004016200058e565b6200036f600d8262000410565b620003b257604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526200027d91906004016200058e565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b6001600160a01b038116600090815260018301602052604081205415155b90505b92915050565b600062000407836001600160a01b03841660008181526001830160205260408120546200046a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200040a565b5060006200040a565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620004a157600080fd5b919050565b60006020808385031215620004ba57600080fd5b82516001600160401b0380821115620004d257600080fd5b818501915085601f830112620004e757600080fd5b815181811115620004fc57620004fc62000473565b8060051b604051601f19603f8301168101818110858211171562000524576200052462000473565b6040529182528482019250838101850191888311156200054357600080fd5b938501935b828510156200056c576200055c8562000489565b8452938501939285019262000548565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020808352835180602085015260005b81811015620005be57858101830151858201604001528201620005a0565b506000604082860101526040601f19601f8301168501019250505092915050565b61497180620005ef6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80639ee86d3811610130578063c87d1324116100b8578063d911c6321161007c578063d911c632146104ed578063ee885b12146104f5578063eecc66f414610508578063fc207c011461051b578063ff3a14ab1461052e57600080fd5b8063c87d13241461047e578063c8fe3a0114610491578063ca78c41a146104a6578063d4bd44a0146104c7578063d7a3158a146104da57600080fd5b8063b2b99ec9116100ff578063b2b99ec91461042a578063b7f227ee1461043d578063ba428b1a14610450578063c0f2208414610463578063c179b85f1461046b57600080fd5b80639ee86d38146103dc578063a09449a6146103ef578063a1174e7d14610402578063ac8a584a1461041757600080fd5b8063581f8b9b116101b35780637e4465e7116101825780637e4465e71461036e578063813049ec1461038157806386789fc6146103945780639283ae3a146103a95780639d209048146103bc57600080fd5b8063581f8b9b1461030557806368b454df146103185780636b883c39146103385780636d70f7ae1461034b57600080fd5b806331374511116101fa578063313745111461029257806332705ac4146102a557806339bf397e146102c55780633bd84c0c146102db5780633c2544d1146102e357600080fd5b8063035759e11461022c578063081814db146102415780631290abe81461025f578063242cae9f1461027f575b600080fd5b61023f61023a366004613ae4565b610541565b005b6102496106b5565b6040516102569190613b4d565b60405180910390f35b61027261026d366004613ae4565b610920565b6040516102569190613c68565b61023f61028d366004613c97565b610a42565b61023f6102a0366004613cb2565b610a89565b6102b86102b3366004613c97565b610b1a565b6040516102569190613da7565b6102cd610dcc565b604051908152602001610256565b6102b8610ddd565b6102f66102f1366004613ae4565b610f4b565b60405161025693929190613dba565b61023f610313366004613dfe565b61111c565b61032b610326366004613ae4565b6112bc565b6040516102569190613e31565b61023f610346366004613ef9565b6113e8565b61035e610359366004613c97565b61164f565b6040519015158152602001610256565b61023f61037c366004613fdc565b611662565b61023f61038f366004613c97565b61185a565b61039c611955565b6040516102569190614029565b6102496103b7366004613ae4565b611961565b6103cf6103ca366004613c97565b611ac4565b60405161025691906140f9565b61023f6103ea36600461410c565b611c45565b61023f6103fd366004614146565b611e07565b61040a6120d6565b60405161025691906141cc565b61023f610425366004613c97565b6122aa565b61023f610438366004613c97565b61240d565b61023f61044b366004614230565b6125d6565b61023f61045e366004613cb2565b612825565b6102cd6128b1565b61023f610479366004613c97565b6128bc565b6102cd61048c366004613c97565b612900565b6104996129ae565b6040516102569190614298565b6104b96104b43660046142ab565b6129ba565b6040516102569291906142cd565b61035e6104d5366004613c97565b612bab565b61023f6104e8366004614301565b612bb8565b610499612d3b565b61023f61050336600461410c565b612d47565b61023f610516366004614351565b612f94565b61035e610529366004613ae4565b61315e565b61023f61053c3660046143ae565b61316b565b3361054d600d826133cd565b6105905760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b60405180910390fd5b8161059c600a826133f2565b6105d75760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6000838152600c60205260409020541561064a576000838152600c6020526040902080548061060857610608614423565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff1916905590610641600283018261398f565b505090556105d7565b6000838152600c60205260408120610661916139c9565b61066c600a8461340a565b50604080518481526001600160401b03602082015260808183018190526000908201526001606082015290516000805160206149518339815191529181900360a00190a1505050565b60606000806106c4600a613416565b905060005b818110156107055760006106de600a83613420565b6000818152600c60205260409020549091506106fa908561444f565b9350506001016106c9565b506000826001600160401b0381111561072057610720613e44565b60405190808252806020026020018201604052801561076d57816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161073e5790505b509050600061077c600a613416565b90506000805b82811015610915576000610797600a83613420565b6000818152600c6020908152604080832080548251818502810185019093528083529495509293909291849084015b828210156108aa57600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b0316938301939093526002830180549293929184019161081990614462565b80601f016020809104026020016040519081016040528092919081815260200182805461084590614462565b80156108925780601f1061086757610100808354040283529160200191610892565b820191906000526020600020905b81548152906001019060200180831161087557829003601f168201915b505050505081525050815260200190600101906107c6565b50505050905060005b8151811015610907578181815181106108ce576108ce614496565b60200260200101518786806108e2906144ac565b9750815181106108f4576108f4614496565b60209081029190910101526001016108b3565b505050806001019050610782565b509195945050505050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061095490836133f2565b61098f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610a3257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a14575b5050505050815250509050919050565b610a4a61342c565b6001600160a01b0316336001600160a01b031614610a7d576040516365f4906560e01b8152336004820152602401610587565b610a868161345a565b50565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610ad357604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b1557610b0d838383818110610af357610af3614496565b9050602002016020810190610b089190613c97565b61352c565b600101610ad6565b505050565b60606000610b2781613416565b90506000816001600160401b03811115610b4357610b43613e44565b604051908082528060200260200182016040528015610b6c578160200160208202803683370190505b5090506000805b83811015610c2e576000610b878183613420565b600081815260026020819052604082209081015492935091905b81811015610c1f57896001600160a01b0316836002018281548110610bc857610bc8614496565b6000918252602090912001546001600160a01b031603610c1757838787610bee816144c5565b985063ffffffff1681518110610c0657610c06614496565b602002602001018181525050610c1f565b600101610ba1565b50505050806001019050610b73565b5060008163ffffffff166001600160401b03811115610c4f57610c4f613e44565b604051908082528060200260200182016040528015610c8857816020015b610c756139ea565b815260200190600190039081610c6d5790505b50905060005b8263ffffffff16811015610dc2576040518060400160405280858381518110610cb957610cb9614496565b6020026020010151815260200160006002016000878581518110610cdf57610cdf614496565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b909104166060820152600282018054845181870281018701909552808552919492936080860193909290830182828015610d9157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d73575b505050505081525050815250828281518110610daf57610daf614496565b6020908102919091010152600101610c8e565b5095945050505050565b6000610dd86005613416565b905090565b60606000610dea81613416565b90506000816001600160401b03811115610e0657610e06613e44565b604051908082528060200260200182016040528015610e3f57816020015b610e2c6139ea565b815260200190600190039081610e245790505b50905060005b82811015610f44576000610e598183613420565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610f1257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ef4575b505050505081525050815250838381518110610f3057610f30614496565b602090810291909101015250600101610e45565b5092915050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201819052909190610f8382856133f2565b610fbe5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b9091041660608201529482018054845181870281018701909552808552929695919491938793608086019391929183018282801561107857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161105a575b505050505081525050925080805461108f90614462565b80601f01602080910402602001604051908101604052809291908181526020018280546110bb90614462565b80156111085780601f106110dd57610100808354040283529160200191611108565b820191906000526020600020905b8154815290600101906020018083116110eb57829003601f168201915b505050505090509250925092509193909250565b6001600160a01b0380831660009081526007602052604090206002015483911661117c57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b336111886008826133cd565b6111c25760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808516600090815260076020526040902060030154859133911681146112205760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b038616600090815260076020526040902080546112479060ff16876135f1565b80548690829060ff191660018360058111156112655761126561406d565b021790555060028101546040516001600160a01b03909116907f20891cc7622c7951cbd8c70c61a5201eb45625b8c00e8f6c986cfca78f3dbfa0906112ab9089906144e8565b60405180910390a250505050505050565b6112c46139ea565b60006112cf81613416565b905080831061130f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600061131b8185613420565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b90910416606082015291810180548651818602810186019097528087529697509395838701959294919360808601939291908301828280156113d457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113b6575b505050919092525050509052949350505050565b336000818152600760205260409020600201546001600160a01b031661144457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b61144f6000866133f2565b1561149057604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b835160005b81811015611515576114cd8682815181106114b2576114b2614496565b602002602001015160006005016133cd90919063ffffffff16565b61150d57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b600101611495565b506040805160a08101825285815260006020820181905291810182905260608101829052608081018790529061154b9088613784565b5060008781526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff199099169190941617969096179590951617909355608084015180518594936115db93908501920190613a34565b50505060008781526003602052604090206115f6858261455b565b5060008781526004602052604090819020869055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb9061163e908990899089908990614614565b60405180910390a150505050505050565b600061165c6008836133cd565b92915050565b3361166e6008826133cd565b6116a85760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b0380841660009081526007602052604090206002015484911661170857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808516600090815260076020526040902060030154859133911681146117665760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b038616600090815260076020908152604091829020915161179091889101614650565b60405160208183030381529060405280519060200120816001016040516020016117ba919061466c565b604051602081830303815290604052805190602001200361180a5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b60018101611818878261455b565b5060028101546040516001600160a01b03909116907f4505168a8705a16fd4d0575197fd0f510db69df93a065e158ad2c0957ba12bac906112ab908990614410565b61186261342c565b6001600160a01b0316336001600160a01b031614611895576040516365f4906560e01b8152336004820152602401610587565b6001600160a01b0381166118d85760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b6118e3600d82613790565b61191e5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6040516001600160a01b038216907ff9889c857e5356066b564327caa757c325ecbc001b2b47d72edf8cf9aedb1be590600090a250565b6060610dd860006137a5565b60608161196f600a826133f2565b6119aa5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6000838152600c6020908152604080832080548251818502810185019093528083529193909284015b82821015611ab757600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b03169383019390935260028301805492939291840191611a2690614462565b80601f0160208091040260200160405190810160405280929190818152602001828054611a5290614462565b8015611a9f5780601f10611a7457610100808354040283529160200191611a9f565b820191906000526020600020905b815481529060010190602001808311611a8257829003601f168201915b505050505081525050815260200190600101906119d3565b5050505091505b50919050565b611aef6040805160808101909152806000815260606020820181905260006040830181905291015290565b611afa6005836133cd565b611b3a57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b038216600090815260076020526040908190208151608081019092528054829060ff166005811115611b7557611b7561406d565b6005811115611b8657611b8661406d565b8152602001600182018054611b9a90614462565b80601f0160208091040260200160405190810160405280929190818152602001828054611bc690614462565b8015611c135780601f10611be857610100808354040283529160200191611c13565b820191906000526020600020905b815481529060010190602001808311611bf657829003601f168201915b505050918352505060028201546001600160a01b03908116602083015260039092015490911660409091015292915050565b81611c516000826133f2565b611c8c5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808316600090815260076020526040902060020154839116611cec57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b600084815260026020819052604082209081015490915b81811015611d8857856001600160a01b0316836002018281548110611d2a57611d2a614496565b6000918252602090912001546001600160a01b031603611d8057604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b600101611d03565b5060028201805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b038916908117909155604080518a8152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f906060015b60405180910390a1505050505050565b33611e13600d826133cd565b611e4d5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b67fffffffffffffffe196001600160401b03851601611e9b5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b6000829003611ed95760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b611ee4600a866133f2565b611ef557611ef3600a86613784565b505b6000858152600c6020526040812054905b81811015611fdc576000878152600c6020526040902080546001600160401b038816919083908110611f3a57611f3a614496565b60009182526020909120600160039092020101546001600160401b031603611fd4576000878152600c6020526040902080548691869184908110611f8057611f80614496565b90600052602060002090600302016002019182611f9e9291906146e2565b50600080516020614951833981519152878787876000604051611fc595949392919061479b565b60405180910390a150506120cf565b600101611f06565b506000600c0160008781526020019081526020016000206040518060600160405280888152602001876001600160401b0316815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050835460018082018655948252602091829020845160039092020190815590830151938101805467ffffffffffffffff19166001600160401b039095169490941790935550604081015190919060028201906120a6908261455b565b505050600080516020614951833981519152868686866000604051611df795949392919061479b565b5050505050565b606060006120e46005613416565b6001600160401b038111156120fb576120fb613e44565b60405190808252806020026020018201604052801561215757816020015b6121446040805160808101909152806000815260606020820181905260006040830181905291015290565b8152602001906001900390816121195790505b50905060005b6121676005613416565b811015611abe576007600061217d600584613420565b6001600160a01b03168152602081019190915260409081016000208151608081019092528054829060ff1660058111156121b9576121b961406d565b60058111156121ca576121ca61406d565b81526020016001820180546121de90614462565b80601f016020809104026020016040519081016040528092919081815260200182805461220a90614462565b80156122575780601f1061222c57610100808354040283529160200191612257565b820191906000526020600020905b81548152906001019060200180831161223a57829003601f168201915b505050918352505060028201546001600160a01b039081166020830152600390920154909116604090910152825183908390811061229757612297614496565b602090810291909101015260010161215d565b6122b261342c565b6001600160a01b0316336001600160a01b0316146122e5576040516365f4906560e01b8152336004820152602401610587565b6122f06008826133cd565b61233457604080518082018252601281527113d41154905513d497d393d517d193d5539160721b6020820152905162461bcd60e51b81526105879190600401614410565b60005b6123416005613416565b8110156123c9576001600160a01b03821660076000612361600585613420565b6001600160a01b03908116825260208201929092526040016000206003015416036123c157604080518082018252600d81526c4f55545f4f465f424f554e445360981b6020820152905162461bcd60e51b81526105879190600401614410565b600101612337565b506123d5600882613790565b506040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b038082166000908152600760205260409020600301548291339116811461246b5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03838116600090815260076020526040902060020154166124c957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b60056001600160a01b03841660009081526007602052604090205460ff1660058111156124f8576124f861406d565b146125415760408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614410565b61254c600584613790565b506001600160a01b0383166000908152600760205260408120805460ff191681559061257b600183018261398f565b506002810180546001600160a01b03199081169091556003909101805490911690556040516001600160a01b038416907fcfc24166db4bb677e857cacabd1541fb2b30645021b27c5130419589b84db52b90600090a2505050565b336125e2600d826133cd565b61261c5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6000805b6000858152600c602052604090205481101561279d576000858152600c6020526040902080546001600160401b03861691908390811061266257612662614496565b60009182526020909120600160039092020101546001600160401b031603612795576000858152600c6020526040902080546126a0906001906147eb565b815481106126b0576126b0614496565b90600052602060002090600302016000600c01600087815260200190815260200160002082815481106126e5576126e5614496565b600091825260209091208254600390920201908155600180830154908201805467ffffffffffffffff19166001600160401b03909216919091179055600280820190612733908401826147fe565b5050506000858152600c6020526040902080548061275357612753614423565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff191690559061278c600283018261398f565b50509055600191505b600101612620565b50806127da5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b604080518581526001600160401b038516602082015260808183018190526000908201526001606082015290516000805160206149518339815191529181900360a00190a150505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661286f57604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b15576128a983838381811061288f5761288f614496565b90506020020160208101906128a49190613c97565b61345a565b600101612872565b6000610dd881613416565b6128c461342c565b6001600160a01b0316336001600160a01b0316146128f7576040516365f4906560e01b8152336004820152602401610587565b610a868161352c565b6000808061290d81613416565b905060005b818110156129a55760006129268183613420565b60008181526002602052604081209192505b600282015481101561299757876001600160a01b031682600201828154811061296357612963614496565b6000918252602090912001546001600160a01b03160361298f5785612987816144ac565b965050612997565b600101612938565b505050806001019050612912565b50909392505050565b6060610dd860056137a5565b60606000828410604051806040016040528060078152602001664241445f41524760c81b815250906129ff5760405162461bcd60e51b81526004016105879190614410565b506000612a0c85856147eb565b6001600160401b03811115612a2357612a23613e44565b604051908082528060200260200182016040528015612a5c57816020015b612a496139ea565b815260200190600190039081612a415790505b5090506000612a6a81613416565b905060005b81612a7a828961444f565b108015612a8f575085612a8d828961444f565b105b15612b9f576000612aab612aa3838a61444f565b600090613420565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015612b6457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612b46575b505050505081525050815250848381518110612b8257612b82614496565b60200260200101819052505080612b98906144ac565b9050612a6f565b50909593101593505050565b600061165c600d836133cd565b336000818152600760205260409020600201546001600160a01b0316612c1457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b612c1f6000876133f2565b612c5a5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b0386161790558215612cc2576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b0316600103612cea576000878152600360205260408120612cea9161398f565b60408051888152602081018790526001600160401b0386169181019190915283151560608201527fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b9060800161163e565b6060610dd860086137a5565b81612d536000826133f2565b612d8e5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808316600090815260076020526040902060020154839116612dee57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b6000848152600260208190526040822090810154909190815b81811015612f0957866001600160a01b0316846002018281548110612e2e57612e2e614496565b6000918252602090912001546001600160a01b031603612f015760028401612e576001846147eb565b81548110612e6757612e67614496565b6000918252602090912001546002850180546001600160a01b039092169183908110612e9557612e95614496565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083600201805480612ed657612ed6614423565b600082815260209020810160001990810180546001600160a01b031916905501905560019250612f09565b600101612e07565b5081612f4b57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b604080518881526001600160a01b03881660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600161163e565b33612fa06008826133cd565b612fda5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03848116600090815260076020526040902060020154161561303957604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b600060405180608001604052808460058111156130585761305861406d565b8152602081018690526001600160a01b03871660408201523360609091015290506130846005866137b2565b506001600160a01b03851660009081526007602052604090208151815483929190829060ff191660018360058111156130bf576130bf61406d565b0217905550602082015160018201906130d8908261455b565b506040828101516002830180546001600160a01b03199081166001600160a01b039384161790915560609094015160039093018054909416928116929092179092559051908616907fd6f3629b08191adb8308c3a65d5f8803b7f8f3e359c433fa7ae623276635e5619061314f90879087906148ca565b60405180910390a25050505050565b600061165c600a836133f2565b336000818152600760205260409020600201546001600160a01b03166131c757604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b8160005b818110156120cf57368585838181106131e6576131e6614496565b60a0029190910191506131fd9050600082356133f2565b613275577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561323960808501606086016148ec565b60408051808201825260098152681393d517d193d5539160ba1b602082015290516132679493929190614907565b60405180910390a1506133c5565b80356000908152600260205260409081902090820135815561329d60808301606084016148ec565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556132d060a0830160808401614935565b15613308576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b61331860808301606084016148ec565b6001600160401b031660010361334157813560009081526003602052604081206133419161398f565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561337960808601606087016148ec565b61338960a0870160808801614935565b6040516133ba949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b6001016131cb565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600081815260018301602052604081205415156133eb565b60006133eb83836137c7565b600061165c825490565b60006133eb83836138ba565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b6001600160a01b03811661349d5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b6134a86008826133cd565b156134e957604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b6134f46008826137b2565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b03811661356f5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b61357a600d826137b2565b6135ba57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b60008260058111156136055761360561406d565b1480613659575060018260058111156136205761362061406d565b1480156136595750600381600581111561363c5761363c61406d565b1480613659575060048160058111156136575761365761406d565b145b806136ac575060028260058111156136735761367361406d565b1480156136ac5750600381600581111561368f5761368f61406d565b14806136ac575060048160058111156136aa576136aa61406d565b145b806136ff575060048260058111156136c6576136c661406d565b1480156136ff575060038160058111156136e2576136e261406d565b14806136ff575060058160058111156136fd576136fd61406d565b145b80613737575060038260058111156137195761371961406d565b148015613737575060058160058111156137355761373561406d565b145b15613740575050565b60408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614410565b60006133eb83836138e4565b60006133eb836001600160a01b0384166137c7565b606060006133eb83613933565b60006133eb836001600160a01b0384166138e4565b600081815260018301602052604081205480156138b05760006137eb6001836147eb565b85549091506000906137ff906001906147eb565b905080821461386457600086600001828154811061381f5761381f614496565b906000526020600020015490508087600001848154811061384257613842614496565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061387557613875614423565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061165c565b600091505061165c565b60008260000182815481106138d1576138d1614496565b9060005260206000200154905092915050565b600081815260018301602052604081205461392b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561165c565b50600061165c565b60608160000180548060200260200160405190810160405280929190818152602001828054801561398357602002820191906000526020600020905b81548152602001906001019080831161396f575b50505050509050919050565b50805461399b90614462565b6000825580601f106139ab575050565b601f016020900490600052602060002090810190610a869190613a99565b5080546000825560030290600052602060002090810190610a869190613aae565b604080518082019091526000815260208101613a2f6040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b828054828255906000526020600020908101928215613a89579160200282015b82811115613a8957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613a54565b50613a95929150613a99565b5090565b5b80821115613a955760008155600101613a9a565b80821115613a9557600080825560018201805467ffffffffffffffff19169055613adb600283018261398f565b50600301613aae565b600060208284031215613af657600080fd5b5035919050565b60005b83811015613b18578181015183820152602001613b00565b50506000910152565b60008151808452613b39816020860160208601613afd565b601f01601f19169290920160200192915050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613bc957888303603f19018552815180518452878101516001600160401b0316888501528601516060878501819052613bb581860183613b21565b968901969450505090860190600101613b76565b509098975050505050505050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015613c5d5784516001600160a01b03168252938301936001929092019190830190613c34565b509695505050505050565b6020815260006133eb6020830184613bd7565b80356001600160a01b0381168114613c9257600080fd5b919050565b600060208284031215613ca957600080fd5b6133eb82613c7b565b60008060208385031215613cc557600080fd5b82356001600160401b0380821115613cdc57600080fd5b818501915085601f830112613cf057600080fd5b813581811115613cff57600080fd5b8660208260051b8501011115613d1457600080fd5b60209290920196919550909350505050565b805182526000602082015160406020850152613d456040850182613bd7565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015613d9a57601f19868403018952613d88838351613d26565b98840198925090830190600101613d6c565b5090979650505050505050565b6020815260006133eb6020830184613d4d565b606081526000613dcd6060830186613bd7565b8460208401528281036040840152613de58185613b21565b9695505050505050565b803560068110613c9257600080fd5b60008060408385031215613e1157600080fd5b613e1a83613c7b565b9150613e2860208401613def565b90509250929050565b6020815260006133eb6020830184613d26565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613e8257613e82613e44565b604052919050565b600082601f830112613e9b57600080fd5b81356001600160401b03811115613eb457613eb4613e44565b613ec7601f8201601f1916602001613e5a565b818152846020838601011115613edc57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613f0f57600080fd5b843593506020808601356001600160401b0380821115613f2e57600080fd5b818801915088601f830112613f4257600080fd5b813581811115613f5457613f54613e44565b8060051b613f63858201613e5a565b918252838101850191858101908c841115613f7d57600080fd5b948601945b83861015613fa257613f9386613c7b565b82529486019490860190613f82565b9850505050604088013594506060880135925080831115613fc257600080fd5b5050613fd087828801613e8a565b91505092959194509250565b60008060408385031215613fef57600080fd5b613ff883613c7b565b915060208301356001600160401b0381111561401357600080fd5b61401f85828601613e8a565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561406157835183529284019291840191600101614045565b50909695505050505050565b634e487b7160e01b600052602160045260246000fd5b600681106140a157634e487b7160e01b600052602160045260246000fd5b9052565b6140b0828251614083565b60006020820151608060208501526140cb6080850182613b21565b6040848101516001600160a01b03908116918701919091526060948501511693909401929092525090919050565b6020815260006133eb60208301846140a5565b6000806040838503121561411f57600080fd5b82359150613e2860208401613c7b565b80356001600160401b0381168114613c9257600080fd5b6000806000806060858703121561415c57600080fd5b8435935061416c6020860161412f565b925060408501356001600160401b038082111561418857600080fd5b818701915087601f83011261419c57600080fd5b8135818111156141ab57600080fd5b8860208285010111156141bd57600080fd5b95989497505060200194505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561422357603f198886030184526142118583516140a5565b945092850192908501906001016141f5565b5092979650505050505050565b6000806040838503121561424357600080fd5b82359150613e286020840161412f565b60008151808452602080850194506020840160005b8381101561428d5781516001600160a01b031687529582019590820190600101614268565b509495945050505050565b6020815260006133eb6020830184614253565b600080604083850312156142be57600080fd5b50508035926020909101359150565b6040815260006142e06040830185613d4d565b905082151560208301529392505050565b80358015158114613c9257600080fd5b600080600080600060a0868803121561431957600080fd5b8535945060208601359350604086013592506143376060870161412f565b9150614345608087016142f1565b90509295509295909350565b60008060006060848603121561436657600080fd5b61436f84613c7b565b925060208401356001600160401b0381111561438a57600080fd5b61439686828701613e8a565b9250506143a560408501613def565b90509250925092565b600080602083850312156143c157600080fd5b82356001600160401b03808211156143d857600080fd5b818501915085601f8301126143ec57600080fd5b8135818111156143fb57600080fd5b86602060a083028501011115613d1457600080fd5b6020815260006133eb6020830184613b21565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561165c5761165c614439565b600181811c9082168061447657607f821691505b602082108103611abe57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016144be576144be614439565b5060010190565b600063ffffffff8083168181036144de576144de614439565b6001019392505050565b6020810161165c8284614083565b601f821115610b15576000816000526020600020601f850160051c8101602086101561451f5750805b601f850160051c820191505b8181101561453e5782815560010161452b565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561457457614574613e44565b614588816145828454614462565b846144f6565b602080601f8311600181146145b757600084156145a55750858301515b6145af8582614546565b86555061453e565b600085815260208120601f198616915b828110156145e6578886015182559484019460019091019084016145c7565b50858210156146045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061462d6080830186614253565b84604084015282810360608401526146458185613b21565b979650505050505050565b60008251614662818460208701613afd565b9190910192915050565b600080835461467a81614462565b6001828116801561469257600181146146a7576146d6565b60ff19841687528215158302870194506146d6565b8760005260208060002060005b858110156146cd5781548a8201529084019082016146b4565b50505082870194505b50929695505050505050565b6001600160401b038311156146f9576146f9613e44565b61470d836147078354614462565b836144f6565b6000601f84116001811461473b57600085156147295750838201355b6147338682614546565b8455506120cf565b600083815260209020601f19861690835b8281101561476c578685013582556020948501946001909201910161474c565b50868210156147895760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8581526001600160401b038516602082015260806040820152826080820152828460a0830137600081840160a0908101919091529115156060820152601f909201601f1916909101019392505050565b8181038181111561165c5761165c614439565b818103614809575050565b6148138254614462565b6001600160401b0381111561482a5761482a613e44565b614838816145828454614462565b6000601f82116001811461486657600083156148545750848201545b61485e8482614546565b8555506120cf565b600085815260209020601f19841690600086815260209020845b838110156148a05782860154825560019586019590910190602001614880565b50858310156146045793015460001960f8600387901b161c19169092555050600190811b01905550565b6040815260006148dd6040830185613b21565b90506133eb6020830184614083565b6000602082840312156148fe57600080fd5b6133eb8261412f565b8481528360208201526001600160401b0383166040820152608060608201526000613de56080830184613b21565b60006020828403121561494757600080fd5b6133eb826142f156fec01483261a841a868b99cb8802faed4ea44a1a816651c4f7ee061a96a205fe98 \ No newline at end of file diff --git a/packages/generated/dev/abis/MockRiverRegistry.json b/packages/generated/dev/abis/MockRiverRegistry.json index 5136bce4c..2a23f0284 100644 --- a/packages/generated/dev/abis/MockRiverRegistry.json +++ b/packages/generated/dev/abis/MockRiverRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"approvedOperators","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"__OperatorRegistry_init","inputs":[{"name":"initialOperators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"__RiverConfig_init","inputs":[{"name":"configManagers","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allocateStream","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"nodes","type":"address[]","internalType":"address[]"},{"name":"genesisMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"genesisMiniblock","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveConfigurationManager","inputs":[{"name":"manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"configurationExists","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deleteConfiguration","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deleteConfigurationOnBlock","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAllConfiguration","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Setting[]","components":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"value","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getAllNodeAddresses","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getAllNodes","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Node[]","components":[{"name":"status","type":"uint8","internalType":"enum NodeStatus"},{"name":"url","type":"string","internalType":"string"},{"name":"nodeAddress","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getAllOperators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getAllStreamIds","inputs":[],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getAllStreams","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct StreamWithId[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getConfiguration","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Setting[]","components":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"value","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Node","components":[{"name":"status","type":"uint8","internalType":"enum NodeStatus"},{"name":"url","type":"string","internalType":"string"},{"name":"nodeAddress","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getNodeCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPaginatedStreams","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"stop","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct StreamWithId[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]},{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getStream","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getStreamByIndex","inputs":[{"name":"i","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StreamWithId","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getStreamCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getStreamCountOnNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getStreamWithGenesis","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]},{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStreamsOnNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct StreamWithId[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"isConfigurationManager","inputs":[{"name":"manager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"placeStreamOnNode","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"},{"name":"url","type":"string","internalType":"string"},{"name":"status","type":"uint8","internalType":"enum NodeStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeConfigurationManager","inputs":[{"name":"manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeStreamFromNode","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setConfiguration","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStreamLastMiniblock","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"isSealed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStreamLastMiniblockBatch","inputs":[{"name":"miniblocks","type":"tuple[]","internalType":"struct SetMiniblock[]","components":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"prevMiniBlockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"isSealed","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateNodeStatus","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"},{"name":"status","type":"uint8","internalType":"enum NodeStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateNodeUrl","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"},{"name":"url","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ConfigurationChanged","inputs":[{"name":"key","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"block","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"value","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"deleted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ConfigurationManagerAdded","inputs":[{"name":"manager","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ConfigurationManagerRemoved","inputs":[{"name":"manager","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"InterfaceAdded","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"InterfaceRemoved","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"NodeAdded","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"},{"name":"url","type":"string","indexed":false,"internalType":"string"},{"name":"status","type":"uint8","indexed":false,"internalType":"enum NodeStatus"}],"anonymous":false},{"type":"event","name":"NodeRemoved","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NodeStatusUpdated","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"uint8","indexed":false,"internalType":"enum NodeStatus"}],"anonymous":false},{"type":"event","name":"NodeUrlUpdated","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"},{"name":"url","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorAdded","inputs":[{"name":"operatorAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorRemoved","inputs":[{"name":"operatorAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StreamAllocated","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"nodes","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"genesisMiniblockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"genesisMiniblock","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"StreamLastMiniblockUpdateFailed","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"StreamLastMiniblockUpdated","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"isSealed","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"StreamPlacementUpdated","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"nodeAddress","type":"address","indexed":false,"internalType":"address"},{"name":"isAdded","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"error","name":"Initializable_InInitializingState","inputs":[]},{"type":"error","name":"Initializable_NotInInitializingState","inputs":[]},{"type":"error","name":"Introspection_AlreadySupported","inputs":[]},{"type":"error","name":"Introspection_NotSupported","inputs":[]},{"type":"error","name":"Ownable__NotOwner","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Ownable__ZeroAddress","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162004f6238038062004f628339810160408190526200003491620004a6565b6200003e620000c1565b620000493362000169565b60005b8151811015620000b957620000838282815181106200006f576200006f62000578565b60200260200101516200023760201b60201c565b620000b08282815181106200009c576200009c62000578565b60200260200101516200031c60201b60201c565b6001016200004c565b5050620005df565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200010e576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156200016657805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b60006200019d7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b90506001600160a01b038216620001c757604051634e3ef82560e01b815260040160405180910390fd5b817f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae30080546001600160a01b0319166001600160a01b03928316179055604051838216918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116620002865760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526200027d91906004016200058e565b60405180910390fd5b62000293600882620003e9565b15620002d757604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526200027d91906004016200058e565b620002e460088262000410565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b038116620003625760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526200027d91906004016200058e565b6200036f600d8262000410565b620003b257604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526200027d91906004016200058e565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b6001600160a01b038116600090815260018301602052604081205415155b90505b92915050565b600062000407836001600160a01b03841660008181526001830160205260408120546200046a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200040a565b5060006200040a565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620004a157600080fd5b919050565b60006020808385031215620004ba57600080fd5b82516001600160401b0380821115620004d257600080fd5b818501915085601f830112620004e757600080fd5b815181811115620004fc57620004fc62000473565b8060051b604051601f19603f8301168101818110858211171562000524576200052462000473565b6040529182528482019250838101850191888311156200054357600080fd5b938501935b828510156200056c576200055c8562000489565b8452938501939285019262000548565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020808352835180602085015260005b81811015620005be57858101830151858201604001528201620005a0565b506000604082860101526040601f19601f8301168501019250505092915050565b61497380620005ef6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80639ee86d3811610130578063c87d1324116100b8578063d911c6321161007c578063d911c632146104ed578063ee885b12146104f5578063eecc66f414610508578063fc207c011461051b578063ff3a14ab1461052e57600080fd5b8063c87d13241461047e578063c8fe3a0114610491578063ca78c41a146104a6578063d4bd44a0146104c7578063d7a3158a146104da57600080fd5b8063b2b99ec9116100ff578063b2b99ec91461042a578063b7f227ee1461043d578063ba428b1a14610450578063c0f2208414610463578063c179b85f1461046b57600080fd5b80639ee86d38146103dc578063a09449a6146103ef578063a1174e7d14610402578063ac8a584a1461041757600080fd5b8063581f8b9b116101b35780637e4465e7116101825780637e4465e71461036e578063813049ec1461038157806386789fc6146103945780639283ae3a146103a95780639d209048146103bc57600080fd5b8063581f8b9b1461030557806368b454df146103185780636b883c39146103385780636d70f7ae1461034b57600080fd5b806331374511116101fa578063313745111461029257806332705ac4146102a557806339bf397e146102c55780633bd84c0c146102db5780633c2544d1146102e357600080fd5b8063035759e11461022c578063081814db146102415780631290abe81461025f578063242cae9f1461027f575b600080fd5b61023f61023a366004613ae6565b610541565b005b6102496106b5565b6040516102569190613b4f565b60405180910390f35b61027261026d366004613ae6565b610920565b6040516102569190613c6a565b61023f61028d366004613c99565b610a42565b61023f6102a0366004613cb4565b610a89565b6102b86102b3366004613c99565b610b1a565b6040516102569190613da9565b6102cd610dca565b604051908152602001610256565b6102b8610ddb565b6102f66102f1366004613ae6565b610f4c565b60405161025693929190613dbc565b61023f610313366004613e00565b61111d565b61032b610326366004613ae6565b6112bd565b6040516102569190613e33565b61023f610346366004613efb565b6113e4565b61035e610359366004613c99565b611649565b6040519015158152602001610256565b61023f61037c366004613fde565b61165c565b61023f61038f366004613c99565b611854565b61039c61194f565b604051610256919061402b565b6102496103b7366004613ae6565b61195b565b6103cf6103ca366004613c99565b611abd565b60405161025691906140fb565b61023f6103ea36600461410e565b611c3e565b61023f6103fd366004614148565b611dfb565b61040a6120ca565b60405161025691906141ce565b61023f610425366004613c99565b61229e565b61023f610438366004613c99565b612401565b61023f61044b366004614232565b6125ca565b61023f61045e366004613cb4565b612819565b6102cd6128a5565b61023f610479366004613c99565b6128b0565b6102cd61048c366004613c99565b6128f4565b61049961299c565b604051610256919061429a565b6104b96104b43660046142ad565b6129a8565b6040516102569291906142cf565b61035e6104d5366004613c99565b612ba1565b61023f6104e8366004614303565b612bae565b610499612d39565b61023f61050336600461410e565b612d45565b61023f610516366004614353565b612f91565b61035e610529366004613ae6565b61315b565b61023f61053c3660046143b0565b613168565b3361054d600d826133cf565b6105905760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b60405180910390fd5b8161059c600a826133f4565b6105d75760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6000838152600c60205260409020541561064a576000838152600c6020526040902080548061060857610608614425565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff19169055906106416002830182613991565b505090556105d7565b6000838152600c60205260408120610661916139cb565b61066c600a8461340c565b50604080518481526001600160401b03602082015260808183018190526000908201526001606082015290516000805160206149538339815191529181900360a00190a1505050565b60606000806106c4600a613418565b905060005b818110156107055760006106de600a83613422565b6000818152600c60205260409020549091506106fa9085614451565b9350506001016106c9565b506000826001600160401b0381111561072057610720613e46565b60405190808252806020026020018201604052801561076d57816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161073e5790505b509050600061077c600a613418565b90506000805b82811015610915576000610797600a83613422565b6000818152600c6020908152604080832080548251818502810185019093528083529495509293909291849084015b828210156108aa57600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b0316938301939093526002830180549293929184019161081990614464565b80601f016020809104026020016040519081016040528092919081815260200182805461084590614464565b80156108925780601f1061086757610100808354040283529160200191610892565b820191906000526020600020905b81548152906001019060200180831161087557829003601f168201915b505050505081525050815260200190600101906107c6565b50505050905060005b8151811015610907578181815181106108ce576108ce614498565b60200260200101518786806108e2906144ae565b9750815181106108f4576108f4614498565b60209081029190910101526001016108b3565b505050806001019050610782565b509195945050505050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061095490836133f4565b61098f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610a3257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a14575b5050505050815250509050919050565b610a4a61342e565b6001600160a01b0316336001600160a01b031614610a7d576040516365f4906560e01b8152336004820152602401610587565b610a868161345c565b50565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610ad357604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b1557610b0d838383818110610af357610af3614498565b9050602002016020810190610b089190613c99565b61352e565b600101610ad6565b505050565b60606000610b2781613418565b6001600160401b03811115610b3e57610b3e613e46565b604051908082528060200260200182016040528015610b67578160200160208202803683370190505b5090506000805b610b786000613418565b811015610c2d576000610b8b8183613422565b60008181526002602052604081209192505b6002820154811015610c1f57876001600160a01b0316826002018281548110610bc857610bc8614498565b6000918252602090912001546001600160a01b031603610c1757828686610bee816144c7565b975063ffffffff1681518110610c0657610c06614498565b602002602001018181525050610c1f565b600101610b9d565b505050806001019050610b6e565b5060008163ffffffff166001600160401b03811115610c4e57610c4e613e46565b604051908082528060200260200182016040528015610c8757816020015b610c746139ec565b815260200190600190039081610c6c5790505b50905060005b8263ffffffff16811015610dc1576040518060400160405280858381518110610cb857610cb8614498565b6020026020010151815260200160006002016000878581518110610cde57610cde614498565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b909104166060820152600282018054845181870281018701909552808552919492936080860193909290830182828015610d9057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d72575b505050505081525050815250828281518110610dae57610dae614498565b6020908102919091010152600101610c8d565b50949350505050565b6000610dd66005613418565b905090565b60606000610de881613418565b6001600160401b03811115610dff57610dff613e46565b604051908082528060200260200182016040528015610e3857816020015b610e256139ec565b815260200190600190039081610e1d5790505b50905060005b610e486000613418565b811015610f46576000610e5b8183613422565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610f1457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ef6575b505050505081525050815250838381518110610f3257610f32614498565b602090810291909101015250600101610e3e565b50919050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201819052909190610f8482856133f4565b610fbf5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b9091041660608201529482018054845181870281018701909552808552929695919491938793608086019391929183018282801561107957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161105b575b505050505081525050925080805461109090614464565b80601f01602080910402602001604051908101604052809291908181526020018280546110bc90614464565b80156111095780601f106110de57610100808354040283529160200191611109565b820191906000526020600020905b8154815290600101906020018083116110ec57829003601f168201915b505050505090509250925092509193909250565b6001600160a01b0380831660009081526007602052604090206002015483911661117d57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b336111896008826133cf565b6111c35760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808516600090815260076020526040902060030154859133911681146112215760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b038616600090815260076020526040902080546112489060ff16876135f3565b80548690829060ff191660018360058111156112665761126661406f565b021790555060028101546040516001600160a01b03909116907f20891cc7622c7951cbd8c70c61a5201eb45625b8c00e8f6c986cfca78f3dbfa0906112ac9089906144ea565b60405180910390a250505050505050565b6112c56139ec565b6112cf6000613418565b821061130c5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b60006113188184613422565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b90910416606082015291810180548651818602810186019097528087529697509395838701959294919360808601939291908301828280156113d157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113b3575b5050509190925250505090529392505050565b336000818152600760205260409020600201546001600160a01b031661144057604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b61144b6000866133f4565b1561148c57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b60005b8451811015611510576114c88582815181106114ad576114ad614498565b602002602001015160006005016133cf90919063ffffffff16565b61150857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b60010161148f565b506040805160a0810182528481526000602082018190529181018290526060810182905260808101869052906115469087613786565b5060008681526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff199099169190941617969096179590951617909355608084015180518594936115d693908501920190613a36565b50505060008681526003602052604090206115f1848261455d565b5060008681526004602052604090819020859055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb90611639908890889088908890614616565b60405180910390a1505050505050565b60006116566008836133cf565b92915050565b336116686008826133cf565b6116a25760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b0380841660009081526007602052604090206002015484911661170257604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808516600090815260076020526040902060030154859133911681146117605760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b038616600090815260076020908152604091829020915161178a91889101614652565b60405160208183030381529060405280519060200120816001016040516020016117b4919061466e565b60405160208183030381529060405280519060200120036118045760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b60018101611812878261455d565b5060028101546040516001600160a01b03909116907f4505168a8705a16fd4d0575197fd0f510db69df93a065e158ad2c0957ba12bac906112ac908990614412565b61185c61342e565b6001600160a01b0316336001600160a01b03161461188f576040516365f4906560e01b8152336004820152602401610587565b6001600160a01b0381166118d25760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b6118dd600d82613792565b6119185760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6040516001600160a01b038216907ff9889c857e5356066b564327caa757c325ecbc001b2b47d72edf8cf9aedb1be590600090a250565b6060610dd660006137a7565b606081611969600a826133f4565b6119a45760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6000838152600c6020908152604080832080548251818502810185019093528083529193909284015b82821015611ab157600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b03169383019390935260028301805492939291840191611a2090614464565b80601f0160208091040260200160405190810160405280929190818152602001828054611a4c90614464565b8015611a995780601f10611a6e57610100808354040283529160200191611a99565b820191906000526020600020905b815481529060010190602001808311611a7c57829003601f168201915b505050505081525050815260200190600101906119cd565b50505050915050919050565b611ae86040805160808101909152806000815260606020820181905260006040830181905291015290565b611af36005836133cf565b611b3357604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b038216600090815260076020526040908190208151608081019092528054829060ff166005811115611b6e57611b6e61406f565b6005811115611b7f57611b7f61406f565b8152602001600182018054611b9390614464565b80601f0160208091040260200160405190810160405280929190818152602001828054611bbf90614464565b8015611c0c5780601f10611be157610100808354040283529160200191611c0c565b820191906000526020600020905b815481529060010190602001808311611bef57829003601f168201915b505050918352505060028201546001600160a01b03908116602083015260039092015490911660409091015292915050565b81611c4a6000826133f4565b611c855760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808316600090815260076020526040902060020154839116611ce557604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b6000848152600260205260408120905b6002820154811015611d7e57846001600160a01b0316826002018281548110611d2057611d20614498565b6000918252602090912001546001600160a01b031603611d7657604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b600101611cf5565b5060028101805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b03881690811790915560408051898152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600160405180910390a15050505050565b33611e07600d826133cf565b611e415760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b67fffffffffffffffe196001600160401b03851601611e8f5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b6000829003611ecd5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b611ed8600a866133f4565b611ee957611ee7600a86613786565b505b6000858152600c6020526040812054905b81811015611fd0576000878152600c6020526040902080546001600160401b038816919083908110611f2e57611f2e614498565b60009182526020909120600160039092020101546001600160401b031603611fc8576000878152600c6020526040902080548691869184908110611f7457611f74614498565b90600052602060002090600302016002019182611f929291906146e4565b50600080516020614953833981519152878787876000604051611fb995949392919061479d565b60405180910390a150506120c3565b600101611efa565b506000600c0160008781526020019081526020016000206040518060600160405280888152602001876001600160401b0316815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050835460018082018655948252602091829020845160039092020190815590830151938101805467ffffffffffffffff19166001600160401b0390951694909417909355506040810151909190600282019061209a908261455d565b50505060008051602061495383398151915286868686600060405161163995949392919061479d565b5050505050565b606060006120d86005613418565b6001600160401b038111156120ef576120ef613e46565b60405190808252806020026020018201604052801561214b57816020015b6121386040805160808101909152806000815260606020820181905260006040830181905291015290565b81526020019060019003908161210d5790505b50905060005b61215b6005613418565b811015610f465760076000612171600584613422565b6001600160a01b03168152602081019190915260409081016000208151608081019092528054829060ff1660058111156121ad576121ad61406f565b60058111156121be576121be61406f565b81526020016001820180546121d290614464565b80601f01602080910402602001604051908101604052809291908181526020018280546121fe90614464565b801561224b5780601f106122205761010080835404028352916020019161224b565b820191906000526020600020905b81548152906001019060200180831161222e57829003601f168201915b505050918352505060028201546001600160a01b039081166020830152600390920154909116604090910152825183908390811061228b5761228b614498565b6020908102919091010152600101612151565b6122a661342e565b6001600160a01b0316336001600160a01b0316146122d9576040516365f4906560e01b8152336004820152602401610587565b6122e46008826133cf565b61232857604080518082018252601281527113d41154905513d497d393d517d193d5539160721b6020820152905162461bcd60e51b81526105879190600401614412565b60005b6123356005613418565b8110156123bd576001600160a01b03821660076000612355600585613422565b6001600160a01b03908116825260208201929092526040016000206003015416036123b557604080518082018252600d81526c4f55545f4f465f424f554e445360981b6020820152905162461bcd60e51b81526105879190600401614412565b60010161232b565b506123c9600882613792565b506040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b038082166000908152600760205260409020600301548291339116811461245f5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03838116600090815260076020526040902060020154166124bd57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b60056001600160a01b03841660009081526007602052604090205460ff1660058111156124ec576124ec61406f565b146125355760408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614412565b612540600584613792565b506001600160a01b0383166000908152600760205260408120805460ff191681559061256f6001830182613991565b506002810180546001600160a01b03199081169091556003909101805490911690556040516001600160a01b038416907fcfc24166db4bb677e857cacabd1541fb2b30645021b27c5130419589b84db52b90600090a2505050565b336125d6600d826133cf565b6126105760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6000805b6000858152600c6020526040902054811015612791576000858152600c6020526040902080546001600160401b03861691908390811061265657612656614498565b60009182526020909120600160039092020101546001600160401b031603612789576000858152600c602052604090208054612694906001906147ed565b815481106126a4576126a4614498565b90600052602060002090600302016000600c01600087815260200190815260200160002082815481106126d9576126d9614498565b600091825260209091208254600390920201908155600180830154908201805467ffffffffffffffff19166001600160401b0390921691909117905560028082019061272790840182614800565b5050506000858152600c6020526040902080548061274757612747614425565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff19169055906127806002830182613991565b50509055600191505b600101612614565b50806127ce5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b604080518581526001600160401b038516602082015260808183018190526000908201526001606082015290516000805160206149538339815191529181900360a00190a150505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661286357604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b155761289d83838381811061288357612883614498565b90506020020160208101906128989190613c99565b61345c565b600101612866565b6000610dd681613418565b6128b861342e565b6001600160a01b0316336001600160a01b0316146128eb576040516365f4906560e01b8152336004820152602401610587565b610a868161352e565b600080805b6129036000613418565b8110156129955760006129168183613422565b60008181526002602052604081209192505b600282015481101561298757866001600160a01b031682600201828154811061295357612953614498565b6000918252602090912001546001600160a01b03160361297f5784612977816144ae565b955050612987565b600101612928565b5050508060010190506128f9565b5092915050565b6060610dd660056137a7565b60606000828410604051806040016040528060078152602001664241445f41524760c81b815250906129ed5760405162461bcd60e51b81526004016105879190614412565b5060006129fa85856147ed565b6001600160401b03811115612a1157612a11613e46565b604051908082528060200260200182016040528015612a4a57816020015b612a376139ec565b815260200190600190039081612a2f5790505b50905060005b612a5a6000613418565b612a648288614451565b108015612a79575084612a778288614451565b105b15612b89576000612a95612a8d8389614451565b600090613422565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015612b4e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612b30575b505050505081525050815250838381518110612b6c57612b6c614498565b60200260200101819052505080612b82906144ae565b9050612a50565b5080612b956000613418565b90969410159450505050565b6000611656600d836133cf565b336000818152600760205260409020600201546001600160a01b0316612c0a57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b612c156000876133f4565b612c505760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b0386161790558215612cb8576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b0316600103612ce0576000878152600360205260408120612ce091613991565b60408051888152602081018790526001600160401b03861681830152841515606082015290517fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b9181900360800190a150505050505050565b6060610dd660086137a7565b81612d516000826133f4565b612d8c5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808316600090815260076020526040902060020154839116612dec57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b600084815260026020526040812090805b6002830154811015612f0657856001600160a01b0316836002018281548110612e2857612e28614498565b6000918252602090912001546001600160a01b031603612efe57600283018054612e54906001906147ed565b81548110612e6457612e64614498565b6000918252602090912001546002840180546001600160a01b039092169183908110612e9257612e92614498565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082600201805480612ed357612ed3614425565b600082815260209020810160001990810180546001600160a01b031916905501905560019150612f06565b600101612dfd565b5080612f4857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b604080518781526001600160a01b03871660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f90606001611639565b33612f9d6008826133cf565b612fd75760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03848116600090815260076020526040902060020154161561303657604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b600060405180608001604052808460058111156130555761305561406f565b8152602081018690526001600160a01b03871660408201523360609091015290506130816005866137b4565b506001600160a01b03851660009081526007602052604090208151815483929190829060ff191660018360058111156130bc576130bc61406f565b0217905550602082015160018201906130d5908261455d565b506040828101516002830180546001600160a01b03199081166001600160a01b039384161790915560609094015160039093018054909416928116929092179092559051908616907fd6f3629b08191adb8308c3a65d5f8803b7f8f3e359c433fa7ae623276635e5619061314c90879087906148cc565b60405180910390a25050505050565b6000611656600a836133f4565b336000818152600760205260409020600201546001600160a01b03166131c457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b60005b828110156133c957368484838181106131e2576131e2614498565b60a0029190910191506131f99050600082356133f4565b613271577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561323560808501606086016148ee565b60408051808201825260098152681393d517d193d5539160ba1b602082015290516132639493929190614909565b60405180910390a1506133c1565b80356000908152600260205260409081902090820135815561329960808301606084016148ee565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556132cc60a0830160808401614937565b15613304576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b61331460808301606084016148ee565b6001600160401b031660010361333d578135600090815260036020526040812061333d91613991565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561337560808601606087016148ee565b61338560a0870160808801614937565b6040516133b6949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b6001016131c7565b50505050565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600081815260018301602052604081205415156133ed565b60006133ed83836137c9565b6000611656825490565b60006133ed83836138bc565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b6001600160a01b03811661349f5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b6134aa6008826133cf565b156134eb57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b6134f66008826137b4565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b0381166135715760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b61357c600d826137b4565b6135bc57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b60008260058111156136075761360761406f565b148061365b575060018260058111156136225761362261406f565b14801561365b5750600381600581111561363e5761363e61406f565b148061365b575060048160058111156136595761365961406f565b145b806136ae575060028260058111156136755761367561406f565b1480156136ae575060038160058111156136915761369161406f565b14806136ae575060048160058111156136ac576136ac61406f565b145b80613701575060048260058111156136c8576136c861406f565b148015613701575060038160058111156136e4576136e461406f565b1480613701575060058160058111156136ff576136ff61406f565b145b806137395750600382600581111561371b5761371b61406f565b148015613739575060058160058111156137375761373761406f565b145b15613742575050565b60408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614412565b60006133ed83836138e6565b60006133ed836001600160a01b0384166137c9565b606060006133ed83613935565b60006133ed836001600160a01b0384166138e6565b600081815260018301602052604081205480156138b25760006137ed6001836147ed565b8554909150600090613801906001906147ed565b905080821461386657600086600001828154811061382157613821614498565b906000526020600020015490508087600001848154811061384457613844614498565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061387757613877614425565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611656565b6000915050611656565b60008260000182815481106138d3576138d3614498565b9060005260206000200154905092915050565b600081815260018301602052604081205461392d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611656565b506000611656565b60608160000180548060200260200160405190810160405280929190818152602001828054801561398557602002820191906000526020600020905b815481526020019060010190808311613971575b50505050509050919050565b50805461399d90614464565b6000825580601f106139ad575050565b601f016020900490600052602060002090810190610a869190613a9b565b5080546000825560030290600052602060002090810190610a869190613ab0565b604080518082019091526000815260208101613a316040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b828054828255906000526020600020908101928215613a8b579160200282015b82811115613a8b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613a56565b50613a97929150613a9b565b5090565b5b80821115613a975760008155600101613a9c565b80821115613a9757600080825560018201805467ffffffffffffffff19169055613add6002830182613991565b50600301613ab0565b600060208284031215613af857600080fd5b5035919050565b60005b83811015613b1a578181015183820152602001613b02565b50506000910152565b60008151808452613b3b816020860160208601613aff565b601f01601f19169290920160200192915050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613bcb57888303603f19018552815180518452878101516001600160401b0316888501528601516060878501819052613bb781860183613b23565b968901969450505090860190600101613b78565b509098975050505050505050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015613c5f5784516001600160a01b03168252938301936001929092019190830190613c36565b509695505050505050565b6020815260006133ed6020830184613bd9565b80356001600160a01b0381168114613c9457600080fd5b919050565b600060208284031215613cab57600080fd5b6133ed82613c7d565b60008060208385031215613cc757600080fd5b82356001600160401b0380821115613cde57600080fd5b818501915085601f830112613cf257600080fd5b813581811115613d0157600080fd5b8660208260051b8501011115613d1657600080fd5b60209290920196919550909350505050565b805182526000602082015160406020850152613d476040850182613bd9565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015613d9c57601f19868403018952613d8a838351613d28565b98840198925090830190600101613d6e565b5090979650505050505050565b6020815260006133ed6020830184613d4f565b606081526000613dcf6060830186613bd9565b8460208401528281036040840152613de78185613b23565b9695505050505050565b803560068110613c9457600080fd5b60008060408385031215613e1357600080fd5b613e1c83613c7d565b9150613e2a60208401613df1565b90509250929050565b6020815260006133ed6020830184613d28565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613e8457613e84613e46565b604052919050565b600082601f830112613e9d57600080fd5b81356001600160401b03811115613eb657613eb6613e46565b613ec9601f8201601f1916602001613e5c565b818152846020838601011115613ede57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613f1157600080fd5b843593506020808601356001600160401b0380821115613f3057600080fd5b818801915088601f830112613f4457600080fd5b813581811115613f5657613f56613e46565b8060051b613f65858201613e5c565b918252838101850191858101908c841115613f7f57600080fd5b948601945b83861015613fa457613f9586613c7d565b82529486019490860190613f84565b9850505050604088013594506060880135925080831115613fc457600080fd5b5050613fd287828801613e8c565b91505092959194509250565b60008060408385031215613ff157600080fd5b613ffa83613c7d565b915060208301356001600160401b0381111561401557600080fd5b61402185828601613e8c565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561406357835183529284019291840191600101614047565b50909695505050505050565b634e487b7160e01b600052602160045260246000fd5b600681106140a357634e487b7160e01b600052602160045260246000fd5b9052565b6140b2828251614085565b60006020820151608060208501526140cd6080850182613b23565b6040848101516001600160a01b03908116918701919091526060948501511693909401929092525090919050565b6020815260006133ed60208301846140a7565b6000806040838503121561412157600080fd5b82359150613e2a60208401613c7d565b80356001600160401b0381168114613c9457600080fd5b6000806000806060858703121561415e57600080fd5b8435935061416e60208601614131565b925060408501356001600160401b038082111561418a57600080fd5b818701915087601f83011261419e57600080fd5b8135818111156141ad57600080fd5b8860208285010111156141bf57600080fd5b95989497505060200194505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561422557603f198886030184526142138583516140a7565b945092850192908501906001016141f7565b5092979650505050505050565b6000806040838503121561424557600080fd5b82359150613e2a60208401614131565b60008151808452602080850194506020840160005b8381101561428f5781516001600160a01b03168752958201959082019060010161426a565b509495945050505050565b6020815260006133ed6020830184614255565b600080604083850312156142c057600080fd5b50508035926020909101359150565b6040815260006142e26040830185613d4f565b905082151560208301529392505050565b80358015158114613c9457600080fd5b600080600080600060a0868803121561431b57600080fd5b85359450602086013593506040860135925061433960608701614131565b9150614347608087016142f3565b90509295509295909350565b60008060006060848603121561436857600080fd5b61437184613c7d565b925060208401356001600160401b0381111561438c57600080fd5b61439886828701613e8c565b9250506143a760408501613df1565b90509250925092565b600080602083850312156143c357600080fd5b82356001600160401b03808211156143da57600080fd5b818501915085601f8301126143ee57600080fd5b8135818111156143fd57600080fd5b86602060a083028501011115613d1657600080fd5b6020815260006133ed6020830184613b23565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156116565761165661443b565b600181811c9082168061447857607f821691505b602082108103610f4657634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016144c0576144c061443b565b5060010190565b600063ffffffff8083168181036144e0576144e061443b565b6001019392505050565b602081016116568284614085565b601f821115610b15576000816000526020600020601f850160051c810160208610156145215750805b601f850160051c820191505b818110156145405782815560010161452d565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561457657614576613e46565b61458a816145848454614464565b846144f8565b602080601f8311600181146145b957600084156145a75750858301515b6145b18582614548565b865550614540565b600085815260208120601f198616915b828110156145e8578886015182559484019460019091019084016145c9565b50858210156146065787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061462f6080830186614255565b84604084015282810360608401526146478185613b23565b979650505050505050565b60008251614664818460208701613aff565b9190910192915050565b600080835461467c81614464565b6001828116801561469457600181146146a9576146d8565b60ff19841687528215158302870194506146d8565b8760005260208060002060005b858110156146cf5781548a8201529084019082016146b6565b50505082870194505b50929695505050505050565b6001600160401b038311156146fb576146fb613e46565b61470f836147098354614464565b836144f8565b6000601f84116001811461473d576000851561472b5750838201355b6147358682614548565b8455506120c3565b600083815260209020601f19861690835b8281101561476e578685013582556020948501946001909201910161474e565b508682101561478b5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8581526001600160401b038516602082015260806040820152826080820152828460a0830137600081840160a0908101919091529115156060820152601f909201601f1916909101019392505050565b818103818111156116565761165661443b565b81810361480b575050565b6148158254614464565b6001600160401b0381111561482c5761482c613e46565b61483a816145848454614464565b6000601f82116001811461486857600083156148565750848201545b6148608482614548565b8555506120c3565b600085815260209020601f19841690600086815260209020845b838110156148a25782860154825560019586019590910190602001614882565b50858310156146065793015460001960f8600387901b161c19169092555050600190811b01905550565b6040815260006148df6040830185613b23565b90506133ed6020830184614085565b60006020828403121561490057600080fd5b6133ed82614131565b8481528360208201526001600160401b0383166040820152608060608201526000613de76080830184613b23565b60006020828403121561494957600080fd5b6133ed826142f356fec01483261a841a868b99cb8802faed4ea44a1a816651c4f7ee061a96a205fe98","sourceMap":"553:732:53:-:0;;;1023:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;378:22:17;:20;:22::i;:::-;1077:30:53;1096:10;1077:18;:30::i;:::-;1118:9;1113:166;1137:17;:24;1133:1;:28;1113:166;;;1176:38;1193:17;1211:1;1193:20;;;;;;;;:::i;:::-;;;;;;;1176:16;;;:38;;:::i;:::-;1222:50;1251:17;1269:1;1251:20;;;;;;;;:::i;:::-;;;;;;;1222:28;;;:50;;:::i;:::-;1163:3;;1113:166;;;;1023:260;553:732;;1653:314:25;296:66:26;1779:14:25;;;;;;;1775:62;;;1802:35;;-1:-1:-1;;;1802:35:25;;;;;;;;;;;1775:62;1848:9;;1860:16;1848:9;;;:28;1844:119;;;1886:28;;-1:-1:-1;;1886:28:25;1898:16;1886:28;;;;;1927:29;;1738:42:85;;;1927:29:25;;1726:2:85;1711:18;1927:29:25;;;;;;;1844:119;1694:273;1653:314::o;476:253:35:-;537:16;556:8;284:66:37;438:29:35;-1:-1:-1;;;;;438:29:35;;369:103;556:8;537:27;-1:-1:-1;;;;;;574:22:35;;570:57;;605:22;;-1:-1:-1;;;605:22:35;;;;;;;;;;;570:57;665:8;284:66:37;633:40:35;;-1:-1:-1;;;;;;633:40:35;-1:-1:-1;;;;;633:40:35;;;;;;684;;;;;;;;;;;-1:-1:-1;;684:40:35;531:198;476:253;:::o;2109:320:46:-;-1:-1:-1;;;;;2205:22:46;;2201:63;;2236:27;;;;;;;;;;;-1:-1:-1;;;2236:27:46;;;;2229:35;;-1:-1:-1;;;2229:35:46;;;;2236:27;2229:35;;;:::i;:::-;;;;;;;;2201:63;2275:31;:12;2297:8;2275:21;:31::i;:::-;2271:85;;;2321:34;;;;;;;;;;;-1:-1:-1;;;2321:34:46;;;;2314:42;;-1:-1:-1;;;2314:42:46;;;;2321:34;2314:42;;;:::i;2271:85::-;2363:26;:12;2380:8;2363:16;:26::i;:::-;-1:-1:-1;2401:23:46;;-1:-1:-1;;;;;2401:23:46;;;;;;;;2109:320;:::o;6030:282:42:-;-1:-1:-1;;;;;6104:21:42;;6100:62;;6134:27;;;;;;;;;;;-1:-1:-1;;;6134:27:42;;;;6127:35;;-1:-1:-1;;;6127:35:42;;;;6134:27;6127:35;;;:::i;6100:62::-;6174:37;:24;6203:7;6174:28;:37::i;:::-;6169:92;;6226:34;;;;;;;;;;;-1:-1:-1;;;6226:34:42;;;;6219:42;;-1:-1:-1;;;6219:42:42;;;;6226:34;6219:42;;;:::i;6169:92::-;6273:34;;-1:-1:-1;;;;;6273:34:42;;;;;;;;6030:282;:::o;8871:165:62:-;-1:-1:-1;;;;;9004:23:62;;8951:4;4360:21;;;:14;;;:21;;;;;;:26;;8974:55;8967:62;;8871:165;;;;;:::o;8316:150::-;8386:4;8409:50;8414:3;-1:-1:-1;;;;;8434:23:62;;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:62;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;2320:321;-1:-1:-1;2625:5:62;2618:12;;14:127:85;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:85;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:1129::-;423:6;454:2;497;485:9;476:7;472:23;468:32;465:52;;;513:1;510;503:12;465:52;540:16;;-1:-1:-1;;;;;605:14:85;;;602:34;;;632:1;629;622:12;602:34;670:6;659:9;655:22;645:32;;715:7;708:4;704:2;700:13;696:27;686:55;;737:1;734;727:12;686:55;766:2;760:9;788:2;784;781:10;778:36;;;794:18;;:::i;:::-;840:2;837:1;833:10;872:2;866:9;935:2;931:7;926:2;922;918:11;914:25;906:6;902:38;990:6;978:10;975:22;970:2;958:10;955:18;952:46;949:72;;;1001:18;;:::i;:::-;1037:2;1030:22;1087:18;;;1121:15;;;;-1:-1:-1;1163:11:85;;;1159:20;;;1191:19;;;1188:39;;;1223:1;1220;1213:12;1188:39;1247:11;;;;1267:159;1283:6;1278:3;1275:15;1267:159;;;1349:34;1379:3;1349:34;:::i;:::-;1337:47;;1300:12;;;;1404;;;;1267:159;;;1445:6;328:1129;-1:-1:-1;;;;;;;;328:1129:85:o;1462:127::-;1523:10;1518:3;1514:20;1511:1;1504:31;1554:4;1551:1;1544:15;1578:4;1575:1;1568:15;1791:548;1903:4;1932:2;1961;1950:9;1943:21;1993:6;1987:13;2036:6;2031:2;2020:9;2016:18;2009:34;2061:1;2071:140;2085:6;2082:1;2079:13;2071:140;;;2180:14;;;2176:23;;2170:30;2146:17;;;2165:2;2142:26;2135:66;2100:10;;2071:140;;;2075:3;2260:1;2255:2;2246:6;2235:9;2231:22;2227:31;2220:42;2330:2;2323;2319:7;2314:2;2306:6;2302:15;2298:29;2287:9;2283:45;2279:54;2271:62;;;;1791:548;;;;:::o;:::-;553:732:53;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102275760003560e01c80639ee86d3811610130578063c87d1324116100b8578063d911c6321161007c578063d911c632146104ed578063ee885b12146104f5578063eecc66f414610508578063fc207c011461051b578063ff3a14ab1461052e57600080fd5b8063c87d13241461047e578063c8fe3a0114610491578063ca78c41a146104a6578063d4bd44a0146104c7578063d7a3158a146104da57600080fd5b8063b2b99ec9116100ff578063b2b99ec91461042a578063b7f227ee1461043d578063ba428b1a14610450578063c0f2208414610463578063c179b85f1461046b57600080fd5b80639ee86d38146103dc578063a09449a6146103ef578063a1174e7d14610402578063ac8a584a1461041757600080fd5b8063581f8b9b116101b35780637e4465e7116101825780637e4465e71461036e578063813049ec1461038157806386789fc6146103945780639283ae3a146103a95780639d209048146103bc57600080fd5b8063581f8b9b1461030557806368b454df146103185780636b883c39146103385780636d70f7ae1461034b57600080fd5b806331374511116101fa578063313745111461029257806332705ac4146102a557806339bf397e146102c55780633bd84c0c146102db5780633c2544d1146102e357600080fd5b8063035759e11461022c578063081814db146102415780631290abe81461025f578063242cae9f1461027f575b600080fd5b61023f61023a366004613ae6565b610541565b005b6102496106b5565b6040516102569190613b4f565b60405180910390f35b61027261026d366004613ae6565b610920565b6040516102569190613c6a565b61023f61028d366004613c99565b610a42565b61023f6102a0366004613cb4565b610a89565b6102b86102b3366004613c99565b610b1a565b6040516102569190613da9565b6102cd610dca565b604051908152602001610256565b6102b8610ddb565b6102f66102f1366004613ae6565b610f4c565b60405161025693929190613dbc565b61023f610313366004613e00565b61111d565b61032b610326366004613ae6565b6112bd565b6040516102569190613e33565b61023f610346366004613efb565b6113e4565b61035e610359366004613c99565b611649565b6040519015158152602001610256565b61023f61037c366004613fde565b61165c565b61023f61038f366004613c99565b611854565b61039c61194f565b604051610256919061402b565b6102496103b7366004613ae6565b61195b565b6103cf6103ca366004613c99565b611abd565b60405161025691906140fb565b61023f6103ea36600461410e565b611c3e565b61023f6103fd366004614148565b611dfb565b61040a6120ca565b60405161025691906141ce565b61023f610425366004613c99565b61229e565b61023f610438366004613c99565b612401565b61023f61044b366004614232565b6125ca565b61023f61045e366004613cb4565b612819565b6102cd6128a5565b61023f610479366004613c99565b6128b0565b6102cd61048c366004613c99565b6128f4565b61049961299c565b604051610256919061429a565b6104b96104b43660046142ad565b6129a8565b6040516102569291906142cf565b61035e6104d5366004613c99565b612ba1565b61023f6104e8366004614303565b612bae565b610499612d39565b61023f61050336600461410e565b612d45565b61023f610516366004614353565b612f91565b61035e610529366004613ae6565b61315b565b61023f61053c3660046143b0565b613168565b3361054d600d826133cf565b6105905760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b60405180910390fd5b8161059c600a826133f4565b6105d75760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6000838152600c60205260409020541561064a576000838152600c6020526040902080548061060857610608614425565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff19169055906106416002830182613991565b505090556105d7565b6000838152600c60205260408120610661916139cb565b61066c600a8461340c565b50604080518481526001600160401b03602082015260808183018190526000908201526001606082015290516000805160206149538339815191529181900360a00190a1505050565b60606000806106c4600a613418565b905060005b818110156107055760006106de600a83613422565b6000818152600c60205260409020549091506106fa9085614451565b9350506001016106c9565b506000826001600160401b0381111561072057610720613e46565b60405190808252806020026020018201604052801561076d57816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161073e5790505b509050600061077c600a613418565b90506000805b82811015610915576000610797600a83613422565b6000818152600c6020908152604080832080548251818502810185019093528083529495509293909291849084015b828210156108aa57600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b0316938301939093526002830180549293929184019161081990614464565b80601f016020809104026020016040519081016040528092919081815260200182805461084590614464565b80156108925780601f1061086757610100808354040283529160200191610892565b820191906000526020600020905b81548152906001019060200180831161087557829003601f168201915b505050505081525050815260200190600101906107c6565b50505050905060005b8151811015610907578181815181106108ce576108ce614498565b60200260200101518786806108e2906144ae565b9750815181106108f4576108f4614498565b60209081029190910101526001016108b3565b505050806001019050610782565b509195945050505050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061095490836133f4565b61098f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610a3257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a14575b5050505050815250509050919050565b610a4a61342e565b6001600160a01b0316336001600160a01b031614610a7d576040516365f4906560e01b8152336004820152602401610587565b610a868161345c565b50565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610ad357604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b1557610b0d838383818110610af357610af3614498565b9050602002016020810190610b089190613c99565b61352e565b600101610ad6565b505050565b60606000610b2781613418565b6001600160401b03811115610b3e57610b3e613e46565b604051908082528060200260200182016040528015610b67578160200160208202803683370190505b5090506000805b610b786000613418565b811015610c2d576000610b8b8183613422565b60008181526002602052604081209192505b6002820154811015610c1f57876001600160a01b0316826002018281548110610bc857610bc8614498565b6000918252602090912001546001600160a01b031603610c1757828686610bee816144c7565b975063ffffffff1681518110610c0657610c06614498565b602002602001018181525050610c1f565b600101610b9d565b505050806001019050610b6e565b5060008163ffffffff166001600160401b03811115610c4e57610c4e613e46565b604051908082528060200260200182016040528015610c8757816020015b610c746139ec565b815260200190600190039081610c6c5790505b50905060005b8263ffffffff16811015610dc1576040518060400160405280858381518110610cb857610cb8614498565b6020026020010151815260200160006002016000878581518110610cde57610cde614498565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b909104166060820152600282018054845181870281018701909552808552919492936080860193909290830182828015610d9057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d72575b505050505081525050815250828281518110610dae57610dae614498565b6020908102919091010152600101610c8d565b50949350505050565b6000610dd66005613418565b905090565b60606000610de881613418565b6001600160401b03811115610dff57610dff613e46565b604051908082528060200260200182016040528015610e3857816020015b610e256139ec565b815260200190600190039081610e1d5790505b50905060005b610e486000613418565b811015610f46576000610e5b8183613422565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610f1457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ef6575b505050505081525050815250838381518110610f3257610f32614498565b602090810291909101015250600101610e3e565b50919050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201819052909190610f8482856133f4565b610fbf5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b9091041660608201529482018054845181870281018701909552808552929695919491938793608086019391929183018282801561107957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161105b575b505050505081525050925080805461109090614464565b80601f01602080910402602001604051908101604052809291908181526020018280546110bc90614464565b80156111095780601f106110de57610100808354040283529160200191611109565b820191906000526020600020905b8154815290600101906020018083116110ec57829003601f168201915b505050505090509250925092509193909250565b6001600160a01b0380831660009081526007602052604090206002015483911661117d57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b336111896008826133cf565b6111c35760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808516600090815260076020526040902060030154859133911681146112215760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b038616600090815260076020526040902080546112489060ff16876135f3565b80548690829060ff191660018360058111156112665761126661406f565b021790555060028101546040516001600160a01b03909116907f20891cc7622c7951cbd8c70c61a5201eb45625b8c00e8f6c986cfca78f3dbfa0906112ac9089906144ea565b60405180910390a250505050505050565b6112c56139ec565b6112cf6000613418565b821061130c5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b60006113188184613422565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b90910416606082015291810180548651818602810186019097528087529697509395838701959294919360808601939291908301828280156113d157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113b3575b5050509190925250505090529392505050565b336000818152600760205260409020600201546001600160a01b031661144057604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b61144b6000866133f4565b1561148c57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b60005b8451811015611510576114c88582815181106114ad576114ad614498565b602002602001015160006005016133cf90919063ffffffff16565b61150857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b60010161148f565b506040805160a0810182528481526000602082018190529181018290526060810182905260808101869052906115469087613786565b5060008681526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff199099169190941617969096179590951617909355608084015180518594936115d693908501920190613a36565b50505060008681526003602052604090206115f1848261455d565b5060008681526004602052604090819020859055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb90611639908890889088908890614616565b60405180910390a1505050505050565b60006116566008836133cf565b92915050565b336116686008826133cf565b6116a25760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b0380841660009081526007602052604090206002015484911661170257604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808516600090815260076020526040902060030154859133911681146117605760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b038616600090815260076020908152604091829020915161178a91889101614652565b60405160208183030381529060405280519060200120816001016040516020016117b4919061466e565b60405160208183030381529060405280519060200120036118045760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b60018101611812878261455d565b5060028101546040516001600160a01b03909116907f4505168a8705a16fd4d0575197fd0f510db69df93a065e158ad2c0957ba12bac906112ac908990614412565b61185c61342e565b6001600160a01b0316336001600160a01b03161461188f576040516365f4906560e01b8152336004820152602401610587565b6001600160a01b0381166118d25760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b6118dd600d82613792565b6119185760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6040516001600160a01b038216907ff9889c857e5356066b564327caa757c325ecbc001b2b47d72edf8cf9aedb1be590600090a250565b6060610dd660006137a7565b606081611969600a826133f4565b6119a45760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6000838152600c6020908152604080832080548251818502810185019093528083529193909284015b82821015611ab157600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b03169383019390935260028301805492939291840191611a2090614464565b80601f0160208091040260200160405190810160405280929190818152602001828054611a4c90614464565b8015611a995780601f10611a6e57610100808354040283529160200191611a99565b820191906000526020600020905b815481529060010190602001808311611a7c57829003601f168201915b505050505081525050815260200190600101906119cd565b50505050915050919050565b611ae86040805160808101909152806000815260606020820181905260006040830181905291015290565b611af36005836133cf565b611b3357604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b038216600090815260076020526040908190208151608081019092528054829060ff166005811115611b6e57611b6e61406f565b6005811115611b7f57611b7f61406f565b8152602001600182018054611b9390614464565b80601f0160208091040260200160405190810160405280929190818152602001828054611bbf90614464565b8015611c0c5780601f10611be157610100808354040283529160200191611c0c565b820191906000526020600020905b815481529060010190602001808311611bef57829003601f168201915b505050918352505060028201546001600160a01b03908116602083015260039092015490911660409091015292915050565b81611c4a6000826133f4565b611c855760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808316600090815260076020526040902060020154839116611ce557604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b6000848152600260205260408120905b6002820154811015611d7e57846001600160a01b0316826002018281548110611d2057611d20614498565b6000918252602090912001546001600160a01b031603611d7657604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b600101611cf5565b5060028101805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b03881690811790915560408051898152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600160405180910390a15050505050565b33611e07600d826133cf565b611e415760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b67fffffffffffffffe196001600160401b03851601611e8f5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b6000829003611ecd5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b611ed8600a866133f4565b611ee957611ee7600a86613786565b505b6000858152600c6020526040812054905b81811015611fd0576000878152600c6020526040902080546001600160401b038816919083908110611f2e57611f2e614498565b60009182526020909120600160039092020101546001600160401b031603611fc8576000878152600c6020526040902080548691869184908110611f7457611f74614498565b90600052602060002090600302016002019182611f929291906146e4565b50600080516020614953833981519152878787876000604051611fb995949392919061479d565b60405180910390a150506120c3565b600101611efa565b506000600c0160008781526020019081526020016000206040518060600160405280888152602001876001600160401b0316815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050835460018082018655948252602091829020845160039092020190815590830151938101805467ffffffffffffffff19166001600160401b0390951694909417909355506040810151909190600282019061209a908261455d565b50505060008051602061495383398151915286868686600060405161163995949392919061479d565b5050505050565b606060006120d86005613418565b6001600160401b038111156120ef576120ef613e46565b60405190808252806020026020018201604052801561214b57816020015b6121386040805160808101909152806000815260606020820181905260006040830181905291015290565b81526020019060019003908161210d5790505b50905060005b61215b6005613418565b811015610f465760076000612171600584613422565b6001600160a01b03168152602081019190915260409081016000208151608081019092528054829060ff1660058111156121ad576121ad61406f565b60058111156121be576121be61406f565b81526020016001820180546121d290614464565b80601f01602080910402602001604051908101604052809291908181526020018280546121fe90614464565b801561224b5780601f106122205761010080835404028352916020019161224b565b820191906000526020600020905b81548152906001019060200180831161222e57829003601f168201915b505050918352505060028201546001600160a01b039081166020830152600390920154909116604090910152825183908390811061228b5761228b614498565b6020908102919091010152600101612151565b6122a661342e565b6001600160a01b0316336001600160a01b0316146122d9576040516365f4906560e01b8152336004820152602401610587565b6122e46008826133cf565b61232857604080518082018252601281527113d41154905513d497d393d517d193d5539160721b6020820152905162461bcd60e51b81526105879190600401614412565b60005b6123356005613418565b8110156123bd576001600160a01b03821660076000612355600585613422565b6001600160a01b03908116825260208201929092526040016000206003015416036123b557604080518082018252600d81526c4f55545f4f465f424f554e445360981b6020820152905162461bcd60e51b81526105879190600401614412565b60010161232b565b506123c9600882613792565b506040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b038082166000908152600760205260409020600301548291339116811461245f5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03838116600090815260076020526040902060020154166124bd57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b60056001600160a01b03841660009081526007602052604090205460ff1660058111156124ec576124ec61406f565b146125355760408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614412565b612540600584613792565b506001600160a01b0383166000908152600760205260408120805460ff191681559061256f6001830182613991565b506002810180546001600160a01b03199081169091556003909101805490911690556040516001600160a01b038416907fcfc24166db4bb677e857cacabd1541fb2b30645021b27c5130419589b84db52b90600090a2505050565b336125d6600d826133cf565b6126105760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6000805b6000858152600c6020526040902054811015612791576000858152600c6020526040902080546001600160401b03861691908390811061265657612656614498565b60009182526020909120600160039092020101546001600160401b031603612789576000858152600c602052604090208054612694906001906147ed565b815481106126a4576126a4614498565b90600052602060002090600302016000600c01600087815260200190815260200160002082815481106126d9576126d9614498565b600091825260209091208254600390920201908155600180830154908201805467ffffffffffffffff19166001600160401b0390921691909117905560028082019061272790840182614800565b5050506000858152600c6020526040902080548061274757612747614425565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff19169055906127806002830182613991565b50509055600191505b600101612614565b50806127ce5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b604080518581526001600160401b038516602082015260808183018190526000908201526001606082015290516000805160206149538339815191529181900360a00190a150505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661286357604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b155761289d83838381811061288357612883614498565b90506020020160208101906128989190613c99565b61345c565b600101612866565b6000610dd681613418565b6128b861342e565b6001600160a01b0316336001600160a01b0316146128eb576040516365f4906560e01b8152336004820152602401610587565b610a868161352e565b600080805b6129036000613418565b8110156129955760006129168183613422565b60008181526002602052604081209192505b600282015481101561298757866001600160a01b031682600201828154811061295357612953614498565b6000918252602090912001546001600160a01b03160361297f5784612977816144ae565b955050612987565b600101612928565b5050508060010190506128f9565b5092915050565b6060610dd660056137a7565b60606000828410604051806040016040528060078152602001664241445f41524760c81b815250906129ed5760405162461bcd60e51b81526004016105879190614412565b5060006129fa85856147ed565b6001600160401b03811115612a1157612a11613e46565b604051908082528060200260200182016040528015612a4a57816020015b612a376139ec565b815260200190600190039081612a2f5790505b50905060005b612a5a6000613418565b612a648288614451565b108015612a79575084612a778288614451565b105b15612b89576000612a95612a8d8389614451565b600090613422565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015612b4e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612b30575b505050505081525050815250838381518110612b6c57612b6c614498565b60200260200101819052505080612b82906144ae565b9050612a50565b5080612b956000613418565b90969410159450505050565b6000611656600d836133cf565b336000818152600760205260409020600201546001600160a01b0316612c0a57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b612c156000876133f4565b612c505760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b0386161790558215612cb8576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b0316600103612ce0576000878152600360205260408120612ce091613991565b60408051888152602081018790526001600160401b03861681830152841515606082015290517fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b9181900360800190a150505050505050565b6060610dd660086137a7565b81612d516000826133f4565b612d8c5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03808316600090815260076020526040902060020154839116612dec57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b600084815260026020526040812090805b6002830154811015612f0657856001600160a01b0316836002018281548110612e2857612e28614498565b6000918252602090912001546001600160a01b031603612efe57600283018054612e54906001906147ed565b81548110612e6457612e64614498565b6000918252602090912001546002840180546001600160a01b039092169183908110612e9257612e92614498565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082600201805480612ed357612ed3614425565b600082815260209020810160001990810180546001600160a01b031916905501905560019150612f06565b600101612dfd565b5080612f4857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b604080518781526001600160a01b03871660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f90606001611639565b33612f9d6008826133cf565b612fd75760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614412565b6001600160a01b03848116600090815260076020526040902060020154161561303657604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b600060405180608001604052808460058111156130555761305561406f565b8152602081018690526001600160a01b03871660408201523360609091015290506130816005866137b4565b506001600160a01b03851660009081526007602052604090208151815483929190829060ff191660018360058111156130bc576130bc61406f565b0217905550602082015160018201906130d5908261455d565b506040828101516002830180546001600160a01b03199081166001600160a01b039384161790915560609094015160039093018054909416928116929092179092559051908616907fd6f3629b08191adb8308c3a65d5f8803b7f8f3e359c433fa7ae623276635e5619061314c90879087906148cc565b60405180910390a25050505050565b6000611656600a836133f4565b336000818152600760205260409020600201546001600160a01b03166131c457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614412565b60005b828110156133c957368484838181106131e2576131e2614498565b60a0029190910191506131f99050600082356133f4565b613271577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561323560808501606086016148ee565b60408051808201825260098152681393d517d193d5539160ba1b602082015290516132639493929190614909565b60405180910390a1506133c1565b80356000908152600260205260409081902090820135815561329960808301606084016148ee565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556132cc60a0830160808401614937565b15613304576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b61331460808301606084016148ee565b6001600160401b031660010361333d578135600090815260036020526040812061333d91613991565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561337560808601606087016148ee565b61338560a0870160808801614937565b6040516133b6949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b6001016131c7565b50505050565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600081815260018301602052604081205415156133ed565b60006133ed83836137c9565b6000611656825490565b60006133ed83836138bc565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b6001600160a01b03811661349f5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b6134aa6008826133cf565b156134eb57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b6134f66008826137b4565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b0381166135715760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614412565b61357c600d826137b4565b6135bc57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614412565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b60008260058111156136075761360761406f565b148061365b575060018260058111156136225761362261406f565b14801561365b5750600381600581111561363e5761363e61406f565b148061365b575060048160058111156136595761365961406f565b145b806136ae575060028260058111156136755761367561406f565b1480156136ae575060038160058111156136915761369161406f565b14806136ae575060048160058111156136ac576136ac61406f565b145b80613701575060048260058111156136c8576136c861406f565b148015613701575060038160058111156136e4576136e461406f565b1480613701575060058160058111156136ff576136ff61406f565b145b806137395750600382600581111561371b5761371b61406f565b148015613739575060058160058111156137375761373761406f565b145b15613742575050565b60408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614412565b60006133ed83836138e6565b60006133ed836001600160a01b0384166137c9565b606060006133ed83613935565b60006133ed836001600160a01b0384166138e6565b600081815260018301602052604081205480156138b25760006137ed6001836147ed565b8554909150600090613801906001906147ed565b905080821461386657600086600001828154811061382157613821614498565b906000526020600020015490508087600001848154811061384457613844614498565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061387757613877614425565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050611656565b6000915050611656565b60008260000182815481106138d3576138d3614498565b9060005260206000200154905092915050565b600081815260018301602052604081205461392d57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155611656565b506000611656565b60608160000180548060200260200160405190810160405280929190818152602001828054801561398557602002820191906000526020600020905b815481526020019060010190808311613971575b50505050509050919050565b50805461399d90614464565b6000825580601f106139ad575050565b601f016020900490600052602060002090810190610a869190613a9b565b5080546000825560030290600052602060002090810190610a869190613ab0565b604080518082019091526000815260208101613a316040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b828054828255906000526020600020908101928215613a8b579160200282015b82811115613a8b57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613a56565b50613a97929150613a9b565b5090565b5b80821115613a975760008155600101613a9c565b80821115613a9757600080825560018201805467ffffffffffffffff19169055613add6002830182613991565b50600301613ab0565b600060208284031215613af857600080fd5b5035919050565b60005b83811015613b1a578181015183820152602001613b02565b50506000910152565b60008151808452613b3b816020860160208601613aff565b601f01601f19169290920160200192915050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613bcb57888303603f19018552815180518452878101516001600160401b0316888501528601516060878501819052613bb781860183613b23565b968901969450505090860190600101613b78565b509098975050505050505050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015613c5f5784516001600160a01b03168252938301936001929092019190830190613c36565b509695505050505050565b6020815260006133ed6020830184613bd9565b80356001600160a01b0381168114613c9457600080fd5b919050565b600060208284031215613cab57600080fd5b6133ed82613c7d565b60008060208385031215613cc757600080fd5b82356001600160401b0380821115613cde57600080fd5b818501915085601f830112613cf257600080fd5b813581811115613d0157600080fd5b8660208260051b8501011115613d1657600080fd5b60209290920196919550909350505050565b805182526000602082015160406020850152613d476040850182613bd9565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015613d9c57601f19868403018952613d8a838351613d28565b98840198925090830190600101613d6e565b5090979650505050505050565b6020815260006133ed6020830184613d4f565b606081526000613dcf6060830186613bd9565b8460208401528281036040840152613de78185613b23565b9695505050505050565b803560068110613c9457600080fd5b60008060408385031215613e1357600080fd5b613e1c83613c7d565b9150613e2a60208401613df1565b90509250929050565b6020815260006133ed6020830184613d28565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613e8457613e84613e46565b604052919050565b600082601f830112613e9d57600080fd5b81356001600160401b03811115613eb657613eb6613e46565b613ec9601f8201601f1916602001613e5c565b818152846020838601011115613ede57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613f1157600080fd5b843593506020808601356001600160401b0380821115613f3057600080fd5b818801915088601f830112613f4457600080fd5b813581811115613f5657613f56613e46565b8060051b613f65858201613e5c565b918252838101850191858101908c841115613f7f57600080fd5b948601945b83861015613fa457613f9586613c7d565b82529486019490860190613f84565b9850505050604088013594506060880135925080831115613fc457600080fd5b5050613fd287828801613e8c565b91505092959194509250565b60008060408385031215613ff157600080fd5b613ffa83613c7d565b915060208301356001600160401b0381111561401557600080fd5b61402185828601613e8c565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561406357835183529284019291840191600101614047565b50909695505050505050565b634e487b7160e01b600052602160045260246000fd5b600681106140a357634e487b7160e01b600052602160045260246000fd5b9052565b6140b2828251614085565b60006020820151608060208501526140cd6080850182613b23565b6040848101516001600160a01b03908116918701919091526060948501511693909401929092525090919050565b6020815260006133ed60208301846140a7565b6000806040838503121561412157600080fd5b82359150613e2a60208401613c7d565b80356001600160401b0381168114613c9457600080fd5b6000806000806060858703121561415e57600080fd5b8435935061416e60208601614131565b925060408501356001600160401b038082111561418a57600080fd5b818701915087601f83011261419e57600080fd5b8135818111156141ad57600080fd5b8860208285010111156141bf57600080fd5b95989497505060200194505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561422557603f198886030184526142138583516140a7565b945092850192908501906001016141f7565b5092979650505050505050565b6000806040838503121561424557600080fd5b82359150613e2a60208401614131565b60008151808452602080850194506020840160005b8381101561428f5781516001600160a01b03168752958201959082019060010161426a565b509495945050505050565b6020815260006133ed6020830184614255565b600080604083850312156142c057600080fd5b50508035926020909101359150565b6040815260006142e26040830185613d4f565b905082151560208301529392505050565b80358015158114613c9457600080fd5b600080600080600060a0868803121561431b57600080fd5b85359450602086013593506040860135925061433960608701614131565b9150614347608087016142f3565b90509295509295909350565b60008060006060848603121561436857600080fd5b61437184613c7d565b925060208401356001600160401b0381111561438c57600080fd5b61439886828701613e8c565b9250506143a760408501613df1565b90509250925092565b600080602083850312156143c357600080fd5b82356001600160401b03808211156143da57600080fd5b818501915085601f8301126143ee57600080fd5b8135818111156143fd57600080fd5b86602060a083028501011115613d1657600080fd5b6020815260006133ed6020830184613b23565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156116565761165661443b565b600181811c9082168061447857607f821691505b602082108103610f4657634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016144c0576144c061443b565b5060010190565b600063ffffffff8083168181036144e0576144e061443b565b6001019392505050565b602081016116568284614085565b601f821115610b15576000816000526020600020601f850160051c810160208610156145215750805b601f850160051c820191505b818110156145405782815560010161452d565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561457657614576613e46565b61458a816145848454614464565b846144f8565b602080601f8311600181146145b957600084156145a75750858301515b6145b18582614548565b865550614540565b600085815260208120601f198616915b828110156145e8578886015182559484019460019091019084016145c9565b50858210156146065787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061462f6080830186614255565b84604084015282810360608401526146478185613b23565b979650505050505050565b60008251614664818460208701613aff565b9190910192915050565b600080835461467c81614464565b6001828116801561469457600181146146a9576146d8565b60ff19841687528215158302870194506146d8565b8760005260208060002060005b858110156146cf5781548a8201529084019082016146b6565b50505082870194505b50929695505050505050565b6001600160401b038311156146fb576146fb613e46565b61470f836147098354614464565b836144f8565b6000601f84116001811461473d576000851561472b5750838201355b6147358682614548565b8455506120c3565b600083815260209020601f19861690835b8281101561476e578685013582556020948501946001909201910161474e565b508682101561478b5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8581526001600160401b038516602082015260806040820152826080820152828460a0830137600081840160a0908101919091529115156060820152601f909201601f1916909101019392505050565b818103818111156116565761165661443b565b81810361480b575050565b6148158254614464565b6001600160401b0381111561482c5761482c613e46565b61483a816145848454614464565b6000601f82116001811461486857600083156148565750848201545b6148608482614548565b8555506120c3565b600085815260209020601f19841690600086815260209020845b838110156148a25782860154825560019586019590910190602001614882565b50858310156146065793015460001960f8600387901b161c19169092555050600190811b01905550565b6040815260006148df6040830185613b23565b90506133ed6020830184614085565b60006020828403121561490057600080fd5b6133ed82614131565b8481528360208201526001600160401b0383166040820152608060608201526000613de76080830184613b23565b60006020828403121561494957600080fd5b6133ed826142f356fec01483261a841a868b99cb8802faed4ea44a1a816651c4f7ee061a96a205fe98","sourceMap":"553:732:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2702:351:42;;;;;;:::i;:::-;;:::i;:::-;;4038:747;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1855:196:48;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1130:99:46:-;;;;;;:::i;:::-;;:::i;1017:221:42:-;;;;;;:::i;:::-;;:::i;9126:855:48:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2842:91:44:-;;;:::i;:::-;;;5451:25:85;;;5439:2;5424:18;2842:91:44;5305:177:85;8230:344:48;;;:::i;2416:350::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;1721:394:44:-;;;;;;:::i;:::-;;:::i;2055:296:48:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;769:1082::-;;;;;;:::i;:::-;;:::i;1233:116:46:-;;;;;;:::i;:::-;;:::i;:::-;;;9289:14:85;;9282:22;9264:41;;9252:2;9237:18;1233:116:46;9124:187:85;2119:453:44;;;;;;:::i;:::-;;:::i;5469:290:42:-;;;;;;:::i;:::-;;:::i;8121:105:48:-;;;:::i;:::-;;;;;;;:::i;3810:148:42:-;;;;;;:::i;:::-;;:::i;2576:262:44:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6926:504:48:-;;;;;;:::i;:::-;;:::i;1705:904:42:-;;;;;;:::i;:::-;;:::i;3048:254:44:-;;;:::i;:::-;;;;;;;:::i;1353:466:46:-;;;;;;:::i;:::-;;:::i;1241:476:44:-;;;;;;:::i;:::-;;:::i;3151:587:42:-;;;;;;:::i;:::-;;:::i;731:220:46:-;;;;;;:::i;:::-;;:::i;8022:95:48:-;;;:::i;5276:121:42:-;;;;;;:::i;:::-;;:::i;9985:444:48:-;;;;;;:::i;:::-;;:::i;2937:107:44:-;;;:::i;:::-;;;;;;;:::i;8578:544:48:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;5061:146:42:-;;;;;;:::i;:::-;;:::i;2770:1696:48:-;;;;;;:::i;:::-;;:::i;1823:107:46:-;;;:::i;7434:584:48:-;;;;;;:::i;:::-;;:::i;636:601:44:-;;;;;;:::i;:::-;;:::i;1503:123:42:-;;;;;;:::i;:::-;;:::i;4470:2452:48:-;;;;;;:::i;:::-;;:::i;2702:351:42:-;2786:10;3799:42:50;:24;2786:10:42;3799:33:50;:42::i;:::-;3794:91;;3856:28;;;;;;;;;;;-1:-1:-1;;;3856:28:50;;;;3849:36;;-1:-1:-1;;;3849:36:50;;;;3856:28;3849:36;;;:::i;:::-;;;;;;;;3794:91;2814:3:42;3642:34:50::1;:20;2814:3:42::0;3642:29:50::1;:34::i;:::-;3637:84;;3691:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3691:29:50::1;::::0;::::1;::::0;3684:37;;-1:-1:-1;;;3684:37:50;;::::1;::::0;3691:29;3684:37:::1;;;:::i;3637:84::-;2832:2:42::2;:21:::0;;;:16:::2;:21;::::0;;;;:28;:33;2825:84:::2;;2875:2;:21:::0;;;:16:::2;:21;::::0;;;;:27;;;::::2;;;;:::i;:::-;;::::0;;;::::2;::::0;;::::2;-1:-1:-1::0;;2875:27:42;;;;;::::2;;::::0;;;::::2;::::0;::::2;::::0;;-1:-1:-1;;2875:27:42::2;::::0;;;::::2;;::::0;::::2;::::0;::::2;:::i;:::-;;;;;2825:84;;;2922:2;:21:::0;;;:16:::2;:21;::::0;;;;2914:30:::2;::::0;::::2;:::i;:::-;2951:32;:20;2979:3:::0;2951:27:::2;:32::i;:::-;-1:-1:-1::0;2995:53:42::2;::::0;;17560:25:85;;;-1:-1:-1;;;;;17616:2:85;17601:18;;17594:59;17689:3;17669:18;;;17662:31;;;-1:-1:-1;17709:19:85;;;17702:30;3043:4:42::2;17799:2:85::0;17784:18;;17777:50;2995:53:42;;-1:-1:-1;;;;;;;;;;;2995:53:42;;;;17764:3:85;2995:53:42;;::::2;3891:1:50::1;2702:351:42::0;;:::o;4038:747::-;4092:16;4116:20;;4174:29;:20;:27;:29::i;:::-;4147:56;;4214:9;4209:154;4233:16;4229:1;:20;4209:154;;;4264:11;4278:26;:20;4302:1;4278:23;:26::i;:::-;4328:2;:21;;;:16;:21;;;;;:28;4264:40;;-1:-1:-1;4312:44:42;;;;:::i;:::-;;-1:-1:-1;;4251:3:42;;4209:154;;;;4369:25;4411:12;-1:-1:-1;;;;;4397:27:42;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;4397:27:42;;;;;;;;;;;;;;;-1:-1:-1;4369:55:42;-1:-1:-1;4431:14:42;4448:29;:20;:27;:29::i;:::-;4431:46;;4483:9;4507;4502:257;4526:6;4522:1;:10;4502:257;;;4547:11;4561:26;:20;4585:1;4561:23;:26::i;:::-;4595:28;4626:21;;;:16;:21;;;;;;;;4595:52;;;;;;;;;;;;;;;;;4547:40;;-1:-1:-1;4595:28:42;;:52;;4626:21;4595:28;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4595:52:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4660:9;4655:98;4679:11;:18;4675:1;:22;4655:98;;;4730:11;4742:1;4730:14;;;;;;;;:::i;:::-;;;;;;;4714:8;4723:3;;;;;:::i;:::-;;;4714:13;;;;;;;;:::i;:::-;;;;;;;;;;:30;4699:3;;4655:98;;;;4539:220;;4534:3;;;;;4502:257;;;-1:-1:-1;4772:8:42;;4038:747;-1:-1:-1;;;;;4038:747:42:o;1855:196:48:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1941:29:48;;1961:8;1941:19;:29::i;:::-;1936:73;;1979:29;;;;;;;;;;;-1:-1:-1;;;1979:29:48;;;;1972:37;;-1:-1:-1;;;1972:37:48;;;;1979:29;1972:37;;;:::i;1936:73::-;2023:2;:23;;;:13;:23;;;;;;;;;2016:30;;;;;;;;;;;;;;;-1:-1:-1;;;;;2016:30:48;;;;;;;-1:-1:-1;;;2016:30:48;;;;;;;;-1:-1:-1;;;2016:30:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2023:23;;2016:30;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2016:30:48;;;;;;;;;;;;;;;;;;;;;;;;;;;1855:196;;;:::o;1130:99:46:-;293:8:35;:6;:8::i;:::-;-1:-1:-1;;;;;279:22:35;:10;-1:-1:-1;;;;;279:22:35;;275:79;;318:29;;-1:-1:-1;;;318:29:35;;336:10;318:29;;;18903:51:85;18876:18;;318:29:35;18757:203:85;275:79:35;1198:26:46::1;1215:8;1198:16;:26::i;:::-;1130:99:::0;:::o;1017:221:42:-;296:66:26;1263:42:25;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:25;;;;;;;;;;;1258:100;1125:9:42::1;1120:114;1140:25:::0;;::::1;1120:114;;;1180:47;1209:14;;1224:1;1209:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;1180:28;:47::i;:::-;1167:3;;1120:114;;;;1017:221:::0;;:::o;9126:855:48:-;9204:21;9290:29;9336:19;9290:29;9336:17;:19::i;:::-;-1:-1:-1;;;;;9322:34:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9322:34:48;-1:-1:-1;9290:66:48;-1:-1:-1;9362:18:48;;9386:326;9410:19;:2;:17;:19::i;:::-;9406:1;:23;9386:326;;;9444:10;9457:16;9444:10;9471:1;9457:13;:16::i;:::-;9481:21;9505:17;;;:13;:17;;;;;9444:29;;-1:-1:-1;9530:176:48;9554:12;;;:19;9550:23;;9530:176;;;9613:11;-1:-1:-1;;;;;9594:30:48;:6;:12;;9607:1;9594:15;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;9594:15:48;:30;9590:108;;9668:2;9638:12;9651:13;;;;:::i;:::-;;;9638:27;;;;;;;;;;:::i;:::-;;;;;;:32;;;;;9682:5;;9590:108;9575:3;;9530:176;;;;9436:276;;9431:3;;;;;9386:326;;;;9718:29;9769:11;9750:31;;-1:-1:-1;;;;;9750:31:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;9718:63;;9792:9;9787:169;9811:11;9807:15;;:1;:15;9787:169;;;9850:99;;;;;;;;9877:12;9890:1;9877:15;;;;;;;;:::i;:::-;;;;;;;9850:99;;;;9910:2;:13;;:30;9924:12;9937:1;9924:15;;;;;;;;:::i;:::-;;;;;;;;;;;;9910:30;;;;;;;;;;;;;-1:-1:-1;9910:30:48;9850:99;;;;;;;;;;;;;;;-1:-1:-1;;;;;9850:99:48;;;;;;;-1:-1:-1;;;9850:99:48;;;;;;;;-1:-1:-1;;;9850:99:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9910:30;;9850:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9850:99:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;9837:7;9845:1;9837:10;;;;;;;;:::i;:::-;;;;;;;;;;:112;9824:3;;9787:169;;;-1:-1:-1;9969:7:48;9126:855;-1:-1:-1;;;;9126:855:48:o;2842:91:44:-;2889:7;2911:17;:8;:15;:17::i;:::-;2904:24;;2842:91;:::o;8230:344:48:-;8278:21;8307:29;8358:19;8307:29;8358:17;:19::i;:::-;-1:-1:-1;;;;;8339:39:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;8307:71;;8390:9;8385:164;8409:19;:2;:17;:19::i;:::-;8405:1;:23;8385:164;;;8443:10;8456:16;8443:10;8470:1;8456:13;:16::i;:::-;8493:49;;;;;;;;;;;-1:-1:-1;8523:17:48;;;:13;8493:49;8523:17;;;;;;;8493:49;;;;;;;;;;;;;;;-1:-1:-1;;;;;8493:49:48;;;;;;;-1:-1:-1;;;8493:49:48;;;;;;;;-1:-1:-1;;;8493:49:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;8443:29;;-1:-1:-1;8493:49:48;;;;;;;;8523:17;;8493:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8493:49:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;8480:7;8488:1;8480:10;;;;;;;;:::i;:::-;;;;;;;;;;:62;-1:-1:-1;8430:3:48;;8385:164;;;-1:-1:-1;8562:7:48;8230:344;-1:-1:-1;8230:344:48:o;2416:350::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2544:29:48;-1:-1:-1;2564:8:48;2544:19;:29::i;:::-;2539:73;;2582:29;;;;;;;;;;;-1:-1:-1;;;2582:29:48;;;;2575:37;;-1:-1:-1;;;2575:37:48;;;;2582:29;2575:37;;;:::i;2539:73::-;2634:2;:23;;;:13;:23;;;;;;;;2665:33;:43;;;;;;2716:29;:39;;;;;;2619:142;;;;;;;;;;;;;;;-1:-1:-1;;;;;2619:142:48;;;;;;;-1:-1:-1;;;2619:142:48;;;;;;;;-1:-1:-1;;;2619:142:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;2634:23;;2665:43;2716:39;;2619:142;;2634:23;;2619:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2619:142:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:350;;;;;:::o;1721:394:44:-;-1:-1:-1;;;;;3039:22:50;;;3085:1;3039:22;;;:16;:22;;;;;:34;;;1825:11:44;;3039:34:50;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:50;;;;3095:42;;-1:-1:-1;;;3095:42:50;;;;3102:34;3095:42;;;:::i;3035:102::-;1855:10:44::1;3204:31:50;:12;1855:10:44::0;3204:21:50::1;:31::i;:::-;3199:74;;3244:28;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3244:28:50::1;::::0;::::1;::::0;3237:36;;-1:-1:-1;;;3237:36:50;;::::1;::::0;3244:28;3237:36:::1;;;:::i;3199:74::-;-1:-1:-1::0;;;;;3490:22:50;;::::2;:2;:22:::0;;;:16:::2;:22;::::0;;;;:31:::2;;::::0;1888:11:44;;1901:10:::2;::::0;3490:31:50::2;:43:::0;::::2;3486:91;;3548:28;::::0;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;3548:28:50::2;::::0;::::2;::::0;3541:36;;-1:-1:-1;;;3541:36:50;;::::2;::::0;3548:28;3541:36:::2;;;:::i;3486:91::-;-1:-1:-1::0;;;;;1941:29:44;::::3;1921:17;1941:29:::0;;;:16:::3;:29;::::0;;;;2009:11;;1977:52:::3;::::0;2009:11:::3;;2022:6:::0;1977:31:::3;:52::i;:::-;2036:20:::0;;2050:6;;2036:4;;-1:-1:-1;;2036:20:44::3;::::0;2050:6;2036:20:::3;::::0;::::3;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;2085:16:44::3;::::0;::::3;::::0;2067:43:::3;::::0;-1:-1:-1;;;;;2085:16:44;;::::3;::::0;2067:43:::3;::::0;::::3;::::0;2103:6;;2067:43:::3;:::i;:::-;;;;;;;;1915:200;3279:1:50::2;;3143::::1;1721:394:44::0;;;:::o;2055:296:48:-;2123:19;;:::i;:::-;2159;:2;:17;:19::i;:::-;2154:1;:24;2150:82;;2195:29;;;;;;;;;;;-1:-1:-1;;;2195:29:48;;;;2188:37;;-1:-1:-1;;;2188:37:48;;;;2195:29;2188:37;;;:::i;2150:82::-;2237:16;2256;2237;2270:1;2256:13;:16::i;:::-;2285:61;;;;;;;;;;;-1:-1:-1;2321:23:48;;;:13;2285:61;2321:23;;;;;;;2285:61;;;;;;;;;;;;;;;-1:-1:-1;;;;;2285:61:48;;;;;;;-1:-1:-1;;;2285:61:48;;;;;;;;-1:-1:-1;;;2285:61:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;2237:35;;-1:-1:-1;2285:61:48;;;;;;;;2321:23;;2285:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2285:61:48;;;;;;;;;;;;;;;;-1:-1:-1;;;2285:61:48;;;;-1:-1:-1;;;2285:61:48;;2278:68;2055:296;-1:-1:-1;;;2055:296:48:o;769:1082::-;934:10;3085:1:50;3039:22;;;:16;:22;;;;;:34;;;-1:-1:-1;;;;;3039:34:50;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:50;;;;3095:42;;-1:-1:-1;;;3095:42:50;;;;3102:34;3095:42;;;:::i;3035:102::-;1019:29:48::1;:2;1039:8:::0;1019:19:::1;:29::i;:::-;1015:83;;;1063:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1063:34:48::1;::::0;::::1;::::0;1056:42;;-1:-1:-1;;;1056:42:48;;::::1;::::0;1063:34;1056:42:::1;;;:::i;1015:83::-;1179:9;1174:142;1198:5;:12;1194:1;:16;1174:142;;;1230:27;1248:5;1254:1;1248:8;;;;;;;;:::i;:::-;;;;;;;1230:2;:8;;:17;;:27;;;;:::i;:::-;1225:84;;1274:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1274:34:48::1;::::0;::::1;::::0;1267:42;;-1:-1:-1;;;1267:42:48;;::::1;::::0;1274:34;1267:42:::1;;;:::i;1225:84::-;1212:3;;1174:142;;;-1:-1:-1::0;1383:144:48::1;::::0;;::::1;::::0;::::1;::::0;;;;;1360:20:::1;1383:144;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;1534:24:::1;::::0;1549:8;1534:14:::1;:24::i;:::-;-1:-1:-1::0;1564:2:48::1;:23:::0;;;:13:::1;:23;::::0;;;;;;;;:32;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;1564:32:48;;::::1;-1:-1:-1::0;;;1564:32:48::1;-1:-1:-1::0;;;;1564:32:48;;::::1;-1:-1:-1::0;;;1564:32:48::1;-1:-1:-1::0;;1564:32:48;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;::::1;::::0;;;1590:6;;1564:23;:32:::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;1602:2:48::1;:39:::0;;;:29:::1;:39;::::0;;;;:58:::1;1644:16:::0;1602:39;:58:::1;:::i;:::-;-1:-1:-1::0;1666:2:48::1;:43:::0;;;:33:::1;:43;::::0;;;;;;:66;;;1744:102;::::1;::::0;::::1;::::0;1700:8;;1783:5;;1712:20;;1824:16;;1744:102:::1;:::i;:::-;;;;;;;;946:905;769:1082:::0;;;;;:::o;1233:116:46:-;1294:4;1313:31;:12;1335:8;1313:21;:31::i;:::-;1306:38;1233:116;-1:-1:-1;;1233:116:46:o;2119:453:44:-;2224:10;3204:31:50;:12;2224:10:44;3204:21:50;:31::i;:::-;3199:74;;3244:28;;;;;;;;;;;-1:-1:-1;;;3244:28:50;;;;3237:36;;-1:-1:-1;;;3237:36:50;;;;3244:28;3237:36;;;:::i;3199:74::-;-1:-1:-1;;;;;3039:22:50;;::::1;3085:1;3039:22:::0;;;:16:::1;:22;::::0;;;;:34:::1;;::::0;2249:11:44;;3039:34:50::1;3035:102;;3102:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3102:34:50::1;::::0;::::1;::::0;3095:42;;-1:-1:-1;;;3095:42:50;;::::1;::::0;3102:34;3095:42:::1;;;:::i;3035:102::-;-1:-1:-1::0;;;;;3490:22:50;;::::2;:2;:22:::0;;;:16:::2;:22;::::0;;;;:31:::2;;::::0;2283:11:44;;2296:10:::2;::::0;3490:31:50::2;:43:::0;::::2;3486:91;;3548:28;::::0;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;3548:28:50::2;::::0;::::2;::::0;3541:36;;-1:-1:-1;;;3541:36:50;;::::2;::::0;3548:28;3541:36:::2;;;:::i;3486:91::-;-1:-1:-1::0;;;;;2336:29:44;::::3;2316:17;2336:29:::0;;;:16:::3;:29;::::0;;;;;;;;2434:21;;::::3;::::0;2451:3;;2434:21:::3;;:::i;:::-;;;;;;;;;;;;;2424:32;;;;;;2410:4;:8;;2393:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;2383:37;;;;;;:73:::0;2372:126:::3;;2470:27;::::0;;;;::::3;::::0;;::::3;::::0;;-1:-1:-1;;;2470:27:44::3;::::0;::::3;::::0;2463:35;;-1:-1:-1;;;2463:35:44;;::::3;::::0;2470:27;2463:35:::3;;;:::i;2372:126::-;2505:8;::::0;::::3;:14;2516:3:::0;2505:8;:14:::3;:::i;:::-;-1:-1:-1::0;2545:16:44::3;::::0;::::3;::::0;2530:37:::3;::::0;-1:-1:-1;;;;;2545:16:44;;::::3;::::0;2530:37:::3;::::0;::::3;::::0;2563:3;;2530:37:::3;:::i;5469:290:42:-:0;293:8:35;:6;:8::i;:::-;-1:-1:-1;;;;;279:22:35;:10;-1:-1:-1;;;;;279:22:35;;275:79;;318:29;;-1:-1:-1;;;318:29:35;;336:10;318:29;;;18903:51:85;18876:18;;318:29:35;18757:203:85;275:79:35;-1:-1:-1;;;;;5551:21:42;::::1;5547:62;;5581:27;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5581:27:42::1;::::0;::::1;::::0;5574:35;;-1:-1:-1;;;5574:35:42;;::::1;::::0;5581:27;5574:35:::1;;;:::i;5547:62::-;5621:40;:24;5653:7:::0;5621:31:::1;:40::i;:::-;5616:90;;5676:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5676:29:42::1;::::0;::::1;::::0;5669:37;;-1:-1:-1;;;5669:37:42;;::::1;::::0;5676:29;5669:37:::1;;;:::i;5616:90::-;5718:36;::::0;-1:-1:-1;;;;;5718:36:42;::::1;::::0;::::1;::::0;;;::::1;5469:290:::0;:::o;8121:105:48:-;8171:16;8202:19;:2;:17;:19::i;3810:148:42:-;3901:16;3887:3;3642:34:50;:20;3887:3:42;3642:29:50;:34::i;:::-;3637:84;;3691:29;;;;;;;;;;;-1:-1:-1;;;3691:29:50;;;;3684:37;;-1:-1:-1;;;3684:37:50;;;;3691:29;3684:37;;;:::i;3637:84::-;3932:2:42::1;:21:::0;;;:16:::1;:21;::::0;;;;;;;3925:28;;;;;;::::1;::::0;;;;;;;;;;;;3932:21;;3925:28;::::1;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;3925:28:42::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;3810:148:::0;;;;:::o;2576:262:44:-;2637:11;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2637:11:44;2710:30;:8;2728:11;2710:17;:30::i;:::-;2705:85;;2755:34;;;;;;;;;;;-1:-1:-1;;;2755:34:44;;;;2748:42;;-1:-1:-1;;;2748:42:44;;;;2755:34;2748:42;;;:::i;2705:85::-;-1:-1:-1;;;;;2804:29:44;;:2;:29;;;:16;:29;;;;;;;2797:36;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2797:36:44;;;-1:-1:-1;;2797:36:44;;;;-1:-1:-1;;;;;2797:36:44;;;;;;;;;;;;;;;;;;;;;2576:262;-1:-1:-1;;2576:262:44:o;6926:504:48:-;7024:8;3338:29:50;:2;7024:8:48;3338:19:50;:29::i;:::-;3333:73;;3376:29;;;;;;;;;;;-1:-1:-1;;;3376:29:50;;;;3369:37;;-1:-1:-1;;;3369:37:50;;;;3376:29;3369:37;;;:::i;3333:73::-;-1:-1:-1;;;;;3039:22:50;;::::1;3085:1;3039:22:::0;;;:16:::1;:22;::::0;;;;:34:::1;;::::0;7043:11:48;;3039:34:50::1;3035:102;;3102:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3102:34:50::1;::::0;::::1;::::0;3095:42;;-1:-1:-1;;;3095:42:50;;::::1;::::0;3102:34;3095:42:::1;;;:::i;3035:102::-;7062:21:48::2;7086:23:::0;;;:13:::2;:23;::::0;;;;;7175:151:::2;7199:12;::::0;::::2;:19:::0;7195:23;::::2;7175:151;;;7256:11;-1:-1:-1::0;;;;;7237:30:48::2;:6;:12;;7250:1;7237:15;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;-1:-1:-1;;;;;7237:15:48::2;:30:::0;7233:86:::2;;7284:34;::::0;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;7284:34:48::2;::::0;::::2;::::0;7277:42;;-1:-1:-1;;;7277:42:48;;::::2;::::0;7284:34;7277:42:::2;;;:::i;7233:86::-;7220:3;;7175:151;;;-1:-1:-1::0;7332:12:48::2;::::0;::::2;:30:::0;;::::2;::::0;;::::2;::::0;;-1:-1:-1;7332:30:48;;;::::2;::::0;;;;;;::::2;::::0;;-1:-1:-1;;;;;;7332:30:48::2;-1:-1:-1::0;;;;;7332:30:48;::::2;::::0;;::::2;::::0;;;7374:51:::2;::::0;;24831:25:85;;;24872:18;;;24865:60;;;;24941:18;;24934:50;7374:51:48::2;::::0;24819:2:85;24804:18;7374:51:48::2;;;;;;;7056:374;3412:1:50::1;6926:504:48::0;;;:::o;1705:904:42:-;1836:10;3799:42:50;:24;1836:10:42;3799:33:50;:42::i;:::-;3794:91;;3856:28;;;;;;;;;;;-1:-1:-1;;;3856:28:50;;;;3849:36;;-1:-1:-1;;;3849:36:50;;;;3856:28;3849:36;;;:::i;3794:91::-;-1:-1:-1;;;;;;;1858:31:42;::::1;::::0;1854:72:::1;;1898:27;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1898:27:42::1;::::0;::::1;::::0;1891:35;;-1:-1:-1;;;1891:35:42;;::::1;::::0;1898:27;1891:35:::1;;;:::i;1854:72::-;1952:1;1936:17:::0;;;1932:58:::1;;1962:27;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1962:27:42::1;::::0;::::1;::::0;1955:35;;-1:-1:-1;;;1955:35:42;;::::1;::::0;1962:27;1955:35:::1;;;:::i;1932:58::-;2002:34;:20;2032:3:::0;2002:29:::1;:34::i;:::-;1997:85;;2046:29;:20;2071:3:::0;2046:24:::1;:29::i;:::-;;1997:85;2156:24;2183:21:::0;;;:16:::1;:21;::::0;;;;:28;;2217:258:::1;2241:16;2237:1;:20;2217:258;;;2276:2;:21:::0;;;:16:::1;:21;::::0;;;;:24;;-1:-1:-1;;;;;2276:51:42;::::1;::::0;:21;2298:1;;2276:24;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:36:::1;:24;::::0;;::::1;;:36;::::0;-1:-1:-1;;;;;2276:36:42::1;:51:::0;2272:197:::1;;2339:2;:21:::0;;;:16:::1;:21;::::0;;;;:24;;2372:5;;;;2361:1;;2339:24;::::1;;;;;:::i;:::-;;;;;;;;;;;:30;;:38;;;;;;;:::i;:::-;;-1:-1:-1::0;;;;;;;;;;;2413:3:42::1;2418:11;2431:5;;2438;2392:52;;;;;;;;;;:::i;:::-;;;;;;;;2454:7;;;;2272:197;2259:3;;2217:258;;;;2481:2;:16;;:21;2498:3;2481:21;;;;;;;;;;;2508:32;;;;;;;;2516:3;2508:32;;;;2521:11;-1:-1:-1::0;;;;;2508:32:42::1;;;;;2534:5;;2508:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;-1:-1:-1;2508:32:42;;;;-1:-1:-1;;2481:60:42;;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;2481:60:42::1;-1:-1:-1::0;;;;;2481:60:42;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;2481:60:42::1;::::0;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;-1:-1:-1::0;;;;;;;;;;;2573:3:42::1;2578:11;2591:5;;2598;2552:52;;;;;;;;;;:::i;3891:1:50:-;1705:904:42::0;;;;;:::o;3048:254:44:-;3094:13;3115:19;3148:17;:8;:15;:17::i;:::-;-1:-1:-1;;;;;3137:29:44;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3137:29:44;;;;;;;;;;;;;;;;;3115:51;;3178:9;3173:106;3197:17;:8;:15;:17::i;:::-;3193:1;:21;3173:106;;;3240:16;:2;3257:14;:8;3269:1;3257:11;:14::i;:::-;-1:-1:-1;;;;;3240:32:44;;;;;;;;;;;;;;-1:-1:-1;3240:32:44;3229:43;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3229:43:44;;;-1:-1:-1;;3229:43:44;;;;-1:-1:-1;;;;;3229:43:44;;;;;;;;;;;;;;;;;;;;:8;;:5;;3235:1;;3229:8;;;;;;:::i;:::-;;;;;;;;;;:43;3216:3;;3173:106;;1353:466:46;293:8:35;:6;:8::i;:::-;-1:-1:-1;;;;;279:22:35;:10;-1:-1:-1;;;;;279:22:35;;275:79;;318:29;;-1:-1:-1;;;318:29:35;;336:10;318:29;;;18903:51:85;18876:18;;318:29:35;18757:203:85;275:79:35;1425:31:46::1;:12;1447:8:::0;1425:21:::1;:31::i;:::-;1420:90;;1471:38;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1471:38:46::1;::::0;::::1;::::0;1464:46;;-1:-1:-1;;;1464:46:46;;::::1;::::0;1471:38;1464:46:::1;;;:::i;1420:90::-;1576:9;1571:171;1595:17;:8;:15;:17::i;:::-;1591:1;:21;1571:171;;;-1:-1:-1::0;;;;;1631:53:46;::::1;:16;:2;1648:14;:8;1660:1:::0;1648:11:::1;:14::i;:::-;-1:-1:-1::0;;;;;1631:32:46;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;1631:32:46;:41:::1;;::::0;::::1;:53:::0;1627:108:::1;;1701:33;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1701:33:46::1;::::0;::::1;::::0;1694:41;;-1:-1:-1;;;1694:41:46;;::::1;::::0;1701:33;1694:41:::1;;;:::i;1627:108::-;1614:3;;1571:171;;;-1:-1:-1::0;1748:29:46::1;:12;1768:8:::0;1748:19:::1;:29::i;:::-;-1:-1:-1::0;1789:25:46::1;::::0;-1:-1:-1;;;;;1789:25:46;::::1;::::0;::::1;::::0;;;::::1;1353:466:::0;:::o;1241:476:44:-;-1:-1:-1;;;;;3490:22:50;;;:2;:22;;;:16;:22;;;;;:31;;;1316:11:44;;1329:10;;3490:31:50;:43;;3486:91;;3548:28;;;;;;;;;;;-1:-1:-1;;;3548:28:50;;;;3541:36;;-1:-1:-1;;;3541:36:50;;;;3548:28;3541:36;;;:::i;3486:91::-;-1:-1:-1;;;;;1351:29:44;;::::1;1404:1;1351:29:::0;;;:16:::1;:29;::::0;;;;:41:::1;;::::0;::::1;1347:118;;1423:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1423:34:44::1;::::0;::::1;::::0;1416:42;;-1:-1:-1;;;1416:42:44;;::::1;::::0;1423:34;1416:42:::1;;;:::i;1347:118::-;1515:18;-1:-1:-1::0;;;;;1475:29:44;::::1;:2;:29:::0;;;:16:::1;:29;::::0;;;;:36;::::1;;:58;::::0;::::1;;;;;;:::i;:::-;;1471:129;;1550:42;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1550:42:44::1;::::0;::::1;::::0;1543:50;;-1:-1:-1;;;1543:50:44;;::::1;::::0;1550:42;1543:50:::1;;;:::i;1471:129::-;1606:28;:8;1622:11:::0;1606:15:::1;:28::i;:::-;-1:-1:-1::0;;;;;;1647:29:44;::::1;:2;:29:::0;;;:16:::1;:29;::::0;;;;1640:36;;-1:-1:-1;;1640:36:44::1;::::0;;1647:29;1640:36:::1;::::0;;::::1;1647:2:::0;1640:36:::1;:::i;:::-;-1:-1:-1::0;1640:36:44::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;1640:36:44;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;1688:24:::1;::::0;-1:-1:-1;;;;;1688:24:44;::::1;::::0;::::1;::::0;1640:36:::1;::::0;1688:24:::1;1241:476:::0;;;:::o;3151:587:42:-;3266:10;3799:42:50;:24;3266:10:42;3799:33:50;:42::i;:::-;3794:91;;3856:28;;;;;;;;;;;-1:-1:-1;;;3856:28:50;;;;3849:36;;-1:-1:-1;;;3849:36:50;;;;3856:28;3849:36;;;:::i;3794:91::-;3284:10:42::1;3313:9:::0;3308:310:::1;3332:2;:21:::0;;;:16:::1;:21;::::0;;;;:28;3328:32;::::1;3308:310;;;3379:2;:21:::0;;;:16:::1;:21;::::0;;;;:24;;-1:-1:-1;;;;;3379:51:42;::::1;::::0;:21;3401:1;;3379:24;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:36:::1;:24;::::0;;::::1;;:36;::::0;-1:-1:-1;;;;;3379:36:42::1;:51:::0;3375:237:::1;;3469:2;:21:::0;;;:16:::1;:21;::::0;;;;3502:28;;:32:::1;::::0;3533:1:::1;::::0;3502:32:::1;:::i;:::-;3469:75;;;;;;;;:::i;:::-;;;;;;;;;;;3442:2;:16;;:21;3459:3;3442:21;;;;;;;;;;;3464:1;3442:24;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:102;;:24:::1;::::0;;::::1;;:102:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;3442:102:42::1;-1:-1:-1::0;;;;;3442:102:42;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;3554:2:42::1;:21:::0;;;:16:::1;:21;::::0;;;;:27;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;3554:27:42;;;;;::::1;;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;3554:27:42::1;::::0;;;::::1;;::::0;::::1;::::0;::::1;:::i;:::-;;;;;3599:4;3591:12;;3375:237;3362:3;;3308:310;;;;3629:5;3624:49;;3643:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3643:29:42::1;::::0;::::1;::::0;3636:37;;-1:-1:-1;;;3636:37:42;;::::1;::::0;3643:29;3636:37:::1;;;:::i;3624:49::-;3685:48;::::0;;17560:25:85;;;-1:-1:-1;;;;;17621:31:85;;17616:2;17601:18;;17594:59;17689:3;17669:18;;;17662:31;;;-1:-1:-1;17709:19:85;;;17702:30;3728:4:42::1;17799:2:85::0;17784:18;;17777:50;3685:48:42;;-1:-1:-1;;;;;;;;;;;3685:48:42;;;;17764:3:85;3685:48:42;;::::1;3278:460;3151:587:::0;;;:::o;731:220:46:-;296:66:26;1263:42:25;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:25;;;;;;;;;;;1258:100;846:9:46::1;841:106;861:27:::0;;::::1;841:106;;;903:37;920:16;;937:1;920:19;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;903:16;:37::i;:::-;890:3;;841:106;;8022:95:48::0;8071:7;8093:19;8071:7;8093:17;:19::i;5276:121:42:-;293:8:35;:6;:8::i;:::-;-1:-1:-1;;;;;279:22:35;:10;-1:-1:-1;;;;;279:22:35;;275:79;;318:29;;-1:-1:-1;;;318:29:35;;336:10;318:29;;;18903:51:85;18876:18;;318:29:35;18757:203:85;275:79:35;5355:37:42::1;5384:7;5355:28;:37::i;9985:444:48:-:0;10067:7;;;10105:301;10129:19;:2;:17;:19::i;:::-;10125:1;:23;10105:301;;;10163:10;10176:16;10163:10;10190:1;10176:13;:16::i;:::-;10200:21;10224:17;;;:13;:17;;;;;10163:29;;-1:-1:-1;10249:151:48;10273:12;;;:19;10269:23;;10249:151;;;10332:11;-1:-1:-1;;;;;10313:30:48;:6;:12;;10326:1;10313:15;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;10313:15:48;:30;10309:83;;10357:7;;;;:::i;:::-;;;;10376:5;;10309:83;10294:3;;10249:151;;;;10155:251;;10150:3;;;;;10105:301;;;-1:-1:-1;10419:5:48;9985:444;-1:-1:-1;;9985:444:48:o;2937:107:44:-;2991:16;3022:17;:8;:15;:17::i;8578:544:48:-;8671:21;8694:4;8722;8714:5;:12;8728:27;;;;;;;;;;;;;-1:-1:-1;;;8728:27:48;;;8706:50;;;;;-1:-1:-1;;;8706:50:48;;;;;;;;:::i;:::-;-1:-1:-1;8763:29:48;8814:12;8821:5;8814:4;:12;:::i;:::-;-1:-1:-1;;;;;8795:32:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;8763:64;;8846:9;8834:232;8882:19;:2;:17;:19::i;:::-;8869:9;8877:1;8869:5;:9;:::i;:::-;8868:33;8867:59;;;;-1:-1:-1;8921:4:48;8908:9;8916:1;8908:5;:9;:::i;:::-;8907:18;8867:59;8834:232;;;8952:10;8965:24;8979:9;8987:1;8979:5;:9;:::i;:::-;8965:2;;:13;:24::i;:::-;9010:49;;;;;;;;;;;-1:-1:-1;9040:17:48;;;:13;9010:49;9040:17;;;;;;;9010:49;;;;;;;;;;;;;;;-1:-1:-1;;;;;9010:49:48;;;;;;;-1:-1:-1;;;9010:49:48;;;;;;;;-1:-1:-1;;;9010:49:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;8952:37;;-1:-1:-1;9010:49:48;;;;;;;;9040:17;;9010:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9010:49:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;8997:7;9005:1;8997:10;;;;;;;;:::i;:::-;;;;;;:62;;;;8944:122;8934:3;;;;:::i;:::-;;;8834:232;;;-1:-1:-1;9080:7:48;9097:19;:2;:17;:19::i;:::-;9072:45;;9089:27;;;;-1:-1:-1;;;;8578:544:48:o;5061:146:42:-;5141:4;5160:42;:24;5194:7;5160:33;:42::i;2770:1696:48:-;2960:10;3085:1:50;3039:22;;;:16;:22;;;;;:34;;;-1:-1:-1;;;;;3039:34:50;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:50;;;;3095:42;;-1:-1:-1;;;3095:42:50;;;;3102:34;3095:42;;;:::i;3035:102::-;3036:29:48::1;:2;3056:8:::0;3036:19:::1;:29::i;:::-;3031:88;;3082:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3082:29:48::1;::::0;::::1;::::0;3075:37;;-1:-1:-1;;;3075:37:48;;::::1;::::0;3082:29;3075:37:::1;;;:::i;3031:88::-;3125:21;3149:23:::0;;;:13:::1;:23;::::0;;;;3964:44;;;4014:23:::1;::::0;::::1;:42:::0;;-1:-1:-1;;4014:42:48::1;-1:-1:-1::0;;;;;4014:42:48;::::1;;::::0;;4103:63;::::1;;;592:1;4125:12:::0;;::::1;:34:::0;;-1:-1:-1;;;;4125:34:48;::::1;-1:-1:-1::0;;;4125:34:48;;;::::1;-1:-1:-1::0;;;;;4125:34:48::1;::::0;;::::1;;::::0;;;::::1;::::0;;4103:63:::1;4253:16;-1:-1:-1::0;;;;;4253:21:48::1;4273:1;4253:21:::0;4249:88:::1;;4291:2;:39:::0;;;:29:::1;:39;::::0;;;;4284:46:::1;::::0;::::1;:::i;:::-;4348:113;::::0;;28633:25:85;;;28689:2;28674:18;;28667:34;;;-1:-1:-1;;;;;28737:31:85;;28717:18;;;28710:59;28812:14;;28805:22;28800:2;28785:18;;28778:50;4348:113:48;;::::1;::::0;;;;28620:3:85;4348:113:48;;::::1;2972:1494;2770:1696:::0;;;;;;:::o;1823:107:46:-;1873:16;1904:21;:12;:19;:21::i;7434:584:48:-;7535:8;3338:29:50;:2;7535:8:48;3338:19:50;:29::i;:::-;3333:73;;3376:29;;;;;;;;;;;-1:-1:-1;;;3376:29:50;;;;3369:37;;-1:-1:-1;;;3369:37:50;;;;3376:29;3369:37;;;:::i;3333:73::-;-1:-1:-1;;;;;3039:22:50;;::::1;3085:1;3039:22:::0;;;:16:::1;:22;::::0;;;;:34:::1;;::::0;7554:11:48;;3039:34:50::1;3035:102;;3102:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3102:34:50::1;::::0;::::1;::::0;3095:42;;-1:-1:-1;;;3095:42:50;;::::1;::::0;3102:34;3095:42:::1;;;:::i;3035:102::-;7573:21:48::2;7597:23:::0;;;:13:::2;:23;::::0;;;;;7573:21;7651:239:::2;7675:12;::::0;::::2;:19:::0;7671:23;::::2;7651:239;;;7732:11;-1:-1:-1::0;;;;;7713:30:48::2;:6;:12;;7726:1;7713:15;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;-1:-1:-1;;;;;7713:15:48::2;:30:::0;7709:175:::2;;7773:12;::::0;::::2;7786:19:::0;;:23:::2;::::0;7808:1:::2;::::0;7786:23:::2;:::i;:::-;7773:37;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;7755:12:::2;::::0;::::2;:15:::0;;-1:-1:-1;;;;;7773:37:48;;::::2;::::0;7768:1;;7755:15;::::2;;;;;:::i;:::-;;;;;;;;;:55;;;;;-1:-1:-1::0;;;;;7755:55:48::2;;;;;-1:-1:-1::0;;;;;7755:55:48::2;;;;;;7820:6;:12;;:18;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;-1:-1:-1;;7820:18:48;;;;;-1:-1:-1;;;;;;7820:18:48::2;::::0;;;;;::::2;::::0;-1:-1:-1;7870:5:48::2;;7709:175;7696:3;;7651:239;;;;7900:5;7895:54;;7914:34;::::0;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;7914:34:48::2;::::0;::::2;::::0;7907:42;;-1:-1:-1;;;7907:42:48;;::::2;::::0;7914:34;7907:42:::2;;;:::i;7895:54::-;7961:52;::::0;;24831:25:85;;;-1:-1:-1;;;;;24892:32:85;;24887:2;24872:18;;24865:60;8007:5:48::2;24941:18:85::0;;;24934:50;;;;7961:52:48::2;::::0;24819:2:85;24804:18;7961:52:48::2;24635:355:85::0;636:601:44;755:10;3204:31:50;:12;755:10:44;3204:21:50;:31::i;:::-;3199:74;;3244:28;;;;;;;;;;;-1:-1:-1;;;3244:28:50;;;;3237:36;;-1:-1:-1;;;3237:36:50;;;;3244:28;3237:36;;;:::i;3199:74::-;-1:-1:-1;;;;;838:29:44;;::::1;891:1;838:29:::0;;;:16:::1;:29;::::0;;;;:41:::1;;::::0;::::1;:55:::0;834:109:::1;;908:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;908:34:44::1;::::0;::::1;::::0;901:42;;-1:-1:-1;;;901:42:44;;::::1;::::0;908:34;901:42:::1;;;:::i;834:109::-;950:19;972:110;;;;;;;;1041:6;972:110;;;;;;;;:::i;:::-;::::0;;::::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;972:110:44;::::1;::::0;;;;1065:10:::1;972:110:::0;;;;;950:132;-1:-1:-1;1089:25:44::1;:8;998:11:::0;1089:12:::1;:25::i;:::-;-1:-1:-1::0;;;;;;1146:29:44;::::1;:2;:29:::0;;;:16:::1;:29;::::0;;;;:39;;;;1178:7;;1146:29;:39;:29;;-1:-1:-1;;1146:39:44::1;::::0;;::::1;::::0;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;1146:39:44::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;1146:39:44::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;1146:39:44;;::::1;-1:-1:-1::0;;;;;1146:39:44;;::::1;;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;1197:35;;;;::::1;::::0;::::1;::::0;::::1;::::0;1220:3;;1225:6;;1197:35:::1;:::i;:::-;;;;;;;;767:470;636:601:::0;;;;:::o;1503:123:42:-;1568:4;1587:34;:20;1617:3;1587:29;:34::i;4470:2452:48:-;4569:10;3085:1:50;3039:22;;;:16;:22;;;;;:34;;;-1:-1:-1;;;;;3039:34:50;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:50;;;;3095:42;;-1:-1:-1;;;3095:42:50;;;;3102:34;3095:42;;;:::i;3035:102::-;4592:9:48::1;4587:2331;4607:21:::0;;::::1;4587:2331;;;4643:31;4677:10;;4688:1;4677:13;;;;;;;:::i;:::-;;;::::0;;;::::1;::::0;-1:-1:-1;4704:39:48::1;::::0;-1:-1:-1;4724:18:48::1;::::0;::::1;4704:19;:39::i;:::-;4699:277;;4760:189;4803:18:::0;::::1;4833:27;::::0;::::1;;4872:26;::::0;;;::::1;::::0;::::1;;:::i;:::-;4910:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4910:29:48::1;::::0;::::1;::::0;4760:189;;::::1;::::0;;;;4910:29;4760:189:::1;:::i;:::-;;;;;;;;4959:8;;;4699:277;5022:18:::0;::::1;4984:21;5008:33:::0;;;:13:::1;:33;::::0;;;;;;6321:27;;::::1;;6294:54:::0;;6382:26:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;6356:23;::::0;::::1;:52:::0;;-1:-1:-1;;6356:52:48::1;-1:-1:-1::0;;;;;6356:52:48;;;::::1;::::0;;;::::1;::::0;;6463:18:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;6459:77;;;592:1;6493:12:::0;;::::1;:34:::0;;-1:-1:-1;;;;6493:34:48;::::1;-1:-1:-1::0;;;6493:34:48;;;::::1;-1:-1:-1::0;;;;;6493:34:48::1;::::0;;::::1;;::::0;;;::::1;::::0;;6459:77:::1;6627:26;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;6627:31:48::1;6657:1;6627:31:::0;6623:112:::1;;6707:18:::0;::::1;6677:2;:49:::0;;;:29:::1;:49;::::0;;;;6670:56:::1;::::0;::::1;:::i;:::-;6748:163;6784:18:::0;::::1;6812:27;::::0;::::1;;6849:26;::::0;;;::::1;::::0;::::1;;:::i;:::-;6885:18;::::0;;;::::1;::::0;::::1;;:::i;:::-;6748:163;;;;;;;;28633:25:85::0;;;28689:2;28674:18;;28667:34;;;;-1:-1:-1;;;;;28737:31:85;28732:2;28717:18;;28710:59;28812:14;28805:22;28800:2;28785:18;;28778:50;28620:3;28605:19;;28410:424;6748:163:48::1;;;;;;;;4635:2283;;4587:2331;4630:3;;4587:2331;;;;4470:2452:::0;;;:::o;8871:165:62:-;-1:-1:-1;;;;;9004:23:62;;8951:4;4360:21;;;:14;;;:21;;;;;;:26;;8974:55;8967:62;8871:165;-1:-1:-1;;;8871:165:62:o;6431:138::-;6511:4;4360:21;;;:14;;;:21;;;;;;:26;;6534:28;4264:129;6221;6294:4;6317:26;6325:3;6337:5;6317:7;:26::i;6650:115::-;6713:7;6739:19;6747:3;4556:18;;4474:107;7107:129;7181:7;7207:22;7211:3;7223:5;7207:3;:22::i;369:103:35:-;284:66:37;438:29:35;-1:-1:-1;;;;;438:29:35;;369:103::o;2109:320:46:-;-1:-1:-1;;;;;2205:22:46;;2201:63;;2236:27;;;;;;;;;;;-1:-1:-1;;;2236:27:46;;;;2229:35;;-1:-1:-1;;;2229:35:46;;;;2236:27;2229:35;;;:::i;2201:63::-;2275:31;:12;2297:8;2275:21;:31::i;:::-;2271:85;;;2321:34;;;;;;;;;;;-1:-1:-1;;;2321:34:46;;;;2314:42;;-1:-1:-1;;;2314:42:46;;;;2321:34;2314:42;;;:::i;2271:85::-;2363:26;:12;2380:8;2363:16;:26::i;:::-;-1:-1:-1;2401:23:46;;-1:-1:-1;;;;;2401:23:46;;;;;;;;2109:320;:::o;6030:282:42:-;-1:-1:-1;;;;;6104:21:42;;6100:62;;6134:27;;;;;;;;;;;-1:-1:-1;;;6134:27:42;;;;6127:35;;-1:-1:-1;;;6127:35:42;;;;6134:27;6127:35;;;:::i;6100:62::-;6174:37;:24;6203:7;6174:28;:37::i;:::-;6169:92;;6226:34;;;;;;;;;;;-1:-1:-1;;;6226:34:42;;;;6219:42;;-1:-1:-1;;;6219:42:42;;;;6226:34;6219:42;;;:::i;6169:92::-;6273:34;;-1:-1:-1;;;;;6273:34:42;;;;;;;;6030:282;:::o;3306:624:44:-;3430:25;3422:4;:33;;;;;;;;:::i;:::-;;:141;;;-1:-1:-1;3474:21:44;3466:4;:29;;;;;;;;:::i;:::-;;:96;;;;-1:-1:-1;3514:17:44;3508:2;:23;;;;;;;;:::i;:::-;;:53;;;-1:-1:-1;3541:20:44;3535:2;:26;;;;;;;;:::i;:::-;;3508:53;3422:250;;;-1:-1:-1;3582:22:44;3574:4;:30;;;;;;;;:::i;:::-;;:97;;;;-1:-1:-1;3623:17:44;3617:2;:23;;;;;;;;:::i;:::-;;:53;;;-1:-1:-1;3650:20:44;3644:2;:26;;;;;;;;:::i;:::-;;3617:53;3422:355;;;-1:-1:-1;3691:20:44;3683:4;:28;;;;;;;;:::i;:::-;;:93;;;;-1:-1:-1;3730:17:44;3724:2;:23;;;;;;;;:::i;:::-;;:51;;;-1:-1:-1;3757:18:44;3751:2;:24;;;;;;;;:::i;:::-;;3724:51;3422:420;;;-1:-1:-1;3796:17:44;3788:4;:25;;;;;;;;:::i;:::-;;:53;;;;-1:-1:-1;3823:18:44;3817:2;:24;;;;;;;;:::i;:::-;;3788:53;3411:459;;;3306:624;;:::o;3411:459::-;3882:42;;;;;;;;;;;-1:-1:-1;;;3882:42:44;;;;3875:50;;-1:-1:-1;;;3875:50:44;;;;3882:42;3875:50;;;:::i;5930:123:62:-;6000:4;6023:23;6028:3;6040:5;6023:4;:23::i;8634:156::-;8707:4;8730:53;8738:3;-1:-1:-1;;;;;8758:23:62;;8730:7;:53::i;7776:300::-;7839:16;7867:22;7892:19;7900:3;7892:7;:19::i;8316:150::-;8386:4;8409:50;8414:3;-1:-1:-1;;;;;8434:23:62;;8409:4;:50::i;2815:1368::-;2881:4;3010:21;;;:14;;;:21;;;;;;3046:13;;3042:1135;;3413:18;3434:12;3445:1;3434:8;:12;:::i;:::-;3480:18;;3413:33;;-1:-1:-1;3460:17:62;;3480:22;;3501:1;;3480:22;:::i;:::-;3460:42;;3535:9;3521:10;:23;3517:378;;3564:17;3584:3;:11;;3596:9;3584:22;;;;;;;;:::i;:::-;;;;;;;;;3564:42;;3731:9;3705:3;:11;;3717:10;3705:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;;3844:25;;;:14;;;:25;;;;;:36;;;3517:378;3973:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4076:3;:14;;:21;4091:5;4076:21;;;;;;;;;;;4069:28;;;4119:4;4112:11;;;;;;;3042:1135;4161:5;4154:12;;;;;4923:118;4990:7;5016:3;:11;;5028:5;5016:18;;;;;;;;:::i;:::-;;;;;;;;;5009:25;;4923:118;;;;:::o;2241:406::-;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:62;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;2320:321;-1:-1:-1;2625:5:62;2618:12;;5581:109;5637:16;5672:3;:11;;5665:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:109;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;14:180:85;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:85;;14:180;-1:-1:-1;14:180:85:o;199:250::-;284:1;294:113;308:6;305:1;302:13;294:113;;;384:11;;;378:18;365:11;;;358:39;330:2;323:10;294:113;;;-1:-1:-1;;441:1:85;423:16;;416:27;199:250::o;454:270::-;495:3;533:5;527:12;560:6;555:3;548:19;576:76;645:6;638:4;633:3;629:14;622:4;615:5;611:16;576:76;:::i;:::-;706:2;685:15;-1:-1:-1;;681:29:85;672:39;;;;713:4;668:50;;454:270;-1:-1:-1;;454:270:85:o;729:1134::-;921:4;950:2;990;979:9;975:18;1020:2;1009:9;1002:21;1043:6;1078;1072:13;1109:6;1101;1094:22;1135:2;1125:12;;1168:2;1157:9;1153:18;1146:25;;1230:2;1220:6;1217:1;1213:14;1202:9;1198:30;1194:39;1268:2;1260:6;1256:15;1289:1;1299:535;1313:6;1310:1;1307:13;1299:535;;;1378:22;;;-1:-1:-1;;1374:36:85;1362:49;;1434:13;;1502:9;;1487:25;;1559:11;;;1553:18;-1:-1:-1;;;;;1549:43:85;1532:15;;;1525:68;1632:11;;1626:18;1470:4;1664:15;;;1657:27;;;1707:47;1738:15;;;1626:18;1707:47;:::i;:::-;1812:12;;;;1697:57;-1:-1:-1;;;1777:15:85;;;;1335:1;1328:9;1299:535;;;-1:-1:-1;1851:6:85;;729:1134;-1:-1:-1;;;;;;;;729:1134:85:o;1868:948::-;1917:3;1956:4;1951:3;1947:14;1988:5;1982:12;1977:3;1970:25;2014:4;2064;2057:5;2053:16;2047:23;-1:-1:-1;;;;;2157:2:85;2143:12;2139:21;2132:4;2127:3;2123:14;2116:45;2222:2;2214:4;2207:5;2203:16;2197:23;2193:32;2186:4;2181:3;2177:14;2170:56;2287:2;2279:4;2272:5;2268:16;2262:23;2258:32;2251:4;2246:3;2242:14;2235:56;;;2339:4;2332:5;2328:16;2322:23;2377:4;2370;2365:3;2361:14;2354:28;2404:4;2437:14;2431:21;2474:6;2468:4;2461:20;2508:3;2503;2499:13;2490:22;;2555:4;2539:14;2535:25;2521:39;;2578:1;2569:10;;2588:201;2602:6;2599:1;2596:13;2588:201;;;2669:13;;-1:-1:-1;;;;;2665:39:85;2651:54;;2764:15;;;;2701:1;2617:9;;;;;2727:14;;;;2588:201;;;-1:-1:-1;2805:5:85;1868:948;-1:-1:-1;;;;;;1868:948:85:o;2821:255::-;2998:2;2987:9;2980:21;2961:4;3018:52;3066:2;3055:9;3051:18;3043:6;3018:52;:::i;3081:173::-;3149:20;;-1:-1:-1;;;;;3198:31:85;;3188:42;;3178:70;;3244:1;3241;3234:12;3178:70;3081:173;;;:::o;3259:186::-;3318:6;3371:2;3359:9;3350:7;3346:23;3342:32;3339:52;;;3387:1;3384;3377:12;3339:52;3410:29;3429:9;3410:29;:::i;3450:615::-;3536:6;3544;3597:2;3585:9;3576:7;3572:23;3568:32;3565:52;;;3613:1;3610;3603:12;3565:52;3653:9;3640:23;-1:-1:-1;;;;;3723:2:85;3715:6;3712:14;3709:34;;;3739:1;3736;3729:12;3709:34;3777:6;3766:9;3762:22;3752:32;;3822:7;3815:4;3811:2;3807:13;3803:27;3793:55;;3844:1;3841;3834:12;3793:55;3884:2;3871:16;3910:2;3902:6;3899:14;3896:34;;;3926:1;3923;3916:12;3896:34;3979:7;3974:2;3964:6;3961:1;3957:14;3953:2;3949:23;3945:32;3942:45;3939:65;;;4000:1;3997;3990:12;3939:65;4031:2;4023:11;;;;;4053:6;;-1:-1:-1;3450:615:85;;-1:-1:-1;;;;3450:615:85:o;4070:263::-;4161:5;4155:12;4150:3;4143:25;4125:3;4214:4;4207:5;4203:16;4197:23;4252:4;4245;4240:3;4236:14;4229:28;4273:54;4321:4;4316:3;4312:14;4298:12;4273:54;:::i;:::-;4266:61;4070:263;-1:-1:-1;;;;4070:263:85:o;4338:624::-;4403:3;4434;4466:5;4460:12;4493:6;4488:3;4481:19;4519:4;4548;4543:3;4539:14;4532:21;;4606:4;4596:6;4593:1;4589:14;4582:5;4578:26;4574:37;4645:4;4638:5;4634:16;4668:1;4678:258;4692:6;4689:1;4686:13;4678:258;;;4779:2;4775:7;4767:5;4761:4;4757:16;4753:30;4748:3;4741:43;4805:51;4851:4;4842:6;4836:13;4805:51;:::i;:::-;4914:12;;;;4797:59;-1:-1:-1;4879:15:85;;;;4714:1;4707:9;4678:258;;;-1:-1:-1;4952:4:85;;4338:624;-1:-1:-1;;;;;;;4338:624:85:o;4967:333::-;5206:2;5195:9;5188:21;5169:4;5226:68;5290:2;5279:9;5275:18;5267:6;5226:68;:::i;5487:486::-;5738:2;5727:9;5720:21;5701:4;5764:52;5812:2;5801:9;5797:18;5789:6;5764:52;:::i;:::-;5852:6;5847:2;5836:9;5832:18;5825:34;5907:9;5899:6;5895:22;5890:2;5879:9;5875:18;5868:50;5935:32;5960:6;5952;5935:32;:::i;:::-;5927:40;5487:486;-1:-1:-1;;;;;;5487:486:85:o;5978:151::-;6054:20;;6103:1;6093:12;;6083:40;;6119:1;6116;6109:12;6134:283;6217:6;6225;6278:2;6266:9;6257:7;6253:23;6249:32;6246:52;;;6294:1;6291;6284:12;6246:52;6317:29;6336:9;6317:29;:::i;:::-;6307:39;;6365:46;6407:2;6396:9;6392:18;6365:46;:::i;:::-;6355:56;;6134:283;;;;;:::o;6607:273::-;6796:2;6785:9;6778:21;6759:4;6816:58;6870:2;6859:9;6855:18;6847:6;6816:58;:::i;6885:127::-;6946:10;6941:3;6937:20;6934:1;6927:31;6977:4;6974:1;6967:15;7001:4;6998:1;6991:15;7017:275;7088:2;7082:9;7153:2;7134:13;;-1:-1:-1;;7130:27:85;7118:40;;-1:-1:-1;;;;;7173:34:85;;7209:22;;;7170:62;7167:88;;;7235:18;;:::i;:::-;7271:2;7264:22;7017:275;;-1:-1:-1;7017:275:85:o;7297:530::-;7339:5;7392:3;7385:4;7377:6;7373:17;7369:27;7359:55;;7410:1;7407;7400:12;7359:55;7446:6;7433:20;-1:-1:-1;;;;;7468:2:85;7465:26;7462:52;;;7494:18;;:::i;:::-;7538:55;7581:2;7562:13;;-1:-1:-1;;7558:27:85;7587:4;7554:38;7538:55;:::i;:::-;7618:2;7609:7;7602:19;7664:3;7657:4;7652:2;7644:6;7640:15;7636:26;7633:35;7630:55;;;7681:1;7678;7671:12;7630:55;7746:2;7739:4;7731:6;7727:17;7720:4;7711:7;7707:18;7694:55;7794:1;7769:16;;;7787:4;7765:27;7758:38;;;;7773:7;7297:530;-1:-1:-1;;;7297:530:85:o;7832:1287::-;7952:6;7960;7968;7976;8029:3;8017:9;8008:7;8004:23;8000:33;7997:53;;;8046:1;8043;8036:12;7997:53;8082:9;8069:23;8059:33;;8111:2;8164;8153:9;8149:18;8136:32;-1:-1:-1;;;;;8228:2:85;8220:6;8217:14;8214:34;;;8244:1;8241;8234:12;8214:34;8282:6;8271:9;8267:22;8257:32;;8327:7;8320:4;8316:2;8312:13;8308:27;8298:55;;8349:1;8346;8339:12;8298:55;8385:2;8372:16;8407:2;8403;8400:10;8397:36;;;8413:18;;:::i;:::-;8459:2;8456:1;8452:10;8482:28;8506:2;8502;8498:11;8482:28;:::i;:::-;8544:15;;;8614:11;;;8610:20;;;8575:12;;;;8642:19;;;8639:39;;;8674:1;8671;8664:12;8639:39;8698:11;;;;8718:148;8734:6;8729:3;8726:15;8718:148;;;8800:23;8819:3;8800:23;:::i;:::-;8788:36;;8751:12;;;;8844;;;;8718:148;;;8885:5;-1:-1:-1;;;;8937:2:85;8922:18;;8909:32;;-1:-1:-1;8994:2:85;8979:18;;8966:32;;-1:-1:-1;9010:16:85;;;9007:36;;;9039:1;9036;9029:12;9007:36;;;9062:51;9105:7;9094:8;9083:9;9079:24;9062:51;:::i;:::-;9052:61;;;7832:1287;;;;;;;:::o;9316:395::-;9394:6;9402;9455:2;9443:9;9434:7;9430:23;9426:32;9423:52;;;9471:1;9468;9461:12;9423:52;9494:29;9513:9;9494:29;:::i;:::-;9484:39;;9574:2;9563:9;9559:18;9546:32;-1:-1:-1;;;;;9593:6:85;9590:30;9587:50;;;9633:1;9630;9623:12;9587:50;9656:49;9697:7;9688:6;9677:9;9673:22;9656:49;:::i;:::-;9646:59;;;9316:395;;;;;:::o;9716:632::-;9887:2;9939:21;;;10009:13;;9912:18;;;10031:22;;;9858:4;;9887:2;10110:15;;;;10084:2;10069:18;;;9858:4;10153:169;10167:6;10164:1;10161:13;10153:169;;;10228:13;;10216:26;;10297:15;;;;10262:12;;;;10189:1;10182:9;10153:169;;;-1:-1:-1;10339:3:85;;9716:632;-1:-1:-1;;;;;;9716:632:85:o;10353:127::-;10414:10;10409:3;10405:20;10402:1;10395:31;10445:4;10442:1;10435:15;10469:4;10466:1;10459:15;10485:238;10567:1;10560:5;10557:12;10547:143;;10612:10;10607:3;10603:20;10600:1;10593:31;10647:4;10644:1;10637:15;10675:4;10672:1;10665:15;10547:143;10699:18;;10485:238::o;10728:505::-;10793:45;10834:3;10826:5;10820:12;10793:45;:::i;:::-;10775:3;10884:4;10877:5;10873:16;10867:23;10922:4;10915;10910:3;10906:14;10899:28;10948:46;10988:4;10983:3;10979:14;10965:12;10948:46;:::i;:::-;11042:4;11031:16;;;11025:23;-1:-1:-1;;;;;11118:23:85;;;11102:14;;;11095:47;;;;11195:4;11184:16;;;11178:23;11174:32;11158:14;;;;11151:56;;;;-1:-1:-1;10936:58:85;;10728:505;-1:-1:-1;10728:505:85:o;11238:249::-;11411:2;11400:9;11393:21;11374:4;11431:50;11477:2;11466:9;11462:18;11454:6;11431:50;:::i;11492:254::-;11560:6;11568;11621:2;11609:9;11600:7;11596:23;11592:32;11589:52;;;11637:1;11634;11627:12;11589:52;11673:9;11660:23;11650:33;;11702:38;11736:2;11725:9;11721:18;11702:38;:::i;11751:171::-;11818:20;;-1:-1:-1;;;;;11867:30:85;;11857:41;;11847:69;;11912:1;11909;11902:12;11927:731;12014:6;12022;12030;12038;12091:2;12079:9;12070:7;12066:23;12062:32;12059:52;;;12107:1;12104;12097:12;12059:52;12143:9;12130:23;12120:33;;12172:37;12205:2;12194:9;12190:18;12172:37;:::i;:::-;12162:47;;12260:2;12249:9;12245:18;12232:32;-1:-1:-1;;;;;12324:2:85;12316:6;12313:14;12310:34;;;12340:1;12337;12330:12;12310:34;12378:6;12367:9;12363:22;12353:32;;12423:7;12416:4;12412:2;12408:13;12404:27;12394:55;;12445:1;12442;12435:12;12394:55;12485:2;12472:16;12511:2;12503:6;12500:14;12497:34;;;12527:1;12524;12517:12;12497:34;12572:7;12567:2;12558:6;12554:2;12550:15;12546:24;12543:37;12540:57;;;12593:1;12590;12583:12;12540:57;11927:731;;;;-1:-1:-1;;12624:2:85;12616:11;;-1:-1:-1;;;11927:731:85:o;12663:832::-;12849:4;12878:2;12918;12907:9;12903:18;12948:2;12937:9;12930:21;12971:6;13006;13000:13;13037:6;13029;13022:22;13075:2;13064:9;13060:18;13053:25;;13137:2;13127:6;13124:1;13120:14;13109:9;13105:30;13101:39;13087:53;;13175:2;13167:6;13163:15;13196:1;13206:260;13220:6;13217:1;13214:13;13206:260;;;13313:2;13309:7;13297:9;13289:6;13285:22;13281:36;13276:3;13269:49;13341:45;13379:6;13370;13364:13;13341:45;:::i;:::-;13331:55;-1:-1:-1;13444:12:85;;;;13409:15;;;;13242:1;13235:9;13206:260;;;-1:-1:-1;13483:6:85;;12663:832;-1:-1:-1;;;;;;;12663:832:85:o;13500:252::-;13567:6;13575;13628:2;13616:9;13607:7;13603:23;13599:32;13596:52;;;13644:1;13641;13634:12;13596:52;13680:9;13667:23;13657:33;;13709:37;13742:2;13731:9;13727:18;13709:37;:::i;13757:465::-;13810:3;13848:5;13842:12;13875:6;13870:3;13863:19;13901:4;13930;13925:3;13921:14;13914:21;;13969:4;13962:5;13958:16;13992:1;14002:195;14016:6;14013:1;14010:13;14002:195;;;14081:13;;-1:-1:-1;;;;;14077:39:85;14065:52;;14137:12;;;;14172:15;;;;14113:1;14031:9;14002:195;;;-1:-1:-1;14213:3:85;;13757:465;-1:-1:-1;;;;;13757:465:85:o;14227:261::-;14406:2;14395:9;14388:21;14369:4;14426:56;14478:2;14467:9;14463:18;14455:6;14426:56;:::i;14493:248::-;14561:6;14569;14622:2;14610:9;14601:7;14597:23;14593:32;14590:52;;;14638:1;14635;14628:12;14590:52;-1:-1:-1;;14661:23:85;;;14731:2;14716:18;;;14703:32;;-1:-1:-1;14493:248:85:o;14746:414::-;15007:2;14996:9;14989:21;14970:4;15027:68;15091:2;15080:9;15076:18;15068:6;15027:68;:::i;:::-;15019:76;;15145:6;15138:14;15131:22;15126:2;15115:9;15111:18;15104:50;14746:414;;;;;:::o;15165:160::-;15230:20;;15286:13;;15279:21;15269:32;;15259:60;;15315:1;15312;15305:12;15330:458;15421:6;15429;15437;15445;15453;15506:3;15494:9;15485:7;15481:23;15477:33;15474:53;;;15523:1;15520;15513:12;15474:53;15559:9;15546:23;15536:33;;15616:2;15605:9;15601:18;15588:32;15578:42;;15667:2;15656:9;15652:18;15639:32;15629:42;;15690:37;15723:2;15712:9;15708:18;15690:37;:::i;:::-;15680:47;;15746:36;15777:3;15766:9;15762:19;15746:36;:::i;:::-;15736:46;;15330:458;;;;;;;;:::o;15793:492::-;15895:6;15903;15911;15964:2;15952:9;15943:7;15939:23;15935:32;15932:52;;;15980:1;15977;15970:12;15932:52;16003:29;16022:9;16003:29;:::i;:::-;15993:39;;16083:2;16072:9;16068:18;16055:32;-1:-1:-1;;;;;16102:6:85;16099:30;16096:50;;;16142:1;16139;16132:12;16096:50;16165:49;16206:7;16197:6;16186:9;16182:22;16165:49;:::i;:::-;16155:59;;;16233:46;16275:2;16264:9;16260:18;16233:46;:::i;:::-;16223:56;;15793:492;;;;;:::o;16290:650::-;16408:6;16416;16469:2;16457:9;16448:7;16444:23;16440:32;16437:52;;;16485:1;16482;16475:12;16437:52;16525:9;16512:23;-1:-1:-1;;;;;16595:2:85;16587:6;16584:14;16581:34;;;16611:1;16608;16601:12;16581:34;16649:6;16638:9;16634:22;16624:32;;16694:7;16687:4;16683:2;16679:13;16675:27;16665:55;;16716:1;16713;16706:12;16665:55;16756:2;16743:16;16782:2;16774:6;16771:14;16768:34;;;16798:1;16795;16788:12;16768:34;16854:7;16849:2;16841:4;16833:6;16829:17;16825:2;16821:26;16817:35;16814:48;16811:68;;;16875:1;16872;16865:12;16945:219;17094:2;17083:9;17076:21;17057:4;17114:44;17154:2;17143:9;17139:18;17131:6;17114:44;:::i;17169:127::-;17230:10;17225:3;17221:20;17218:1;17211:31;17261:4;17258:1;17251:15;17285:4;17282:1;17275:15;17838:127;17899:10;17894:3;17890:20;17887:1;17880:31;17930:4;17927:1;17920:15;17954:4;17951:1;17944:15;17970:125;18035:9;;;18056:10;;;18053:36;;;18069:18;;:::i;18100:380::-;18179:1;18175:12;;;;18222;;;18243:61;;18297:4;18289:6;18285:17;18275:27;;18243:61;18350:2;18342:6;18339:14;18319:18;18316:38;18313:161;;18396:10;18391:3;18387:20;18384:1;18377:31;18431:4;18428:1;18421:15;18459:4;18456:1;18449:15;18485:127;18546:10;18541:3;18537:20;18534:1;18527:31;18577:4;18574:1;18567:15;18601:4;18598:1;18591:15;18617:135;18656:3;18677:17;;;18674:43;;18697:18;;:::i;:::-;-1:-1:-1;18744:1:85;18733:13;;18617:135::o;18965:201::-;19003:3;19031:10;19076:2;19069:5;19065:14;19103:2;19094:7;19091:15;19088:41;;19109:18;;:::i;:::-;19158:1;19145:15;;18965:201;-1:-1:-1;;;18965:201:85:o;19171:210::-;19318:2;19303:18;;19330:45;19307:9;19357:6;19330:45;:::i;19511:542::-;19612:2;19607:3;19604:11;19601:446;;;19648:1;19672:5;19669:1;19662:16;19716:4;19713:1;19703:18;19786:2;19774:10;19770:19;19767:1;19763:27;19757:4;19753:38;19822:4;19810:10;19807:20;19804:47;;;-1:-1:-1;19845:4:85;19804:47;19900:2;19895:3;19891:12;19888:1;19884:20;19878:4;19874:31;19864:41;;19955:82;19973:2;19966:5;19963:13;19955:82;;;20018:17;;;19999:1;19988:13;19955:82;;;19959:3;;;19511:542;;;:::o;20058:166::-;-1:-1:-1;;20186:1:85;20182:11;;;20178:24;20174:29;20164:40;20210:1;20206:11;;;;20161:57;;20058:166::o;20229:1341::-;20353:3;20347:10;-1:-1:-1;;;;;20372:6:85;20369:30;20366:56;;;20402:18;;:::i;:::-;20431:96;20520:6;20480:38;20512:4;20506:11;20480:38;:::i;:::-;20474:4;20431:96;:::i;:::-;20582:4;;20639:2;20628:14;;20656:1;20651:662;;;;21357:1;21374:6;21371:89;;;-1:-1:-1;21426:19:85;;;21420:26;21371:89;21486:67;21546:6;21539:5;21486:67;:::i;:::-;21480:4;21473:81;;20621:943;;20651:662;19458:1;19451:14;;;19495:4;19482:18;;-1:-1:-1;;20687:20:85;;;20804:236;20818:7;20815:1;20812:14;20804:236;;;20907:19;;;20901:26;20886:42;;20999:27;;;;20967:1;20955:14;;;;20834:19;;20804:236;;;20808:3;21068:6;21059:7;21056:19;21053:201;;;21129:19;;;21123:26;-1:-1:-1;;21212:1:85;21208:14;;;21224:3;21204:24;21200:37;21196:42;21181:58;21166:74;;21053:201;-1:-1:-1;;;;;21300:1:85;21284:14;;;21280:22;21267:36;;-1:-1:-1;20229:1341:85:o;21575:565::-;21856:6;21845:9;21838:25;21899:3;21894:2;21883:9;21879:18;21872:31;21819:4;21926:57;21978:3;21967:9;21963:19;21955:6;21926:57;:::i;:::-;22019:6;22014:2;22003:9;21999:18;21992:34;22074:9;22066:6;22062:22;22057:2;22046:9;22042:18;22035:50;22102:32;22127:6;22119;22102:32;:::i;:::-;22094:40;21575:565;-1:-1:-1;;;;;;;21575:565:85:o;22145:289::-;22276:3;22314:6;22308:13;22330:66;22389:6;22384:3;22377:4;22369:6;22365:17;22330:66;:::i;:::-;22412:16;;;;;22145:289;-1:-1:-1;;22145:289:85:o;22439:843::-;22567:3;22596:1;22629:6;22623:13;22659:36;22685:9;22659:36;:::i;:::-;22714:1;22731:17;;;22757:133;;;;22904:1;22899:358;;;;22724:533;;22757:133;-1:-1:-1;;22790:24:85;;22778:37;;22863:14;;22856:22;22844:35;;22835:45;;;-1:-1:-1;22757:133:85;;22899:358;22930:6;22927:1;22920:17;22960:4;23005;23002:1;22992:18;23032:1;23046:165;23060:6;23057:1;23054:13;23046:165;;;23138:14;;23125:11;;;23118:35;23181:16;;;;23075:10;;23046:165;;;23050:3;;;23240:6;23235:3;23231:16;23224:23;;22724:533;-1:-1:-1;23273:3:85;;22439:843;-1:-1:-1;;;;;;22439:843:85:o;24995:1202::-;-1:-1:-1;;;;;25112:3:85;25109:27;25106:53;;;25139:18;;:::i;:::-;25168:93;25257:3;25217:38;25249:4;25243:11;25217:38;:::i;:::-;25211:4;25168:93;:::i;:::-;25287:1;25312:2;25307:3;25304:11;25329:1;25324:615;;;;25983:1;26000:3;25997:93;;;-1:-1:-1;26056:19:85;;;26043:33;25997:93;26116:64;26176:3;26169:5;26116:64;:::i;:::-;26110:4;26103:78;;25297:894;;25324:615;19458:1;19451:14;;;19495:4;19482:18;;-1:-1:-1;;25360:17:85;;;25460:9;25482:229;25496:7;25493:1;25490:14;25482:229;;;25585:19;;;25572:33;25557:49;;25692:4;25677:20;;;;25645:1;25633:14;;;;25512:12;25482:229;;;25486:3;25739;25730:7;25727:16;25724:159;;;25863:1;25859:6;25853:3;25847;25844:1;25840:11;25836:21;25832:34;25828:39;25815:9;25810:3;25806:19;25793:33;25789:79;25781:6;25774:95;25724:159;;;25926:1;25920:3;25917:1;25913:11;25909:19;25903:4;25896:33;25297:894;;24995:1202;;;:::o;26202:639::-;26435:6;26424:9;26417:25;-1:-1:-1;;;;;26482:6:85;26478:31;26473:2;26462:9;26458:18;26451:59;26546:3;26541:2;26530:9;26526:18;26519:31;26587:6;26581:3;26570:9;26566:19;26559:35;26645:6;26637;26631:3;26620:9;26616:19;26603:49;26702:1;26672:22;;;26696:3;26668:32;;;26661:43;;;;26819:14;;26812:22;26807:2;26792:18;;26785:50;26765:2;26744:15;;;-1:-1:-1;;26740:29:85;26725:45;;;26721:55;;26202:639;-1:-1:-1;;;26202:639:85:o;26846:128::-;26913:9;;;26934:11;;;26931:37;;;26948:18;;:::i;26979:1426::-;27092:3;27086:4;27083:13;27080:26;;27099:5;;26979:1426::o;27080:26::-;27129:37;27161:3;27155:10;27129:37;:::i;:::-;-1:-1:-1;;;;;27181:6:85;27178:30;27175:56;;;27211:18;;:::i;:::-;27240:96;27329:6;27289:38;27321:4;27315:11;27289:38;:::i;27240:96::-;27362:1;27390:2;27382:6;27379:14;27407:1;27402:746;;;;28192:1;28209:6;28206:89;;;-1:-1:-1;28261:19:85;;;28255:26;28206:89;28321:67;28381:6;28374:5;28321:67;:::i;:::-;28315:4;28308:81;;27372:1027;;27402:746;19458:1;19451:14;;;19495:4;19482:18;;-1:-1:-1;;27438:20:85;;;19458:1;19451:14;;;19495:4;19482:18;;27600:9;27622:251;27636:7;27633:1;27630:14;27622:251;;;27718:21;;;27712:28;27697:44;;27768:1;27841:18;;;;27796:15;;;;27659:4;27652:12;27622:251;;;27626:3;27901:6;27892:7;27889:19;27886:203;;;27962:21;;27956:28;-1:-1:-1;;28059:3:85;28047:1;28043:14;;;28039:24;28035:37;28031:42;28016:58;28001:74;;;-1:-1:-1;;28135:1:85;28119:14;;;28115:22;28102:36;;-1:-1:-1;26979:1426:85:o;28839:323::-;29029:2;29018:9;29011:21;28992:4;29049:44;29089:2;29078:9;29074:18;29066:6;29049:44;:::i;:::-;29041:52;;29102:54;29152:2;29141:9;29137:18;29129:6;29102:54;:::i;29167:184::-;29225:6;29278:2;29266:9;29257:7;29253:23;29249:32;29246:52;;;29294:1;29291;29284:12;29246:52;29317:28;29335:9;29317:28;:::i;29356:457::-;29587:6;29576:9;29569:25;29630:6;29625:2;29614:9;29610:18;29603:34;-1:-1:-1;;;;;29677:6:85;29673:31;29668:2;29657:9;29653:18;29646:59;29741:3;29736:2;29725:9;29721:18;29714:31;29550:4;29762:45;29802:3;29791:9;29787:19;29779:6;29762:45;:::i;29818:180::-;29874:6;29927:2;29915:9;29906:7;29902:23;29898:32;29895:52;;;29943:1;29940;29933:12;29895:52;29966:26;29982:9;29966:26;:::i","linkReferences":{}},"methodIdentifiers":{"__OperatorRegistry_init(address[])":"ba428b1a","__RiverConfig_init(address[])":"31374511","allocateStream(bytes32,address[],bytes32,bytes)":"6b883c39","approveConfigurationManager(address)":"c179b85f","approveOperator(address)":"242cae9f","configurationExists(bytes32)":"fc207c01","deleteConfiguration(bytes32)":"035759e1","deleteConfigurationOnBlock(bytes32,uint64)":"b7f227ee","getAllConfiguration()":"081814db","getAllNodeAddresses()":"c8fe3a01","getAllNodes()":"a1174e7d","getAllOperators()":"d911c632","getAllStreamIds()":"86789fc6","getAllStreams()":"3bd84c0c","getConfiguration(bytes32)":"9283ae3a","getNode(address)":"9d209048","getNodeCount()":"39bf397e","getPaginatedStreams(uint256,uint256)":"ca78c41a","getStream(bytes32)":"1290abe8","getStreamByIndex(uint256)":"68b454df","getStreamCount()":"c0f22084","getStreamCountOnNode(address)":"c87d1324","getStreamWithGenesis(bytes32)":"3c2544d1","getStreamsOnNode(address)":"32705ac4","isConfigurationManager(address)":"d4bd44a0","isOperator(address)":"6d70f7ae","placeStreamOnNode(bytes32,address)":"9ee86d38","registerNode(address,string,uint8)":"eecc66f4","removeConfigurationManager(address)":"813049ec","removeNode(address)":"b2b99ec9","removeOperator(address)":"ac8a584a","removeStreamFromNode(bytes32,address)":"ee885b12","setConfiguration(bytes32,uint64,bytes)":"a09449a6","setStreamLastMiniblock(bytes32,bytes32,bytes32,uint64,bool)":"d7a3158a","setStreamLastMiniblockBatch((bytes32,bytes32,bytes32,uint64,bool)[])":"ff3a14ab","updateNodeStatus(address,uint8)":"581f8b9b","updateNodeUrl(address,string)":"7e4465e7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"approvedOperators\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Initializable_InInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_NotInInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_AlreadySupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_NotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Ownable__NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Ownable__ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"block\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"name\":\"ConfigurationChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"ConfigurationManagerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"ConfigurationManagerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"enum NodeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum NodeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"NodeStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"name\":\"NodeUrlUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operatorAddress\",\"type\":\"address\"}],\"name\":\"OperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operatorAddress\",\"type\":\"address\"}],\"name\":\"OperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"genesisMiniblockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"genesisMiniblock\",\"type\":\"bytes\"}],\"name\":\"StreamAllocated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"StreamLastMiniblockUpdateFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSealed\",\"type\":\"bool\"}],\"name\":\"StreamLastMiniblockUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAdded\",\"type\":\"bool\"}],\"name\":\"StreamPlacementUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"initialOperators\",\"type\":\"address[]\"}],\"name\":\"__OperatorRegistry_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"configManagers\",\"type\":\"address[]\"}],\"name\":\"__RiverConfig_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"genesisMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"genesisMiniblock\",\"type\":\"bytes\"}],\"name\":\"allocateStream\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"approveConfigurationManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"approveOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"configurationExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"deleteConfiguration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"}],\"name\":\"deleteConfigurationOnBlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllConfiguration\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"internalType\":\"struct Setting[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllNodeAddresses\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllNodes\",\"outputs\":[{\"components\":[{\"internalType\":\"enum NodeStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Node[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllStreamIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllStreams\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getConfiguration\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"internalType\":\"struct Setting[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"enum NodeStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Node\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stop\",\"type\":\"uint256\"}],\"name\":\"getPaginatedStreams\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"}],\"name\":\"getStream\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"getStreamByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStreamCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getStreamCountOnNode\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"}],\"name\":\"getStreamWithGenesis\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getStreamsOnNode\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"isConfigurationManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"placeStreamOnNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"enum NodeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"registerNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"removeConfigurationManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"removeNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"removeOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"removeStreamFromNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setConfiguration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isSealed\",\"type\":\"bool\"}],\"name\":\"setStreamLastMiniblock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"prevMiniBlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isSealed\",\"type\":\"bool\"}],\"internalType\":\"struct SetMiniblock[]\",\"name\":\"miniblocks\",\"type\":\"tuple[]\"}],\"name\":\"setStreamLastMiniblockBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"internalType\":\"enum NodeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"updateNodeStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"name\":\"updateNodeUrl\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ConfigurationChanged(bytes32,uint64,bytes,bool)\":{\"details\":\"if deleted is true and block is max value of uint64, the setting is deleted on all blocks\",\"params\":{\"block\":\"The block number on which the setting becomes active\",\"deleted\":\"True if the setting is deleted (value is empty in this case)\",\"key\":\"The setting key that is changed\",\"value\":\"The new setting value\"}},\"ConfigurationManagerAdded(address)\":{\"params\":{\"manager\":\"The configuration manager address\"}},\"ConfigurationManagerRemoved(address)\":{\"params\":{\"manager\":\"The configuration manager address\"}},\"OwnershipTransferred(address,address)\":{\"details\":\"This emits when ownership of a contract changes.\"}},\"kind\":\"dev\",\"methods\":{\"approveConfigurationManager(address)\":{\"params\":{\"manager\":\"The address to add\"}},\"configurationExists(bytes32)\":{\"params\":{\"key\":\"The setting key\"},\"returns\":{\"_0\":\"True if the setting exists\"}},\"deleteConfiguration(bytes32)\":{\"details\":\"Emits ConfigurationChanged event with deleted flag set to true and block number set to max value of uint64\",\"params\":{\"key\":\"The setting key\"}},\"deleteConfigurationOnBlock(bytes32,uint64)\":{\"details\":\"Emits ConfigurationChanged event with deleted flag set to true\",\"params\":{\"blockNumber\":\"The block number on which the setting becomes active\",\"key\":\"The setting key\"}},\"getAllConfiguration()\":{\"details\":\"Note that the returned list is ordered on key but NOT on block number\",\"returns\":{\"_0\":\"List will all stored settings\"}},\"getAllNodeAddresses()\":{\"details\":\"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getAllNodes()\":{\"details\":\"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getAllStreamIds()\":{\"details\":\"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getAllStreams()\":{\"details\":\"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getConfiguration(bytes32)\":{\"details\":\"Note that the returned list isn't ordered by block number\",\"params\":{\"key\":\"The setting key\"},\"returns\":{\"_0\":\"The setting value\"}},\"getPaginatedStreams(uint256,uint256)\":{\"details\":\"Recommended range is 5000 streams, returns true if on the last page.\"},\"getStreamWithGenesis(bytes32)\":{\"returns\":{\"_0\":\"stream, genesisMiniblockHash, genesisMiniblock\"}},\"isConfigurationManager(address)\":{\"params\":{\"manager\":\"The address to check\"},\"returns\":{\"_0\":\"True if the address is a configuration manager\"}},\"removeConfigurationManager(address)\":{\"params\":{\"manager\":\"The address to remove\"}},\"setConfiguration(bytes32,uint64,bytes)\":{\"details\":\"Emits ConfigurationChanged event\",\"params\":{\"blockNumber\":\"The block number on which the setting becomes active, can't be max value of uint64\",\"key\":\"The setting key\",\"value\":\"The setting value (value must be its ABI representation), can't be empty\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ConfigurationChanged(bytes32,uint64,bytes,bool)\":{\"notice\":\"Emitted when a setting is changed\"},\"ConfigurationManagerAdded(address)\":{\"notice\":\"Emitted when a configuration manager is added\"},\"ConfigurationManagerRemoved(address)\":{\"notice\":\"Emitted when a configuration manager is removed\"},\"InterfaceAdded(bytes4)\":{\"notice\":\"Emitted when an interface is added to the contract via `_addInterface`.\"},\"InterfaceRemoved(bytes4)\":{\"notice\":\"Emitted when an interface is removed from the contract via `_removeInterface`.\"}},\"kind\":\"user\",\"methods\":{\"approveConfigurationManager(address)\":{\"notice\":\"Add a configuration manager\"},\"configurationExists(bytes32)\":{\"notice\":\"Indication if there is a setting for the given key\"},\"deleteConfiguration(bytes32)\":{\"notice\":\"Deletes the setting for the given key on all blocks\"},\"deleteConfigurationOnBlock(bytes32,uint64)\":{\"notice\":\"Deletes the setting for the given key at the given block\"},\"getAllConfiguration()\":{\"notice\":\"Get all settings store in the registry\"},\"getAllNodeAddresses()\":{\"notice\":\"Return array containing all node addresses\"},\"getAllNodes()\":{\"notice\":\"Return array containing all nodes\"},\"getAllStreamIds()\":{\"notice\":\"Return array containing all stream ids\"},\"getAllStreams()\":{\"notice\":\"Return array containing all streams\"},\"getConfiguration(bytes32)\":{\"notice\":\"Get settings for the given key\"},\"isConfigurationManager(address)\":{\"notice\":\"Check if the given address is a configuration manager\"},\"removeConfigurationManager(address)\":{\"notice\":\"Remove a configuration manager\"},\"setConfiguration(bytes32,uint64,bytes)\":{\"notice\":\"Set a bytes setting for the given key\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/mocks/MockRiverRegistry.sol\":\"MockRiverRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/diamond/facets/Facet.sol\":{\"keccak256\":\"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863\",\"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc\"]},\"contracts/src/diamond/facets/initializable/Initializable.sol\":{\"keccak256\":\"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552\",\"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC\"]},\"contracts/src/diamond/facets/initializable/InitializableStorage.sol\":{\"keccak256\":\"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4\",\"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg\"]},\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/introspection/IntrospectionBase.sol\":{\"keccak256\":\"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1\",\"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw\"]},\"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol\":{\"keccak256\":\"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91\",\"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM\"]},\"contracts/src/diamond/facets/ownable/IERC173.sol\":{\"keccak256\":\"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b\",\"dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd\"]},\"contracts/src/diamond/facets/ownable/OwnableBase.sol\":{\"keccak256\":\"0x272abaecc104d5f23d77a623cf1548620d24b0f447eb2a12144e27561ff489f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcb8c20ff7346bdc5dba82e6680cc0ea64087460a12153e3b6c3416f6addf875\",\"dweb:/ipfs/QmfEEufJBzudSDekQteQkb3CzmnzUPT3GDhNgVpHNC9xaf\"]},\"contracts/src/diamond/facets/ownable/OwnableStorage.sol\":{\"keccak256\":\"0xda650482ce08c04110366cb01408aaabd01383d9c504b7cacfb2674aae688dcd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://694f42ffb353fccaa1eadf91dee3a3cee7253e3f357bcba2b175fd7be701e27e\",\"dweb:/ipfs/QmPxxVerATSYrNLp7snnSvNVsbLPm1wzHULhBbtR333eik\"]},\"contracts/src/river/registry/facets/config/IRiverConfig.sol\":{\"keccak256\":\"0x7293c511c6915f4c9074b499f175f18841cb3f3acb8271cb34007f376e164c3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89fe81eb0e39efdd7909ee912e684c9a7bfd6c05ccfefa2d43052cf696c66fb2\",\"dweb:/ipfs/Qmbf8uS41N2LcgEQq9AwXNm23HnPAJhWkt1JK8LGxTUofF\"]},\"contracts/src/river/registry/facets/config/RiverConfig.sol\":{\"keccak256\":\"0x49cf1c0c245c82c7203b8ea844e6ba09c53221a7453e6e4b963308e328205a2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c885936399539a1907595b6128b7369ca6a9a94a0c91b2786d6a11f27c208fc6\",\"dweb:/ipfs/QmSDWM2UgPiUautAdYt912WS4acXvR5ALQFTZiGeU8h2vR\"]},\"contracts/src/river/registry/facets/node/INodeRegistry.sol\":{\"keccak256\":\"0xa938eb74ae9987638a1ea267b602f803735b4b12b99460754ce50def63558774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005f3569ac9964b7da7cd69d968f8e032295b71a7985d83bdf1b3784bdbe2034\",\"dweb:/ipfs/QmUeCtafSt9FSGhPd1YUJ2iHqbypxm6VAG53vzdKKHNEYp\"]},\"contracts/src/river/registry/facets/node/NodeRegistry.sol\":{\"keccak256\":\"0x4add03a289cc8cdf4fa5afaeda29444fa737c2c8ffc54228be30bacca99805d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f50d294f2b8adbe480ba8f29108da3fcd8d21244492626365b408a952787ec01\",\"dweb:/ipfs/QmaHnjiMcEGYv6mTD1jTQqW6xebgKUMrK4Vu7yZf8SKZEa\"]},\"contracts/src/river/registry/facets/operator/IOperatorRegistry.sol\":{\"keccak256\":\"0xce4eb79498c4f592d803bbccac56d2c9aa11093d19ef16f913ea03d497c12a47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa4317cecb1fa3abe9f4792b54b2952a3bf4d7fcebf44840c6fc21ec971c56c5\",\"dweb:/ipfs/QmWq2nRD2stDBhuWniGZu3tM881BbfK9kSunJcyfKCN7iC\"]},\"contracts/src/river/registry/facets/operator/OperatorRegistry.sol\":{\"keccak256\":\"0x8e4d3505e8059a87de080231a513b190f8571e265a5d9db7985dd8df1f46fe66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b1c4508b6d85f9402738df45d83ed3d5a161738c087c4d9541db3e0bf20e632\",\"dweb:/ipfs/QmUenhcXzQnNKzNJ6jJaktqUuh9JTT76BS881qDkwxgLta\"]},\"contracts/src/river/registry/facets/stream/IStreamRegistry.sol\":{\"keccak256\":\"0x1f4373bfa9cdbaa460a8c8870ae059226e1c4c2b03055d92994d582f8affbf4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2eee44be95c48eba75a2283aef37771861cc5c00c32b7bbba55f4408352cf79\",\"dweb:/ipfs/QmVgv1dk5uTNcmagVUH1L1h4aHKpUhSvJPzzuQbSVAn1eT\"]},\"contracts/src/river/registry/facets/stream/StreamRegistry.sol\":{\"keccak256\":\"0x3ee1ae880161a90c74e384b58b1a8f317f1e95342b28cf71db47f01337db7dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://048bf90faa715f9c532a91d74aeab44a1c20183d04de9a80b7d1ce542325a5d5\",\"dweb:/ipfs/QmW2eXQZWiRYC5cPX1UKVNTb9S3RngAUamCD9qpfiuyibs\"]},\"contracts/src/river/registry/libraries/RegistryErrors.sol\":{\"keccak256\":\"0x411bd2bca08451c59880f46aa3ce0ac6b20a1cfa8a8836e4ce035fad57bce497\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d8b0fff68a90994db10dd30f26f4f399027295152060b65fadaab76768f6501\",\"dweb:/ipfs/QmdJsGe2utFn1ju8YKkZpshVGNgUbfkkZP77LprQ43BcPP\"]},\"contracts/src/river/registry/libraries/RegistryStorage.sol\":{\"keccak256\":\"0xd45a126f3a7ce156824b019adf5c2832236421da770a02c38a1fa5e789411201\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6edc5efd37e99112a4f1ed8ca56d9f4034c36540bfbe3854b098b5b03cb5c9c4\",\"dweb:/ipfs/QmZKR5pkUVUzxizh6YdDFXenssUfKnJCD15RMgh1T74AcH\"]},\"contracts/test/mocks/MockRiverRegistry.sol\":{\"keccak256\":\"0xd5287fb7a61a7c3062b52fefd1ab9d401243fad12c1b8355bc8e298527779e40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5f42cc15f4cfe1e6b7c9aef7de21a48b17017bb5a544ae339b743eb0a4a313b\",\"dweb:/ipfs/QmVXzQ6VQ422bmC5Q4HSvuLafnjTjUEWMdVHfCcpwXBGt2\"]},\"lib/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address[]","name":"approvedOperators","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"Initializable_InInitializingState"},{"inputs":[],"type":"error","name":"Initializable_NotInInitializingState"},{"inputs":[],"type":"error","name":"Introspection_AlreadySupported"},{"inputs":[],"type":"error","name":"Introspection_NotSupported"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"Ownable__NotOwner"},{"inputs":[],"type":"error","name":"Ownable__ZeroAddress"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":false},{"internalType":"uint64","name":"block","type":"uint64","indexed":false},{"internalType":"bytes","name":"value","type":"bytes","indexed":false},{"internalType":"bool","name":"deleted","type":"bool","indexed":false}],"type":"event","name":"ConfigurationChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"manager","type":"address","indexed":true}],"type":"event","name":"ConfigurationManagerAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"manager","type":"address","indexed":true}],"type":"event","name":"ConfigurationManagerRemoved","anonymous":false},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceAdded","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true},{"internalType":"string","name":"url","type":"string","indexed":false},{"internalType":"enum NodeStatus","name":"status","type":"uint8","indexed":false}],"type":"event","name":"NodeAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true}],"type":"event","name":"NodeRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true},{"internalType":"enum NodeStatus","name":"status","type":"uint8","indexed":false}],"type":"event","name":"NodeStatusUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true},{"internalType":"string","name":"url","type":"string","indexed":false}],"type":"event","name":"NodeUrlUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"operatorAddress","type":"address","indexed":true}],"type":"event","name":"OperatorAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"operatorAddress","type":"address","indexed":true}],"type":"event","name":"OperatorRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"address[]","name":"nodes","type":"address[]","indexed":false},{"internalType":"bytes32","name":"genesisMiniblockHash","type":"bytes32","indexed":false},{"internalType":"bytes","name":"genesisMiniblock","type":"bytes","indexed":false}],"type":"event","name":"StreamAllocated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32","indexed":false},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64","indexed":false},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"StreamLastMiniblockUpdateFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32","indexed":false},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64","indexed":false},{"internalType":"bool","name":"isSealed","type":"bool","indexed":false}],"type":"event","name":"StreamLastMiniblockUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"address","name":"nodeAddress","type":"address","indexed":false},{"internalType":"bool","name":"isAdded","type":"bool","indexed":false}],"type":"event","name":"StreamPlacementUpdated","anonymous":false},{"inputs":[{"internalType":"address[]","name":"initialOperators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"__OperatorRegistry_init"},{"inputs":[{"internalType":"address[]","name":"configManagers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"__RiverConfig_init"},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"address[]","name":"nodes","type":"address[]"},{"internalType":"bytes32","name":"genesisMiniblockHash","type":"bytes32"},{"internalType":"bytes","name":"genesisMiniblock","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"allocateStream"},{"inputs":[{"internalType":"address","name":"manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"approveConfigurationManager"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"approveOperator"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"configurationExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"deleteConfiguration"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"deleteConfigurationOnBlock"},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllConfiguration","outputs":[{"internalType":"struct Setting[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes","name":"value","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllNodeAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllNodes","outputs":[{"internalType":"struct Node[]","name":"","type":"tuple[]","components":[{"internalType":"enum NodeStatus","name":"status","type":"uint8"},{"internalType":"string","name":"url","type":"string"},{"internalType":"address","name":"nodeAddress","type":"address"},{"internalType":"address","name":"operator","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllStreamIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllStreams","outputs":[{"internalType":"struct StreamWithId[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]}]},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getConfiguration","outputs":[{"internalType":"struct Setting[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes","name":"value","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getNode","outputs":[{"internalType":"struct Node","name":"","type":"tuple","components":[{"internalType":"enum NodeStatus","name":"status","type":"uint8"},{"internalType":"string","name":"url","type":"string"},{"internalType":"address","name":"nodeAddress","type":"address"},{"internalType":"address","name":"operator","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getNodeCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"stop","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPaginatedStreams","outputs":[{"internalType":"struct StreamWithId[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]},{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStream","outputs":[{"internalType":"struct Stream","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStreamByIndex","outputs":[{"internalType":"struct StreamWithId","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStreamCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getStreamCountOnNode","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStreamWithGenesis","outputs":[{"internalType":"struct Stream","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getStreamsOnNode","outputs":[{"internalType":"struct StreamWithId[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]}]},{"inputs":[{"internalType":"address","name":"manager","type":"address"}],"stateMutability":"view","type":"function","name":"isConfigurationManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"placeStreamOnNode"},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"},{"internalType":"string","name":"url","type":"string"},{"internalType":"enum NodeStatus","name":"status","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerNode"},{"inputs":[{"internalType":"address","name":"manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeConfigurationManager"},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeNode"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeOperator"},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeStreamFromNode"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setConfiguration"},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"bool","name":"isSealed","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setStreamLastMiniblock"},{"inputs":[{"internalType":"struct SetMiniblock[]","name":"miniblocks","type":"tuple[]","components":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"bytes32","name":"prevMiniBlockHash","type":"bytes32"},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"bool","name":"isSealed","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"setStreamLastMiniblockBatch"},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"},{"internalType":"enum NodeStatus","name":"status","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"updateNodeStatus"},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"},{"internalType":"string","name":"url","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateNodeUrl"}],"devdoc":{"kind":"dev","methods":{"approveConfigurationManager(address)":{"params":{"manager":"The address to add"}},"configurationExists(bytes32)":{"params":{"key":"The setting key"},"returns":{"_0":"True if the setting exists"}},"deleteConfiguration(bytes32)":{"details":"Emits ConfigurationChanged event with deleted flag set to true and block number set to max value of uint64","params":{"key":"The setting key"}},"deleteConfigurationOnBlock(bytes32,uint64)":{"details":"Emits ConfigurationChanged event with deleted flag set to true","params":{"blockNumber":"The block number on which the setting becomes active","key":"The setting key"}},"getAllConfiguration()":{"details":"Note that the returned list is ordered on key but NOT on block number","returns":{"_0":"List will all stored settings"}},"getAllNodeAddresses()":{"details":"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block."},"getAllNodes()":{"details":"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block."},"getAllStreamIds()":{"details":"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block."},"getAllStreams()":{"details":"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block."},"getConfiguration(bytes32)":{"details":"Note that the returned list isn't ordered by block number","params":{"key":"The setting key"},"returns":{"_0":"The setting value"}},"getPaginatedStreams(uint256,uint256)":{"details":"Recommended range is 5000 streams, returns true if on the last page."},"getStreamWithGenesis(bytes32)":{"returns":{"_0":"stream, genesisMiniblockHash, genesisMiniblock"}},"isConfigurationManager(address)":{"params":{"manager":"The address to check"},"returns":{"_0":"True if the address is a configuration manager"}},"removeConfigurationManager(address)":{"params":{"manager":"The address to remove"}},"setConfiguration(bytes32,uint64,bytes)":{"details":"Emits ConfigurationChanged event","params":{"blockNumber":"The block number on which the setting becomes active, can't be max value of uint64","key":"The setting key","value":"The setting value (value must be its ABI representation), can't be empty"}}},"version":1},"userdoc":{"kind":"user","methods":{"approveConfigurationManager(address)":{"notice":"Add a configuration manager"},"configurationExists(bytes32)":{"notice":"Indication if there is a setting for the given key"},"deleteConfiguration(bytes32)":{"notice":"Deletes the setting for the given key on all blocks"},"deleteConfigurationOnBlock(bytes32,uint64)":{"notice":"Deletes the setting for the given key at the given block"},"getAllConfiguration()":{"notice":"Get all settings store in the registry"},"getAllNodeAddresses()":{"notice":"Return array containing all node addresses"},"getAllNodes()":{"notice":"Return array containing all nodes"},"getAllStreamIds()":{"notice":"Return array containing all stream ids"},"getAllStreams()":{"notice":"Return array containing all streams"},"getConfiguration(bytes32)":{"notice":"Get settings for the given key"},"isConfigurationManager(address)":{"notice":"Check if the given address is a configuration manager"},"removeConfigurationManager(address)":{"notice":"Remove a configuration manager"},"setConfiguration(bytes32,uint64,bytes)":{"notice":"Set a bytes setting for the given key"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/test/mocks/MockRiverRegistry.sol":"MockRiverRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/diamond/facets/Facet.sol":{"keccak256":"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57","urls":["bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863","dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"],"license":"MIT"},"contracts/src/diamond/facets/initializable/Initializable.sol":{"keccak256":"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90","urls":["bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552","dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"],"license":"MIT"},"contracts/src/diamond/facets/initializable/InitializableStorage.sol":{"keccak256":"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a","urls":["bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4","dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionBase.sol":{"keccak256":"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f","urls":["bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1","dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol":{"keccak256":"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763","urls":["bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91","dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"],"license":"MIT"},"contracts/src/diamond/facets/ownable/IERC173.sol":{"keccak256":"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303","urls":["bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b","dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd"],"license":"MIT"},"contracts/src/diamond/facets/ownable/OwnableBase.sol":{"keccak256":"0x272abaecc104d5f23d77a623cf1548620d24b0f447eb2a12144e27561ff489f2","urls":["bzz-raw://fcb8c20ff7346bdc5dba82e6680cc0ea64087460a12153e3b6c3416f6addf875","dweb:/ipfs/QmfEEufJBzudSDekQteQkb3CzmnzUPT3GDhNgVpHNC9xaf"],"license":"MIT"},"contracts/src/diamond/facets/ownable/OwnableStorage.sol":{"keccak256":"0xda650482ce08c04110366cb01408aaabd01383d9c504b7cacfb2674aae688dcd","urls":["bzz-raw://694f42ffb353fccaa1eadf91dee3a3cee7253e3f357bcba2b175fd7be701e27e","dweb:/ipfs/QmPxxVerATSYrNLp7snnSvNVsbLPm1wzHULhBbtR333eik"],"license":"MIT"},"contracts/src/river/registry/facets/config/IRiverConfig.sol":{"keccak256":"0x7293c511c6915f4c9074b499f175f18841cb3f3acb8271cb34007f376e164c3a","urls":["bzz-raw://89fe81eb0e39efdd7909ee912e684c9a7bfd6c05ccfefa2d43052cf696c66fb2","dweb:/ipfs/Qmbf8uS41N2LcgEQq9AwXNm23HnPAJhWkt1JK8LGxTUofF"],"license":"MIT"},"contracts/src/river/registry/facets/config/RiverConfig.sol":{"keccak256":"0x49cf1c0c245c82c7203b8ea844e6ba09c53221a7453e6e4b963308e328205a2f","urls":["bzz-raw://c885936399539a1907595b6128b7369ca6a9a94a0c91b2786d6a11f27c208fc6","dweb:/ipfs/QmSDWM2UgPiUautAdYt912WS4acXvR5ALQFTZiGeU8h2vR"],"license":"MIT"},"contracts/src/river/registry/facets/node/INodeRegistry.sol":{"keccak256":"0xa938eb74ae9987638a1ea267b602f803735b4b12b99460754ce50def63558774","urls":["bzz-raw://005f3569ac9964b7da7cd69d968f8e032295b71a7985d83bdf1b3784bdbe2034","dweb:/ipfs/QmUeCtafSt9FSGhPd1YUJ2iHqbypxm6VAG53vzdKKHNEYp"],"license":"MIT"},"contracts/src/river/registry/facets/node/NodeRegistry.sol":{"keccak256":"0x4add03a289cc8cdf4fa5afaeda29444fa737c2c8ffc54228be30bacca99805d0","urls":["bzz-raw://f50d294f2b8adbe480ba8f29108da3fcd8d21244492626365b408a952787ec01","dweb:/ipfs/QmaHnjiMcEGYv6mTD1jTQqW6xebgKUMrK4Vu7yZf8SKZEa"],"license":"MIT"},"contracts/src/river/registry/facets/operator/IOperatorRegistry.sol":{"keccak256":"0xce4eb79498c4f592d803bbccac56d2c9aa11093d19ef16f913ea03d497c12a47","urls":["bzz-raw://fa4317cecb1fa3abe9f4792b54b2952a3bf4d7fcebf44840c6fc21ec971c56c5","dweb:/ipfs/QmWq2nRD2stDBhuWniGZu3tM881BbfK9kSunJcyfKCN7iC"],"license":"MIT"},"contracts/src/river/registry/facets/operator/OperatorRegistry.sol":{"keccak256":"0x8e4d3505e8059a87de080231a513b190f8571e265a5d9db7985dd8df1f46fe66","urls":["bzz-raw://5b1c4508b6d85f9402738df45d83ed3d5a161738c087c4d9541db3e0bf20e632","dweb:/ipfs/QmUenhcXzQnNKzNJ6jJaktqUuh9JTT76BS881qDkwxgLta"],"license":"MIT"},"contracts/src/river/registry/facets/stream/IStreamRegistry.sol":{"keccak256":"0x1f4373bfa9cdbaa460a8c8870ae059226e1c4c2b03055d92994d582f8affbf4f","urls":["bzz-raw://a2eee44be95c48eba75a2283aef37771861cc5c00c32b7bbba55f4408352cf79","dweb:/ipfs/QmVgv1dk5uTNcmagVUH1L1h4aHKpUhSvJPzzuQbSVAn1eT"],"license":"MIT"},"contracts/src/river/registry/facets/stream/StreamRegistry.sol":{"keccak256":"0x3ee1ae880161a90c74e384b58b1a8f317f1e95342b28cf71db47f01337db7dfb","urls":["bzz-raw://048bf90faa715f9c532a91d74aeab44a1c20183d04de9a80b7d1ce542325a5d5","dweb:/ipfs/QmW2eXQZWiRYC5cPX1UKVNTb9S3RngAUamCD9qpfiuyibs"],"license":"MIT"},"contracts/src/river/registry/libraries/RegistryErrors.sol":{"keccak256":"0x411bd2bca08451c59880f46aa3ce0ac6b20a1cfa8a8836e4ce035fad57bce497","urls":["bzz-raw://7d8b0fff68a90994db10dd30f26f4f399027295152060b65fadaab76768f6501","dweb:/ipfs/QmdJsGe2utFn1ju8YKkZpshVGNgUbfkkZP77LprQ43BcPP"],"license":"MIT"},"contracts/src/river/registry/libraries/RegistryStorage.sol":{"keccak256":"0xd45a126f3a7ce156824b019adf5c2832236421da770a02c38a1fa5e789411201","urls":["bzz-raw://6edc5efd37e99112a4f1ed8ca56d9f4034c36540bfbe3854b098b5b03cb5c9c4","dweb:/ipfs/QmZKR5pkUVUzxizh6YdDFXenssUfKnJCD15RMgh1T74AcH"],"license":"MIT"},"contracts/test/mocks/MockRiverRegistry.sol":{"keccak256":"0xd5287fb7a61a7c3062b52fefd1ab9d401243fad12c1b8355bc8e298527779e40","urls":["bzz-raw://f5f42cc15f4cfe1e6b7c9aef7de21a48b17017bb5a544ae339b743eb0a4a313b","dweb:/ipfs/QmVXzQ6VQ422bmC5Q4HSvuLafnjTjUEWMdVHfCcpwXBGt2"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":53} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"approvedOperators","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"__OperatorRegistry_init","inputs":[{"name":"initialOperators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"__RiverConfig_init","inputs":[{"name":"configManagers","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allocateStream","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"nodes","type":"address[]","internalType":"address[]"},{"name":"genesisMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"genesisMiniblock","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveConfigurationManager","inputs":[{"name":"manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approveOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"configurationExists","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deleteConfiguration","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deleteConfigurationOnBlock","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAllConfiguration","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Setting[]","components":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"value","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getAllNodeAddresses","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getAllNodes","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Node[]","components":[{"name":"status","type":"uint8","internalType":"enum NodeStatus"},{"name":"url","type":"string","internalType":"string"},{"name":"nodeAddress","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getAllOperators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"getAllStreamIds","inputs":[],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getAllStreams","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct StreamWithId[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getConfiguration","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct Setting[]","components":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"value","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Node","components":[{"name":"status","type":"uint8","internalType":"enum NodeStatus"},{"name":"url","type":"string","internalType":"string"},{"name":"nodeAddress","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getNodeCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPaginatedStreams","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"stop","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct StreamWithId[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]},{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getStream","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getStreamByIndex","inputs":[{"name":"i","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StreamWithId","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getStreamCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getStreamCountOnNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getStreamWithGenesis","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]},{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStreamsOnNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct StreamWithId[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"isConfigurationManager","inputs":[{"name":"manager","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"placeStreamOnNode","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"},{"name":"url","type":"string","internalType":"string"},{"name":"status","type":"uint8","internalType":"enum NodeStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeConfigurationManager","inputs":[{"name":"manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeStreamFromNode","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setConfiguration","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"blockNumber","type":"uint64","internalType":"uint64"},{"name":"value","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStreamLastMiniblock","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"isSealed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStreamLastMiniblockBatch","inputs":[{"name":"miniblocks","type":"tuple[]","internalType":"struct SetMiniblock[]","components":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"prevMiniBlockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"isSealed","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateNodeStatus","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"},{"name":"status","type":"uint8","internalType":"enum NodeStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateNodeUrl","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"},{"name":"url","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ConfigurationChanged","inputs":[{"name":"key","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"block","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"value","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"deleted","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ConfigurationManagerAdded","inputs":[{"name":"manager","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ConfigurationManagerRemoved","inputs":[{"name":"manager","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"InterfaceAdded","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"InterfaceRemoved","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"NodeAdded","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"},{"name":"url","type":"string","indexed":false,"internalType":"string"},{"name":"status","type":"uint8","indexed":false,"internalType":"enum NodeStatus"}],"anonymous":false},{"type":"event","name":"NodeRemoved","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NodeStatusUpdated","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"uint8","indexed":false,"internalType":"enum NodeStatus"}],"anonymous":false},{"type":"event","name":"NodeUrlUpdated","inputs":[{"name":"nodeAddress","type":"address","indexed":true,"internalType":"address"},{"name":"url","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"OperatorAdded","inputs":[{"name":"operatorAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OperatorRemoved","inputs":[{"name":"operatorAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StreamAllocated","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"nodes","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"genesisMiniblockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"genesisMiniblock","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"StreamLastMiniblockUpdateFailed","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"StreamLastMiniblockUpdated","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"isSealed","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"StreamPlacementUpdated","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"nodeAddress","type":"address","indexed":false,"internalType":"address"},{"name":"isAdded","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"error","name":"Initializable_InInitializingState","inputs":[]},{"type":"error","name":"Initializable_NotInInitializingState","inputs":[]},{"type":"error","name":"Introspection_AlreadySupported","inputs":[]},{"type":"error","name":"Introspection_NotSupported","inputs":[]},{"type":"error","name":"Ownable__NotOwner","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Ownable__ZeroAddress","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162004f6038038062004f608339810160408190526200003491620004a6565b6200003e620000c1565b620000493362000169565b60005b8151811015620000b957620000838282815181106200006f576200006f62000578565b60200260200101516200023760201b60201c565b620000b08282815181106200009c576200009c62000578565b60200260200101516200031c60201b60201c565b6001016200004c565b5050620005df565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200010e576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff90811610156200016657805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b60006200019d7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b90506001600160a01b038216620001c757604051634e3ef82560e01b815260040160405180910390fd5b817f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae30080546001600160a01b0319166001600160a01b03928316179055604051838216918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116620002865760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526200027d91906004016200058e565b60405180910390fd5b62000293600882620003e9565b15620002d757604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526200027d91906004016200058e565b620002e460088262000410565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b038116620003625760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526200027d91906004016200058e565b6200036f600d8262000410565b620003b257604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526200027d91906004016200058e565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b6001600160a01b038116600090815260018301602052604081205415155b90505b92915050565b600062000407836001600160a01b03841660008181526001830160205260408120546200046a575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200040a565b5060006200040a565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620004a157600080fd5b919050565b60006020808385031215620004ba57600080fd5b82516001600160401b0380821115620004d257600080fd5b818501915085601f830112620004e757600080fd5b815181811115620004fc57620004fc62000473565b8060051b604051601f19603f8301168101818110858211171562000524576200052462000473565b6040529182528482019250838101850191888311156200054357600080fd5b938501935b828510156200056c576200055c8562000489565b8452938501939285019262000548565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020808352835180602085015260005b81811015620005be57858101830151858201604001528201620005a0565b506000604082860101526040601f19601f8301168501019250505092915050565b61497180620005ef6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80639ee86d3811610130578063c87d1324116100b8578063d911c6321161007c578063d911c632146104ed578063ee885b12146104f5578063eecc66f414610508578063fc207c011461051b578063ff3a14ab1461052e57600080fd5b8063c87d13241461047e578063c8fe3a0114610491578063ca78c41a146104a6578063d4bd44a0146104c7578063d7a3158a146104da57600080fd5b8063b2b99ec9116100ff578063b2b99ec91461042a578063b7f227ee1461043d578063ba428b1a14610450578063c0f2208414610463578063c179b85f1461046b57600080fd5b80639ee86d38146103dc578063a09449a6146103ef578063a1174e7d14610402578063ac8a584a1461041757600080fd5b8063581f8b9b116101b35780637e4465e7116101825780637e4465e71461036e578063813049ec1461038157806386789fc6146103945780639283ae3a146103a95780639d209048146103bc57600080fd5b8063581f8b9b1461030557806368b454df146103185780636b883c39146103385780636d70f7ae1461034b57600080fd5b806331374511116101fa578063313745111461029257806332705ac4146102a557806339bf397e146102c55780633bd84c0c146102db5780633c2544d1146102e357600080fd5b8063035759e11461022c578063081814db146102415780631290abe81461025f578063242cae9f1461027f575b600080fd5b61023f61023a366004613ae4565b610541565b005b6102496106b5565b6040516102569190613b4d565b60405180910390f35b61027261026d366004613ae4565b610920565b6040516102569190613c68565b61023f61028d366004613c97565b610a42565b61023f6102a0366004613cb2565b610a89565b6102b86102b3366004613c97565b610b1a565b6040516102569190613da7565b6102cd610dcc565b604051908152602001610256565b6102b8610ddd565b6102f66102f1366004613ae4565b610f4b565b60405161025693929190613dba565b61023f610313366004613dfe565b61111c565b61032b610326366004613ae4565b6112bc565b6040516102569190613e31565b61023f610346366004613ef9565b6113e8565b61035e610359366004613c97565b61164f565b6040519015158152602001610256565b61023f61037c366004613fdc565b611662565b61023f61038f366004613c97565b61185a565b61039c611955565b6040516102569190614029565b6102496103b7366004613ae4565b611961565b6103cf6103ca366004613c97565b611ac4565b60405161025691906140f9565b61023f6103ea36600461410c565b611c45565b61023f6103fd366004614146565b611e07565b61040a6120d6565b60405161025691906141cc565b61023f610425366004613c97565b6122aa565b61023f610438366004613c97565b61240d565b61023f61044b366004614230565b6125d6565b61023f61045e366004613cb2565b612825565b6102cd6128b1565b61023f610479366004613c97565b6128bc565b6102cd61048c366004613c97565b612900565b6104996129ae565b6040516102569190614298565b6104b96104b43660046142ab565b6129ba565b6040516102569291906142cd565b61035e6104d5366004613c97565b612bab565b61023f6104e8366004614301565b612bb8565b610499612d3b565b61023f61050336600461410c565b612d47565b61023f610516366004614351565b612f94565b61035e610529366004613ae4565b61315e565b61023f61053c3660046143ae565b61316b565b3361054d600d826133cd565b6105905760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b60405180910390fd5b8161059c600a826133f2565b6105d75760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6000838152600c60205260409020541561064a576000838152600c6020526040902080548061060857610608614423565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff1916905590610641600283018261398f565b505090556105d7565b6000838152600c60205260408120610661916139c9565b61066c600a8461340a565b50604080518481526001600160401b03602082015260808183018190526000908201526001606082015290516000805160206149518339815191529181900360a00190a1505050565b60606000806106c4600a613416565b905060005b818110156107055760006106de600a83613420565b6000818152600c60205260409020549091506106fa908561444f565b9350506001016106c9565b506000826001600160401b0381111561072057610720613e44565b60405190808252806020026020018201604052801561076d57816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161073e5790505b509050600061077c600a613416565b90506000805b82811015610915576000610797600a83613420565b6000818152600c6020908152604080832080548251818502810185019093528083529495509293909291849084015b828210156108aa57600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b0316938301939093526002830180549293929184019161081990614462565b80601f016020809104026020016040519081016040528092919081815260200182805461084590614462565b80156108925780601f1061086757610100808354040283529160200191610892565b820191906000526020600020905b81548152906001019060200180831161087557829003601f168201915b505050505081525050815260200190600101906107c6565b50505050905060005b8151811015610907578181815181106108ce576108ce614496565b60200260200101518786806108e2906144ac565b9750815181106108f4576108f4614496565b60209081029190910101526001016108b3565b505050806001019050610782565b509195945050505050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061095490836133f2565b61098f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610a3257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a14575b5050505050815250509050919050565b610a4a61342c565b6001600160a01b0316336001600160a01b031614610a7d576040516365f4906560e01b8152336004820152602401610587565b610a868161345a565b50565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610ad357604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b1557610b0d838383818110610af357610af3614496565b9050602002016020810190610b089190613c97565b61352c565b600101610ad6565b505050565b60606000610b2781613416565b90506000816001600160401b03811115610b4357610b43613e44565b604051908082528060200260200182016040528015610b6c578160200160208202803683370190505b5090506000805b83811015610c2e576000610b878183613420565b600081815260026020819052604082209081015492935091905b81811015610c1f57896001600160a01b0316836002018281548110610bc857610bc8614496565b6000918252602090912001546001600160a01b031603610c1757838787610bee816144c5565b985063ffffffff1681518110610c0657610c06614496565b602002602001018181525050610c1f565b600101610ba1565b50505050806001019050610b73565b5060008163ffffffff166001600160401b03811115610c4f57610c4f613e44565b604051908082528060200260200182016040528015610c8857816020015b610c756139ea565b815260200190600190039081610c6d5790505b50905060005b8263ffffffff16811015610dc2576040518060400160405280858381518110610cb957610cb9614496565b6020026020010151815260200160006002016000878581518110610cdf57610cdf614496565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b909104166060820152600282018054845181870281018701909552808552919492936080860193909290830182828015610d9157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d73575b505050505081525050815250828281518110610daf57610daf614496565b6020908102919091010152600101610c8e565b5095945050505050565b6000610dd86005613416565b905090565b60606000610dea81613416565b90506000816001600160401b03811115610e0657610e06613e44565b604051908082528060200260200182016040528015610e3f57816020015b610e2c6139ea565b815260200190600190039081610e245790505b50905060005b82811015610f44576000610e598183613420565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610f1257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ef4575b505050505081525050815250838381518110610f3057610f30614496565b602090810291909101015250600101610e45565b5092915050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201819052909190610f8382856133f2565b610fbe5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b9091041660608201529482018054845181870281018701909552808552929695919491938793608086019391929183018282801561107857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161105a575b505050505081525050925080805461108f90614462565b80601f01602080910402602001604051908101604052809291908181526020018280546110bb90614462565b80156111085780601f106110dd57610100808354040283529160200191611108565b820191906000526020600020905b8154815290600101906020018083116110eb57829003601f168201915b505050505090509250925092509193909250565b6001600160a01b0380831660009081526007602052604090206002015483911661117c57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b336111886008826133cd565b6111c25760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808516600090815260076020526040902060030154859133911681146112205760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b038616600090815260076020526040902080546112479060ff16876135f1565b80548690829060ff191660018360058111156112655761126561406d565b021790555060028101546040516001600160a01b03909116907f20891cc7622c7951cbd8c70c61a5201eb45625b8c00e8f6c986cfca78f3dbfa0906112ab9089906144e8565b60405180910390a250505050505050565b6112c46139ea565b60006112cf81613416565b905080831061130f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600061131b8185613420565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b90910416606082015291810180548651818602810186019097528087529697509395838701959294919360808601939291908301828280156113d457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113b6575b505050919092525050509052949350505050565b336000818152600760205260409020600201546001600160a01b031661144457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b61144f6000866133f2565b1561149057604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b835160005b81811015611515576114cd8682815181106114b2576114b2614496565b602002602001015160006005016133cd90919063ffffffff16565b61150d57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b600101611495565b506040805160a08101825285815260006020820181905291810182905260608101829052608081018790529061154b9088613784565b5060008781526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff199099169190941617969096179590951617909355608084015180518594936115db93908501920190613a34565b50505060008781526003602052604090206115f6858261455b565b5060008781526004602052604090819020869055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb9061163e908990899089908990614614565b60405180910390a150505050505050565b600061165c6008836133cd565b92915050565b3361166e6008826133cd565b6116a85760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b0380841660009081526007602052604090206002015484911661170857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808516600090815260076020526040902060030154859133911681146117665760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b038616600090815260076020908152604091829020915161179091889101614650565b60405160208183030381529060405280519060200120816001016040516020016117ba919061466c565b604051602081830303815290604052805190602001200361180a5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b60018101611818878261455b565b5060028101546040516001600160a01b03909116907f4505168a8705a16fd4d0575197fd0f510db69df93a065e158ad2c0957ba12bac906112ab908990614410565b61186261342c565b6001600160a01b0316336001600160a01b031614611895576040516365f4906560e01b8152336004820152602401610587565b6001600160a01b0381166118d85760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b6118e3600d82613790565b61191e5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6040516001600160a01b038216907ff9889c857e5356066b564327caa757c325ecbc001b2b47d72edf8cf9aedb1be590600090a250565b6060610dd860006137a5565b60608161196f600a826133f2565b6119aa5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6000838152600c6020908152604080832080548251818502810185019093528083529193909284015b82821015611ab757600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b03169383019390935260028301805492939291840191611a2690614462565b80601f0160208091040260200160405190810160405280929190818152602001828054611a5290614462565b8015611a9f5780601f10611a7457610100808354040283529160200191611a9f565b820191906000526020600020905b815481529060010190602001808311611a8257829003601f168201915b505050505081525050815260200190600101906119d3565b5050505091505b50919050565b611aef6040805160808101909152806000815260606020820181905260006040830181905291015290565b611afa6005836133cd565b611b3a57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b038216600090815260076020526040908190208151608081019092528054829060ff166005811115611b7557611b7561406d565b6005811115611b8657611b8661406d565b8152602001600182018054611b9a90614462565b80601f0160208091040260200160405190810160405280929190818152602001828054611bc690614462565b8015611c135780601f10611be857610100808354040283529160200191611c13565b820191906000526020600020905b815481529060010190602001808311611bf657829003601f168201915b505050918352505060028201546001600160a01b03908116602083015260039092015490911660409091015292915050565b81611c516000826133f2565b611c8c5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808316600090815260076020526040902060020154839116611cec57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b600084815260026020819052604082209081015490915b81811015611d8857856001600160a01b0316836002018281548110611d2a57611d2a614496565b6000918252602090912001546001600160a01b031603611d8057604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b600101611d03565b5060028201805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b038916908117909155604080518a8152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f906060015b60405180910390a1505050505050565b33611e13600d826133cd565b611e4d5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b67fffffffffffffffe196001600160401b03851601611e9b5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b6000829003611ed95760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b611ee4600a866133f2565b611ef557611ef3600a86613784565b505b6000858152600c6020526040812054905b81811015611fdc576000878152600c6020526040902080546001600160401b038816919083908110611f3a57611f3a614496565b60009182526020909120600160039092020101546001600160401b031603611fd4576000878152600c6020526040902080548691869184908110611f8057611f80614496565b90600052602060002090600302016002019182611f9e9291906146e2565b50600080516020614951833981519152878787876000604051611fc595949392919061479b565b60405180910390a150506120cf565b600101611f06565b506000600c0160008781526020019081526020016000206040518060600160405280888152602001876001600160401b0316815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050835460018082018655948252602091829020845160039092020190815590830151938101805467ffffffffffffffff19166001600160401b039095169490941790935550604081015190919060028201906120a6908261455b565b505050600080516020614951833981519152868686866000604051611df795949392919061479b565b5050505050565b606060006120e46005613416565b6001600160401b038111156120fb576120fb613e44565b60405190808252806020026020018201604052801561215757816020015b6121446040805160808101909152806000815260606020820181905260006040830181905291015290565b8152602001906001900390816121195790505b50905060005b6121676005613416565b811015611abe576007600061217d600584613420565b6001600160a01b03168152602081019190915260409081016000208151608081019092528054829060ff1660058111156121b9576121b961406d565b60058111156121ca576121ca61406d565b81526020016001820180546121de90614462565b80601f016020809104026020016040519081016040528092919081815260200182805461220a90614462565b80156122575780601f1061222c57610100808354040283529160200191612257565b820191906000526020600020905b81548152906001019060200180831161223a57829003601f168201915b505050918352505060028201546001600160a01b039081166020830152600390920154909116604090910152825183908390811061229757612297614496565b602090810291909101015260010161215d565b6122b261342c565b6001600160a01b0316336001600160a01b0316146122e5576040516365f4906560e01b8152336004820152602401610587565b6122f06008826133cd565b61233457604080518082018252601281527113d41154905513d497d393d517d193d5539160721b6020820152905162461bcd60e51b81526105879190600401614410565b60005b6123416005613416565b8110156123c9576001600160a01b03821660076000612361600585613420565b6001600160a01b03908116825260208201929092526040016000206003015416036123c157604080518082018252600d81526c4f55545f4f465f424f554e445360981b6020820152905162461bcd60e51b81526105879190600401614410565b600101612337565b506123d5600882613790565b506040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b038082166000908152600760205260409020600301548291339116811461246b5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03838116600090815260076020526040902060020154166124c957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b60056001600160a01b03841660009081526007602052604090205460ff1660058111156124f8576124f861406d565b146125415760408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614410565b61254c600584613790565b506001600160a01b0383166000908152600760205260408120805460ff191681559061257b600183018261398f565b506002810180546001600160a01b03199081169091556003909101805490911690556040516001600160a01b038416907fcfc24166db4bb677e857cacabd1541fb2b30645021b27c5130419589b84db52b90600090a2505050565b336125e2600d826133cd565b61261c5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6000805b6000858152600c602052604090205481101561279d576000858152600c6020526040902080546001600160401b03861691908390811061266257612662614496565b60009182526020909120600160039092020101546001600160401b031603612795576000858152600c6020526040902080546126a0906001906147eb565b815481106126b0576126b0614496565b90600052602060002090600302016000600c01600087815260200190815260200160002082815481106126e5576126e5614496565b600091825260209091208254600390920201908155600180830154908201805467ffffffffffffffff19166001600160401b03909216919091179055600280820190612733908401826147fe565b5050506000858152600c6020526040902080548061275357612753614423565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff191690559061278c600283018261398f565b50509055600191505b600101612620565b50806127da5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b604080518581526001600160401b038516602082015260808183018190526000908201526001606082015290516000805160206149518339815191529181900360a00190a150505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661286f57604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b15576128a983838381811061288f5761288f614496565b90506020020160208101906128a49190613c97565b61345a565b600101612872565b6000610dd881613416565b6128c461342c565b6001600160a01b0316336001600160a01b0316146128f7576040516365f4906560e01b8152336004820152602401610587565b610a868161352c565b6000808061290d81613416565b905060005b818110156129a55760006129268183613420565b60008181526002602052604081209192505b600282015481101561299757876001600160a01b031682600201828154811061296357612963614496565b6000918252602090912001546001600160a01b03160361298f5785612987816144ac565b965050612997565b600101612938565b505050806001019050612912565b50909392505050565b6060610dd860056137a5565b60606000828410604051806040016040528060078152602001664241445f41524760c81b815250906129ff5760405162461bcd60e51b81526004016105879190614410565b506000612a0c85856147eb565b6001600160401b03811115612a2357612a23613e44565b604051908082528060200260200182016040528015612a5c57816020015b612a496139ea565b815260200190600190039081612a415790505b5090506000612a6a81613416565b905060005b81612a7a828961444f565b108015612a8f575085612a8d828961444f565b105b15612b9f576000612aab612aa3838a61444f565b600090613420565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015612b6457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612b46575b505050505081525050815250848381518110612b8257612b82614496565b60200260200101819052505080612b98906144ac565b9050612a6f565b50909593101593505050565b600061165c600d836133cd565b336000818152600760205260409020600201546001600160a01b0316612c1457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b612c1f6000876133f2565b612c5a5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b0386161790558215612cc2576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b0316600103612cea576000878152600360205260408120612cea9161398f565b60408051888152602081018790526001600160401b0386169181019190915283151560608201527fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b9060800161163e565b6060610dd860086137a5565b81612d536000826133f2565b612d8e5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808316600090815260076020526040902060020154839116612dee57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b6000848152600260208190526040822090810154909190815b81811015612f0957866001600160a01b0316846002018281548110612e2e57612e2e614496565b6000918252602090912001546001600160a01b031603612f015760028401612e576001846147eb565b81548110612e6757612e67614496565b6000918252602090912001546002850180546001600160a01b039092169183908110612e9557612e95614496565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083600201805480612ed657612ed6614423565b600082815260209020810160001990810180546001600160a01b031916905501905560019250612f09565b600101612e07565b5081612f4b57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b604080518881526001600160a01b03881660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600161163e565b33612fa06008826133cd565b612fda5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03848116600090815260076020526040902060020154161561303957604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b600060405180608001604052808460058111156130585761305861406d565b8152602081018690526001600160a01b03871660408201523360609091015290506130846005866137b2565b506001600160a01b03851660009081526007602052604090208151815483929190829060ff191660018360058111156130bf576130bf61406d565b0217905550602082015160018201906130d8908261455b565b506040828101516002830180546001600160a01b03199081166001600160a01b039384161790915560609094015160039093018054909416928116929092179092559051908616907fd6f3629b08191adb8308c3a65d5f8803b7f8f3e359c433fa7ae623276635e5619061314f90879087906148ca565b60405180910390a25050505050565b600061165c600a836133f2565b336000818152600760205260409020600201546001600160a01b03166131c757604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b8160005b818110156120cf57368585838181106131e6576131e6614496565b60a0029190910191506131fd9050600082356133f2565b613275577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561323960808501606086016148ec565b60408051808201825260098152681393d517d193d5539160ba1b602082015290516132679493929190614907565b60405180910390a1506133c5565b80356000908152600260205260409081902090820135815561329d60808301606084016148ec565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556132d060a0830160808401614935565b15613308576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b61331860808301606084016148ec565b6001600160401b031660010361334157813560009081526003602052604081206133419161398f565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561337960808601606087016148ec565b61338960a0870160808801614935565b6040516133ba949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b6001016131cb565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600081815260018301602052604081205415156133eb565b60006133eb83836137c7565b600061165c825490565b60006133eb83836138ba565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b6001600160a01b03811661349d5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b6134a86008826133cd565b156134e957604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b6134f46008826137b2565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b03811661356f5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b61357a600d826137b2565b6135ba57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b60008260058111156136055761360561406d565b1480613659575060018260058111156136205761362061406d565b1480156136595750600381600581111561363c5761363c61406d565b1480613659575060048160058111156136575761365761406d565b145b806136ac575060028260058111156136735761367361406d565b1480156136ac5750600381600581111561368f5761368f61406d565b14806136ac575060048160058111156136aa576136aa61406d565b145b806136ff575060048260058111156136c6576136c661406d565b1480156136ff575060038160058111156136e2576136e261406d565b14806136ff575060058160058111156136fd576136fd61406d565b145b80613737575060038260058111156137195761371961406d565b148015613737575060058160058111156137355761373561406d565b145b15613740575050565b60408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614410565b60006133eb83836138e4565b60006133eb836001600160a01b0384166137c7565b606060006133eb83613933565b60006133eb836001600160a01b0384166138e4565b600081815260018301602052604081205480156138b05760006137eb6001836147eb565b85549091506000906137ff906001906147eb565b905080821461386457600086600001828154811061381f5761381f614496565b906000526020600020015490508087600001848154811061384257613842614496565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061387557613875614423565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061165c565b600091505061165c565b60008260000182815481106138d1576138d1614496565b9060005260206000200154905092915050565b600081815260018301602052604081205461392b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561165c565b50600061165c565b60608160000180548060200260200160405190810160405280929190818152602001828054801561398357602002820191906000526020600020905b81548152602001906001019080831161396f575b50505050509050919050565b50805461399b90614462565b6000825580601f106139ab575050565b601f016020900490600052602060002090810190610a869190613a99565b5080546000825560030290600052602060002090810190610a869190613aae565b604080518082019091526000815260208101613a2f6040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b828054828255906000526020600020908101928215613a89579160200282015b82811115613a8957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613a54565b50613a95929150613a99565b5090565b5b80821115613a955760008155600101613a9a565b80821115613a9557600080825560018201805467ffffffffffffffff19169055613adb600283018261398f565b50600301613aae565b600060208284031215613af657600080fd5b5035919050565b60005b83811015613b18578181015183820152602001613b00565b50506000910152565b60008151808452613b39816020860160208601613afd565b601f01601f19169290920160200192915050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613bc957888303603f19018552815180518452878101516001600160401b0316888501528601516060878501819052613bb581860183613b21565b968901969450505090860190600101613b76565b509098975050505050505050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015613c5d5784516001600160a01b03168252938301936001929092019190830190613c34565b509695505050505050565b6020815260006133eb6020830184613bd7565b80356001600160a01b0381168114613c9257600080fd5b919050565b600060208284031215613ca957600080fd5b6133eb82613c7b565b60008060208385031215613cc557600080fd5b82356001600160401b0380821115613cdc57600080fd5b818501915085601f830112613cf057600080fd5b813581811115613cff57600080fd5b8660208260051b8501011115613d1457600080fd5b60209290920196919550909350505050565b805182526000602082015160406020850152613d456040850182613bd7565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015613d9a57601f19868403018952613d88838351613d26565b98840198925090830190600101613d6c565b5090979650505050505050565b6020815260006133eb6020830184613d4d565b606081526000613dcd6060830186613bd7565b8460208401528281036040840152613de58185613b21565b9695505050505050565b803560068110613c9257600080fd5b60008060408385031215613e1157600080fd5b613e1a83613c7b565b9150613e2860208401613def565b90509250929050565b6020815260006133eb6020830184613d26565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613e8257613e82613e44565b604052919050565b600082601f830112613e9b57600080fd5b81356001600160401b03811115613eb457613eb4613e44565b613ec7601f8201601f1916602001613e5a565b818152846020838601011115613edc57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613f0f57600080fd5b843593506020808601356001600160401b0380821115613f2e57600080fd5b818801915088601f830112613f4257600080fd5b813581811115613f5457613f54613e44565b8060051b613f63858201613e5a565b918252838101850191858101908c841115613f7d57600080fd5b948601945b83861015613fa257613f9386613c7b565b82529486019490860190613f82565b9850505050604088013594506060880135925080831115613fc257600080fd5b5050613fd087828801613e8a565b91505092959194509250565b60008060408385031215613fef57600080fd5b613ff883613c7b565b915060208301356001600160401b0381111561401357600080fd5b61401f85828601613e8a565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561406157835183529284019291840191600101614045565b50909695505050505050565b634e487b7160e01b600052602160045260246000fd5b600681106140a157634e487b7160e01b600052602160045260246000fd5b9052565b6140b0828251614083565b60006020820151608060208501526140cb6080850182613b21565b6040848101516001600160a01b03908116918701919091526060948501511693909401929092525090919050565b6020815260006133eb60208301846140a5565b6000806040838503121561411f57600080fd5b82359150613e2860208401613c7b565b80356001600160401b0381168114613c9257600080fd5b6000806000806060858703121561415c57600080fd5b8435935061416c6020860161412f565b925060408501356001600160401b038082111561418857600080fd5b818701915087601f83011261419c57600080fd5b8135818111156141ab57600080fd5b8860208285010111156141bd57600080fd5b95989497505060200194505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561422357603f198886030184526142118583516140a5565b945092850192908501906001016141f5565b5092979650505050505050565b6000806040838503121561424357600080fd5b82359150613e286020840161412f565b60008151808452602080850194506020840160005b8381101561428d5781516001600160a01b031687529582019590820190600101614268565b509495945050505050565b6020815260006133eb6020830184614253565b600080604083850312156142be57600080fd5b50508035926020909101359150565b6040815260006142e06040830185613d4d565b905082151560208301529392505050565b80358015158114613c9257600080fd5b600080600080600060a0868803121561431957600080fd5b8535945060208601359350604086013592506143376060870161412f565b9150614345608087016142f1565b90509295509295909350565b60008060006060848603121561436657600080fd5b61436f84613c7b565b925060208401356001600160401b0381111561438a57600080fd5b61439686828701613e8a565b9250506143a560408501613def565b90509250925092565b600080602083850312156143c157600080fd5b82356001600160401b03808211156143d857600080fd5b818501915085601f8301126143ec57600080fd5b8135818111156143fb57600080fd5b86602060a083028501011115613d1457600080fd5b6020815260006133eb6020830184613b21565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561165c5761165c614439565b600181811c9082168061447657607f821691505b602082108103611abe57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016144be576144be614439565b5060010190565b600063ffffffff8083168181036144de576144de614439565b6001019392505050565b6020810161165c8284614083565b601f821115610b15576000816000526020600020601f850160051c8101602086101561451f5750805b601f850160051c820191505b8181101561453e5782815560010161452b565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561457457614574613e44565b614588816145828454614462565b846144f6565b602080601f8311600181146145b757600084156145a55750858301515b6145af8582614546565b86555061453e565b600085815260208120601f198616915b828110156145e6578886015182559484019460019091019084016145c7565b50858210156146045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061462d6080830186614253565b84604084015282810360608401526146458185613b21565b979650505050505050565b60008251614662818460208701613afd565b9190910192915050565b600080835461467a81614462565b6001828116801561469257600181146146a7576146d6565b60ff19841687528215158302870194506146d6565b8760005260208060002060005b858110156146cd5781548a8201529084019082016146b4565b50505082870194505b50929695505050505050565b6001600160401b038311156146f9576146f9613e44565b61470d836147078354614462565b836144f6565b6000601f84116001811461473b57600085156147295750838201355b6147338682614546565b8455506120cf565b600083815260209020601f19861690835b8281101561476c578685013582556020948501946001909201910161474c565b50868210156147895760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8581526001600160401b038516602082015260806040820152826080820152828460a0830137600081840160a0908101919091529115156060820152601f909201601f1916909101019392505050565b8181038181111561165c5761165c614439565b818103614809575050565b6148138254614462565b6001600160401b0381111561482a5761482a613e44565b614838816145828454614462565b6000601f82116001811461486657600083156148545750848201545b61485e8482614546565b8555506120cf565b600085815260209020601f19841690600086815260209020845b838110156148a05782860154825560019586019590910190602001614880565b50858310156146045793015460001960f8600387901b161c19169092555050600190811b01905550565b6040815260006148dd6040830185613b21565b90506133eb6020830184614083565b6000602082840312156148fe57600080fd5b6133eb8261412f565b8481528360208201526001600160401b0383166040820152608060608201526000613de56080830184613b21565b60006020828403121561494757600080fd5b6133eb826142f156fec01483261a841a868b99cb8802faed4ea44a1a816651c4f7ee061a96a205fe98","sourceMap":"553:732:331:-:0;;;1023:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;378:22:87;:20;:22::i;:::-;1077:30:331;1096:10;1077:18;:30::i;:::-;1118:9;1113:166;1137:17;:24;1133:1;:28;1113:166;;;1176:38;1193:17;1211:1;1193:20;;;;;;;;:::i;:::-;;;;;;;1176:16;;;:38;;:::i;:::-;1222:50;1251:17;1269:1;1251:20;;;;;;;;:::i;:::-;;;;;;;1222:28;;;:50;;:::i;:::-;1163:3;;1113:166;;;;1023:260;553:732;;1653:314:102;296:66:103;1779:14:102;;;;;;;1775:62;;;1802:35;;-1:-1:-1;;;1802:35:102;;;;;;;;;;;1775:62;1848:9;;1860:16;1848:9;;;:28;1844:119;;;1886:28;;-1:-1:-1;;1886:28:102;1898:16;1886:28;;;;;1927:29;;1738:42:484;;;1927:29:102;;1726:2:484;1711:18;1927:29:102;;;;;;;1844:119;1694:273;1653:314::o;476:253:114:-;537:16;556:8;284:66:116;438:29:114;-1:-1:-1;;;;;438:29:114;;369:103;556:8;537:27;-1:-1:-1;;;;;;574:22:114;;570:57;;605:22;;-1:-1:-1;;;605:22:114;;;;;;;;;;;570:57;665:8;284:66:116;633:40:114;;-1:-1:-1;;;;;;633:40:114;-1:-1:-1;;;;;633:40:114;;;;;;684;;;;;;;;;;;-1:-1:-1;;684:40:114;531:198;476:253;:::o;2109:320:195:-;-1:-1:-1;;;;;2205:22:195;;2201:63;;2236:27;;;;;;;;;;;-1:-1:-1;;;2236:27:195;;;;2229:35;;-1:-1:-1;;;2229:35:195;;;;2236:27;2229:35;;;:::i;:::-;;;;;;;;2201:63;2275:31;:12;2297:8;2275:21;:31::i;:::-;2271:85;;;2321:34;;;;;;;;;;;-1:-1:-1;;;2321:34:195;;;;2314:42;;-1:-1:-1;;;2314:42:195;;;;2321:34;2314:42;;;:::i;2271:85::-;2363:26;:12;2380:8;2363:16;:26::i;:::-;-1:-1:-1;2401:23:195;;-1:-1:-1;;;;;2401:23:195;;;;;;;;2109:320;:::o;6030:282:191:-;-1:-1:-1;;;;;6104:21:191;;6100:62;;6134:27;;;;;;;;;;;-1:-1:-1;;;6134:27:191;;;;6127:35;;-1:-1:-1;;;6127:35:191;;;;6134:27;6127:35;;;:::i;6100:62::-;6174:37;:24;6203:7;6174:28;:37::i;:::-;6169:92;;6226:34;;;;;;;;;;;-1:-1:-1;;;6226:34:191;;;;6219:42;;-1:-1:-1;;;6219:42:191;;;;6226:34;6219:42;;;:::i;6169:92::-;6273:34;;-1:-1:-1;;;;;6273:34:191;;;;;;;;6030:282;:::o;8871:165:417:-;-1:-1:-1;;;;;9004:23:417;;8951:4;4360:21;;;:14;;;:21;;;;;;:26;;8974:55;8967:62;;8871:165;;;;;:::o;8316:150::-;8386:4;8409:50;8414:3;-1:-1:-1;;;;;8434:23:417;;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:417;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;2320:321;-1:-1:-1;2625:5:417;2618:12;;14:127:484;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:484;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:1129::-;423:6;454:2;497;485:9;476:7;472:23;468:32;465:52;;;513:1;510;503:12;465:52;540:16;;-1:-1:-1;;;;;605:14:484;;;602:34;;;632:1;629;622:12;602:34;670:6;659:9;655:22;645:32;;715:7;708:4;704:2;700:13;696:27;686:55;;737:1;734;727:12;686:55;766:2;760:9;788:2;784;781:10;778:36;;;794:18;;:::i;:::-;840:2;837:1;833:10;872:2;866:9;935:2;931:7;926:2;922;918:11;914:25;906:6;902:38;990:6;978:10;975:22;970:2;958:10;955:18;952:46;949:72;;;1001:18;;:::i;:::-;1037:2;1030:22;1087:18;;;1121:15;;;;-1:-1:-1;1163:11:484;;;1159:20;;;1191:19;;;1188:39;;;1223:1;1220;1213:12;1188:39;1247:11;;;;1267:159;1283:6;1278:3;1275:15;1267:159;;;1349:34;1379:3;1349:34;:::i;:::-;1337:47;;1300:12;;;;1404;;;;1267:159;;;1445:6;328:1129;-1:-1:-1;;;;;;;;328:1129:484:o;1462:127::-;1523:10;1518:3;1514:20;1511:1;1504:31;1554:4;1551:1;1544:15;1578:4;1575:1;1568:15;1791:548;1903:4;1932:2;1961;1950:9;1943:21;1993:6;1987:13;2036:6;2031:2;2020:9;2016:18;2009:34;2061:1;2071:140;2085:6;2082:1;2079:13;2071:140;;;2180:14;;;2176:23;;2170:30;2146:17;;;2165:2;2142:26;2135:66;2100:10;;2071:140;;;2075:3;2260:1;2255:2;2246:6;2235:9;2231:22;2227:31;2220:42;2330:2;2323;2319:7;2314:2;2306:6;2302:15;2298:29;2287:9;2283:45;2279:54;2271:62;;;;1791:548;;;;:::o;:::-;553:732:331;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102275760003560e01c80639ee86d3811610130578063c87d1324116100b8578063d911c6321161007c578063d911c632146104ed578063ee885b12146104f5578063eecc66f414610508578063fc207c011461051b578063ff3a14ab1461052e57600080fd5b8063c87d13241461047e578063c8fe3a0114610491578063ca78c41a146104a6578063d4bd44a0146104c7578063d7a3158a146104da57600080fd5b8063b2b99ec9116100ff578063b2b99ec91461042a578063b7f227ee1461043d578063ba428b1a14610450578063c0f2208414610463578063c179b85f1461046b57600080fd5b80639ee86d38146103dc578063a09449a6146103ef578063a1174e7d14610402578063ac8a584a1461041757600080fd5b8063581f8b9b116101b35780637e4465e7116101825780637e4465e71461036e578063813049ec1461038157806386789fc6146103945780639283ae3a146103a95780639d209048146103bc57600080fd5b8063581f8b9b1461030557806368b454df146103185780636b883c39146103385780636d70f7ae1461034b57600080fd5b806331374511116101fa578063313745111461029257806332705ac4146102a557806339bf397e146102c55780633bd84c0c146102db5780633c2544d1146102e357600080fd5b8063035759e11461022c578063081814db146102415780631290abe81461025f578063242cae9f1461027f575b600080fd5b61023f61023a366004613ae4565b610541565b005b6102496106b5565b6040516102569190613b4d565b60405180910390f35b61027261026d366004613ae4565b610920565b6040516102569190613c68565b61023f61028d366004613c97565b610a42565b61023f6102a0366004613cb2565b610a89565b6102b86102b3366004613c97565b610b1a565b6040516102569190613da7565b6102cd610dcc565b604051908152602001610256565b6102b8610ddd565b6102f66102f1366004613ae4565b610f4b565b60405161025693929190613dba565b61023f610313366004613dfe565b61111c565b61032b610326366004613ae4565b6112bc565b6040516102569190613e31565b61023f610346366004613ef9565b6113e8565b61035e610359366004613c97565b61164f565b6040519015158152602001610256565b61023f61037c366004613fdc565b611662565b61023f61038f366004613c97565b61185a565b61039c611955565b6040516102569190614029565b6102496103b7366004613ae4565b611961565b6103cf6103ca366004613c97565b611ac4565b60405161025691906140f9565b61023f6103ea36600461410c565b611c45565b61023f6103fd366004614146565b611e07565b61040a6120d6565b60405161025691906141cc565b61023f610425366004613c97565b6122aa565b61023f610438366004613c97565b61240d565b61023f61044b366004614230565b6125d6565b61023f61045e366004613cb2565b612825565b6102cd6128b1565b61023f610479366004613c97565b6128bc565b6102cd61048c366004613c97565b612900565b6104996129ae565b6040516102569190614298565b6104b96104b43660046142ab565b6129ba565b6040516102569291906142cd565b61035e6104d5366004613c97565b612bab565b61023f6104e8366004614301565b612bb8565b610499612d3b565b61023f61050336600461410c565b612d47565b61023f610516366004614351565b612f94565b61035e610529366004613ae4565b61315e565b61023f61053c3660046143ae565b61316b565b3361054d600d826133cd565b6105905760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b60405180910390fd5b8161059c600a826133f2565b6105d75760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6000838152600c60205260409020541561064a576000838152600c6020526040902080548061060857610608614423565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff1916905590610641600283018261398f565b505090556105d7565b6000838152600c60205260408120610661916139c9565b61066c600a8461340a565b50604080518481526001600160401b03602082015260808183018190526000908201526001606082015290516000805160206149518339815191529181900360a00190a1505050565b60606000806106c4600a613416565b905060005b818110156107055760006106de600a83613420565b6000818152600c60205260409020549091506106fa908561444f565b9350506001016106c9565b506000826001600160401b0381111561072057610720613e44565b60405190808252806020026020018201604052801561076d57816020015b6040805160608082018352600080835260208301529181019190915281526020019060019003908161073e5790505b509050600061077c600a613416565b90506000805b82811015610915576000610797600a83613420565b6000818152600c6020908152604080832080548251818502810185019093528083529495509293909291849084015b828210156108aa57600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b0316938301939093526002830180549293929184019161081990614462565b80601f016020809104026020016040519081016040528092919081815260200182805461084590614462565b80156108925780601f1061086757610100808354040283529160200191610892565b820191906000526020600020905b81548152906001019060200180831161087557829003601f168201915b505050505081525050815260200190600101906107c6565b50505050905060005b8151811015610907578181815181106108ce576108ce614496565b60200260200101518786806108e2906144ac565b9750815181106108f4576108f4614496565b60209081029190910101526001016108b3565b505050806001019050610782565b509195945050505050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061095490836133f2565b61098f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b9091041660608201529281018054855181850281018501909652808652939491936080860193830182828015610a3257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a14575b5050505050815250509050919050565b610a4a61342c565b6001600160a01b0316336001600160a01b031614610a7d576040516365f4906560e01b8152336004820152602401610587565b610a868161345a565b50565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610ad357604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b1557610b0d838383818110610af357610af3614496565b9050602002016020810190610b089190613c97565b61352c565b600101610ad6565b505050565b60606000610b2781613416565b90506000816001600160401b03811115610b4357610b43613e44565b604051908082528060200260200182016040528015610b6c578160200160208202803683370190505b5090506000805b83811015610c2e576000610b878183613420565b600081815260026020819052604082209081015492935091905b81811015610c1f57896001600160a01b0316836002018281548110610bc857610bc8614496565b6000918252602090912001546001600160a01b031603610c1757838787610bee816144c5565b985063ffffffff1681518110610c0657610c06614496565b602002602001018181525050610c1f565b600101610ba1565b50505050806001019050610b73565b5060008163ffffffff166001600160401b03811115610c4f57610c4f613e44565b604051908082528060200260200182016040528015610c8857816020015b610c756139ea565b815260200190600190039081610c6d5790505b50905060005b8263ffffffff16811015610dc2576040518060400160405280858381518110610cb957610cb9614496565b6020026020010151815260200160006002016000878581518110610cdf57610cdf614496565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b909104166060820152600282018054845181870281018701909552808552919492936080860193909290830182828015610d9157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610d73575b505050505081525050815250828281518110610daf57610daf614496565b6020908102919091010152600101610c8e565b5095945050505050565b6000610dd86005613416565b905090565b60606000610dea81613416565b90506000816001600160401b03811115610e0657610e06613e44565b604051908082528060200260200182016040528015610e3f57816020015b610e2c6139ea565b815260200190600190039081610e245790505b50905060005b82811015610f44576000610e598183613420565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610f1257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ef4575b505050505081525050815250838381518110610f3057610f30614496565b602090810291909101015250600101610e45565b5092915050565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201819052909190610f8382856133f2565b610fbe5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b9091041660608201529482018054845181870281018701909552808552929695919491938793608086019391929183018282801561107857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161105a575b505050505081525050925080805461108f90614462565b80601f01602080910402602001604051908101604052809291908181526020018280546110bb90614462565b80156111085780601f106110dd57610100808354040283529160200191611108565b820191906000526020600020905b8154815290600101906020018083116110eb57829003601f168201915b505050505090509250925092509193909250565b6001600160a01b0380831660009081526007602052604090206002015483911661117c57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b336111886008826133cd565b6111c25760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808516600090815260076020526040902060030154859133911681146112205760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b038616600090815260076020526040902080546112479060ff16876135f1565b80548690829060ff191660018360058111156112655761126561406d565b021790555060028101546040516001600160a01b03909116907f20891cc7622c7951cbd8c70c61a5201eb45625b8c00e8f6c986cfca78f3dbfa0906112ab9089906144e8565b60405180910390a250505050505050565b6112c46139ea565b60006112cf81613416565b905080831061130f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600061131b8185613420565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b90910416606082015291810180548651818602810186019097528087529697509395838701959294919360808601939291908301828280156113d457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116113b6575b505050919092525050509052949350505050565b336000818152600760205260409020600201546001600160a01b031661144457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b61144f6000866133f2565b1561149057604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b835160005b81811015611515576114cd8682815181106114b2576114b2614496565b602002602001015160006005016133cd90919063ffffffff16565b61150d57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b600101611495565b506040805160a08101825285815260006020820181905291810182905260608101829052608081018790529061154b9088613784565b5060008781526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff199099169190941617969096179590951617909355608084015180518594936115db93908501920190613a34565b50505060008781526003602052604090206115f6858261455b565b5060008781526004602052604090819020869055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb9061163e908990899089908990614614565b60405180910390a150505050505050565b600061165c6008836133cd565b92915050565b3361166e6008826133cd565b6116a85760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b0380841660009081526007602052604090206002015484911661170857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808516600090815260076020526040902060030154859133911681146117665760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b038616600090815260076020908152604091829020915161179091889101614650565b60405160208183030381529060405280519060200120816001016040516020016117ba919061466c565b604051602081830303815290604052805190602001200361180a5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b60018101611818878261455b565b5060028101546040516001600160a01b03909116907f4505168a8705a16fd4d0575197fd0f510db69df93a065e158ad2c0957ba12bac906112ab908990614410565b61186261342c565b6001600160a01b0316336001600160a01b031614611895576040516365f4906560e01b8152336004820152602401610587565b6001600160a01b0381166118d85760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b6118e3600d82613790565b61191e5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6040516001600160a01b038216907ff9889c857e5356066b564327caa757c325ecbc001b2b47d72edf8cf9aedb1be590600090a250565b6060610dd860006137a5565b60608161196f600a826133f2565b6119aa5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6000838152600c6020908152604080832080548251818502810185019093528083529193909284015b82821015611ab757600084815260209081902060408051606081018252600386029092018054835260018101546001600160401b03169383019390935260028301805492939291840191611a2690614462565b80601f0160208091040260200160405190810160405280929190818152602001828054611a5290614462565b8015611a9f5780601f10611a7457610100808354040283529160200191611a9f565b820191906000526020600020905b815481529060010190602001808311611a8257829003601f168201915b505050505081525050815260200190600101906119d3565b5050505091505b50919050565b611aef6040805160808101909152806000815260606020820181905260006040830181905291015290565b611afa6005836133cd565b611b3a57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b038216600090815260076020526040908190208151608081019092528054829060ff166005811115611b7557611b7561406d565b6005811115611b8657611b8661406d565b8152602001600182018054611b9a90614462565b80601f0160208091040260200160405190810160405280929190818152602001828054611bc690614462565b8015611c135780601f10611be857610100808354040283529160200191611c13565b820191906000526020600020905b815481529060010190602001808311611bf657829003601f168201915b505050918352505060028201546001600160a01b03908116602083015260039092015490911660409091015292915050565b81611c516000826133f2565b611c8c5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808316600090815260076020526040902060020154839116611cec57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b600084815260026020819052604082209081015490915b81811015611d8857856001600160a01b0316836002018281548110611d2a57611d2a614496565b6000918252602090912001546001600160a01b031603611d8057604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b600101611d03565b5060028201805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b038916908117909155604080518a8152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f906060015b60405180910390a1505050505050565b33611e13600d826133cd565b611e4d5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b67fffffffffffffffe196001600160401b03851601611e9b5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b6000829003611ed95760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b611ee4600a866133f2565b611ef557611ef3600a86613784565b505b6000858152600c6020526040812054905b81811015611fdc576000878152600c6020526040902080546001600160401b038816919083908110611f3a57611f3a614496565b60009182526020909120600160039092020101546001600160401b031603611fd4576000878152600c6020526040902080548691869184908110611f8057611f80614496565b90600052602060002090600302016002019182611f9e9291906146e2565b50600080516020614951833981519152878787876000604051611fc595949392919061479b565b60405180910390a150506120cf565b600101611f06565b506000600c0160008781526020019081526020016000206040518060600160405280888152602001876001600160401b0316815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939094525050835460018082018655948252602091829020845160039092020190815590830151938101805467ffffffffffffffff19166001600160401b039095169490941790935550604081015190919060028201906120a6908261455b565b505050600080516020614951833981519152868686866000604051611df795949392919061479b565b5050505050565b606060006120e46005613416565b6001600160401b038111156120fb576120fb613e44565b60405190808252806020026020018201604052801561215757816020015b6121446040805160808101909152806000815260606020820181905260006040830181905291015290565b8152602001906001900390816121195790505b50905060005b6121676005613416565b811015611abe576007600061217d600584613420565b6001600160a01b03168152602081019190915260409081016000208151608081019092528054829060ff1660058111156121b9576121b961406d565b60058111156121ca576121ca61406d565b81526020016001820180546121de90614462565b80601f016020809104026020016040519081016040528092919081815260200182805461220a90614462565b80156122575780601f1061222c57610100808354040283529160200191612257565b820191906000526020600020905b81548152906001019060200180831161223a57829003601f168201915b505050918352505060028201546001600160a01b039081166020830152600390920154909116604090910152825183908390811061229757612297614496565b602090810291909101015260010161215d565b6122b261342c565b6001600160a01b0316336001600160a01b0316146122e5576040516365f4906560e01b8152336004820152602401610587565b6122f06008826133cd565b61233457604080518082018252601281527113d41154905513d497d393d517d193d5539160721b6020820152905162461bcd60e51b81526105879190600401614410565b60005b6123416005613416565b8110156123c9576001600160a01b03821660076000612361600585613420565b6001600160a01b03908116825260208201929092526040016000206003015416036123c157604080518082018252600d81526c4f55545f4f465f424f554e445360981b6020820152905162461bcd60e51b81526105879190600401614410565b600101612337565b506123d5600882613790565b506040516001600160a01b038216907f80c0b871b97b595b16a7741c1b06fed0c6f6f558639f18ccbce50724325dc40d90600090a250565b6001600160a01b038082166000908152600760205260409020600301548291339116811461246b5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03838116600090815260076020526040902060020154166124c957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b60056001600160a01b03841660009081526007602052604090205460ff1660058111156124f8576124f861406d565b146125415760408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614410565b61254c600584613790565b506001600160a01b0383166000908152600760205260408120805460ff191681559061257b600183018261398f565b506002810180546001600160a01b03199081169091556003909101805490911690556040516001600160a01b038416907fcfc24166db4bb677e857cacabd1541fb2b30645021b27c5130419589b84db52b90600090a2505050565b336125e2600d826133cd565b61261c5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6000805b6000858152600c602052604090205481101561279d576000858152600c6020526040902080546001600160401b03861691908390811061266257612662614496565b60009182526020909120600160039092020101546001600160401b031603612795576000858152600c6020526040902080546126a0906001906147eb565b815481106126b0576126b0614496565b90600052602060002090600302016000600c01600087815260200190815260200160002082815481106126e5576126e5614496565b600091825260209091208254600390920201908155600180830154908201805467ffffffffffffffff19166001600160401b03909216919091179055600280820190612733908401826147fe565b5050506000858152600c6020526040902080548061275357612753614423565b60008281526020812060036000199093019283020181815560018101805467ffffffffffffffff191690559061278c600283018261398f565b50509055600191505b600101612620565b50806127da5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b604080518581526001600160401b038516602082015260808183018190526000908201526001606082015290516000805160206149518339815191529181900360a00190a150505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661286f57604051630ef4733760e31b815260040160405180910390fd5b60005b81811015610b15576128a983838381811061288f5761288f614496565b90506020020160208101906128a49190613c97565b61345a565b600101612872565b6000610dd881613416565b6128c461342c565b6001600160a01b0316336001600160a01b0316146128f7576040516365f4906560e01b8152336004820152602401610587565b610a868161352c565b6000808061290d81613416565b905060005b818110156129a55760006129268183613420565b60008181526002602052604081209192505b600282015481101561299757876001600160a01b031682600201828154811061296357612963614496565b6000918252602090912001546001600160a01b03160361298f5785612987816144ac565b965050612997565b600101612938565b505050806001019050612912565b50909392505050565b6060610dd860056137a5565b60606000828410604051806040016040528060078152602001664241445f41524760c81b815250906129ff5760405162461bcd60e51b81526004016105879190614410565b506000612a0c85856147eb565b6001600160401b03811115612a2357612a23613e44565b604051908082528060200260200182016040528015612a5c57816020015b612a496139ea565b815260200190600190039081612a415790505b5090506000612a6a81613416565b905060005b81612a7a828961444f565b108015612a8f575085612a8d828961444f565b105b15612b9f576000612aab612aa3838a61444f565b600090613420565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015612b6457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612b46575b505050505081525050815250848381518110612b8257612b82614496565b60200260200101819052505080612b98906144ac565b9050612a6f565b50909593101593505050565b600061165c600d836133cd565b336000818152600760205260409020600201546001600160a01b0316612c1457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b612c1f6000876133f2565b612c5a5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b0386161790558215612cc2576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b0316600103612cea576000878152600360205260408120612cea9161398f565b60408051888152602081018790526001600160401b0386169181019190915283151560608201527fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b9060800161163e565b6060610dd860086137a5565b81612d536000826133f2565b612d8e5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03808316600090815260076020526040902060020154839116612dee57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b6000848152600260208190526040822090810154909190815b81811015612f0957866001600160a01b0316846002018281548110612e2e57612e2e614496565b6000918252602090912001546001600160a01b031603612f015760028401612e576001846147eb565b81548110612e6757612e67614496565b6000918252602090912001546002850180546001600160a01b039092169183908110612e9557612e95614496565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083600201805480612ed657612ed6614423565b600082815260209020810160001990810180546001600160a01b031916905501905560019250612f09565b600101612e07565b5081612f4b57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b604080518881526001600160a01b03881660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600161163e565b33612fa06008826133cd565b612fda5760408051808201825260088152670848288be82aaa8960c31b6020820152905162461bcd60e51b81526105879190600401614410565b6001600160a01b03848116600090815260076020526040902060020154161561303957604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b600060405180608001604052808460058111156130585761305861406d565b8152602081018690526001600160a01b03871660408201523360609091015290506130846005866137b2565b506001600160a01b03851660009081526007602052604090208151815483929190829060ff191660018360058111156130bf576130bf61406d565b0217905550602082015160018201906130d8908261455b565b506040828101516002830180546001600160a01b03199081166001600160a01b039384161790915560609094015160039093018054909416928116929092179092559051908616907fd6f3629b08191adb8308c3a65d5f8803b7f8f3e359c433fa7ae623276635e5619061314f90879087906148ca565b60405180910390a25050505050565b600061165c600a836133f2565b336000818152600760205260409020600201546001600160a01b03166131c757604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526105879190600401614410565b8160005b818110156120cf57368585838181106131e6576131e6614496565b60a0029190910191506131fd9050600082356133f2565b613275577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561323960808501606086016148ec565b60408051808201825260098152681393d517d193d5539160ba1b602082015290516132679493929190614907565b60405180910390a1506133c5565b80356000908152600260205260409081902090820135815561329d60808301606084016148ec565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556132d060a0830160808401614935565b15613308576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b61331860808301606084016148ec565b6001600160401b031660010361334157813560009081526003602052604081206133419161398f565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561337960808601606087016148ec565b61338960a0870160808801614935565b6040516133ba949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b6001016131cb565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600081815260018301602052604081205415156133eb565b60006133eb83836137c7565b600061165c825490565b60006133eb83836138ba565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031690565b6001600160a01b03811661349d5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b6134a86008826133cd565b156134e957604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b6134f46008826137b2565b506040516001600160a01b038216907fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d90600090a250565b6001600160a01b03811661356f5760408051808201825260078152664241445f41524760c81b6020820152905162461bcd60e51b81526105879190600401614410565b61357a600d826137b2565b6135ba57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526105879190600401614410565b6040516001600160a01b038216907f7afd798379ae2d2e5035438544cea2b60eb1dde6a8128e6d447fd2a25f8825a290600090a250565b60008260058111156136055761360561406d565b1480613659575060018260058111156136205761362061406d565b1480156136595750600381600581111561363c5761363c61406d565b1480613659575060048160058111156136575761365761406d565b145b806136ac575060028260058111156136735761367361406d565b1480156136ac5750600381600581111561368f5761368f61406d565b14806136ac575060048160058111156136aa576136aa61406d565b145b806136ff575060048260058111156136c6576136c661406d565b1480156136ff575060038160058111156136e2576136e261406d565b14806136ff575060058160058111156136fd576136fd61406d565b145b80613737575060038260058111156137195761371961406d565b148015613737575060058160058111156137355761373561406d565b145b15613740575050565b60408051808201825260168152751393d11157d4d510551157d393d517d0531313d5d15160521b6020820152905162461bcd60e51b81526105879190600401614410565b60006133eb83836138e4565b60006133eb836001600160a01b0384166137c7565b606060006133eb83613933565b60006133eb836001600160a01b0384166138e4565b600081815260018301602052604081205480156138b05760006137eb6001836147eb565b85549091506000906137ff906001906147eb565b905080821461386457600086600001828154811061381f5761381f614496565b906000526020600020015490508087600001848154811061384257613842614496565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061387557613875614423565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061165c565b600091505061165c565b60008260000182815481106138d1576138d1614496565b9060005260206000200154905092915050565b600081815260018301602052604081205461392b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561165c565b50600061165c565b60608160000180548060200260200160405190810160405280929190818152602001828054801561398357602002820191906000526020600020905b81548152602001906001019080831161396f575b50505050509050919050565b50805461399b90614462565b6000825580601f106139ab575050565b601f016020900490600052602060002090810190610a869190613a99565b5080546000825560030290600052602060002090810190610a869190613aae565b604080518082019091526000815260208101613a2f6040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b828054828255906000526020600020908101928215613a89579160200282015b82811115613a8957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613a54565b50613a95929150613a99565b5090565b5b80821115613a955760008155600101613a9a565b80821115613a9557600080825560018201805467ffffffffffffffff19169055613adb600283018261398f565b50600301613aae565b600060208284031215613af657600080fd5b5035919050565b60005b83811015613b18578181015183820152602001613b00565b50506000910152565b60008151808452613b39816020860160208601613afd565b601f01601f19169290920160200192915050565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613bc957888303603f19018552815180518452878101516001600160401b0316888501528601516060878501819052613bb581860183613b21565b968901969450505090860190600101613b76565b509098975050505050505050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015613c5d5784516001600160a01b03168252938301936001929092019190830190613c34565b509695505050505050565b6020815260006133eb6020830184613bd7565b80356001600160a01b0381168114613c9257600080fd5b919050565b600060208284031215613ca957600080fd5b6133eb82613c7b565b60008060208385031215613cc557600080fd5b82356001600160401b0380821115613cdc57600080fd5b818501915085601f830112613cf057600080fd5b813581811115613cff57600080fd5b8660208260051b8501011115613d1457600080fd5b60209290920196919550909350505050565b805182526000602082015160406020850152613d456040850182613bd7565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015613d9a57601f19868403018952613d88838351613d26565b98840198925090830190600101613d6c565b5090979650505050505050565b6020815260006133eb6020830184613d4d565b606081526000613dcd6060830186613bd7565b8460208401528281036040840152613de58185613b21565b9695505050505050565b803560068110613c9257600080fd5b60008060408385031215613e1157600080fd5b613e1a83613c7b565b9150613e2860208401613def565b90509250929050565b6020815260006133eb6020830184613d26565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613e8257613e82613e44565b604052919050565b600082601f830112613e9b57600080fd5b81356001600160401b03811115613eb457613eb4613e44565b613ec7601f8201601f1916602001613e5a565b818152846020838601011115613edc57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613f0f57600080fd5b843593506020808601356001600160401b0380821115613f2e57600080fd5b818801915088601f830112613f4257600080fd5b813581811115613f5457613f54613e44565b8060051b613f63858201613e5a565b918252838101850191858101908c841115613f7d57600080fd5b948601945b83861015613fa257613f9386613c7b565b82529486019490860190613f82565b9850505050604088013594506060880135925080831115613fc257600080fd5b5050613fd087828801613e8a565b91505092959194509250565b60008060408385031215613fef57600080fd5b613ff883613c7b565b915060208301356001600160401b0381111561401357600080fd5b61401f85828601613e8a565b9150509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561406157835183529284019291840191600101614045565b50909695505050505050565b634e487b7160e01b600052602160045260246000fd5b600681106140a157634e487b7160e01b600052602160045260246000fd5b9052565b6140b0828251614083565b60006020820151608060208501526140cb6080850182613b21565b6040848101516001600160a01b03908116918701919091526060948501511693909401929092525090919050565b6020815260006133eb60208301846140a5565b6000806040838503121561411f57600080fd5b82359150613e2860208401613c7b565b80356001600160401b0381168114613c9257600080fd5b6000806000806060858703121561415c57600080fd5b8435935061416c6020860161412f565b925060408501356001600160401b038082111561418857600080fd5b818701915087601f83011261419c57600080fd5b8135818111156141ab57600080fd5b8860208285010111156141bd57600080fd5b95989497505060200194505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561422357603f198886030184526142118583516140a5565b945092850192908501906001016141f5565b5092979650505050505050565b6000806040838503121561424357600080fd5b82359150613e286020840161412f565b60008151808452602080850194506020840160005b8381101561428d5781516001600160a01b031687529582019590820190600101614268565b509495945050505050565b6020815260006133eb6020830184614253565b600080604083850312156142be57600080fd5b50508035926020909101359150565b6040815260006142e06040830185613d4d565b905082151560208301529392505050565b80358015158114613c9257600080fd5b600080600080600060a0868803121561431957600080fd5b8535945060208601359350604086013592506143376060870161412f565b9150614345608087016142f1565b90509295509295909350565b60008060006060848603121561436657600080fd5b61436f84613c7b565b925060208401356001600160401b0381111561438a57600080fd5b61439686828701613e8a565b9250506143a560408501613def565b90509250925092565b600080602083850312156143c157600080fd5b82356001600160401b03808211156143d857600080fd5b818501915085601f8301126143ec57600080fd5b8135818111156143fb57600080fd5b86602060a083028501011115613d1457600080fd5b6020815260006133eb6020830184613b21565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561165c5761165c614439565b600181811c9082168061447657607f821691505b602082108103611abe57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016144be576144be614439565b5060010190565b600063ffffffff8083168181036144de576144de614439565b6001019392505050565b6020810161165c8284614083565b601f821115610b15576000816000526020600020601f850160051c8101602086101561451f5750805b601f850160051c820191505b8181101561453e5782815560010161452b565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561457457614574613e44565b614588816145828454614462565b846144f6565b602080601f8311600181146145b757600084156145a55750858301515b6145af8582614546565b86555061453e565b600085815260208120601f198616915b828110156145e6578886015182559484019460019091019084016145c7565b50858210156146045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b84815260806020820152600061462d6080830186614253565b84604084015282810360608401526146458185613b21565b979650505050505050565b60008251614662818460208701613afd565b9190910192915050565b600080835461467a81614462565b6001828116801561469257600181146146a7576146d6565b60ff19841687528215158302870194506146d6565b8760005260208060002060005b858110156146cd5781548a8201529084019082016146b4565b50505082870194505b50929695505050505050565b6001600160401b038311156146f9576146f9613e44565b61470d836147078354614462565b836144f6565b6000601f84116001811461473b57600085156147295750838201355b6147338682614546565b8455506120cf565b600083815260209020601f19861690835b8281101561476c578685013582556020948501946001909201910161474c565b50868210156147895760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8581526001600160401b038516602082015260806040820152826080820152828460a0830137600081840160a0908101919091529115156060820152601f909201601f1916909101019392505050565b8181038181111561165c5761165c614439565b818103614809575050565b6148138254614462565b6001600160401b0381111561482a5761482a613e44565b614838816145828454614462565b6000601f82116001811461486657600083156148545750848201545b61485e8482614546565b8555506120cf565b600085815260209020601f19841690600086815260209020845b838110156148a05782860154825560019586019590910190602001614880565b50858310156146045793015460001960f8600387901b161c19169092555050600190811b01905550565b6040815260006148dd6040830185613b21565b90506133eb6020830184614083565b6000602082840312156148fe57600080fd5b6133eb8261412f565b8481528360208201526001600160401b0383166040820152608060608201526000613de56080830184613b21565b60006020828403121561494757600080fd5b6133eb826142f156fec01483261a841a868b99cb8802faed4ea44a1a816651c4f7ee061a96a205fe98","sourceMap":"553:732:331:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2702:351:191;;;;;;:::i;:::-;;:::i;:::-;;4038:747;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1890:195:197;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1130:99:195:-;;;;;;:::i;:::-;;:::i;1017:221:191:-;;;;;;:::i;:::-;;:::i;7419:929:197:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2842:91:193:-;;;:::i;:::-;;;5457:25:484;;;5445:2;5430:18;2842:91:193;5311:177:484;6460:375:197;;;:::i;2491:350::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;1721:394:193:-;;;;;;:::i;:::-;;:::i;2089:337:197:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;769:1117::-;;;;;;:::i;:::-;;:::i;1233:116:195:-;;;;;;:::i;:::-;;:::i;:::-;;;9300:14:484;;9293:22;9275:41;;9263:2;9248:18;1233:116:195;9135:187:484;2119:453:193;;;;;;:::i;:::-;;:::i;5469:290:191:-;;;;;;:::i;:::-;;:::i;6351:105:197:-;;;:::i;:::-;;;;;;;:::i;3810:148:191:-;;;;;;:::i;:::-;;:::i;2576:262:193:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5094:540:197:-;;;;;;:::i;:::-;;:::i;1705:904:191:-;;;;;;:::i;:::-;;:::i;3048:254:193:-;;;:::i;:::-;;;;;;;:::i;1353:466:195:-;;;;;;:::i;:::-;;:::i;1241:476:193:-;;;;;;:::i;:::-;;:::i;3151:587:191:-;;;;;;:::i;:::-;;:::i;731:220:195:-;;;;;;:::i;:::-;;:::i;6252:95:197:-;;;:::i;5276:121:191:-;;;;;;:::i;:::-;;:::i;8352:485:197:-;;;;;;:::i;:::-;;:::i;2937:107:193:-;;;:::i;:::-;;;;;;;:::i;6839:576:197:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;5061:146:191:-;;;;;;:::i;:::-;;:::i;2845:948:197:-;;;;;;:::i;:::-;;:::i;1823:107:195:-;;;:::i;5638:610:197:-;;;;;;:::i;:::-;;:::i;636:601:193:-;;;;;;:::i;:::-;;:::i;1503:123:191:-;;;;;;:::i;:::-;;:::i;3797:1293:197:-;;;;;;:::i;:::-;;:::i;2702:351:191:-;2786:10;3799:42:199;:24;2786:10:191;3799:33:199;:42::i;:::-;3794:91;;3856:28;;;;;;;;;;;-1:-1:-1;;;3856:28:199;;;;3849:36;;-1:-1:-1;;;3849:36:199;;;;3856:28;3849:36;;;:::i;:::-;;;;;;;;3794:91;2814:3:191;3642:34:199::1;:20;2814:3:191::0;3642:29:199::1;:34::i;:::-;3637:84;;3691:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3691:29:199::1;::::0;::::1;::::0;3684:37;;-1:-1:-1;;;3684:37:199;;::::1;::::0;3691:29;3684:37:::1;;;:::i;3637:84::-;2832:2:191::2;:21:::0;;;:16:::2;:21;::::0;;;;:28;:33;2825:84:::2;;2875:2;:21:::0;;;:16:::2;:21;::::0;;;;:27;;;::::2;;;;:::i;:::-;;::::0;;;::::2;::::0;;::::2;-1:-1:-1::0;;2875:27:191;;;;;::::2;;::::0;;;::::2;::::0;::::2;::::0;;-1:-1:-1;;2875:27:191::2;::::0;;;::::2;;::::0;::::2;::::0;::::2;:::i;:::-;;;;;2825:84;;;2922:2;:21:::0;;;:16:::2;:21;::::0;;;;2914:30:::2;::::0;::::2;:::i;:::-;2951:32;:20;2979:3:::0;2951:27:::2;:32::i;:::-;-1:-1:-1::0;2995:53:191::2;::::0;;17579:25:484;;;-1:-1:-1;;;;;17635:2:484;17620:18;;17613:59;17708:3;17688:18;;;17681:31;;;-1:-1:-1;17728:19:484;;;17721:30;3043:4:191::2;17818:2:484::0;17803:18;;17796:50;2995:53:191;;-1:-1:-1;;;;;;;;;;;2995:53:191;;;;17783:3:484;2995:53:191;;::::2;3891:1:199::1;2702:351:191::0;;:::o;4038:747::-;4092:16;4116:20;;4174:29;:20;:27;:29::i;:::-;4147:56;;4214:9;4209:154;4233:16;4229:1;:20;4209:154;;;4264:11;4278:26;:20;4302:1;4278:23;:26::i;:::-;4328:2;:21;;;:16;:21;;;;;:28;4264:40;;-1:-1:-1;4312:44:191;;;;:::i;:::-;;-1:-1:-1;;4251:3:191;;4209:154;;;;4369:25;4411:12;-1:-1:-1;;;;;4397:27:191;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;4397:27:191;;;;;;;;;;;;;;;-1:-1:-1;4369:55:191;-1:-1:-1;4431:14:191;4448:29;:20;:27;:29::i;:::-;4431:46;;4483:9;4507;4502:257;4526:6;4522:1;:10;4502:257;;;4547:11;4561:26;:20;4585:1;4561:23;:26::i;:::-;4595:28;4626:21;;;:16;:21;;;;;;;;4595:52;;;;;;;;;;;;;;;;;4547:40;;-1:-1:-1;4595:28:191;;:52;;4626:21;4595:28;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4595:52:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4660:9;4655:98;4679:11;:18;4675:1;:22;4655:98;;;4730:11;4742:1;4730:14;;;;;;;;:::i;:::-;;;;;;;4714:8;4723:3;;;;;:::i;:::-;;;4714:13;;;;;;;;:::i;:::-;;;;;;;;;;:30;4699:3;;4655:98;;;;4539:220;;4534:3;;;;;4502:257;;;-1:-1:-1;4772:8:191;;4038:747;-1:-1:-1;;;;;4038:747:191:o;1890:195:197:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1976:29:197;;1996:8;1976:19;:29::i;:::-;1971:73;;2014:29;;;;;;;;;;;-1:-1:-1;;;2014:29:197;;;;2007:37;;-1:-1:-1;;;2007:37:197;;;;2014:29;2007:37;;;:::i;1971:73::-;2057:2;:23;;;:13;:23;;;;;;;;;2050:30;;;;;;;;;;;;;;;-1:-1:-1;;;;;2050:30:197;;;;;;;-1:-1:-1;;;2050:30:197;;;;;;;;-1:-1:-1;;;2050:30:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2057:23;;2050:30;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2050:30:197;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:195;;;:::o;1130:99:195:-;293:8:114;:6;:8::i;:::-;-1:-1:-1;;;;;279:22:114;:10;-1:-1:-1;;;;;279:22:114;;275:79;;318:29;;-1:-1:-1;;;318:29:114;;336:10;318:29;;;18922:51:484;18895:18;;318:29:114;18776:203:484;275:79:114;1198:26:195::1;1215:8;1198:16;:26::i;:::-;1130:99:::0;:::o;1017:221:191:-;296:66:103;1263:42:102;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:102;;;;;;;;;;;1258:100;1125:9:191::1;1120:114;1140:25:::0;;::::1;1120:114;;;1180:47;1209:14;;1224:1;1209:17;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;1180:28;:47::i;:::-;1167:3;;1120:114;;;;1017:221:::0;;:::o;7419:929:197:-;7497:21;7583:20;7606:19;7583:20;7606:17;:19::i;:::-;7583:42;;7632:29;7678:12;-1:-1:-1;;;;;7664:27:197;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7664:27:197;-1:-1:-1;7632:59:197;-1:-1:-1;7697:18:197;;7722:357;7746:12;7742:1;:16;7722:357;;;7773:10;7786:16;7773:10;7800:1;7786:13;:16::i;:::-;7810:21;7834:17;;;:13;:17;;;;;;;7879:12;;;:19;7773:29;;-1:-1:-1;7834:17:197;7879:19;7907:166;7931:9;7927:1;:13;7907:166;;;7980:11;-1:-1:-1;;;;;7961:30:197;:6;:12;;7974:1;7961:15;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;7961:15:197;:30;7957:108;;8035:2;8005:12;8018:13;;;;:::i;:::-;;;8005:27;;;;;;;;;;:::i;:::-;;;;;;:32;;;;;8049:5;;7957:108;7942:3;;7907:166;;;;7765:314;;;7760:3;;;;;7722:357;;;;8085:29;8136:11;8117:31;;-1:-1:-1;;;;;8117:31:197;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;8085:63;;8159:9;8154:169;8178:11;8174:15;;:1;:15;8154:169;;;8217:99;;;;;;;;8244:12;8257:1;8244:15;;;;;;;;:::i;:::-;;;;;;;8217:99;;;;8277:2;:13;;:30;8291:12;8304:1;8291:15;;;;;;;;:::i;:::-;;;;;;;;;;;;8277:30;;;;;;;;;;;;;-1:-1:-1;8277:30:197;8217:99;;;;;;;;;;;;;;;-1:-1:-1;;;;;8217:99:197;;;;;;;-1:-1:-1;;;8217:99:197;;;;;;;;-1:-1:-1;;;8217:99:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8277:30;;8217:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8217:99:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;8204:7;8212:1;8204:10;;;;;;;;:::i;:::-;;;;;;;;;;:112;8191:3;;8154:169;;;-1:-1:-1;8336:7:197;7419:929;-1:-1:-1;;;;;7419:929:197:o;2842:91:193:-;2889:7;2911:17;:8;:15;:17::i;:::-;2904:24;;2842:91;:::o;6460:375:197:-;6508:21;6537:19;6559;6537;6559:17;:19::i;:::-;6537:41;;6584:29;6635:11;-1:-1:-1;;;;;6616:31:197;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6584:63;;6659:9;6654:156;6678:11;6674:1;:15;6654:156;;;6704:10;6717:16;6704:10;6731:1;6717:13;:16::i;:::-;6754:49;;;;;;;;;;;-1:-1:-1;6784:17:197;;;:13;6754:49;6784:17;;;;;;;6754:49;;;;;;;;;;;;;;;-1:-1:-1;;;;;6754:49:197;;;;;;;-1:-1:-1;;;6754:49:197;;;;;;;;-1:-1:-1;;;6754:49:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;6704:29;;-1:-1:-1;6754:49:197;;;;;;;;6784:17;;6754:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6754:49:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;6741:7;6749:1;6741:10;;;;;;;;:::i;:::-;;;;;;;;;;:62;-1:-1:-1;6691:3:197;;6654:156;;;-1:-1:-1;6823:7:197;6460:375;-1:-1:-1;;6460:375:197:o;2491:350::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2619:29:197;-1:-1:-1;2639:8:197;2619:19;:29::i;:::-;2614:73;;2657:29;;;;;;;;;;;-1:-1:-1;;;2657:29:197;;;;2650:37;;-1:-1:-1;;;2650:37:197;;;;2657:29;2650:37;;;:::i;2614:73::-;2709:2;:23;;;:13;:23;;;;;;;;2740:33;:43;;;;;;2791:29;:39;;;;;;2694:142;;;;;;;;;;;;;;;-1:-1:-1;;;;;2694:142:197;;;;;;;-1:-1:-1;;;2694:142:197;;;;;;;;-1:-1:-1;;;2694:142:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;2709:23;;2740:43;2791:39;;2694:142;;2709:23;;2694:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2694:142:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2491:350;;;;;:::o;1721:394:193:-;-1:-1:-1;;;;;3039:22:199;;;3085:1;3039:22;;;:16;:22;;;;;:34;;;1825:11:193;;3039:34:199;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:199;;;;3095:42;;-1:-1:-1;;;3095:42:199;;;;3102:34;3095:42;;;:::i;3035:102::-;1855:10:193::1;3204:31:199;:12;1855:10:193::0;3204:21:199::1;:31::i;:::-;3199:74;;3244:28;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3244:28:199::1;::::0;::::1;::::0;3237:36;;-1:-1:-1;;;3237:36:199;;::::1;::::0;3244:28;3237:36:::1;;;:::i;3199:74::-;-1:-1:-1::0;;;;;3490:22:199;;::::2;:2;:22:::0;;;:16:::2;:22;::::0;;;;:31:::2;;::::0;1888:11:193;;1901:10:::2;::::0;3490:31:199::2;:43:::0;::::2;3486:91;;3548:28;::::0;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;3548:28:199::2;::::0;::::2;::::0;3541:36;;-1:-1:-1;;;3541:36:199;;::::2;::::0;3548:28;3541:36:::2;;;:::i;3486:91::-;-1:-1:-1::0;;;;;1941:29:193;::::3;1921:17;1941:29:::0;;;:16:::3;:29;::::0;;;;2009:11;;1977:52:::3;::::0;2009:11:::3;;2022:6:::0;1977:31:::3;:52::i;:::-;2036:20:::0;;2050:6;;2036:4;;-1:-1:-1;;2036:20:193::3;::::0;2050:6;2036:20:::3;::::0;::::3;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;2085:16:193::3;::::0;::::3;::::0;2067:43:::3;::::0;-1:-1:-1;;;;;2085:16:193;;::::3;::::0;2067:43:::3;::::0;::::3;::::0;2103:6;;2067:43:::3;:::i;:::-;;;;;;;;1915:200;3279:1:199::2;;3143::::1;1721:394:193::0;;;:::o;2089:337:197:-;2157:19;;:::i;:::-;2184;2206;2184;2206:17;:19::i;:::-;2184:41;;2241:11;2236:1;:16;2232:74;;2269:29;;;;;;;;;;;-1:-1:-1;;;2269:29:197;;;;2262:37;;-1:-1:-1;;;2262:37:197;;;;2269:29;2262:37;;;:::i;2232:74::-;2312:16;2331;2312;2345:1;2331:13;:16::i;:::-;2360:61;;;;;;;;;;;-1:-1:-1;2396:23:197;;;:13;2360:61;2396:23;;;;;;;2360:61;;;;;;;;;;;;;;;-1:-1:-1;;;;;2360:61:197;;;;;;;-1:-1:-1;;;2360:61:197;;;;;;;;-1:-1:-1;;;2360:61:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;2312:35;;-1:-1:-1;2360:61:197;;;;;;;;2396:23;;2360:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2360:61:197;;;;;;;;;;;;;;;;-1:-1:-1;;;2360:61:197;;;;-1:-1:-1;;;2360:61:197;;2353:68;2089:337;-1:-1:-1;;;;2089:337:197:o;769:1117::-;934:10;3085:1:199;3039:22;;;:16;:22;;;;;:34;;;-1:-1:-1;;;;;3039:34:199;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:199;;;;3095:42;;-1:-1:-1;;;3095:42:199;;;;3102:34;3095:42;;;:::i;3035:102::-;1019:29:197::1;:2;1039:8:::0;1019:19:::1;:29::i;:::-;1015:83;;;1063:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1063:34:197::1;::::0;::::1;::::0;1056:42;;-1:-1:-1;;;1056:42:197;;::::1;::::0;1063:34;1056:42:::1;;;:::i;1015:83::-;1194:12:::0;;1174:17:::1;1212:139;1236:9;1232:1;:13;1212:139;;;1265:27;1283:5;1289:1;1283:8;;;;;;;;:::i;:::-;;;;;;;1265:2;:8;;:17;;:27;;;;:::i;:::-;1260:84;;1309:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1309:34:197::1;::::0;::::1;::::0;1302:42;;-1:-1:-1;;;1302:42:197;;::::1;::::0;1309:34;1302:42:::1;;;:::i;1260:84::-;1247:3;;1212:139;;;-1:-1:-1::0;1418:144:197::1;::::0;;::::1;::::0;::::1;::::0;;;;;1395:20:::1;1418:144;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;1569:24:::1;::::0;1584:8;1569:14:::1;:24::i;:::-;-1:-1:-1::0;1599:2:197::1;:23:::0;;;:13:::1;:23;::::0;;;;;;;;:32;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;1599:32:197;;::::1;-1:-1:-1::0;;;1599:32:197::1;-1:-1:-1::0;;;;1599:32:197;;::::1;-1:-1:-1::0;;;1599:32:197::1;-1:-1:-1::0;;1599:32:197;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;::::1;::::0;;;1625:6;;1599:23;:32:::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;1637:2:197::1;:39:::0;;;:29:::1;:39;::::0;;;;:58:::1;1679:16:::0;1637:39;:58:::1;:::i;:::-;-1:-1:-1::0;1701:2:197::1;:43:::0;;;:33:::1;:43;::::0;;;;;;:66;;;1779:102;::::1;::::0;::::1;::::0;1735:8;;1818:5;;1747:20;;1859:16;;1779:102:::1;:::i;:::-;;;;;;;;946:940;;769:1117:::0;;;;;:::o;1233:116:195:-;1294:4;1313:31;:12;1335:8;1313:21;:31::i;:::-;1306:38;1233:116;-1:-1:-1;;1233:116:195:o;2119:453:193:-;2224:10;3204:31:199;:12;2224:10:193;3204:21:199;:31::i;:::-;3199:74;;3244:28;;;;;;;;;;;-1:-1:-1;;;3244:28:199;;;;3237:36;;-1:-1:-1;;;3237:36:199;;;;3244:28;3237:36;;;:::i;3199:74::-;-1:-1:-1;;;;;3039:22:199;;::::1;3085:1;3039:22:::0;;;:16:::1;:22;::::0;;;;:34:::1;;::::0;2249:11:193;;3039:34:199::1;3035:102;;3102:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3102:34:199::1;::::0;::::1;::::0;3095:42;;-1:-1:-1;;;3095:42:199;;::::1;::::0;3102:34;3095:42:::1;;;:::i;3035:102::-;-1:-1:-1::0;;;;;3490:22:199;;::::2;:2;:22:::0;;;:16:::2;:22;::::0;;;;:31:::2;;::::0;2283:11:193;;2296:10:::2;::::0;3490:31:199::2;:43:::0;::::2;3486:91;;3548:28;::::0;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;3548:28:199::2;::::0;::::2;::::0;3541:36;;-1:-1:-1;;;3541:36:199;;::::2;::::0;3548:28;3541:36:::2;;;:::i;3486:91::-;-1:-1:-1::0;;;;;2336:29:193;::::3;2316:17;2336:29:::0;;;:16:::3;:29;::::0;;;;;;;;2434:21;;::::3;::::0;2451:3;;2434:21:::3;;:::i;:::-;;;;;;;;;;;;;2424:32;;;;;;2410:4;:8;;2393:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;2383:37;;;;;;:73:::0;2372:126:::3;;2470:27;::::0;;;;::::3;::::0;;::::3;::::0;;-1:-1:-1;;;2470:27:193::3;::::0;::::3;::::0;2463:35;;-1:-1:-1;;;2463:35:193;;::::3;::::0;2470:27;2463:35:::3;;;:::i;2372:126::-;2505:8;::::0;::::3;:14;2516:3:::0;2505:8;:14:::3;:::i;:::-;-1:-1:-1::0;2545:16:193::3;::::0;::::3;::::0;2530:37:::3;::::0;-1:-1:-1;;;;;2545:16:193;;::::3;::::0;2530:37:::3;::::0;::::3;::::0;2563:3;;2530:37:::3;:::i;5469:290:191:-:0;293:8:114;:6;:8::i;:::-;-1:-1:-1;;;;;279:22:114;:10;-1:-1:-1;;;;;279:22:114;;275:79;;318:29;;-1:-1:-1;;;318:29:114;;336:10;318:29;;;18922:51:484;18895:18;;318:29:114;18776:203:484;275:79:114;-1:-1:-1;;;;;5551:21:191;::::1;5547:62;;5581:27;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5581:27:191::1;::::0;::::1;::::0;5574:35;;-1:-1:-1;;;5574:35:191;;::::1;::::0;5581:27;5574:35:::1;;;:::i;5547:62::-;5621:40;:24;5653:7:::0;5621:31:::1;:40::i;:::-;5616:90;;5676:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;5676:29:191::1;::::0;::::1;::::0;5669:37;;-1:-1:-1;;;5669:37:191;;::::1;::::0;5676:29;5669:37:::1;;;:::i;5616:90::-;5718:36;::::0;-1:-1:-1;;;;;5718:36:191;::::1;::::0;::::1;::::0;;;::::1;5469:290:::0;:::o;6351:105:197:-;6401:16;6432:19;:2;:17;:19::i;3810:148:191:-;3901:16;3887:3;3642:34:199;:20;3887:3:191;3642:29:199;:34::i;:::-;3637:84;;3691:29;;;;;;;;;;;-1:-1:-1;;;3691:29:199;;;;3684:37;;-1:-1:-1;;;3684:37:199;;;;3691:29;3684:37;;;:::i;3637:84::-;3932:2:191::1;:21:::0;;;:16:::1;:21;::::0;;;;;;;3925:28;;;;;;::::1;::::0;;;;;;;;;;;;3932:21;;3925:28;::::1;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;3925:28:191::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;;;;;;;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;3727:1:199;3810:148:191::0;;;;:::o;2576:262:193:-;2637:11;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2637:11:193;2710:30;:8;2728:11;2710:17;:30::i;:::-;2705:85;;2755:34;;;;;;;;;;;-1:-1:-1;;;2755:34:193;;;;2748:42;;-1:-1:-1;;;2748:42:193;;;;2755:34;2748:42;;;:::i;2705:85::-;-1:-1:-1;;;;;2804:29:193;;:2;:29;;;:16;:29;;;;;;;2797:36;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2797:36:193;;;-1:-1:-1;;2797:36:193;;;;-1:-1:-1;;;;;2797:36:193;;;;;;;;;;;;;;;;;;;;;2576:262;-1:-1:-1;;2576:262:193:o;5094:540:197:-;5192:8;3338:29:199;:2;5192:8:197;3338:19:199;:29::i;:::-;3333:73;;3376:29;;;;;;;;;;;-1:-1:-1;;;3376:29:199;;;;3369:37;;-1:-1:-1;;;3369:37:199;;;;3376:29;3369:37;;;:::i;3333:73::-;-1:-1:-1;;;;;3039:22:199;;::::1;3085:1;3039:22:::0;;;:16:::1;:22;::::0;;;;:34:::1;;::::0;5211:11:197;;3039:34:199::1;3035:102;;3102:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3102:34:199::1;::::0;::::1;::::0;3095:42;;-1:-1:-1;;;3095:42:199;;::::1;::::0;3102:34;3095:42:::1;;;:::i;3035:102::-;5230:21:197::2;5254:23:::0;;;:13:::2;:23;::::0;;;;;;5363:12;;::::2;:19:::0;5254:23;;5389:141:::2;5413:9;5409:1;:13;5389:141;;;5460:11;-1:-1:-1::0;;;;;5441:30:197::2;:6;:12;;5454:1;5441:15;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;-1:-1:-1;;;;;5441:15:197::2;:30:::0;5437:86:::2;;5488:34;::::0;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;5488:34:197::2;::::0;::::2;::::0;5481:42;;-1:-1:-1;;;5481:42:197;;::::2;::::0;5488:34;5481:42:::2;;;:::i;5437:86::-;5424:3;;5389:141;;;-1:-1:-1::0;5536:12:197::2;::::0;::::2;:30:::0;;::::2;::::0;;::::2;::::0;;-1:-1:-1;5536:30:197;;;::::2;::::0;;;;;;::::2;::::0;;-1:-1:-1;;;;;;5536:30:197::2;-1:-1:-1::0;;;;;5536:30:197;::::2;::::0;;::::2;::::0;;;5578:51:::2;::::0;;24851:25:484;;;24892:18;;;24885:60;;;;24961:18;;24954:50;5578:51:197::2;::::0;24839:2:484;24824:18;5578:51:197::2;;;;;;;;5224:410;;3412:1:199::1;5094:540:197::0;;;:::o;1705:904:191:-;1836:10;3799:42:199;:24;1836:10:191;3799:33:199;:42::i;:::-;3794:91;;3856:28;;;;;;;;;;;-1:-1:-1;;;3856:28:199;;;;3849:36;;-1:-1:-1;;;3849:36:199;;;;3856:28;3849:36;;;:::i;3794:91::-;-1:-1:-1;;;;;;;1858:31:191;::::1;::::0;1854:72:::1;;1898:27;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1898:27:191::1;::::0;::::1;::::0;1891:35;;-1:-1:-1;;;1891:35:191;;::::1;::::0;1898:27;1891:35:::1;;;:::i;1854:72::-;1952:1;1936:17:::0;;;1932:58:::1;;1962:27;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1962:27:191::1;::::0;::::1;::::0;1955:35;;-1:-1:-1;;;1955:35:191;;::::1;::::0;1962:27;1955:35:::1;;;:::i;1932:58::-;2002:34;:20;2032:3:::0;2002:29:::1;:34::i;:::-;1997:85;;2046:29;:20;2071:3:::0;2046:24:::1;:29::i;:::-;;1997:85;2156:24;2183:21:::0;;;:16:::1;:21;::::0;;;;:28;;2217:258:::1;2241:16;2237:1;:20;2217:258;;;2276:2;:21:::0;;;:16:::1;:21;::::0;;;;:24;;-1:-1:-1;;;;;2276:51:191;::::1;::::0;:21;2298:1;;2276:24;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:36:::1;:24;::::0;;::::1;;:36;::::0;-1:-1:-1;;;;;2276:36:191::1;:51:::0;2272:197:::1;;2339:2;:21:::0;;;:16:::1;:21;::::0;;;;:24;;2372:5;;;;2361:1;;2339:24;::::1;;;;;:::i;:::-;;;;;;;;;;;:30;;:38;;;;;;;:::i;:::-;;-1:-1:-1::0;;;;;;;;;;;2413:3:191::1;2418:11;2431:5;;2438;2392:52;;;;;;;;;;:::i;:::-;;;;;;;;2454:7;;;;2272:197;2259:3;;2217:258;;;;2481:2;:16;;:21;2498:3;2481:21;;;;;;;;;;;2508:32;;;;;;;;2516:3;2508:32;;;;2521:11;-1:-1:-1::0;;;;;2508:32:191::1;;;;;2534:5;;2508:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;-1:-1:-1;2508:32:191;;;;-1:-1:-1;;2481:60:191;;::::1;::::0;;::::1;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;;::::1;;::::0;;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;2481:60:191::1;-1:-1:-1::0;;;;;2481:60:191;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;2481:60:191::1;::::0;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;;;;-1:-1:-1::0;;;;;;;;;;;2573:3:191::1;2578:11;2591:5;;2598;2552:52;;;;;;;;;;:::i;3891:1:199:-;1705:904:191::0;;;;;:::o;3048:254:193:-;3094:13;3115:19;3148:17;:8;:15;:17::i;:::-;-1:-1:-1;;;;;3137:29:193;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3137:29:193;;;;;;;;;;;;;;;;;3115:51;;3178:9;3173:106;3197:17;:8;:15;:17::i;:::-;3193:1;:21;3173:106;;;3240:16;:2;3257:14;:8;3269:1;3257:11;:14::i;:::-;-1:-1:-1;;;;;3240:32:193;;;;;;;;;;;;;;-1:-1:-1;3240:32:193;3229:43;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3229:43:193;;;-1:-1:-1;;3229:43:193;;;;-1:-1:-1;;;;;3229:43:193;;;;;;;;;;;;;;;;;;;;:8;;:5;;3235:1;;3229:8;;;;;;:::i;:::-;;;;;;;;;;:43;3216:3;;3173:106;;1353:466:195;293:8:114;:6;:8::i;:::-;-1:-1:-1;;;;;279:22:114;:10;-1:-1:-1;;;;;279:22:114;;275:79;;318:29;;-1:-1:-1;;;318:29:114;;336:10;318:29;;;18922:51:484;18895:18;;318:29:114;18776:203:484;275:79:114;1425:31:195::1;:12;1447:8:::0;1425:21:::1;:31::i;:::-;1420:90;;1471:38;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1471:38:195::1;::::0;::::1;::::0;1464:46;;-1:-1:-1;;;1464:46:195;;::::1;::::0;1471:38;1464:46:::1;;;:::i;1420:90::-;1576:9;1571:171;1595:17;:8;:15;:17::i;:::-;1591:1;:21;1571:171;;;-1:-1:-1::0;;;;;1631:53:195;::::1;:16;:2;1648:14;:8;1660:1:::0;1648:11:::1;:14::i;:::-;-1:-1:-1::0;;;;;1631:32:195;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;1631:32:195;:41:::1;;::::0;::::1;:53:::0;1627:108:::1;;1701:33;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1701:33:195::1;::::0;::::1;::::0;1694:41;;-1:-1:-1;;;1694:41:195;;::::1;::::0;1701:33;1694:41:::1;;;:::i;1627:108::-;1614:3;;1571:171;;;-1:-1:-1::0;1748:29:195::1;:12;1768:8:::0;1748:19:::1;:29::i;:::-;-1:-1:-1::0;1789:25:195::1;::::0;-1:-1:-1;;;;;1789:25:195;::::1;::::0;::::1;::::0;;;::::1;1353:466:::0;:::o;1241:476:193:-;-1:-1:-1;;;;;3490:22:199;;;:2;:22;;;:16;:22;;;;;:31;;;1316:11:193;;1329:10;;3490:31:199;:43;;3486:91;;3548:28;;;;;;;;;;;-1:-1:-1;;;3548:28:199;;;;3541:36;;-1:-1:-1;;;3541:36:199;;;;3548:28;3541:36;;;:::i;3486:91::-;-1:-1:-1;;;;;1351:29:193;;::::1;1404:1;1351:29:::0;;;:16:::1;:29;::::0;;;;:41:::1;;::::0;::::1;1347:118;;1423:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1423:34:193::1;::::0;::::1;::::0;1416:42;;-1:-1:-1;;;1416:42:193;;::::1;::::0;1423:34;1416:42:::1;;;:::i;1347:118::-;1515:18;-1:-1:-1::0;;;;;1475:29:193;::::1;:2;:29:::0;;;:16:::1;:29;::::0;;;;:36;::::1;;:58;::::0;::::1;;;;;;:::i;:::-;;1471:129;;1550:42;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1550:42:193::1;::::0;::::1;::::0;1543:50;;-1:-1:-1;;;1543:50:193;;::::1;::::0;1550:42;1543:50:::1;;;:::i;1471:129::-;1606:28;:8;1622:11:::0;1606:15:::1;:28::i;:::-;-1:-1:-1::0;;;;;;1647:29:193;::::1;:2;:29:::0;;;:16:::1;:29;::::0;;;;1640:36;;-1:-1:-1;;1640:36:193::1;::::0;;1647:29;1640:36:::1;::::0;;::::1;1647:2:::0;1640:36:::1;:::i;:::-;-1:-1:-1::0;1640:36:193::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;1640:36:193;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;1688:24:::1;::::0;-1:-1:-1;;;;;1688:24:193;::::1;::::0;::::1;::::0;1640:36:::1;::::0;1688:24:::1;1241:476:::0;;;:::o;3151:587:191:-;3266:10;3799:42:199;:24;3266:10:191;3799:33:199;:42::i;:::-;3794:91;;3856:28;;;;;;;;;;;-1:-1:-1;;;3856:28:199;;;;3849:36;;-1:-1:-1;;;3849:36:199;;;;3856:28;3849:36;;;:::i;3794:91::-;3284:10:191::1;3313:9:::0;3308:310:::1;3332:2;:21:::0;;;:16:::1;:21;::::0;;;;:28;3328:32;::::1;3308:310;;;3379:2;:21:::0;;;:16:::1;:21;::::0;;;;:24;;-1:-1:-1;;;;;3379:51:191;::::1;::::0;:21;3401:1;;3379:24;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:36:::1;:24;::::0;;::::1;;:36;::::0;-1:-1:-1;;;;;3379:36:191::1;:51:::0;3375:237:::1;;3469:2;:21:::0;;;:16:::1;:21;::::0;;;;3502:28;;:32:::1;::::0;3533:1:::1;::::0;3502:32:::1;:::i;:::-;3469:75;;;;;;;;:::i;:::-;;;;;;;;;;;3442:2;:16;;:21;3459:3;3442:21;;;;;;;;;;;3464:1;3442:24;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;:102;;:24:::1;::::0;;::::1;;:102:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;3442:102:191::1;-1:-1:-1::0;;;;;3442:102:191;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;3554:2:191::1;:21:::0;;;:16:::1;:21;::::0;;;;:27;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;-1:-1:-1::0;;3554:27:191;;;;;::::1;;::::0;;;::::1;::::0;::::1;::::0;;-1:-1:-1;;3554:27:191::1;::::0;;;::::1;;::::0;::::1;::::0;::::1;:::i;:::-;;;;;3599:4;3591:12;;3375:237;3362:3;;3308:310;;;;3629:5;3624:49;;3643:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3643:29:191::1;::::0;::::1;::::0;3636:37;;-1:-1:-1;;;3636:37:191;;::::1;::::0;3643:29;3636:37:::1;;;:::i;3624:49::-;3685:48;::::0;;17579:25:484;;;-1:-1:-1;;;;;17640:31:484;;17635:2;17620:18;;17613:59;17708:3;17688:18;;;17681:31;;;-1:-1:-1;17728:19:484;;;17721:30;3728:4:191::1;17818:2:484::0;17803:18;;17796:50;3685:48:191;;-1:-1:-1;;;;;;;;;;;3685:48:191;;;;17783:3:484;3685:48:191;;::::1;3278:460;3151:587:::0;;;:::o;731:220:195:-;296:66:103;1263:42:102;;;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:102;;;;;;;;;;;1258:100;846:9:195::1;841:106;861:27:::0;;::::1;841:106;;;903:37;920:16;;937:1;920:19;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;903:16;:37::i;:::-;890:3;;841:106;;6252:95:197::0;6301:7;6323:19;6301:7;6323:17;:19::i;5276:121:191:-;293:8:114;:6;:8::i;:::-;-1:-1:-1;;;;;279:22:114;:10;-1:-1:-1;;;;;279:22:114;;275:79;;318:29;;-1:-1:-1;;;318:29:114;;336:10;318:29;;;18922:51:484;18895:18;;318:29:114;18776:203:484;275:79:114;5355:37:191::1;5384:7;5355:28;:37::i;8352:485:197:-:0;8434:7;;;8495:19;8434:7;8495:17;:19::i;:::-;8472:42;;8525:9;8520:294;8544:12;8540:1;:16;8520:294;;;8571:10;8584:16;8571:10;8598:1;8584:13;:16::i;:::-;8608:21;8632:17;;;:13;:17;;;;;8571:29;;-1:-1:-1;8657:151:197;8681:12;;;:19;8677:23;;8657:151;;;8740:11;-1:-1:-1;;;;;8721:30:197;:6;:12;;8734:1;8721:15;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;8721:15:197;:30;8717:83;;8765:7;;;;:::i;:::-;;;;8784:5;;8717:83;8702:3;;8657:151;;;;8563:251;;8558:3;;;;;8520:294;;;-1:-1:-1;8827:5:197;;8352:485;-1:-1:-1;;;8352:485:197:o;2937:107:193:-;2991:16;3022:17;:8;:15;:17::i;6839:576:197:-;6932:21;6955:4;6983;6975:5;:12;6989:27;;;;;;;;;;;;;-1:-1:-1;;;6989:27:197;;;6967:50;;;;;-1:-1:-1;;;6967:50:197;;;;;;;;:::i;:::-;-1:-1:-1;7024:29:197;7075:12;7082:5;7075:4;:12;:::i;:::-;-1:-1:-1;;;;;7056:32:197;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;7024:64:197;-1:-1:-1;7095:19:197;7117;7095;7117:17;:19::i;:::-;7095:41;;7155:9;7143:224;7191:11;7178:9;7186:1;7178:5;:9;:::i;:::-;7177:25;7176:51;;;;-1:-1:-1;7222:4:197;7209:9;7217:1;7209:5;:9;:::i;:::-;7208:18;7176:51;7143:224;;;7253:10;7266:24;7280:9;7288:1;7280:5;:9;:::i;:::-;7266:2;;:13;:24::i;:::-;7311:49;;;;;;;;;;;-1:-1:-1;7341:17:197;;;:13;7311:49;7341:17;;;;;;;7311:49;;;;;;;;;;;;;;;-1:-1:-1;;;;;7311:49:197;;;;;;;-1:-1:-1;;;7311:49:197;;;;;;;;-1:-1:-1;;;7311:49:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;7253:37;;-1:-1:-1;7311:49:197;;;;;;;;7341:17;;7311:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7311:49:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;7298:7;7306:1;7298:10;;;;;;;;:::i;:::-;;;;;;:62;;;;7245:122;7235:3;;;;:::i;:::-;;;7143:224;;;-1:-1:-1;7381:7:197;;7390:19;;;;-1:-1:-1;;;6839:576:197:o;5061:146:191:-;5141:4;5160:42;:24;5194:7;5160:33;:42::i;2845:948:197:-;3035:10;3085:1:199;3039:22;;;:16;:22;;;;;:34;;;-1:-1:-1;;;;;3039:34:199;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:199;;;;3095:42;;-1:-1:-1;;;3095:42:199;;;;3102:34;3095:42;;;:::i;3035:102::-;3111:29:197::1;:2;3131:8:::0;3111:19:::1;:29::i;:::-;3106:88;;3157:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3157:29:197::1;::::0;::::1;::::0;3150:37;;-1:-1:-1;;;3150:37:197;;::::1;::::0;3157:29;3150:37:::1;;;:::i;3106:88::-;3200:21;3224:23:::0;;;:13:::1;:23;::::0;;;;3291:44;;;3341:23:::1;::::0;::::1;:42:::0;;-1:-1:-1;;3341:42:197::1;-1:-1:-1::0;;;;;3341:42:197;::::1;;::::0;;3430:63;::::1;;;592:1;3452:12:::0;;::::1;:34:::0;;-1:-1:-1;;;;3452:34:197;::::1;-1:-1:-1::0;;;3452:34:197;;;::::1;-1:-1:-1::0;;;;;3452:34:197::1;::::0;;::::1;;::::0;;;::::1;::::0;;3430:63:::1;3580:16;-1:-1:-1::0;;;;;3580:21:197::1;3600:1;3580:21:::0;3576:88:::1;;3618:2;:39:::0;;;:29:::1;:39;::::0;;;;3611:46:::1;::::0;::::1;:::i;:::-;3675:113;::::0;;28653:25:484;;;28709:2;28694:18;;28687:34;;;-1:-1:-1;;;;;28757:31:484;;28737:18;;;28730:59;;;;28832:14;;28825:22;28820:2;28805:18;;28798:50;3675:113:197::1;::::0;28640:3:484;28625:19;3675:113:197::1;28430:424:484::0;1823:107:195;1873:16;1904:21;:12;:19;:21::i;5638:610:197:-;5739:8;3338:29:199;:2;5739:8:197;3338:19:199;:29::i;:::-;3333:73;;3376:29;;;;;;;;;;;-1:-1:-1;;;3376:29:199;;;;3369:37;;-1:-1:-1;;;3369:37:199;;;;3376:29;3369:37;;;:::i;3333:73::-;-1:-1:-1;;;;;3039:22:199;;::::1;3085:1;3039:22:::0;;;:16:::1;:22;::::0;;;;:34:::1;;::::0;5758:11:197;;3039:34:199::1;3035:102;;3102:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3102:34:199::1;::::0;::::1;::::0;3095:42;;-1:-1:-1;;;3095:42:199;;::::1;::::0;3102:34;3095:42:::1;;;:::i;3035:102::-;5777:21:197::2;5801:23:::0;;;:13:::2;:23;::::0;;;;;;5875:12;;::::2;:19:::0;5801:23;;5777:21;;5901:219:::2;5925:9;5921:1;:13;5901:219;;;5972:11;-1:-1:-1::0;;;;;5953:30:197::2;:6;:12;;5966:1;5953:15;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;-1:-1:-1;;;;;5953:15:197::2;:30:::0;5949:165:::2;;6013:12;::::0;::::2;6026:13;6038:1;6026:9:::0;:13:::2;:::i;:::-;6013:27;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;5995:12:::2;::::0;::::2;:15:::0;;-1:-1:-1;;;;;6013:27:197;;::::2;::::0;6008:1;;5995:15;::::2;;;;;:::i;:::-;;;;;;;;;:45;;;;;-1:-1:-1::0;;;;;5995:45:197::2;;;;;-1:-1:-1::0;;;;;5995:45:197::2;;;;;;6050:6;:12;;:18;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;-1:-1:-1;;6050:18:197;;;;;-1:-1:-1;;;;;;6050:18:197::2;::::0;;;;;::::2;::::0;-1:-1:-1;6100:5:197::2;;5949:165;5936:3;;5901:219;;;;6130:5;6125:54;;6144:34;::::0;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;6144:34:197::2;::::0;::::2;::::0;6137:42;;-1:-1:-1;;;6137:42:197;;::::2;::::0;6144:34;6137:42:::2;;;:::i;6125:54::-;6191:52;::::0;;24851:25:484;;;-1:-1:-1;;;;;24912:32:484;;24907:2;24892:18;;24885:60;6237:5:197::2;24961:18:484::0;;;24954:50;;;;6191:52:197::2;::::0;24839:2:484;24824:18;6191:52:197::2;24655:355:484::0;636:601:193;755:10;3204:31:199;:12;755:10:193;3204:21:199;:31::i;:::-;3199:74;;3244:28;;;;;;;;;;;-1:-1:-1;;;3244:28:199;;;;3237:36;;-1:-1:-1;;;3237:36:199;;;;3244:28;3237:36;;;:::i;3199:74::-;-1:-1:-1;;;;;838:29:193;;::::1;891:1;838:29:::0;;;:16:::1;:29;::::0;;;;:41:::1;;::::0;::::1;:55:::0;834:109:::1;;908:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;908:34:193::1;::::0;::::1;::::0;901:42;;-1:-1:-1;;;901:42:193;;::::1;::::0;908:34;901:42:::1;;;:::i;834:109::-;950:19;972:110;;;;;;;;1041:6;972:110;;;;;;;;:::i;:::-;::::0;;::::1;::::0;::::1;::::0;;;-1:-1:-1;;;;;972:110:193;::::1;::::0;;;;1065:10:::1;972:110:::0;;;;;950:132;-1:-1:-1;1089:25:193::1;:8;998:11:::0;1089:12:::1;:25::i;:::-;-1:-1:-1::0;;;;;;1146:29:193;::::1;:2;:29:::0;;;:16:::1;:29;::::0;;;;:39;;;;1178:7;;1146:29;:39;:29;;-1:-1:-1;;1146:39:193::1;::::0;;::::1;::::0;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;1146:39:193::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;:::i;:::-;-1:-1:-1::0;1146:39:193::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;;1146:39:193;;::::1;-1:-1:-1::0;;;;;1146:39:193;;::::1;;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;1197:35;;;;::::1;::::0;::::1;::::0;::::1;::::0;1220:3;;1225:6;;1197:35:::1;:::i;:::-;;;;;;;;767:470;636:601:::0;;;;:::o;1503:123:191:-;1568:4;1587:34;:20;1617:3;1587:29;:34::i;3797:1293:197:-;3896:10;3085:1:199;3039:22;;;:16;:22;;;;;:34;;;-1:-1:-1;;;;;3039:34:199;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:199;;;;3095:42;;-1:-1:-1;;;3095:42:199;;;;3102:34;3095:42;;;:::i;3035:102::-;3939:10:197;3914:22:::1;3963:1123;3987:14;3983:1;:18;3963:1123;;;4016:31;4050:10;;4061:1;4050:13;;;;;;;:::i;:::-;;;::::0;;;::::1;::::0;-1:-1:-1;4077:39:197::1;::::0;-1:-1:-1;4097:18:197::1;::::0;::::1;4077:19;:39::i;:::-;4072:277;;4133:189;4176:18:::0;::::1;4206:27;::::0;::::1;;4245:26;::::0;;;::::1;::::0;::::1;;:::i;:::-;4283:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4283:29:197::1;::::0;::::1;::::0;4133:189;;::::1;::::0;;;;4283:29;4133:189:::1;:::i;:::-;;;;;;;;4332:8;;;4072:277;4395:18:::0;::::1;4357:21;4381:33:::0;;;:13:::1;:33;::::0;;;;;;4489:27;;::::1;;4462:54:::0;;4550:26:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;4524:23;::::0;::::1;:52:::0;;-1:-1:-1;;4524:52:197::1;-1:-1:-1::0;;;;;4524:52:197;;;::::1;::::0;;;::::1;::::0;;4631:18:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;4627:77;;;592:1;4661:12:::0;;::::1;:34:::0;;-1:-1:-1;;;;4661:34:197;::::1;-1:-1:-1::0;;;4661:34:197;;;::::1;-1:-1:-1::0;;;;;4661:34:197::1;::::0;;::::1;;::::0;;;::::1;::::0;;4627:77:::1;4795:26;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;4795:31:197::1;4825:1;4795:31:::0;4791:112:::1;;4875:18:::0;::::1;4845:2;:49:::0;;;:29:::1;:49;::::0;;;;4838:56:::1;::::0;::::1;:::i;:::-;4916:163;4952:18:::0;::::1;4980:27;::::0;::::1;;5017:26;::::0;;;::::1;::::0;::::1;;:::i;:::-;5053:18;::::0;;;::::1;::::0;::::1;;:::i;:::-;4916:163;;;;;;;;28653:25:484::0;;;28709:2;28694:18;;28687:34;;;;-1:-1:-1;;;;;28757:31:484;28752:2;28737:18;;28730:59;28832:14;28825:22;28820:2;28805:18;;28798:50;28640:3;28625:19;;28430:424;4916:163:197::1;;;;;;;;4008:1078;;3963:1123;4003:3;;3963:1123;;8871:165:417::0;-1:-1:-1;;;;;9004:23:417;;8951:4;4360:21;;;:14;;;:21;;;;;;:26;;8974:55;8967:62;8871:165;-1:-1:-1;;;8871:165:417:o;6431:138::-;6511:4;4360:21;;;:14;;;:21;;;;;;:26;;6534:28;4264:129;6221;6294:4;6317:26;6325:3;6337:5;6317:7;:26::i;6650:115::-;6713:7;6739:19;6747:3;4556:18;;4474:107;7107:129;7181:7;7207:22;7211:3;7223:5;7207:3;:22::i;369:103:114:-;284:66:116;438:29:114;-1:-1:-1;;;;;438:29:114;;369:103::o;2109:320:195:-;-1:-1:-1;;;;;2205:22:195;;2201:63;;2236:27;;;;;;;;;;;-1:-1:-1;;;2236:27:195;;;;2229:35;;-1:-1:-1;;;2229:35:195;;;;2236:27;2229:35;;;:::i;2201:63::-;2275:31;:12;2297:8;2275:21;:31::i;:::-;2271:85;;;2321:34;;;;;;;;;;;-1:-1:-1;;;2321:34:195;;;;2314:42;;-1:-1:-1;;;2314:42:195;;;;2321:34;2314:42;;;:::i;2271:85::-;2363:26;:12;2380:8;2363:16;:26::i;:::-;-1:-1:-1;2401:23:195;;-1:-1:-1;;;;;2401:23:195;;;;;;;;2109:320;:::o;6030:282:191:-;-1:-1:-1;;;;;6104:21:191;;6100:62;;6134:27;;;;;;;;;;;-1:-1:-1;;;6134:27:191;;;;6127:35;;-1:-1:-1;;;6127:35:191;;;;6134:27;6127:35;;;:::i;6100:62::-;6174:37;:24;6203:7;6174:28;:37::i;:::-;6169:92;;6226:34;;;;;;;;;;;-1:-1:-1;;;6226:34:191;;;;6219:42;;-1:-1:-1;;;6219:42:191;;;;6226:34;6219:42;;;:::i;6169:92::-;6273:34;;-1:-1:-1;;;;;6273:34:191;;;;;;;;6030:282;:::o;3306:624:193:-;3430:25;3422:4;:33;;;;;;;;:::i;:::-;;:141;;;-1:-1:-1;3474:21:193;3466:4;:29;;;;;;;;:::i;:::-;;:96;;;;-1:-1:-1;3514:17:193;3508:2;:23;;;;;;;;:::i;:::-;;:53;;;-1:-1:-1;3541:20:193;3535:2;:26;;;;;;;;:::i;:::-;;3508:53;3422:250;;;-1:-1:-1;3582:22:193;3574:4;:30;;;;;;;;:::i;:::-;;:97;;;;-1:-1:-1;3623:17:193;3617:2;:23;;;;;;;;:::i;:::-;;:53;;;-1:-1:-1;3650:20:193;3644:2;:26;;;;;;;;:::i;:::-;;3617:53;3422:355;;;-1:-1:-1;3691:20:193;3683:4;:28;;;;;;;;:::i;:::-;;:93;;;;-1:-1:-1;3730:17:193;3724:2;:23;;;;;;;;:::i;:::-;;:51;;;-1:-1:-1;3757:18:193;3751:2;:24;;;;;;;;:::i;:::-;;3724:51;3422:420;;;-1:-1:-1;3796:17:193;3788:4;:25;;;;;;;;:::i;:::-;;:53;;;;-1:-1:-1;3823:18:193;3817:2;:24;;;;;;;;:::i;:::-;;3788:53;3411:459;;;3306:624;;:::o;3411:459::-;3882:42;;;;;;;;;;;-1:-1:-1;;;3882:42:193;;;;3875:50;;-1:-1:-1;;;3875:50:193;;;;3882:42;3875:50;;;:::i;5930:123:417:-;6000:4;6023:23;6028:3;6040:5;6023:4;:23::i;8634:156::-;8707:4;8730:53;8738:3;-1:-1:-1;;;;;8758:23:417;;8730:7;:53::i;7776:300::-;7839:16;7867:22;7892:19;7900:3;7892:7;:19::i;8316:150::-;8386:4;8409:50;8414:3;-1:-1:-1;;;;;8434:23:417;;8409:4;:50::i;2815:1368::-;2881:4;3010:21;;;:14;;;:21;;;;;;3046:13;;3042:1135;;3413:18;3434:12;3445:1;3434:8;:12;:::i;:::-;3480:18;;3413:33;;-1:-1:-1;3460:17:417;;3480:22;;3501:1;;3480:22;:::i;:::-;3460:42;;3535:9;3521:10;:23;3517:378;;3564:17;3584:3;:11;;3596:9;3584:22;;;;;;;;:::i;:::-;;;;;;;;;3564:42;;3731:9;3705:3;:11;;3717:10;3705:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;;3844:25;;;:14;;;:25;;;;;:36;;;3517:378;3973:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4076:3;:14;;:21;4091:5;4076:21;;;;;;;;;;;4069:28;;;4119:4;4112:11;;;;;;;3042:1135;4161:5;4154:12;;;;;4923:118;4990:7;5016:3;:11;;5028:5;5016:18;;;;;;;;:::i;:::-;;;;;;;;;5009:25;;4923:118;;;;:::o;2241:406::-;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:417;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;2320:321;-1:-1:-1;2625:5:417;2618:12;;5581:109;5637:16;5672:3;:11;;5665:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:109;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;14:180:484;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:484;;14:180;-1:-1:-1;14:180:484:o;199:250::-;284:1;294:113;308:6;305:1;302:13;294:113;;;384:11;;;378:18;365:11;;;358:39;330:2;323:10;294:113;;;-1:-1:-1;;441:1:484;423:16;;416:27;199:250::o;454:270::-;495:3;533:5;527:12;560:6;555:3;548:19;576:76;645:6;638:4;633:3;629:14;622:4;615:5;611:16;576:76;:::i;:::-;706:2;685:15;-1:-1:-1;;681:29:484;672:39;;;;713:4;668:50;;454:270;-1:-1:-1;;454:270:484:o;729:1136::-;923:4;952:2;992;981:9;977:18;1022:2;1011:9;1004:21;1045:6;1080;1074:13;1111:6;1103;1096:22;1137:2;1127:12;;1170:2;1159:9;1155:18;1148:25;;1232:2;1222:6;1219:1;1215:14;1204:9;1200:30;1196:39;1270:2;1262:6;1258:15;1291:1;1301:535;1315:6;1312:1;1309:13;1301:535;;;1380:22;;;-1:-1:-1;;1376:36:484;1364:49;;1436:13;;1504:9;;1489:25;;1561:11;;;1555:18;-1:-1:-1;;;;;1551:43:484;1534:15;;;1527:68;1634:11;;1628:18;1472:4;1666:15;;;1659:27;;;1709:47;1740:15;;;1628:18;1709:47;:::i;:::-;1814:12;;;;1699:57;-1:-1:-1;;;1779:15:484;;;;1337:1;1330:9;1301:535;;;-1:-1:-1;1853:6:484;;729:1136;-1:-1:-1;;;;;;;;729:1136:484:o;1870:948::-;1919:3;1958:4;1953:3;1949:14;1990:5;1984:12;1979:3;1972:25;2016:4;2066;2059:5;2055:16;2049:23;-1:-1:-1;;;;;2159:2:484;2145:12;2141:21;2134:4;2129:3;2125:14;2118:45;2224:2;2216:4;2209:5;2205:16;2199:23;2195:32;2188:4;2183:3;2179:14;2172:56;2289:2;2281:4;2274:5;2270:16;2264:23;2260:32;2253:4;2248:3;2244:14;2237:56;;;2341:4;2334:5;2330:16;2324:23;2379:4;2372;2367:3;2363:14;2356:28;2406:4;2439:14;2433:21;2476:6;2470:4;2463:20;2510:3;2505;2501:13;2492:22;;2557:4;2541:14;2537:25;2523:39;;2580:1;2571:10;;2590:201;2604:6;2601:1;2598:13;2590:201;;;2671:13;;-1:-1:-1;;;;;2667:39:484;2653:54;;2766:15;;;;2703:1;2619:9;;;;;2729:14;;;;2590:201;;;-1:-1:-1;2807:5:484;1870:948;-1:-1:-1;;;;;;1870:948:484:o;2823:257::-;3002:2;2991:9;2984:21;2965:4;3022:52;3070:2;3059:9;3055:18;3047:6;3022:52;:::i;3085:173::-;3153:20;;-1:-1:-1;;;;;3202:31:484;;3192:42;;3182:70;;3248:1;3245;3238:12;3182:70;3085:173;;;:::o;3263:186::-;3322:6;3375:2;3363:9;3354:7;3350:23;3346:32;3343:52;;;3391:1;3388;3381:12;3343:52;3414:29;3433:9;3414:29;:::i;3454:615::-;3540:6;3548;3601:2;3589:9;3580:7;3576:23;3572:32;3569:52;;;3617:1;3614;3607:12;3569:52;3657:9;3644:23;-1:-1:-1;;;;;3727:2:484;3719:6;3716:14;3713:34;;;3743:1;3740;3733:12;3713:34;3781:6;3770:9;3766:22;3756:32;;3826:7;3819:4;3815:2;3811:13;3807:27;3797:55;;3848:1;3845;3838:12;3797:55;3888:2;3875:16;3914:2;3906:6;3903:14;3900:34;;;3930:1;3927;3920:12;3900:34;3983:7;3978:2;3968:6;3965:1;3961:14;3957:2;3953:23;3949:32;3946:45;3943:65;;;4004:1;4001;3994:12;3943:65;4035:2;4027:11;;;;;4057:6;;-1:-1:-1;3454:615:484;;-1:-1:-1;;;;3454:615:484:o;4074:263::-;4165:5;4159:12;4154:3;4147:25;4129:3;4218:4;4211:5;4207:16;4201:23;4256:4;4249;4244:3;4240:14;4233:28;4277:54;4325:4;4320:3;4316:14;4302:12;4277:54;:::i;:::-;4270:61;4074:263;-1:-1:-1;;;;4074:263:484:o;4342:624::-;4407:3;4438;4470:5;4464:12;4497:6;4492:3;4485:19;4523:4;4552;4547:3;4543:14;4536:21;;4610:4;4600:6;4597:1;4593:14;4586:5;4582:26;4578:37;4649:4;4642:5;4638:16;4672:1;4682:258;4696:6;4693:1;4690:13;4682:258;;;4783:2;4779:7;4771:5;4765:4;4761:16;4757:30;4752:3;4745:43;4809:51;4855:4;4846:6;4840:13;4809:51;:::i;:::-;4918:12;;;;4801:59;-1:-1:-1;4883:15:484;;;;4718:1;4711:9;4682:258;;;-1:-1:-1;4956:4:484;;4342:624;-1:-1:-1;;;;;;;4342:624:484:o;4971:335::-;5212:2;5201:9;5194:21;5175:4;5232:68;5296:2;5285:9;5281:18;5273:6;5232:68;:::i;5493:488::-;5746:2;5735:9;5728:21;5709:4;5772:52;5820:2;5809:9;5805:18;5797:6;5772:52;:::i;:::-;5860:6;5855:2;5844:9;5840:18;5833:34;5915:9;5907:6;5903:22;5898:2;5887:9;5883:18;5876:50;5943:32;5968:6;5960;5943:32;:::i;:::-;5935:40;5493:488;-1:-1:-1;;;;;;5493:488:484:o;5986:151::-;6062:20;;6111:1;6101:12;;6091:40;;6127:1;6124;6117:12;6142:284;6226:6;6234;6287:2;6275:9;6266:7;6262:23;6258:32;6255:52;;;6303:1;6300;6293:12;6255:52;6326:29;6345:9;6326:29;:::i;:::-;6316:39;;6374:46;6416:2;6405:9;6401:18;6374:46;:::i;:::-;6364:56;;6142:284;;;;;:::o;6616:275::-;6807:2;6796:9;6789:21;6770:4;6827:58;6881:2;6870:9;6866:18;6858:6;6827:58;:::i;6896:127::-;6957:10;6952:3;6948:20;6945:1;6938:31;6988:4;6985:1;6978:15;7012:4;7009:1;7002:15;7028:275;7099:2;7093:9;7164:2;7145:13;;-1:-1:-1;;7141:27:484;7129:40;;-1:-1:-1;;;;;7184:34:484;;7220:22;;;7181:62;7178:88;;;7246:18;;:::i;:::-;7282:2;7275:22;7028:275;;-1:-1:-1;7028:275:484:o;7308:530::-;7350:5;7403:3;7396:4;7388:6;7384:17;7380:27;7370:55;;7421:1;7418;7411:12;7370:55;7457:6;7444:20;-1:-1:-1;;;;;7479:2:484;7476:26;7473:52;;;7505:18;;:::i;:::-;7549:55;7592:2;7573:13;;-1:-1:-1;;7569:27:484;7598:4;7565:38;7549:55;:::i;:::-;7629:2;7620:7;7613:19;7675:3;7668:4;7663:2;7655:6;7651:15;7647:26;7644:35;7641:55;;;7692:1;7689;7682:12;7641:55;7757:2;7750:4;7742:6;7738:17;7731:4;7722:7;7718:18;7705:55;7805:1;7780:16;;;7798:4;7776:27;7769:38;;;;7784:7;7308:530;-1:-1:-1;;;7308:530:484:o;7843:1287::-;7963:6;7971;7979;7987;8040:3;8028:9;8019:7;8015:23;8011:33;8008:53;;;8057:1;8054;8047:12;8008:53;8093:9;8080:23;8070:33;;8122:2;8175;8164:9;8160:18;8147:32;-1:-1:-1;;;;;8239:2:484;8231:6;8228:14;8225:34;;;8255:1;8252;8245:12;8225:34;8293:6;8282:9;8278:22;8268:32;;8338:7;8331:4;8327:2;8323:13;8319:27;8309:55;;8360:1;8357;8350:12;8309:55;8396:2;8383:16;8418:2;8414;8411:10;8408:36;;;8424:18;;:::i;:::-;8470:2;8467:1;8463:10;8493:28;8517:2;8513;8509:11;8493:28;:::i;:::-;8555:15;;;8625:11;;;8621:20;;;8586:12;;;;8653:19;;;8650:39;;;8685:1;8682;8675:12;8650:39;8709:11;;;;8729:148;8745:6;8740:3;8737:15;8729:148;;;8811:23;8830:3;8811:23;:::i;:::-;8799:36;;8762:12;;;;8855;;;;8729:148;;;8896:5;-1:-1:-1;;;;8948:2:484;8933:18;;8920:32;;-1:-1:-1;9005:2:484;8990:18;;8977:32;;-1:-1:-1;9021:16:484;;;9018:36;;;9050:1;9047;9040:12;9018:36;;;9073:51;9116:7;9105:8;9094:9;9090:24;9073:51;:::i;:::-;9063:61;;;7843:1287;;;;;;;:::o;9327:395::-;9405:6;9413;9466:2;9454:9;9445:7;9441:23;9437:32;9434:52;;;9482:1;9479;9472:12;9434:52;9505:29;9524:9;9505:29;:::i;:::-;9495:39;;9585:2;9574:9;9570:18;9557:32;-1:-1:-1;;;;;9604:6:484;9601:30;9598:50;;;9644:1;9641;9634:12;9598:50;9667:49;9708:7;9699:6;9688:9;9684:22;9667:49;:::i;:::-;9657:59;;;9327:395;;;;;:::o;9727:632::-;9898:2;9950:21;;;10020:13;;9923:18;;;10042:22;;;9869:4;;9898:2;10121:15;;;;10095:2;10080:18;;;9869:4;10164:169;10178:6;10175:1;10172:13;10164:169;;;10239:13;;10227:26;;10308:15;;;;10273:12;;;;10200:1;10193:9;10164:169;;;-1:-1:-1;10350:3:484;;9727:632;-1:-1:-1;;;;;;9727:632:484:o;10364:127::-;10425:10;10420:3;10416:20;10413:1;10406:31;10456:4;10453:1;10446:15;10480:4;10477:1;10470:15;10496:238;10578:1;10571:5;10568:12;10558:143;;10623:10;10618:3;10614:20;10611:1;10604:31;10658:4;10655:1;10648:15;10686:4;10683:1;10676:15;10558:143;10710:18;;10496:238::o;10739:505::-;10804:45;10845:3;10837:5;10831:12;10804:45;:::i;:::-;10786:3;10895:4;10888:5;10884:16;10878:23;10933:4;10926;10921:3;10917:14;10910:28;10959:46;10999:4;10994:3;10990:14;10976:12;10959:46;:::i;:::-;11053:4;11042:16;;;11036:23;-1:-1:-1;;;;;11129:23:484;;;11113:14;;;11106:47;;;;11206:4;11195:16;;;11189:23;11185:32;11169:14;;;;11162:56;;;;-1:-1:-1;10947:58:484;;10739:505;-1:-1:-1;10739:505:484:o;11249:251::-;11424:2;11413:9;11406:21;11387:4;11444:50;11490:2;11479:9;11475:18;11467:6;11444:50;:::i;11505:254::-;11573:6;11581;11634:2;11622:9;11613:7;11609:23;11605:32;11602:52;;;11650:1;11647;11640:12;11602:52;11686:9;11673:23;11663:33;;11715:38;11749:2;11738:9;11734:18;11715:38;:::i;11764:171::-;11831:20;;-1:-1:-1;;;;;11880:30:484;;11870:41;;11860:69;;11925:1;11922;11915:12;11940:731;12027:6;12035;12043;12051;12104:2;12092:9;12083:7;12079:23;12075:32;12072:52;;;12120:1;12117;12110:12;12072:52;12156:9;12143:23;12133:33;;12185:37;12218:2;12207:9;12203:18;12185:37;:::i;:::-;12175:47;;12273:2;12262:9;12258:18;12245:32;-1:-1:-1;;;;;12337:2:484;12329:6;12326:14;12323:34;;;12353:1;12350;12343:12;12323:34;12391:6;12380:9;12376:22;12366:32;;12436:7;12429:4;12425:2;12421:13;12417:27;12407:55;;12458:1;12455;12448:12;12407:55;12498:2;12485:16;12524:2;12516:6;12513:14;12510:34;;;12540:1;12537;12530:12;12510:34;12585:7;12580:2;12571:6;12567:2;12563:15;12559:24;12556:37;12553:57;;;12606:1;12603;12596:12;12553:57;11940:731;;;;-1:-1:-1;;12637:2:484;12629:11;;-1:-1:-1;;;11940:731:484:o;12676:834::-;12864:4;12893:2;12933;12922:9;12918:18;12963:2;12952:9;12945:21;12986:6;13021;13015:13;13052:6;13044;13037:22;13090:2;13079:9;13075:18;13068:25;;13152:2;13142:6;13139:1;13135:14;13124:9;13120:30;13116:39;13102:53;;13190:2;13182:6;13178:15;13211:1;13221:260;13235:6;13232:1;13229:13;13221:260;;;13328:2;13324:7;13312:9;13304:6;13300:22;13296:36;13291:3;13284:49;13356:45;13394:6;13385;13379:13;13356:45;:::i;:::-;13346:55;-1:-1:-1;13459:12:484;;;;13424:15;;;;13257:1;13250:9;13221:260;;;-1:-1:-1;13498:6:484;;12676:834;-1:-1:-1;;;;;;;12676:834:484:o;13515:252::-;13582:6;13590;13643:2;13631:9;13622:7;13618:23;13614:32;13611:52;;;13659:1;13656;13649:12;13611:52;13695:9;13682:23;13672:33;;13724:37;13757:2;13746:9;13742:18;13724:37;:::i;13772:465::-;13825:3;13863:5;13857:12;13890:6;13885:3;13878:19;13916:4;13945;13940:3;13936:14;13929:21;;13984:4;13977:5;13973:16;14007:1;14017:195;14031:6;14028:1;14025:13;14017:195;;;14096:13;;-1:-1:-1;;;;;14092:39:484;14080:52;;14152:12;;;;14187:15;;;;14128:1;14046:9;14017:195;;;-1:-1:-1;14228:3:484;;13772:465;-1:-1:-1;;;;;13772:465:484:o;14242:261::-;14421:2;14410:9;14403:21;14384:4;14441:56;14493:2;14482:9;14478:18;14470:6;14441:56;:::i;14508:248::-;14576:6;14584;14637:2;14625:9;14616:7;14612:23;14608:32;14605:52;;;14653:1;14650;14643:12;14605:52;-1:-1:-1;;14676:23:484;;;14746:2;14731:18;;;14718:32;;-1:-1:-1;14508:248:484:o;14761:416::-;15024:2;15013:9;15006:21;14987:4;15044:68;15108:2;15097:9;15093:18;15085:6;15044:68;:::i;:::-;15036:76;;15162:6;15155:14;15148:22;15143:2;15132:9;15128:18;15121:50;14761:416;;;;;:::o;15182:160::-;15247:20;;15303:13;;15296:21;15286:32;;15276:60;;15332:1;15329;15322:12;15347:458;15438:6;15446;15454;15462;15470;15523:3;15511:9;15502:7;15498:23;15494:33;15491:53;;;15540:1;15537;15530:12;15491:53;15576:9;15563:23;15553:33;;15633:2;15622:9;15618:18;15605:32;15595:42;;15684:2;15673:9;15669:18;15656:32;15646:42;;15707:37;15740:2;15729:9;15725:18;15707:37;:::i;:::-;15697:47;;15763:36;15794:3;15783:9;15779:19;15763:36;:::i;:::-;15753:46;;15347:458;;;;;;;;:::o;15810:493::-;15913:6;15921;15929;15982:2;15970:9;15961:7;15957:23;15953:32;15950:52;;;15998:1;15995;15988:12;15950:52;16021:29;16040:9;16021:29;:::i;:::-;16011:39;;16101:2;16090:9;16086:18;16073:32;-1:-1:-1;;;;;16120:6:484;16117:30;16114:50;;;16160:1;16157;16150:12;16114:50;16183:49;16224:7;16215:6;16204:9;16200:22;16183:49;:::i;:::-;16173:59;;;16251:46;16293:2;16282:9;16278:18;16251:46;:::i;:::-;16241:56;;15810:493;;;;;:::o;16308:651::-;16427:6;16435;16488:2;16476:9;16467:7;16463:23;16459:32;16456:52;;;16504:1;16501;16494:12;16456:52;16544:9;16531:23;-1:-1:-1;;;;;16614:2:484;16606:6;16603:14;16600:34;;;16630:1;16627;16620:12;16600:34;16668:6;16657:9;16653:22;16643:32;;16713:7;16706:4;16702:2;16698:13;16694:27;16684:55;;16735:1;16732;16725:12;16684:55;16775:2;16762:16;16801:2;16793:6;16790:14;16787:34;;;16817:1;16814;16807:12;16787:34;16873:7;16868:2;16860:4;16852:6;16848:17;16844:2;16840:26;16836:35;16833:48;16830:68;;;16894:1;16891;16884:12;16964:219;17113:2;17102:9;17095:21;17076:4;17133:44;17173:2;17162:9;17158:18;17150:6;17133:44;:::i;17188:127::-;17249:10;17244:3;17240:20;17237:1;17230:31;17280:4;17277:1;17270:15;17304:4;17301:1;17294:15;17857:127;17918:10;17913:3;17909:20;17906:1;17899:31;17949:4;17946:1;17939:15;17973:4;17970:1;17963:15;17989:125;18054:9;;;18075:10;;;18072:36;;;18088:18;;:::i;18119:380::-;18198:1;18194:12;;;;18241;;;18262:61;;18316:4;18308:6;18304:17;18294:27;;18262:61;18369:2;18361:6;18358:14;18338:18;18335:38;18332:161;;18415:10;18410:3;18406:20;18403:1;18396:31;18450:4;18447:1;18440:15;18478:4;18475:1;18468:15;18504:127;18565:10;18560:3;18556:20;18553:1;18546:31;18596:4;18593:1;18586:15;18620:4;18617:1;18610:15;18636:135;18675:3;18696:17;;;18693:43;;18716:18;;:::i;:::-;-1:-1:-1;18763:1:484;18752:13;;18636:135::o;18984:201::-;19022:3;19050:10;19095:2;19088:5;19084:14;19122:2;19113:7;19110:15;19107:41;;19128:18;;:::i;:::-;19177:1;19164:15;;18984:201;-1:-1:-1;;;18984:201:484:o;19190:211::-;19338:2;19323:18;;19350:45;19327:9;19377:6;19350:45;:::i;19531:542::-;19632:2;19627:3;19624:11;19621:446;;;19668:1;19692:5;19689:1;19682:16;19736:4;19733:1;19723:18;19806:2;19794:10;19790:19;19787:1;19783:27;19777:4;19773:38;19842:4;19830:10;19827:20;19824:47;;;-1:-1:-1;19865:4:484;19824:47;19920:2;19915:3;19911:12;19908:1;19904:20;19898:4;19894:31;19884:41;;19975:82;19993:2;19986:5;19983:13;19975:82;;;20038:17;;;20019:1;20008:13;19975:82;;;19979:3;;;19531:542;;;:::o;20078:166::-;-1:-1:-1;;20206:1:484;20202:11;;;20198:24;20194:29;20184:40;20230:1;20226:11;;;;20181:57;;20078:166::o;20249:1341::-;20373:3;20367:10;-1:-1:-1;;;;;20392:6:484;20389:30;20386:56;;;20422:18;;:::i;:::-;20451:96;20540:6;20500:38;20532:4;20526:11;20500:38;:::i;:::-;20494:4;20451:96;:::i;:::-;20602:4;;20659:2;20648:14;;20676:1;20671:662;;;;21377:1;21394:6;21391:89;;;-1:-1:-1;21446:19:484;;;21440:26;21391:89;21506:67;21566:6;21559:5;21506:67;:::i;:::-;21500:4;21493:81;;20641:943;;20671:662;19478:1;19471:14;;;19515:4;19502:18;;-1:-1:-1;;20707:20:484;;;20824:236;20838:7;20835:1;20832:14;20824:236;;;20927:19;;;20921:26;20906:42;;21019:27;;;;20987:1;20975:14;;;;20854:19;;20824:236;;;20828:3;21088:6;21079:7;21076:19;21073:201;;;21149:19;;;21143:26;-1:-1:-1;;21232:1:484;21228:14;;;21244:3;21224:24;21220:37;21216:42;21201:58;21186:74;;21073:201;-1:-1:-1;;;;;21320:1:484;21304:14;;;21300:22;21287:36;;-1:-1:-1;20249:1341:484:o;21595:565::-;21876:6;21865:9;21858:25;21919:3;21914:2;21903:9;21899:18;21892:31;21839:4;21946:57;21998:3;21987:9;21983:19;21975:6;21946:57;:::i;:::-;22039:6;22034:2;22023:9;22019:18;22012:34;22094:9;22086:6;22082:22;22077:2;22066:9;22062:18;22055:50;22122:32;22147:6;22139;22122:32;:::i;:::-;22114:40;21595:565;-1:-1:-1;;;;;;;21595:565:484:o;22165:289::-;22296:3;22334:6;22328:13;22350:66;22409:6;22404:3;22397:4;22389:6;22385:17;22350:66;:::i;:::-;22432:16;;;;;22165:289;-1:-1:-1;;22165:289:484:o;22459:843::-;22587:3;22616:1;22649:6;22643:13;22679:36;22705:9;22679:36;:::i;:::-;22734:1;22751:17;;;22777:133;;;;22924:1;22919:358;;;;22744:533;;22777:133;-1:-1:-1;;22810:24:484;;22798:37;;22883:14;;22876:22;22864:35;;22855:45;;;-1:-1:-1;22777:133:484;;22919:358;22950:6;22947:1;22940:17;22980:4;23025;23022:1;23012:18;23052:1;23066:165;23080:6;23077:1;23074:13;23066:165;;;23158:14;;23145:11;;;23138:35;23201:16;;;;23095:10;;23066:165;;;23070:3;;;23260:6;23255:3;23251:16;23244:23;;22744:533;-1:-1:-1;23293:3:484;;22459:843;-1:-1:-1;;;;;;22459:843:484:o;25015:1202::-;-1:-1:-1;;;;;25132:3:484;25129:27;25126:53;;;25159:18;;:::i;:::-;25188:93;25277:3;25237:38;25269:4;25263:11;25237:38;:::i;:::-;25231:4;25188:93;:::i;:::-;25307:1;25332:2;25327:3;25324:11;25349:1;25344:615;;;;26003:1;26020:3;26017:93;;;-1:-1:-1;26076:19:484;;;26063:33;26017:93;26136:64;26196:3;26189:5;26136:64;:::i;:::-;26130:4;26123:78;;25317:894;;25344:615;19478:1;19471:14;;;19515:4;19502:18;;-1:-1:-1;;25380:17:484;;;25480:9;25502:229;25516:7;25513:1;25510:14;25502:229;;;25605:19;;;25592:33;25577:49;;25712:4;25697:20;;;;25665:1;25653:14;;;;25532:12;25502:229;;;25506:3;25759;25750:7;25747:16;25744:159;;;25883:1;25879:6;25873:3;25867;25864:1;25860:11;25856:21;25852:34;25848:39;25835:9;25830:3;25826:19;25813:33;25809:79;25801:6;25794:95;25744:159;;;25946:1;25940:3;25937:1;25933:11;25929:19;25923:4;25916:33;25317:894;;25015:1202;;;:::o;26222:639::-;26455:6;26444:9;26437:25;-1:-1:-1;;;;;26502:6:484;26498:31;26493:2;26482:9;26478:18;26471:59;26566:3;26561:2;26550:9;26546:18;26539:31;26607:6;26601:3;26590:9;26586:19;26579:35;26665:6;26657;26651:3;26640:9;26636:19;26623:49;26722:1;26692:22;;;26716:3;26688:32;;;26681:43;;;;26839:14;;26832:22;26827:2;26812:18;;26805:50;26785:2;26764:15;;;-1:-1:-1;;26760:29:484;26745:45;;;26741:55;;26222:639;-1:-1:-1;;;26222:639:484:o;26866:128::-;26933:9;;;26954:11;;;26951:37;;;26968:18;;:::i;26999:1426::-;27112:3;27106:4;27103:13;27100:26;;27119:5;;26999:1426::o;27100:26::-;27149:37;27181:3;27175:10;27149:37;:::i;:::-;-1:-1:-1;;;;;27201:6:484;27198:30;27195:56;;;27231:18;;:::i;:::-;27260:96;27349:6;27309:38;27341:4;27335:11;27309:38;:::i;27260:96::-;27382:1;27410:2;27402:6;27399:14;27427:1;27422:746;;;;28212:1;28229:6;28226:89;;;-1:-1:-1;28281:19:484;;;28275:26;28226:89;28341:67;28401:6;28394:5;28341:67;:::i;:::-;28335:4;28328:81;;27392:1027;;27422:746;19478:1;19471:14;;;19515:4;19502:18;;-1:-1:-1;;27458:20:484;;;19478:1;19471:14;;;19515:4;19502:18;;27620:9;27642:251;27656:7;27653:1;27650:14;27642:251;;;27738:21;;;27732:28;27717:44;;27788:1;27861:18;;;;27816:15;;;;27679:4;27672:12;27642:251;;;27646:3;27921:6;27912:7;27909:19;27906:203;;;27982:21;;27976:28;-1:-1:-1;;28079:3:484;28067:1;28063:14;;;28059:24;28055:37;28051:42;28036:58;28021:74;;;-1:-1:-1;;28155:1:484;28139:14;;;28135:22;28122:36;;-1:-1:-1;26999:1426:484:o;28859:324::-;29050:2;29039:9;29032:21;29013:4;29070:44;29110:2;29099:9;29095:18;29087:6;29070:44;:::i;:::-;29062:52;;29123:54;29173:2;29162:9;29158:18;29150:6;29123:54;:::i;29188:184::-;29246:6;29299:2;29287:9;29278:7;29274:23;29270:32;29267:52;;;29315:1;29312;29305:12;29267:52;29338:28;29356:9;29338:28;:::i;29377:457::-;29608:6;29597:9;29590:25;29651:6;29646:2;29635:9;29631:18;29624:34;-1:-1:-1;;;;;29698:6:484;29694:31;29689:2;29678:9;29674:18;29667:59;29762:3;29757:2;29746:9;29742:18;29735:31;29571:4;29783:45;29823:3;29812:9;29808:19;29800:6;29783:45;:::i;29839:180::-;29895:6;29948:2;29936:9;29927:7;29923:23;29919:32;29916:52;;;29964:1;29961;29954:12;29916:52;29987:26;30003:9;29987:26;:::i","linkReferences":{}},"methodIdentifiers":{"__OperatorRegistry_init(address[])":"ba428b1a","__RiverConfig_init(address[])":"31374511","allocateStream(bytes32,address[],bytes32,bytes)":"6b883c39","approveConfigurationManager(address)":"c179b85f","approveOperator(address)":"242cae9f","configurationExists(bytes32)":"fc207c01","deleteConfiguration(bytes32)":"035759e1","deleteConfigurationOnBlock(bytes32,uint64)":"b7f227ee","getAllConfiguration()":"081814db","getAllNodeAddresses()":"c8fe3a01","getAllNodes()":"a1174e7d","getAllOperators()":"d911c632","getAllStreamIds()":"86789fc6","getAllStreams()":"3bd84c0c","getConfiguration(bytes32)":"9283ae3a","getNode(address)":"9d209048","getNodeCount()":"39bf397e","getPaginatedStreams(uint256,uint256)":"ca78c41a","getStream(bytes32)":"1290abe8","getStreamByIndex(uint256)":"68b454df","getStreamCount()":"c0f22084","getStreamCountOnNode(address)":"c87d1324","getStreamWithGenesis(bytes32)":"3c2544d1","getStreamsOnNode(address)":"32705ac4","isConfigurationManager(address)":"d4bd44a0","isOperator(address)":"6d70f7ae","placeStreamOnNode(bytes32,address)":"9ee86d38","registerNode(address,string,uint8)":"eecc66f4","removeConfigurationManager(address)":"813049ec","removeNode(address)":"b2b99ec9","removeOperator(address)":"ac8a584a","removeStreamFromNode(bytes32,address)":"ee885b12","setConfiguration(bytes32,uint64,bytes)":"a09449a6","setStreamLastMiniblock(bytes32,bytes32,bytes32,uint64,bool)":"d7a3158a","setStreamLastMiniblockBatch((bytes32,bytes32,bytes32,uint64,bool)[])":"ff3a14ab","updateNodeStatus(address,uint8)":"581f8b9b","updateNodeUrl(address,string)":"7e4465e7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"approvedOperators\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Initializable_InInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_NotInInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_AlreadySupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_NotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Ownable__NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Ownable__ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"block\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"deleted\",\"type\":\"bool\"}],\"name\":\"ConfigurationChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"ConfigurationManagerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"ConfigurationManagerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"enum NodeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"NodeAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"NodeRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum NodeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"NodeStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"name\":\"NodeUrlUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operatorAddress\",\"type\":\"address\"}],\"name\":\"OperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operatorAddress\",\"type\":\"address\"}],\"name\":\"OperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"genesisMiniblockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"genesisMiniblock\",\"type\":\"bytes\"}],\"name\":\"StreamAllocated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"StreamLastMiniblockUpdateFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSealed\",\"type\":\"bool\"}],\"name\":\"StreamLastMiniblockUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAdded\",\"type\":\"bool\"}],\"name\":\"StreamPlacementUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"initialOperators\",\"type\":\"address[]\"}],\"name\":\"__OperatorRegistry_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"configManagers\",\"type\":\"address[]\"}],\"name\":\"__RiverConfig_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"genesisMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"genesisMiniblock\",\"type\":\"bytes\"}],\"name\":\"allocateStream\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"approveConfigurationManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"approveOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"configurationExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"deleteConfiguration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"}],\"name\":\"deleteConfigurationOnBlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllConfiguration\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"internalType\":\"struct Setting[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllNodeAddresses\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllNodes\",\"outputs\":[{\"components\":[{\"internalType\":\"enum NodeStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Node[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllOperators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllStreamIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllStreams\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getConfiguration\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"internalType\":\"struct Setting[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getNode\",\"outputs\":[{\"components\":[{\"internalType\":\"enum NodeStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"internalType\":\"struct Node\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNodeCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stop\",\"type\":\"uint256\"}],\"name\":\"getPaginatedStreams\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"}],\"name\":\"getStream\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"getStreamByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStreamCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getStreamCountOnNode\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"}],\"name\":\"getStreamWithGenesis\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getStreamsOnNode\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"isConfigurationManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"placeStreamOnNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"},{\"internalType\":\"enum NodeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"registerNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"manager\",\"type\":\"address\"}],\"name\":\"removeConfigurationManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"removeNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"removeOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"removeStreamFromNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"value\",\"type\":\"bytes\"}],\"name\":\"setConfiguration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isSealed\",\"type\":\"bool\"}],\"name\":\"setStreamLastMiniblock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"prevMiniBlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isSealed\",\"type\":\"bool\"}],\"internalType\":\"struct SetMiniblock[]\",\"name\":\"miniblocks\",\"type\":\"tuple[]\"}],\"name\":\"setStreamLastMiniblockBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"internalType\":\"enum NodeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"updateNodeStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"url\",\"type\":\"string\"}],\"name\":\"updateNodeUrl\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ConfigurationChanged(bytes32,uint64,bytes,bool)\":{\"details\":\"if deleted is true and block is max value of uint64, the setting is deleted on all blocks\",\"params\":{\"block\":\"The block number on which the setting becomes active\",\"deleted\":\"True if the setting is deleted (value is empty in this case)\",\"key\":\"The setting key that is changed\",\"value\":\"The new setting value\"}},\"ConfigurationManagerAdded(address)\":{\"params\":{\"manager\":\"The configuration manager address\"}},\"ConfigurationManagerRemoved(address)\":{\"params\":{\"manager\":\"The configuration manager address\"}},\"OwnershipTransferred(address,address)\":{\"details\":\"This emits when ownership of a contract changes.\"}},\"kind\":\"dev\",\"methods\":{\"approveConfigurationManager(address)\":{\"params\":{\"manager\":\"The address to add\"}},\"configurationExists(bytes32)\":{\"params\":{\"key\":\"The setting key\"},\"returns\":{\"_0\":\"True if the setting exists\"}},\"deleteConfiguration(bytes32)\":{\"details\":\"Emits ConfigurationChanged event with deleted flag set to true and block number set to max value of uint64\",\"params\":{\"key\":\"The setting key\"}},\"deleteConfigurationOnBlock(bytes32,uint64)\":{\"details\":\"Emits ConfigurationChanged event with deleted flag set to true\",\"params\":{\"blockNumber\":\"The block number on which the setting becomes active\",\"key\":\"The setting key\"}},\"getAllConfiguration()\":{\"details\":\"Note that the returned list is ordered on key but NOT on block number\",\"returns\":{\"_0\":\"List will all stored settings\"}},\"getAllNodeAddresses()\":{\"details\":\"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getAllNodes()\":{\"details\":\"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getAllStreamIds()\":{\"details\":\"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getAllStreams()\":{\"details\":\"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getConfiguration(bytes32)\":{\"details\":\"Note that the returned list isn't ordered by block number\",\"params\":{\"key\":\"The setting key\"},\"returns\":{\"_0\":\"The setting value\"}},\"getPaginatedStreams(uint256,uint256)\":{\"details\":\"Recommended range is 5000 streams, returns true if on the last page.\"},\"getStreamWithGenesis(bytes32)\":{\"returns\":{\"_0\":\"stream, genesisMiniblockHash, genesisMiniblock\"}},\"isConfigurationManager(address)\":{\"params\":{\"manager\":\"The address to check\"},\"returns\":{\"_0\":\"True if the address is a configuration manager\"}},\"removeConfigurationManager(address)\":{\"params\":{\"manager\":\"The address to remove\"}},\"setConfiguration(bytes32,uint64,bytes)\":{\"details\":\"Emits ConfigurationChanged event\",\"params\":{\"blockNumber\":\"The block number on which the setting becomes active, can't be max value of uint64\",\"key\":\"The setting key\",\"value\":\"The setting value (value must be its ABI representation), can't be empty\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ConfigurationChanged(bytes32,uint64,bytes,bool)\":{\"notice\":\"Emitted when a setting is changed\"},\"ConfigurationManagerAdded(address)\":{\"notice\":\"Emitted when a configuration manager is added\"},\"ConfigurationManagerRemoved(address)\":{\"notice\":\"Emitted when a configuration manager is removed\"},\"InterfaceAdded(bytes4)\":{\"notice\":\"Emitted when an interface is added to the contract via `_addInterface`.\"},\"InterfaceRemoved(bytes4)\":{\"notice\":\"Emitted when an interface is removed from the contract via `_removeInterface`.\"}},\"kind\":\"user\",\"methods\":{\"approveConfigurationManager(address)\":{\"notice\":\"Add a configuration manager\"},\"configurationExists(bytes32)\":{\"notice\":\"Indication if there is a setting for the given key\"},\"deleteConfiguration(bytes32)\":{\"notice\":\"Deletes the setting for the given key on all blocks\"},\"deleteConfigurationOnBlock(bytes32,uint64)\":{\"notice\":\"Deletes the setting for the given key at the given block\"},\"getAllConfiguration()\":{\"notice\":\"Get all settings store in the registry\"},\"getAllNodeAddresses()\":{\"notice\":\"Return array containing all node addresses\"},\"getAllNodes()\":{\"notice\":\"Return array containing all nodes\"},\"getAllStreamIds()\":{\"notice\":\"Return array containing all stream ids\"},\"getAllStreams()\":{\"notice\":\"Return array containing all streams\"},\"getConfiguration(bytes32)\":{\"notice\":\"Get settings for the given key\"},\"isConfigurationManager(address)\":{\"notice\":\"Check if the given address is a configuration manager\"},\"removeConfigurationManager(address)\":{\"notice\":\"Remove a configuration manager\"},\"setConfiguration(bytes32,uint64,bytes)\":{\"notice\":\"Set a bytes setting for the given key\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/mocks/MockRiverRegistry.sol\":\"MockRiverRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/diamond/facets/Facet.sol\":{\"keccak256\":\"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863\",\"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc\"]},\"contracts/src/diamond/facets/initializable/Initializable.sol\":{\"keccak256\":\"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552\",\"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC\"]},\"contracts/src/diamond/facets/initializable/InitializableStorage.sol\":{\"keccak256\":\"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4\",\"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg\"]},\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/introspection/IntrospectionBase.sol\":{\"keccak256\":\"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1\",\"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw\"]},\"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol\":{\"keccak256\":\"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91\",\"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM\"]},\"contracts/src/diamond/facets/ownable/IERC173.sol\":{\"keccak256\":\"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b\",\"dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd\"]},\"contracts/src/diamond/facets/ownable/OwnableBase.sol\":{\"keccak256\":\"0x272abaecc104d5f23d77a623cf1548620d24b0f447eb2a12144e27561ff489f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcb8c20ff7346bdc5dba82e6680cc0ea64087460a12153e3b6c3416f6addf875\",\"dweb:/ipfs/QmfEEufJBzudSDekQteQkb3CzmnzUPT3GDhNgVpHNC9xaf\"]},\"contracts/src/diamond/facets/ownable/OwnableStorage.sol\":{\"keccak256\":\"0xda650482ce08c04110366cb01408aaabd01383d9c504b7cacfb2674aae688dcd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://694f42ffb353fccaa1eadf91dee3a3cee7253e3f357bcba2b175fd7be701e27e\",\"dweb:/ipfs/QmPxxVerATSYrNLp7snnSvNVsbLPm1wzHULhBbtR333eik\"]},\"contracts/src/river/registry/facets/config/IRiverConfig.sol\":{\"keccak256\":\"0x7293c511c6915f4c9074b499f175f18841cb3f3acb8271cb34007f376e164c3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89fe81eb0e39efdd7909ee912e684c9a7bfd6c05ccfefa2d43052cf696c66fb2\",\"dweb:/ipfs/Qmbf8uS41N2LcgEQq9AwXNm23HnPAJhWkt1JK8LGxTUofF\"]},\"contracts/src/river/registry/facets/config/RiverConfig.sol\":{\"keccak256\":\"0x49cf1c0c245c82c7203b8ea844e6ba09c53221a7453e6e4b963308e328205a2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c885936399539a1907595b6128b7369ca6a9a94a0c91b2786d6a11f27c208fc6\",\"dweb:/ipfs/QmSDWM2UgPiUautAdYt912WS4acXvR5ALQFTZiGeU8h2vR\"]},\"contracts/src/river/registry/facets/node/INodeRegistry.sol\":{\"keccak256\":\"0xa938eb74ae9987638a1ea267b602f803735b4b12b99460754ce50def63558774\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://005f3569ac9964b7da7cd69d968f8e032295b71a7985d83bdf1b3784bdbe2034\",\"dweb:/ipfs/QmUeCtafSt9FSGhPd1YUJ2iHqbypxm6VAG53vzdKKHNEYp\"]},\"contracts/src/river/registry/facets/node/NodeRegistry.sol\":{\"keccak256\":\"0x4add03a289cc8cdf4fa5afaeda29444fa737c2c8ffc54228be30bacca99805d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f50d294f2b8adbe480ba8f29108da3fcd8d21244492626365b408a952787ec01\",\"dweb:/ipfs/QmaHnjiMcEGYv6mTD1jTQqW6xebgKUMrK4Vu7yZf8SKZEa\"]},\"contracts/src/river/registry/facets/operator/IOperatorRegistry.sol\":{\"keccak256\":\"0xce4eb79498c4f592d803bbccac56d2c9aa11093d19ef16f913ea03d497c12a47\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa4317cecb1fa3abe9f4792b54b2952a3bf4d7fcebf44840c6fc21ec971c56c5\",\"dweb:/ipfs/QmWq2nRD2stDBhuWniGZu3tM881BbfK9kSunJcyfKCN7iC\"]},\"contracts/src/river/registry/facets/operator/OperatorRegistry.sol\":{\"keccak256\":\"0x8e4d3505e8059a87de080231a513b190f8571e265a5d9db7985dd8df1f46fe66\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5b1c4508b6d85f9402738df45d83ed3d5a161738c087c4d9541db3e0bf20e632\",\"dweb:/ipfs/QmUenhcXzQnNKzNJ6jJaktqUuh9JTT76BS881qDkwxgLta\"]},\"contracts/src/river/registry/facets/stream/IStreamRegistry.sol\":{\"keccak256\":\"0x1f4373bfa9cdbaa460a8c8870ae059226e1c4c2b03055d92994d582f8affbf4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2eee44be95c48eba75a2283aef37771861cc5c00c32b7bbba55f4408352cf79\",\"dweb:/ipfs/QmVgv1dk5uTNcmagVUH1L1h4aHKpUhSvJPzzuQbSVAn1eT\"]},\"contracts/src/river/registry/facets/stream/StreamRegistry.sol\":{\"keccak256\":\"0xc2c64bcda69bf4b9e5f7f2be8df0bad10b2bc4f609d668c7bb70fc54f31ab637\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb08c863dbdad3bf2a20680fd5433f5d6d3e81aabd54b7082baaff80b422f587\",\"dweb:/ipfs/QmTAGyX3vd6WneeacZwqWi17JyQdG9kuC2CUTBu4EYiT7D\"]},\"contracts/src/river/registry/libraries/RegistryErrors.sol\":{\"keccak256\":\"0x411bd2bca08451c59880f46aa3ce0ac6b20a1cfa8a8836e4ce035fad57bce497\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d8b0fff68a90994db10dd30f26f4f399027295152060b65fadaab76768f6501\",\"dweb:/ipfs/QmdJsGe2utFn1ju8YKkZpshVGNgUbfkkZP77LprQ43BcPP\"]},\"contracts/src/river/registry/libraries/RegistryStorage.sol\":{\"keccak256\":\"0xd45a126f3a7ce156824b019adf5c2832236421da770a02c38a1fa5e789411201\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6edc5efd37e99112a4f1ed8ca56d9f4034c36540bfbe3854b098b5b03cb5c9c4\",\"dweb:/ipfs/QmZKR5pkUVUzxizh6YdDFXenssUfKnJCD15RMgh1T74AcH\"]},\"contracts/test/mocks/MockRiverRegistry.sol\":{\"keccak256\":\"0xd5287fb7a61a7c3062b52fefd1ab9d401243fad12c1b8355bc8e298527779e40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5f42cc15f4cfe1e6b7c9aef7de21a48b17017bb5a544ae339b743eb0a4a313b\",\"dweb:/ipfs/QmVXzQ6VQ422bmC5Q4HSvuLafnjTjUEWMdVHfCcpwXBGt2\"]},\"lib/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address[]","name":"approvedOperators","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"Initializable_InInitializingState"},{"inputs":[],"type":"error","name":"Initializable_NotInInitializingState"},{"inputs":[],"type":"error","name":"Introspection_AlreadySupported"},{"inputs":[],"type":"error","name":"Introspection_NotSupported"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"Ownable__NotOwner"},{"inputs":[],"type":"error","name":"Ownable__ZeroAddress"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":false},{"internalType":"uint64","name":"block","type":"uint64","indexed":false},{"internalType":"bytes","name":"value","type":"bytes","indexed":false},{"internalType":"bool","name":"deleted","type":"bool","indexed":false}],"type":"event","name":"ConfigurationChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"manager","type":"address","indexed":true}],"type":"event","name":"ConfigurationManagerAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"manager","type":"address","indexed":true}],"type":"event","name":"ConfigurationManagerRemoved","anonymous":false},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceAdded","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true},{"internalType":"string","name":"url","type":"string","indexed":false},{"internalType":"enum NodeStatus","name":"status","type":"uint8","indexed":false}],"type":"event","name":"NodeAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true}],"type":"event","name":"NodeRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true},{"internalType":"enum NodeStatus","name":"status","type":"uint8","indexed":false}],"type":"event","name":"NodeStatusUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address","indexed":true},{"internalType":"string","name":"url","type":"string","indexed":false}],"type":"event","name":"NodeUrlUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"operatorAddress","type":"address","indexed":true}],"type":"event","name":"OperatorAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"operatorAddress","type":"address","indexed":true}],"type":"event","name":"OperatorRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"address[]","name":"nodes","type":"address[]","indexed":false},{"internalType":"bytes32","name":"genesisMiniblockHash","type":"bytes32","indexed":false},{"internalType":"bytes","name":"genesisMiniblock","type":"bytes","indexed":false}],"type":"event","name":"StreamAllocated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32","indexed":false},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64","indexed":false},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"StreamLastMiniblockUpdateFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32","indexed":false},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64","indexed":false},{"internalType":"bool","name":"isSealed","type":"bool","indexed":false}],"type":"event","name":"StreamLastMiniblockUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"address","name":"nodeAddress","type":"address","indexed":false},{"internalType":"bool","name":"isAdded","type":"bool","indexed":false}],"type":"event","name":"StreamPlacementUpdated","anonymous":false},{"inputs":[{"internalType":"address[]","name":"initialOperators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"__OperatorRegistry_init"},{"inputs":[{"internalType":"address[]","name":"configManagers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"__RiverConfig_init"},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"address[]","name":"nodes","type":"address[]"},{"internalType":"bytes32","name":"genesisMiniblockHash","type":"bytes32"},{"internalType":"bytes","name":"genesisMiniblock","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"allocateStream"},{"inputs":[{"internalType":"address","name":"manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"approveConfigurationManager"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"approveOperator"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"configurationExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"deleteConfiguration"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"deleteConfigurationOnBlock"},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllConfiguration","outputs":[{"internalType":"struct Setting[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes","name":"value","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllNodeAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllNodes","outputs":[{"internalType":"struct Node[]","name":"","type":"tuple[]","components":[{"internalType":"enum NodeStatus","name":"status","type":"uint8"},{"internalType":"string","name":"url","type":"string"},{"internalType":"address","name":"nodeAddress","type":"address"},{"internalType":"address","name":"operator","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllOperators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllStreamIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllStreams","outputs":[{"internalType":"struct StreamWithId[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]}]},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getConfiguration","outputs":[{"internalType":"struct Setting[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes","name":"value","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getNode","outputs":[{"internalType":"struct Node","name":"","type":"tuple","components":[{"internalType":"enum NodeStatus","name":"status","type":"uint8"},{"internalType":"string","name":"url","type":"string"},{"internalType":"address","name":"nodeAddress","type":"address"},{"internalType":"address","name":"operator","type":"address"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getNodeCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"stop","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPaginatedStreams","outputs":[{"internalType":"struct StreamWithId[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]},{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStream","outputs":[{"internalType":"struct Stream","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStreamByIndex","outputs":[{"internalType":"struct StreamWithId","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStreamCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getStreamCountOnNode","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStreamWithGenesis","outputs":[{"internalType":"struct Stream","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getStreamsOnNode","outputs":[{"internalType":"struct StreamWithId[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]}]},{"inputs":[{"internalType":"address","name":"manager","type":"address"}],"stateMutability":"view","type":"function","name":"isConfigurationManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"placeStreamOnNode"},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"},{"internalType":"string","name":"url","type":"string"},{"internalType":"enum NodeStatus","name":"status","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"registerNode"},{"inputs":[{"internalType":"address","name":"manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeConfigurationManager"},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeNode"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeOperator"},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeStreamFromNode"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"uint64","name":"blockNumber","type":"uint64"},{"internalType":"bytes","name":"value","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setConfiguration"},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"bool","name":"isSealed","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setStreamLastMiniblock"},{"inputs":[{"internalType":"struct SetMiniblock[]","name":"miniblocks","type":"tuple[]","components":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"bytes32","name":"prevMiniBlockHash","type":"bytes32"},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"bool","name":"isSealed","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"setStreamLastMiniblockBatch"},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"},{"internalType":"enum NodeStatus","name":"status","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"updateNodeStatus"},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"},{"internalType":"string","name":"url","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateNodeUrl"}],"devdoc":{"kind":"dev","methods":{"approveConfigurationManager(address)":{"params":{"manager":"The address to add"}},"configurationExists(bytes32)":{"params":{"key":"The setting key"},"returns":{"_0":"True if the setting exists"}},"deleteConfiguration(bytes32)":{"details":"Emits ConfigurationChanged event with deleted flag set to true and block number set to max value of uint64","params":{"key":"The setting key"}},"deleteConfigurationOnBlock(bytes32,uint64)":{"details":"Emits ConfigurationChanged event with deleted flag set to true","params":{"blockNumber":"The block number on which the setting becomes active","key":"The setting key"}},"getAllConfiguration()":{"details":"Note that the returned list is ordered on key but NOT on block number","returns":{"_0":"List will all stored settings"}},"getAllNodeAddresses()":{"details":"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block."},"getAllNodes()":{"details":"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block."},"getAllStreamIds()":{"details":"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block."},"getAllStreams()":{"details":"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block."},"getConfiguration(bytes32)":{"details":"Note that the returned list isn't ordered by block number","params":{"key":"The setting key"},"returns":{"_0":"The setting value"}},"getPaginatedStreams(uint256,uint256)":{"details":"Recommended range is 5000 streams, returns true if on the last page."},"getStreamWithGenesis(bytes32)":{"returns":{"_0":"stream, genesisMiniblockHash, genesisMiniblock"}},"isConfigurationManager(address)":{"params":{"manager":"The address to check"},"returns":{"_0":"True if the address is a configuration manager"}},"removeConfigurationManager(address)":{"params":{"manager":"The address to remove"}},"setConfiguration(bytes32,uint64,bytes)":{"details":"Emits ConfigurationChanged event","params":{"blockNumber":"The block number on which the setting becomes active, can't be max value of uint64","key":"The setting key","value":"The setting value (value must be its ABI representation), can't be empty"}}},"version":1},"userdoc":{"kind":"user","methods":{"approveConfigurationManager(address)":{"notice":"Add a configuration manager"},"configurationExists(bytes32)":{"notice":"Indication if there is a setting for the given key"},"deleteConfiguration(bytes32)":{"notice":"Deletes the setting for the given key on all blocks"},"deleteConfigurationOnBlock(bytes32,uint64)":{"notice":"Deletes the setting for the given key at the given block"},"getAllConfiguration()":{"notice":"Get all settings store in the registry"},"getAllNodeAddresses()":{"notice":"Return array containing all node addresses"},"getAllNodes()":{"notice":"Return array containing all nodes"},"getAllStreamIds()":{"notice":"Return array containing all stream ids"},"getAllStreams()":{"notice":"Return array containing all streams"},"getConfiguration(bytes32)":{"notice":"Get settings for the given key"},"isConfigurationManager(address)":{"notice":"Check if the given address is a configuration manager"},"removeConfigurationManager(address)":{"notice":"Remove a configuration manager"},"setConfiguration(bytes32,uint64,bytes)":{"notice":"Set a bytes setting for the given key"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/test/mocks/MockRiverRegistry.sol":"MockRiverRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/diamond/facets/Facet.sol":{"keccak256":"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57","urls":["bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863","dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"],"license":"MIT"},"contracts/src/diamond/facets/initializable/Initializable.sol":{"keccak256":"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90","urls":["bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552","dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"],"license":"MIT"},"contracts/src/diamond/facets/initializable/InitializableStorage.sol":{"keccak256":"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a","urls":["bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4","dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionBase.sol":{"keccak256":"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f","urls":["bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1","dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol":{"keccak256":"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763","urls":["bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91","dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"],"license":"MIT"},"contracts/src/diamond/facets/ownable/IERC173.sol":{"keccak256":"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303","urls":["bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b","dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd"],"license":"MIT"},"contracts/src/diamond/facets/ownable/OwnableBase.sol":{"keccak256":"0x272abaecc104d5f23d77a623cf1548620d24b0f447eb2a12144e27561ff489f2","urls":["bzz-raw://fcb8c20ff7346bdc5dba82e6680cc0ea64087460a12153e3b6c3416f6addf875","dweb:/ipfs/QmfEEufJBzudSDekQteQkb3CzmnzUPT3GDhNgVpHNC9xaf"],"license":"MIT"},"contracts/src/diamond/facets/ownable/OwnableStorage.sol":{"keccak256":"0xda650482ce08c04110366cb01408aaabd01383d9c504b7cacfb2674aae688dcd","urls":["bzz-raw://694f42ffb353fccaa1eadf91dee3a3cee7253e3f357bcba2b175fd7be701e27e","dweb:/ipfs/QmPxxVerATSYrNLp7snnSvNVsbLPm1wzHULhBbtR333eik"],"license":"MIT"},"contracts/src/river/registry/facets/config/IRiverConfig.sol":{"keccak256":"0x7293c511c6915f4c9074b499f175f18841cb3f3acb8271cb34007f376e164c3a","urls":["bzz-raw://89fe81eb0e39efdd7909ee912e684c9a7bfd6c05ccfefa2d43052cf696c66fb2","dweb:/ipfs/Qmbf8uS41N2LcgEQq9AwXNm23HnPAJhWkt1JK8LGxTUofF"],"license":"MIT"},"contracts/src/river/registry/facets/config/RiverConfig.sol":{"keccak256":"0x49cf1c0c245c82c7203b8ea844e6ba09c53221a7453e6e4b963308e328205a2f","urls":["bzz-raw://c885936399539a1907595b6128b7369ca6a9a94a0c91b2786d6a11f27c208fc6","dweb:/ipfs/QmSDWM2UgPiUautAdYt912WS4acXvR5ALQFTZiGeU8h2vR"],"license":"MIT"},"contracts/src/river/registry/facets/node/INodeRegistry.sol":{"keccak256":"0xa938eb74ae9987638a1ea267b602f803735b4b12b99460754ce50def63558774","urls":["bzz-raw://005f3569ac9964b7da7cd69d968f8e032295b71a7985d83bdf1b3784bdbe2034","dweb:/ipfs/QmUeCtafSt9FSGhPd1YUJ2iHqbypxm6VAG53vzdKKHNEYp"],"license":"MIT"},"contracts/src/river/registry/facets/node/NodeRegistry.sol":{"keccak256":"0x4add03a289cc8cdf4fa5afaeda29444fa737c2c8ffc54228be30bacca99805d0","urls":["bzz-raw://f50d294f2b8adbe480ba8f29108da3fcd8d21244492626365b408a952787ec01","dweb:/ipfs/QmaHnjiMcEGYv6mTD1jTQqW6xebgKUMrK4Vu7yZf8SKZEa"],"license":"MIT"},"contracts/src/river/registry/facets/operator/IOperatorRegistry.sol":{"keccak256":"0xce4eb79498c4f592d803bbccac56d2c9aa11093d19ef16f913ea03d497c12a47","urls":["bzz-raw://fa4317cecb1fa3abe9f4792b54b2952a3bf4d7fcebf44840c6fc21ec971c56c5","dweb:/ipfs/QmWq2nRD2stDBhuWniGZu3tM881BbfK9kSunJcyfKCN7iC"],"license":"MIT"},"contracts/src/river/registry/facets/operator/OperatorRegistry.sol":{"keccak256":"0x8e4d3505e8059a87de080231a513b190f8571e265a5d9db7985dd8df1f46fe66","urls":["bzz-raw://5b1c4508b6d85f9402738df45d83ed3d5a161738c087c4d9541db3e0bf20e632","dweb:/ipfs/QmUenhcXzQnNKzNJ6jJaktqUuh9JTT76BS881qDkwxgLta"],"license":"MIT"},"contracts/src/river/registry/facets/stream/IStreamRegistry.sol":{"keccak256":"0x1f4373bfa9cdbaa460a8c8870ae059226e1c4c2b03055d92994d582f8affbf4f","urls":["bzz-raw://a2eee44be95c48eba75a2283aef37771861cc5c00c32b7bbba55f4408352cf79","dweb:/ipfs/QmVgv1dk5uTNcmagVUH1L1h4aHKpUhSvJPzzuQbSVAn1eT"],"license":"MIT"},"contracts/src/river/registry/facets/stream/StreamRegistry.sol":{"keccak256":"0xc2c64bcda69bf4b9e5f7f2be8df0bad10b2bc4f609d668c7bb70fc54f31ab637","urls":["bzz-raw://eb08c863dbdad3bf2a20680fd5433f5d6d3e81aabd54b7082baaff80b422f587","dweb:/ipfs/QmTAGyX3vd6WneeacZwqWi17JyQdG9kuC2CUTBu4EYiT7D"],"license":"MIT"},"contracts/src/river/registry/libraries/RegistryErrors.sol":{"keccak256":"0x411bd2bca08451c59880f46aa3ce0ac6b20a1cfa8a8836e4ce035fad57bce497","urls":["bzz-raw://7d8b0fff68a90994db10dd30f26f4f399027295152060b65fadaab76768f6501","dweb:/ipfs/QmdJsGe2utFn1ju8YKkZpshVGNgUbfkkZP77LprQ43BcPP"],"license":"MIT"},"contracts/src/river/registry/libraries/RegistryStorage.sol":{"keccak256":"0xd45a126f3a7ce156824b019adf5c2832236421da770a02c38a1fa5e789411201","urls":["bzz-raw://6edc5efd37e99112a4f1ed8ca56d9f4034c36540bfbe3854b098b5b03cb5c9c4","dweb:/ipfs/QmZKR5pkUVUzxizh6YdDFXenssUfKnJCD15RMgh1T74AcH"],"license":"MIT"},"contracts/test/mocks/MockRiverRegistry.sol":{"keccak256":"0xd5287fb7a61a7c3062b52fefd1ab9d401243fad12c1b8355bc8e298527779e40","urls":["bzz-raw://f5f42cc15f4cfe1e6b7c9aef7de21a48b17017bb5a544ae339b743eb0a4a313b","dweb:/ipfs/QmVXzQ6VQ422bmC5Q4HSvuLafnjTjUEWMdVHfCcpwXBGt2"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":331} \ No newline at end of file diff --git a/packages/generated/dev/abis/MockRiverRegistry.metadata.json b/packages/generated/dev/abis/MockRiverRegistry.metadata.json index 106246e01..be8b5d2e7 100644 --- a/packages/generated/dev/abis/MockRiverRegistry.metadata.json +++ b/packages/generated/dev/abis/MockRiverRegistry.metadata.json @@ -1621,10 +1621,10 @@ "license": "MIT" }, "contracts/src/river/registry/facets/stream/StreamRegistry.sol": { - "keccak256": "0x3ee1ae880161a90c74e384b58b1a8f317f1e95342b28cf71db47f01337db7dfb", + "keccak256": "0xc2c64bcda69bf4b9e5f7f2be8df0bad10b2bc4f609d668c7bb70fc54f31ab637", "urls": [ - "bzz-raw://048bf90faa715f9c532a91d74aeab44a1c20183d04de9a80b7d1ce542325a5d5", - "dweb:/ipfs/QmW2eXQZWiRYC5cPX1UKVNTb9S3RngAUamCD9qpfiuyibs" + "bzz-raw://eb08c863dbdad3bf2a20680fd5433f5d6d3e81aabd54b7082baaff80b422f587", + "dweb:/ipfs/QmTAGyX3vd6WneeacZwqWi17JyQdG9kuC2CUTBu4EYiT7D" ], "license": "MIT" }, diff --git a/packages/generated/dev/abis/Roles.bin b/packages/generated/dev/abis/Roles.bin index 8bda0f4a4..0935678db 100644 --- a/packages/generated/dev/abis/Roles.bin +++ b/packages/generated/dev/abis/Roles.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b506131fc806100206000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80639a8e4c3e116100665780639a8e4c3e1461012a578063b42642331461013d578063b75157611461015d578063ba201ba814610170578063dba818641461018357600080fd5b80634d8b50a2146100a357806371061398146100b8578063784c872b146100d65780638fcd793d146100f65780639269182114610117575b600080fd5b6100b66100b13660046129c1565b610196565b005b6100c06101e7565b6040516100cd9190612b97565b60405180910390f35b6100e96100e4366004612bfb565b6101f6565b6040516100cd9190612c14565b610109610104366004612c27565b610242565b6040519081526020016100cd565b6100b6610125366004612bfb565b61028d565b6100b6610138366004612cb4565b6102d6565b61015061014b366004612bfb565b610321565b6040516100cd9190612cfa565b6100b661016b366004612cb4565b61032c565b6100b661017e366004612d51565b610373565b6100b6610191366004612d51565b6103ba565b6101ca604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6101d385610429565b6101e08585858585610470565b5050505050565b60606101f161076d565b905090565b61022a6040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b61023382610429565b61023c826108af565b92915050565b6000610278604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61028485858585610928565b95945050505050565b6102c1604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6102ca81610429565b6102d381610b0b565b50565b61030a604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61031382610429565b61031d8282610d6f565b5050565b606061023c82610e5a565b610360604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61036982610429565b61031d8282610e6e565b6103a7604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6103b082610429565b61031d8282610f1f565b6103ee604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6103f782610429565b61031d8282610f54565b61040c600082610f79565b6102d357604051630ce39a4b60e21b815260040160405180910390fd5b6104537f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0182610ffd565b6102d35760405163a3f70f7b60e01b815260040160405180910390fd5b600061047b86611018565b80518351919250906000816001600160401b0381111561049d5761049d61273c565b6040519080825280602002602001820160405280156104c6578160200160208202803683370190505b50905060005b828110156105595760008682815181106104e8576104e8612d8d565b60200260200101516000015190506104ff8161111c565b610508816111e5565b86828151811061051a5761051a612d8d565b60200260200101516000015183838151811061053857610538612d8d565b6001600160a01b0390921660209283029190910190910152506001016104cc565b5086156105885760008981526000805160206131dc83398151915260205260409020610586888a83612e1f565b505b8551156105ce5760008981526000805160206131dc833981519152602052604081206105b69060020161124d565b90506105c28a82610d6f565b6105cc8a88610e6e565b505b816000036105df57505050506101e0565b80511561065857805160005b8481101561061e576106168b87838151811061060957610609612d8d565b6020026020010151611258565b6001016105eb565b5060005b818110156106555761064d8b84838151811061064057610640612d8d565b60200260200101516112d0565b600101610622565b50505b60005b8381101561068e5761068685828151811061067857610678612d8d565b60200260200101518b611343565b60010161065b565b5060005b828110156107345760008682815181106106ae576106ae612d8d565b60200260200101516020015151111561072c576106e78682815181106106d6576106d6612d8d565b6020026020010151602001516113aa565b61072c8682815181106106fc576106fc612d8d565b6020026020010151600001518b88848151811061071b5761071b612d8d565b6020026020010151602001516113cc565b600101610692565b50604051899033907f1aff41ff8e9139aae6bb355cc69107cda7e1d1dcd25511da436f3171bdbf77e690600090a3505050505050505050565b6060600061077961143a565b8051909150806001600160401b038111156107965761079661273c565b6040519080825280602002602001820160405280156107fb57816020015b6107e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816107b45790505b50925060005b818110156108a95760008060008061083187868151811061082457610824612d8d565b6020026020010151611465565b93509350935093506040518060a0016040528088878151811061085657610856612d8d565b6020026020010151815260200185815260200184151581526020018381526020018281525088868151811061088d5761088d612d8d565b6020026020010181905250848060010195505050505050610801565b50505090565b6108e36040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b6000806000806108f286611465565b6040805160a0810182529a8b5260208b019490945291151592890192909252606088019190915260808701525093949350505050565b600061096c85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060029250611563915050565b81516000816001600160401b038111156109885761098861273c565b6040519080825280602002602001820160405280156109b1578160200160208202803683370190505b5090506109bc61158c565b925060005b82811015610a90576109ef8582815181106109de576109de612d8d565b60200260200101516000015161111c565b848181518110610a0157610a01612d8d565b602002602001015160000151828281518110610a1f57610a1f612d8d565b60200260200101906001600160a01b031690816001600160a01b031681525050610a548582815181106106d6576106d6612d8d565b610a88858281518110610a6957610a69612d8d565b6020026020010151600001518587848151811061071b5761071b612d8d565b6001016109c1565b50610ad387878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508991508590506115b2565b50604051839033907f20a7a288530dd94b1eccaa691a582ecfd7550c9dfcee78ddf50a97f774a2b14790600090a35050949350505050565b6000610b1682611018565b80519091506000805160206131bc833981519152610b547f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01856116db565b506000848152600382016020526040812090610b70828261264c565b60018201805460ff19169055600282016000610b8c8282612686565b50506004820160008181610ba082826126a4565b5050604080516020808201835260008083528b815260038901909152919091209450610bd193509150839050612ede565b506000848152600382016020526040812060018101805460ff19169055610bfa906002016116e7565b6000868152600384016020526040812091925090610c1a906004016116e7565b905060005b82811015610c6a5760008781526003850160205260409020610c6190610c4890600201836116f1565b60008981526003870160205260409020600201906116fd565b50600101610c1f565b5060005b81811015610cb95760008781526003850160205260409020610cb090610c979060040183611709565b6000898152600387016020526040902060040190611715565b50600101610c6e565b506000610cc58761172a565b805190915060005b81811015610d0057610cf8838281518110610cea57610cea612d8d565b60200260200101518a611816565b600101610ccd565b5060005b86811015610d3757610d2f888281518110610d2157610d21612d8d565b60200260200101518a611343565b600101610d04565b50604051889033907f268a6f1b90f6f5ddf50cc736d36513e80cdc5fd56326bff71f335e8b4b61d05590600090a35050505050505050565b80516000805160206131bc8339815191529060005b818110156101e057610dae848281518110610da157610da1612d8d565b60200260200101516118a6565b610df1848281518110610dc357610dc3612d8d565b60200260200101518460030160008881526020019081526020016000206002016118c790919063ffffffff16565b610e0e57604051633e2b026160e01b815260040160405180910390fd5b610e51848281518110610e2357610e23612d8d565b60200260200101518460030160008881526020019081526020016000206002016116fd90919063ffffffff16565b50600101610d84565b6060610e6582611465565b50949350505050565b80516000805160206131bc8339815191529060005b818110156101e057610ea0848281518110610da157610da1612d8d565b610eb5848281518110610dc357610dc3612d8d565b15610ed35760405163b0ab682160e01b815260040160405180910390fd5b610f16848281518110610ee857610ee8612d8d565b60200260200101518460030160008881526020019081526020016000206002016118d390919063ffffffff16565b50600101610e83565b610f2882610429565b8051610f33906111e5565b610f418282600001516112d0565b61031d81600001518383602001516113cc565b8051610f5f906111e5565b610f6d828260000151611258565b805161031d9083611343565b60003380610f856118df565b6001600160a01b03161480610ff557507fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff16158015610ff55750610ff5848285604051602001610fd89190612f9d565b604051602081830303815290604052610ff090612fb9565b6119a3565b949350505050565b600081815260018301602052604081205415155b9392505050565b60008181526000805160206131dc8339815191526020526040812060609190611043906004016116e7565b6001600160401b0381111561105a5761105a61273c565b604051908082528060200260200182016040528015611083578160200160208202803683370190505b50905060005b60008481526000805160206131dc833981519152602052604090206110b0906004016116e7565b8110156111155760008481526000805160206131dc833981519152602052604081206110df9060040183611709565b9050808383815181106110f4576110f4612d8d565b6001600160a01b039092166020928302919091019091015250600101611089565b5092915050565b6001600160a01b03811661114357604051630706e15760e51b815260040160405180910390fd5b6040516301ffc9a760e01b8152637bc2cb4560e11b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa9250505080156111aa575060408051601f3d908101601f191682019092526111a791810190612fdd565b60015b6111c75760405163f58a5f2760e01b815260040160405180910390fd5b8061031d5760405163f58a5f2760e01b815260040160405180910390fd5b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006112307fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310183611c50565b61031d5760405163017ab33760e71b815260040160405180910390fd5b606061023c82611c72565b60008281526000805160206131dc833981519152602052604090206000805160206131bc833981519152906112909060040183611c50565b6112ad57604051632405297d60e11b815260040160405180910390fd5b600083815260038201602052604090206112ca9060040183611715565b50505050565b60008281526000805160206131dc833981519152602052604090206000805160206131bc833981519152906113089060040183611c50565b156113265760405163fb5584f160e01b815260040160405180910390fd5b600083815260038201602052604090206112ca9060040183611d4f565b61134c826111e5565b60405163f0c111f960e01b8152600481018290526001600160a01b0383169063f0c111f990602401600060405180830381600087803b15801561138e57600080fd5b505af11580156113a2573d6000803e3d6000fd5b505050505050565b80516000036102d3576040516319c6193b60e31b815260040160405180910390fd5b6113d5836111e5565b604051633be2f95d60e21b81526001600160a01b0384169063ef8be574906114039085908590600401612fff565b600060405180830381600087803b15801561141d57600080fd5b505af1158015611431573d6000803e3d6000fd5b50505050505050565b60606101f17f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01611d64565b60008181526000805160206131dc83398151915260205260408120805460609291839182916000805160206131bc833981519152916114a390612da3565b80601f01602080910402602001604051908101604052809291908181526020018280546114cf90612da3565b801561151c5780601f106114f15761010080835404028352916020019161151c565b820191906000526020600020905b8154815290600101906020018083116114ff57829003601f168201915b50505060008981526003850160205260409020600181015493985060ff909316965061154e92600201915061124d9050565b925061155986611018565b9150509193509193565b81518290821115611587576040516374eb20a760e01b815260040160405180910390fd5b505050565b6000805160206131bc8339815191528054600091906115ac90600161302e565b91505090565b6000805160206131bc833981519152805460009190819083906115d490613041565b918290555091506115e86001820183611d71565b50600082815260038201602052604090206116038782612ede565b5060008281526003820160205260409020600101805460ff191686151517905561162d8285610e6e565b60005b83518110156116d15760006001600160a01b031684828151811061165657611656612d8d565b60200260200101516001600160a01b03160361168557604051637442429b60e01b815260040160405180910390fd5b6116c884828151811061169a5761169a612d8d565b6020026020010151836003016000868152602001908152602001600020600401611d4f90919063ffffffff16565b50600101611630565b5050949350505050565b60006110118383611d7d565b600061023c825490565b60606110118383611e70565b60006110118383611f22565b600061101183836120d7565b6000611011836001600160a01b038416611d7d565b606060008051602061319c8339815191526000611746826116e7565b90506000816001600160401b038111156117625761176261273c565b60405190808252806020026020018201604052801561178b578160200160208202803683370190505b50935060005b828110156117fb5760006117a58583611709565b600081815260038701602052604090209091506117c29088610ffd565b156117f2578086846117d381613041565b9550815181106117e5576117e5612d8d565b6020026020010181815250505b50600101611791565b508082111561180e578351818303900384525b505050919050565b61181f82612101565b61182882612136565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043036020526040902060008051602061319c8339815191529061186f9083610ffd565b61188c576040516333cb039f60e11b815260040160405180910390fd5b600083815260038201602052604090206112ca90836116db565b80516000036102d35760405162ce76c160e41b815260040160405180910390fd5b60006110118383612198565b600061101183836121c5565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa15801561197f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ac919061305a565b6000806119ae6118df565b905060006119bb85612227565b805190915060006119ca6124a8565b805190915060005b83811015611a895760008582815181106119ee576119ee612d8d565b60200260200101519050866001600160a01b0316816001600160a01b031603611a21576001975050505050505050611011565b60005b83811015611a7f57816001600160a01b0316611a58868381518110611a4b57611a4b612d8d565b60200260200101516124d3565b6001600160a01b031603611a7757600098505050505050505050611011565b600101611a24565b50506001016119d2565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006000611ad67fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931016116e7565b905060005b81811015611c3e5760008381611af46001830185611709565b6001600160a01b03908116825260208083019390935260409182016000208251606081018452905491821680825260ff600160a01b84048116151583870152600160a81b9093049092161515818401528251630b86d87960e21b815292519094509092632e1b61e492600480820193918290030181865afa158015611b7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba19190612fdd565b158015611c1e575080600001516001600160a01b0316630cf0b5338e8a8e6040518463ffffffff1660e01b8152600401611bdd93929190613077565b602060405180830381865afa158015611bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1e9190612fdd565b15611c355760019950505050505050505050611011565b50600101611adb565b5060009b9a5050505050505050505050565b6001600160a01b03811660009081526001830160205260408120541515611011565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015611d44578382906000526020600020018054611cb790612da3565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce390612da3565b8015611d305780601f10611d0557610100808354040283529160200191611d30565b820191906000526020600020905b815481529060010190602001808311611d1357829003601f168201915b505050505081526020019060010190611c98565b505050509050919050565b6000611011836001600160a01b0384166124de565b6060600061101183612525565b600061101183836124de565b60008181526001830160205260408120548015611e66576000611da16001836130d9565b8554909150600090611db5906001906130d9565b9050808214611e1a576000866000018281548110611dd557611dd5612d8d565b9060005260206000200154905080876000018481548110611df857611df8612d8d565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611e2b57611e2b6130ec565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061023c565b600091505061023c565b6060826000018281548110611e8757611e87612d8d565b906000526020600020018054611e9c90612da3565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec890612da3565b8015611f155780601f10611eea57610100808354040283529160200191611f15565b820191906000526020600020905b815481529060010190602001808311611ef857829003601f168201915b5050505050905092915050565b6000808360010183604051611f379190612f9d565b908152602001604051809103902054905080600014611e66576000611f5d6001836130d9565b8554909150600090611f71906001906130d9565b9050818114612078576000866000018281548110611f9157611f91612d8d565b906000526020600020018054611fa690612da3565b80601f0160208091040260200160405190810160405280929190818152602001828054611fd290612da3565b801561201f5780601f10611ff45761010080835404028352916020019161201f565b820191906000526020600020905b81548152906001019060200180831161200257829003601f168201915b505050505090508087600001848154811061203c5761203c612d8d565b9060005260206000200190816120529190612ede565b508387600101826040516120669190612f9d565b90815260405190819003602001902055505b8554869080612089576120896130ec565b6001900381819060005260206000200160006120a5919061264c565b905585600101856040516120b99190612f9d565b9081526020016040518091039020600090556001935050505061023c565b60008260000182815481106120ee576120ee612d8d565b9060005260206000200154905092915050565b61211960008051602061319c83398151915282610ffd565b6102d35760405163560b4b4160e11b815260040160405180910390fd5b60008181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090206001015460008051602061319c8339815191529060ff161561031d57604051636ce0028960e11b815260040160405180910390fd5b600082600101826040516121ac9190612f9d565b9081526040519081900360200190205415159392505050565b60006121d18383612198565b61221f578254600181018455600084815260209020016121f18382612ede565b5082546040516001850190612207908590612f9d565b9081526040519081900360200190205550600161023c565b50600061023c565b606060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6006006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa15801561229c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122c49190810190613102565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa158015612310573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612334919061305a565b90508151600014801561234f57506001600160a01b03811615155b156123c95760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa15801561239e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123c69190810190613102565b91505b815160006123d882600161302e565b6001600160401b038111156123ef576123ef61273c565b604051908082528060200260200182016040528015612418578160200160208202803683370190505b50905060005b828110156124725784818151811061243857612438612d8d565b602002602001015182828151811061245257612452612d8d565b6001600160a01b039092166020928302919091019091015260010161241e565b508681838151811061248657612486612d8d565b6001600160a01b03909216602092830291909101909101529695505050505050565b60606101f17f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf00611d64565b600061023c82612581565b600081815260018301602052604081205461221f5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561023c565b60608160000180548060200260200160405190810160405280929190818152602001828054801561257557602002820191906000526020600020905b815481526020019060010190808311612561575b50505050509050919050565b60008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090600160e01b83169003612632578160000361262c578054831061260857604051636f96cda160e11b815260040160405180910390fd5b5b600019909201600081815260048401602052604090205490929091508115612609575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b50805461265890612da3565b6000825580601f10612668575050565b601f0160209004906000526020600020908101906102d391906126be565b50805460008255906000526020600020908101906102d391906126d7565b50805460008255906000526020600020908101906102d391905b5b808211156126d357600081556001016126bf565b5090565b808211156126d35760006126eb828261264c565b506001016126d7565b60008083601f84011261270657600080fd5b5081356001600160401b0381111561271d57600080fd5b60208301915083602082850101111561273557600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561277a5761277a61273c565b604052919050565b60006001600160401b0382111561279b5761279b61273c565b5060051b60200190565b60006001600160401b038311156127be576127be61273c565b6127d1601f8401601f1916602001612752565b90508281528383830111156127e557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261280d57600080fd5b8135602061282261281d83612782565b612752565b82815260059290921b8401810191818101908684111561284157600080fd5b8286015b848110156128955780356001600160401b038111156128645760008081fd5b8701603f810189136128765760008081fd5b6128878986830135604084016127a5565b845250918301918301612845565b509695505050505050565b6001600160a01b03811681146102d357600080fd5b6000604082840312156128c757600080fd5b604051604081016001600160401b0382821081831117156128ea576128ea61273c565b81604052829350843591506128fe826128a0565b9082526020840135908082111561291457600080fd5b508301601f8101851361292657600080fd5b612935858235602084016127a5565b6020830152505092915050565b600082601f83011261295357600080fd5b8135602061296361281d83612782565b82815260059290921b8401810191818101908684111561298257600080fd5b8286015b848110156128955780356001600160401b038111156129a55760008081fd5b6129b38986838b01016128b5565b845250918301918301612986565b6000806000806000608086880312156129d957600080fd5b8535945060208601356001600160401b03808211156129f757600080fd5b612a0389838a016126f4565b90965094506040880135915080821115612a1c57600080fd5b612a2889838a016127fc565b93506060880135915080821115612a3e57600080fd5b50612a4b88828901612942565b9150509295509295909350565b60005b83811015612a73578181015183820152602001612a5b565b50506000910152565b60008151808452612a94816020860160208601612a58565b601f01601f19169290920160200192915050565b60008151808452602080850194506020840160005b83811015612ae25781516001600160a01b031687529582019590820190600101612abd565b509495945050505050565b80518252600060208083015160a082860152612b0c60a0860182612a7c565b9050604084015115156040860152606084015185820360608701528181518084528484019150848160051b850101858401935060005b82811015612b7057601f19868303018452612b5e828651612a7c565b94870194938701939150600101612b42565b506080880151955088810360808a0152612b8a8187612aa8565b9998505050505050505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612bee57603f19888603018452612bdc858351612aed565b94509285019290850190600101612bc0565b5092979650505050505050565b600060208284031215612c0d57600080fd5b5035919050565b6020815260006110116020830184612aed565b60008060008060608587031215612c3d57600080fd5b84356001600160401b0380821115612c5457600080fd5b612c60888389016126f4565b90965094506020870135915080821115612c7957600080fd5b612c85888389016127fc565b93506040870135915080821115612c9b57600080fd5b50612ca887828801612942565b91505092959194509250565b60008060408385031215612cc757600080fd5b8235915060208301356001600160401b03811115612ce457600080fd5b612cf0858286016127fc565b9150509250929050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612bee57603f19888603018452612d3f858351612a7c565b94509285019290850190600101612d23565b60008060408385031215612d6457600080fd5b8235915060208301356001600160401b03811115612d8157600080fd5b612cf0858286016128b5565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680612db757607f821691505b60208210810361262c57634e487b7160e01b600052602260045260246000fd5b601f821115611587576000816000526020600020601f850160051c81016020861015612e005750805b601f850160051c820191505b818110156113a257828155600101612e0c565b6001600160401b03831115612e3657612e3661273c565b612e4a83612e448354612da3565b83612dd7565b6000601f841160018114612e7e5760008515612e665750838201355b600019600387901b1c1916600186901b1783556101e0565b600083815260209020601f19861690835b82811015612eaf5786850135825560209485019460019092019101612e8f565b5086821015612ecc5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81516001600160401b03811115612ef757612ef761273c565b612f0b81612f058454612da3565b84612dd7565b602080601f831160018114612f405760008415612f285750858301515b600019600386901b1c1916600185901b1785556113a2565b600085815260208120601f198616915b82811015612f6f57888601518255948401946001909101908401612f50565b5085821015612f8d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251612faf818460208701612a58565b9190910192915050565b8051602080830151919081101561262c5760001960209190910360031b1b16919050565b600060208284031215612fef57600080fd5b8151801515811461101157600080fd5b828152604060208201526000610ff56040830184612a7c565b634e487b7160e01b600052601160045260246000fd5b8082018082111561023c5761023c613018565b60006001820161305357613053613018565b5060010190565b60006020828403121561306c57600080fd5b8151611011816128a0565b60006060820185835260206060602085015281865180845260808601915060208801935060005b818110156130c35784516001600160a01b03168352938301939183019160010161309e565b5050809350505050826040830152949350505050565b8181038181111561023c5761023c613018565b634e487b7160e01b600052603160045260246000fd5b6000602080838503121561311557600080fd5b82516001600160401b0381111561312b57600080fd5b8301601f8101851361313c57600080fd5b805161314a61281d82612782565b81815260059190911b8201830190838101908783111561316957600080fd5b928401925b82841015613190578351613181816128a0565b8252928401929084019061316e565b97965050505050505056fe804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03 \ No newline at end of file +608060405234801561001057600080fd5b50613194806100206000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80639a8e4c3e116100665780639a8e4c3e1461012a578063b42642331461013d578063b75157611461015d578063ba201ba814610170578063dba818641461018357600080fd5b80634d8b50a2146100a357806371061398146100b8578063784c872b146100d65780638fcd793d146100f65780639269182114610117575b600080fd5b6100b66100b1366004612959565b610196565b005b6100c06101e7565b6040516100cd9190612b2f565b60405180910390f35b6100e96100e4366004612b93565b6101f6565b6040516100cd9190612bac565b610109610104366004612bbf565b610242565b6040519081526020016100cd565b6100b6610125366004612b93565b61028d565b6100b6610138366004612c4c565b6102d6565b61015061014b366004612b93565b610321565b6040516100cd9190612c92565b6100b661016b366004612c4c565b61032c565b6100b661017e366004612ce9565b610373565b6100b6610191366004612ce9565b6103ba565b6101ca604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6101d385610429565b6101e08585858585610470565b5050505050565b60606101f161076d565b905090565b61022a6040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b61023382610429565b61023c826108af565b92915050565b6000610278604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61028485858585610928565b95945050505050565b6102c1604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6102ca81610429565b6102d381610b0b565b50565b61030a604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61031382610429565b61031d8282610d6f565b5050565b606061023c82610e46565b610360604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61036982610429565b61031d8282610e5a565b6103a7604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6103b082610429565b61031d8282610f39565b6103ee604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6103f782610429565b61031d8282610f6e565b61040c600082610f93565b6102d357604051630ce39a4b60e21b815260040160405180910390fd5b6104537f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0182611017565b6102d35760405163a3f70f7b60e01b815260040160405180910390fd5b600061047b86611032565b80518351919250906000816001600160401b0381111561049d5761049d6126d4565b6040519080825280602002602001820160405280156104c6578160200160208202803683370190505b50905060005b828110156105595760008682815181106104e8576104e8612d25565b60200260200101516000015190506104ff816110f4565b610508816111bd565b86828151811061051a5761051a612d25565b60200260200101516000015183838151811061053857610538612d25565b6001600160a01b0390921660209283029190910190910152506001016104cc565b50861561058857600089815260008051602061317483398151915260205260409020610586888a83612db7565b505b8551156105ce576000898152600080516020613174833981519152602052604081206105b690600201611225565b90506105c28a82610d6f565b6105cc8a88610e5a565b505b816000036105df57505050506101e0565b80511561065857805160005b8481101561061e576106168b87838151811061060957610609612d25565b6020026020010151611230565b6001016105eb565b5060005b818110156106555761064d8b84838151811061064057610640612d25565b6020026020010151611288565b600101610622565b50505b60005b8381101561068e5761068685828151811061067857610678612d25565b60200260200101518b6112db565b60010161065b565b5060005b828110156107345760008682815181106106ae576106ae612d25565b60200260200101516020015151111561072c576106e78682815181106106d6576106d6612d25565b602002602001015160200151611342565b61072c8682815181106106fc576106fc612d25565b6020026020010151600001518b88848151811061071b5761071b612d25565b602002602001015160200151611364565b600101610692565b50604051899033907f1aff41ff8e9139aae6bb355cc69107cda7e1d1dcd25511da436f3171bdbf77e690600090a3505050505050505050565b606060006107796113d2565b8051909150806001600160401b03811115610796576107966126d4565b6040519080825280602002602001820160405280156107fb57816020015b6107e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816107b45790505b50925060005b818110156108a95760008060008061083187868151811061082457610824612d25565b60200260200101516113fd565b93509350935093506040518060a0016040528088878151811061085657610856612d25565b6020026020010151815260200185815260200184151581526020018381526020018281525088868151811061088d5761088d612d25565b6020026020010181905250848060010195505050505050610801565b50505090565b6108e36040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b6000806000806108f2866113fd565b6040805160a0810182529a8b5260208b019490945291151592890192909252606088019190915260808701525093949350505050565b600061096c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600292506114fb915050565b81516000816001600160401b03811115610988576109886126d4565b6040519080825280602002602001820160405280156109b1578160200160208202803683370190505b5090506109bc611524565b925060005b82811015610a90576109ef8582815181106109de576109de612d25565b6020026020010151600001516110f4565b848181518110610a0157610a01612d25565b602002602001015160000151828281518110610a1f57610a1f612d25565b60200260200101906001600160a01b031690816001600160a01b031681525050610a548582815181106106d6576106d6612d25565b610a88858281518110610a6957610a69612d25565b6020026020010151600001518587848151811061071b5761071b612d25565b6001016109c1565b50610ad387878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925089915085905061154a565b50604051839033907f20a7a288530dd94b1eccaa691a582ecfd7550c9dfcee78ddf50a97f774a2b14790600090a35050949350505050565b6000610b1682611032565b8051909150600080516020613154833981519152610b547f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0185611673565b506000848152600382016020526040812090610b7082826125e4565b60018201805460ff19169055600282016000610b8c828261261e565b50506004820160008181610ba0828261263c565b5050604080516020808201835260008083528b815260038901909152919091209450610bd193509150839050612e76565b506000848152600382016020526040812060018101805460ff19169055610bfa9060020161167f565b6000868152600384016020526040812091925090610c1a9060040161167f565b905060005b82811015610c6a5760008781526003850160205260409020610c6190610c489060020183611689565b6000898152600387016020526040902060020190611695565b50600101610c1f565b5060005b81811015610cb95760008781526003850160205260409020610cb090610c9790600401836116a1565b60008981526003870160205260409020600401906116ad565b50600101610c6e565b506000610cc5876116c2565b805190915060005b81811015610d0057610cf8838281518110610cea57610cea612d25565b60200260200101518a6117ae565b600101610ccd565b5060005b86811015610d3757610d2f888281518110610d2157610d21612d25565b60200260200101518a6112db565b600101610d04565b50604051889033907f268a6f1b90f6f5ddf50cc736d36513e80cdc5fd56326bff71f335e8b4b61d05590600090a35050505050505050565b80516000805160206131548339815191529060005b818110156101e057610dae848281518110610da157610da1612d25565b602002602001015161183e565b600085815260038401602052604090208451610df090869084908110610dd657610dd6612d25565b60200260200101518260020161185f90919063ffffffff16565b610e0d57604051633e2b026160e01b815260040160405180910390fd5b610e3c858381518110610e2257610e22612d25565b60200260200101518260020161169590919063ffffffff16565b5050600101610d84565b6060610e51826113fd565b50949350505050565b80516000805160206131548339815191529060005b818110156101e057610e8c848281518110610da157610da1612d25565b610ecf848281518110610ea157610ea1612d25565b602002602001015184600301600088815260200190815260200160002060020161185f90919063ffffffff16565b15610eed5760405163b0ab682160e01b815260040160405180910390fd5b610f30848281518110610f0257610f02612d25565b602002602001015184600301600088815260200190815260200160002060020161186b90919063ffffffff16565b50600101610e6f565b610f4282610429565b8051610f4d906111bd565b610f5b828260000151611288565b61031d8160000151838360200151611364565b8051610f79906111bd565b610f87828260000151611230565b805161031d90836112db565b60003380610f9f611877565b6001600160a01b0316148061100f57507fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff1615801561100f575061100f848285604051602001610ff29190612f35565b60405160208183030381529060405261100a90612f51565b61193b565b949350505050565b600081815260018301602052604081205415155b9392505050565b60008181526000805160206131748339815191526020526040812060609160049091019061105f8261167f565b90506000816001600160401b0381111561107b5761107b6126d4565b6040519080825280602002602001820160405280156110a4578160200160208202803683370190505b50905060005b82811015610e515760006110be85836116a1565b9050808383815181106110d3576110d3612d25565b6001600160a01b0390921660209283029190910190910152506001016110aa565b6001600160a01b03811661111b57604051630706e15760e51b815260040160405180910390fd5b6040516301ffc9a760e01b8152637bc2cb4560e11b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa925050508015611182575060408051601f3d908101601f1916820190925261117f91810190612f75565b60015b61119f5760405163f58a5f2760e01b815260040160405180910390fd5b8061031d5760405163f58a5f2760e01b815260040160405180910390fd5b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006112087fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310183611be8565b61031d5760405163017ab33760e71b815260040160405180910390fd5b606061023c82611c0a565b6000828152600080516020613174833981519152602052604090206112586004820183611be8565b61127557604051632405297d60e11b815260040160405180910390fd5b61128260048201836116ad565b50505050565b6000828152600080516020613174833981519152602052604090206112b06004820183611be8565b156112ce5760405163fb5584f160e01b815260040160405180910390fd5b6112826004820183611ce7565b6112e4826111bd565b60405163f0c111f960e01b8152600481018290526001600160a01b0383169063f0c111f990602401600060405180830381600087803b15801561132657600080fd5b505af115801561133a573d6000803e3d6000fd5b505050505050565b80516000036102d3576040516319c6193b60e31b815260040160405180910390fd5b61136d836111bd565b604051633be2f95d60e21b81526001600160a01b0384169063ef8be5749061139b9085908590600401612f97565b600060405180830381600087803b1580156113b557600080fd5b505af11580156113c9573d6000803e3d6000fd5b50505050505050565b60606101f17f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01611cfc565b600081815260008051602061317483398151915260205260408120805460609291839182916000805160206131548339815191529161143b90612d3b565b80601f016020809104026020016040519081016040528092919081815260200182805461146790612d3b565b80156114b45780601f10611489576101008083540402835291602001916114b4565b820191906000526020600020905b81548152906001019060200180831161149757829003601f168201915b50505060008981526003850160205260409020600181015493985060ff90931696506114e69260020191506112259050565b92506114f186611032565b9150509193509193565b8151829082111561151f576040516374eb20a760e01b815260040160405180910390fd5b505050565b600080516020613154833981519152805460009190611544906001612fc6565b91505090565b6000805160206131548339815191528054600091908190839061156c90612fd9565b918290555091506115806001820183611d09565b506000828152600382016020526040902061159b8782612e76565b5060008281526003820160205260409020600101805460ff19168615151790556115c58285610e5a565b60005b83518110156116695760006001600160a01b03168482815181106115ee576115ee612d25565b60200260200101516001600160a01b03160361161d57604051637442429b60e01b815260040160405180910390fd5b61166084828151811061163257611632612d25565b6020026020010151836003016000868152602001908152602001600020600401611ce790919063ffffffff16565b506001016115c8565b5050949350505050565b600061102b8383611d15565b600061023c825490565b606061102b8383611e08565b600061102b8383611eba565b600061102b838361206f565b600061102b836001600160a01b038416611d15565b606060008051602061313483398151915260006116de8261167f565b90506000816001600160401b038111156116fa576116fa6126d4565b604051908082528060200260200182016040528015611723578160200160208202803683370190505b50935060005b8281101561179357600061173d85836116a1565b6000818152600387016020526040902090915061175a9088611017565b1561178a5780868461176b81612fd9565b95508151811061177d5761177d612d25565b6020026020010181815250505b50600101611729565b50808211156117a6578351818303900384525b505050919050565b6117b782612099565b6117c0826120ce565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020613134833981519152906118079083611017565b611824576040516333cb039f60e11b815260040160405180910390fd5b600083815260038201602052604090206112829083611673565b80516000036102d35760405162ce76c160e41b815260040160405180910390fd5b600061102b8383612130565b600061102b838361215d565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015611917573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115449190612ff2565b600080611946611877565b90506000611953856121bf565b80519091506000611962612440565b805190915060005b83811015611a2157600085828151811061198657611986612d25565b60200260200101519050866001600160a01b0316816001600160a01b0316036119b957600197505050505050505061102b565b60005b83811015611a1757816001600160a01b03166119f08683815181106119e3576119e3612d25565b602002602001015161246b565b6001600160a01b031603611a0f5760009850505050505050505061102b565b6001016119bc565b505060010161196a565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006000611a6e7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310161167f565b905060005b81811015611bd65760008381611a8c60018301856116a1565b6001600160a01b03908116825260208083019390935260409182016000208251606081018452905491821680825260ff600160a01b84048116151583870152600160a81b9093049092161515818401528251630b86d87960e21b815292519094509092632e1b61e492600480820193918290030181865afa158015611b15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b399190612f75565b158015611bb6575080600001516001600160a01b0316630cf0b5338e8a8e6040518463ffffffff1660e01b8152600401611b759392919061300f565b602060405180830381865afa158015611b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb69190612f75565b15611bcd576001995050505050505050505061102b565b50600101611a73565b5060009b9a5050505050505050505050565b6001600160a01b0381166000908152600183016020526040812054151561102b565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015611cdc578382906000526020600020018054611c4f90612d3b565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7b90612d3b565b8015611cc85780601f10611c9d57610100808354040283529160200191611cc8565b820191906000526020600020905b815481529060010190602001808311611cab57829003601f168201915b505050505081526020019060010190611c30565b505050509050919050565b600061102b836001600160a01b038416612476565b6060600061102b836124bd565b600061102b8383612476565b60008181526001830160205260408120548015611dfe576000611d39600183613071565b8554909150600090611d4d90600190613071565b9050808214611db2576000866000018281548110611d6d57611d6d612d25565b9060005260206000200154905080876000018481548110611d9057611d90612d25565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611dc357611dc3613084565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061023c565b600091505061023c565b6060826000018281548110611e1f57611e1f612d25565b906000526020600020018054611e3490612d3b565b80601f0160208091040260200160405190810160405280929190818152602001828054611e6090612d3b565b8015611ead5780601f10611e8257610100808354040283529160200191611ead565b820191906000526020600020905b815481529060010190602001808311611e9057829003601f168201915b5050505050905092915050565b6000808360010183604051611ecf9190612f35565b908152602001604051809103902054905080600014611dfe576000611ef5600183613071565b8554909150600090611f0990600190613071565b9050818114612010576000866000018281548110611f2957611f29612d25565b906000526020600020018054611f3e90612d3b565b80601f0160208091040260200160405190810160405280929190818152602001828054611f6a90612d3b565b8015611fb75780601f10611f8c57610100808354040283529160200191611fb7565b820191906000526020600020905b815481529060010190602001808311611f9a57829003601f168201915b5050505050905080876000018481548110611fd457611fd4612d25565b906000526020600020019081611fea9190612e76565b50838760010182604051611ffe9190612f35565b90815260405190819003602001902055505b855486908061202157612021613084565b60019003818190600052602060002001600061203d91906125e4565b905585600101856040516120519190612f35565b9081526020016040518091039020600090556001935050505061023c565b600082600001828154811061208657612086612d25565b9060005260206000200154905092915050565b6120b160008051602061313483398151915282611017565b6102d35760405163560b4b4160e11b815260040160405180910390fd5b60008181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430260205260409020600101546000805160206131348339815191529060ff161561031d57604051636ce0028960e11b815260040160405180910390fd5b600082600101826040516121449190612f35565b9081526040519081900360200190205415159392505050565b60006121698383612130565b6121b7578254600181018455600084815260209020016121898382612e76565b508254604051600185019061219f908590612f35565b9081526040519081900360200190205550600161023c565b50600061023c565b606060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6006006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa158015612234573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261225c919081019061309a565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa1580156122a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122cc9190612ff2565b9050815160001480156122e757506001600160a01b03811615155b156123615760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015612336573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261235e919081019061309a565b91505b81516000612370826001612fc6565b6001600160401b03811115612387576123876126d4565b6040519080825280602002602001820160405280156123b0578160200160208202803683370190505b50905060005b8281101561240a578481815181106123d0576123d0612d25565b60200260200101518282815181106123ea576123ea612d25565b6001600160a01b03909216602092830291909101909101526001016123b6565b508681838151811061241e5761241e612d25565b6001600160a01b03909216602092830291909101909101529695505050505050565b60606101f17f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf00611cfc565b600061023c82612519565b60008181526001830160205260408120546121b75750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561023c565b60608160000180548060200260200160405190810160405280929190818152602001828054801561250d57602002820191906000526020600020905b8154815260200190600101908083116124f9575b50505050509050919050565b60008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090600160e01b831690036125ca57816000036125c457805483106125a057604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156125a1575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b5080546125f090612d3b565b6000825580601f10612600575050565b601f0160209004906000526020600020908101906102d39190612656565b50805460008255906000526020600020908101906102d3919061266f565b50805460008255906000526020600020908101906102d391905b5b8082111561266b5760008155600101612657565b5090565b8082111561266b57600061268382826125e4565b5060010161266f565b60008083601f84011261269e57600080fd5b5081356001600160401b038111156126b557600080fd5b6020830191508360208285010111156126cd57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612712576127126126d4565b604052919050565b60006001600160401b03821115612733576127336126d4565b5060051b60200190565b60006001600160401b03831115612756576127566126d4565b612769601f8401601f19166020016126ea565b905082815283838301111561277d57600080fd5b828260208301376000602084830101529392505050565b600082601f8301126127a557600080fd5b813560206127ba6127b58361271a565b6126ea565b82815260059290921b840181019181810190868411156127d957600080fd5b8286015b8481101561282d5780356001600160401b038111156127fc5760008081fd5b8701603f8101891361280e5760008081fd5b61281f89868301356040840161273d565b8452509183019183016127dd565b509695505050505050565b6001600160a01b03811681146102d357600080fd5b60006040828403121561285f57600080fd5b604051604081016001600160401b038282108183111715612882576128826126d4565b816040528293508435915061289682612838565b908252602084013590808211156128ac57600080fd5b508301601f810185136128be57600080fd5b6128cd8582356020840161273d565b6020830152505092915050565b600082601f8301126128eb57600080fd5b813560206128fb6127b58361271a565b82815260059290921b8401810191818101908684111561291a57600080fd5b8286015b8481101561282d5780356001600160401b0381111561293d5760008081fd5b61294b8986838b010161284d565b84525091830191830161291e565b60008060008060006080868803121561297157600080fd5b8535945060208601356001600160401b038082111561298f57600080fd5b61299b89838a0161268c565b909650945060408801359150808211156129b457600080fd5b6129c089838a01612794565b935060608801359150808211156129d657600080fd5b506129e3888289016128da565b9150509295509295909350565b60005b83811015612a0b5781810151838201526020016129f3565b50506000910152565b60008151808452612a2c8160208601602086016129f0565b601f01601f19169290920160200192915050565b60008151808452602080850194506020840160005b83811015612a7a5781516001600160a01b031687529582019590820190600101612a55565b509495945050505050565b80518252600060208083015160a082860152612aa460a0860182612a14565b9050604084015115156040860152606084015185820360608701528181518084528484019150848160051b850101858401935060005b82811015612b0857601f19868303018452612af6828651612a14565b94870194938701939150600101612ada565b506080880151955088810360808a0152612b228187612a40565b9998505050505050505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612b8657603f19888603018452612b74858351612a85565b94509285019290850190600101612b58565b5092979650505050505050565b600060208284031215612ba557600080fd5b5035919050565b60208152600061102b6020830184612a85565b60008060008060608587031215612bd557600080fd5b84356001600160401b0380821115612bec57600080fd5b612bf88883890161268c565b90965094506020870135915080821115612c1157600080fd5b612c1d88838901612794565b93506040870135915080821115612c3357600080fd5b50612c40878288016128da565b91505092959194509250565b60008060408385031215612c5f57600080fd5b8235915060208301356001600160401b03811115612c7c57600080fd5b612c8885828601612794565b9150509250929050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612b8657603f19888603018452612cd7858351612a14565b94509285019290850190600101612cbb565b60008060408385031215612cfc57600080fd5b8235915060208301356001600160401b03811115612d1957600080fd5b612c888582860161284d565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680612d4f57607f821691505b6020821081036125c457634e487b7160e01b600052602260045260246000fd5b601f82111561151f576000816000526020600020601f850160051c81016020861015612d985750805b601f850160051c820191505b8181101561133a57828155600101612da4565b6001600160401b03831115612dce57612dce6126d4565b612de283612ddc8354612d3b565b83612d6f565b6000601f841160018114612e165760008515612dfe5750838201355b600019600387901b1c1916600186901b1783556101e0565b600083815260209020601f19861690835b82811015612e475786850135825560209485019460019092019101612e27565b5086821015612e645760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81516001600160401b03811115612e8f57612e8f6126d4565b612ea381612e9d8454612d3b565b84612d6f565b602080601f831160018114612ed85760008415612ec05750858301515b600019600386901b1c1916600185901b17855561133a565b600085815260208120601f198616915b82811015612f0757888601518255948401946001909101908401612ee8565b5085821015612f255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251612f478184602087016129f0565b9190910192915050565b805160208083015191908110156125c45760001960209190910360031b1b16919050565b600060208284031215612f8757600080fd5b8151801515811461102b57600080fd5b82815260406020820152600061100f6040830184612a14565b634e487b7160e01b600052601160045260246000fd5b8082018082111561023c5761023c612fb0565b600060018201612feb57612feb612fb0565b5060010190565b60006020828403121561300457600080fd5b815161102b81612838565b60006060820185835260206060602085015281865180845260808601915060208801935060005b8181101561305b5784516001600160a01b031683529383019391830191600101613036565b5050809350505050826040830152949350505050565b8181038181111561023c5761023c612fb0565b634e487b7160e01b600052603160045260246000fd5b600060208083850312156130ad57600080fd5b82516001600160401b038111156130c357600080fd5b8301601f810185136130d457600080fd5b80516130e26127b58261271a565b81815260059190911b8201830190838101908783111561310157600080fd5b928401925b8284101561312857835161311981612838565b82529284019290840190613106565b97965050505050505056fe804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03 \ No newline at end of file diff --git a/packages/generated/dev/abis/Roles.json b/packages/generated/dev/abis/Roles.json index 8ff5a879e..df9030a99 100644 --- a/packages/generated/dev/abis/Roles.json +++ b/packages/generated/dev/abis/Roles.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addPermissionsToRole","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"permissions","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addRoleToEntitlement","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"entitlement","type":"tuple","internalType":"struct IRolesBase.CreateEntitlement","components":[{"name":"module","type":"address","internalType":"contract IEntitlement"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createRole","inputs":[{"name":"roleName","type":"string","internalType":"string"},{"name":"permissions","type":"string[]","internalType":"string[]"},{"name":"entitlements","type":"tuple[]","internalType":"struct IRolesBase.CreateEntitlement[]","components":[{"name":"module","type":"address","internalType":"contract IEntitlement"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPermissionsByRoleId","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"permissions","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"getRoleById","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRolesBase.Role","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"disabled","type":"bool","internalType":"bool"},{"name":"permissions","type":"string[]","internalType":"string[]"},{"name":"entitlements","type":"address[]","internalType":"contract IEntitlement[]"}]}],"stateMutability":"view"},{"type":"function","name":"getRoles","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IRolesBase.Role[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"disabled","type":"bool","internalType":"bool"},{"name":"permissions","type":"string[]","internalType":"string[]"},{"name":"entitlements","type":"address[]","internalType":"contract IEntitlement[]"}]}],"stateMutability":"view"},{"type":"function","name":"removePermissionsFromRole","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"permissions","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeRole","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeRoleFromEntitlement","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"entitlement","type":"tuple","internalType":"struct IRolesBase.CreateEntitlement","components":[{"name":"module","type":"address","internalType":"contract IEntitlement"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateRole","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"roleName","type":"string","internalType":"string"},{"name":"permissions","type":"string[]","internalType":"string[]"},{"name":"entitlements","type":"tuple[]","internalType":"struct IRolesBase.CreateEntitlement[]","components":[{"name":"module","type":"address","internalType":"contract IEntitlement"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Banned","inputs":[{"name":"moderator","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ConsecutiveTransfer","inputs":[{"name":"fromTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleCreated","inputs":[{"name":"creator","type":"address","indexed":true,"internalType":"address"},{"name":"roleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleRemoved","inputs":[{"name":"remover","type":"address","indexed":true,"internalType":"address"},{"name":"roleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleUpdated","inputs":[{"name":"updater","type":"address","indexed":true,"internalType":"address"},{"name":"roleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SubscriptionUpdate","inputs":[{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"expiration","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unbanned","inputs":[{"name":"moderator","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ApprovalCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"ApprovalQueryForNonexistentToken","inputs":[]},{"type":"error","name":"BalanceQueryForZeroAddress","inputs":[]},{"type":"error","name":"Banning__AlreadyBanned","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Banning__CannotBanOwner","inputs":[]},{"type":"error","name":"Banning__CannotBanSelf","inputs":[]},{"type":"error","name":"Banning__InvalidTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Banning__NotBanned","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ChannelService__ChannelDisabled","inputs":[]},{"type":"error","name":"ChannelService__ChannelDoesNotExist","inputs":[]},{"type":"error","name":"ChannelService__RoleDoesNotExist","inputs":[]},{"type":"error","name":"ERC5643__DurationZero","inputs":[]},{"type":"error","name":"ERC5643__InvalidTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC5643__NotApprovedOrOwner","inputs":[]},{"type":"error","name":"ERC5643__SubscriptionNotRenewable","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Entitlement__InvalidValue","inputs":[]},{"type":"error","name":"Entitlement__NotAllowed","inputs":[]},{"type":"error","name":"Entitlement__NotMember","inputs":[]},{"type":"error","name":"Entitlement__ValueAlreadyExists","inputs":[]},{"type":"error","name":"EntitlementsService__EntitlementDoesNotExist","inputs":[]},{"type":"error","name":"EntitlementsService__InvalidEntitlementAddress","inputs":[]},{"type":"error","name":"EntitlementsService__InvalidEntitlementInterface","inputs":[]},{"type":"error","name":"MintERC2309QuantityExceedsLimit","inputs":[]},{"type":"error","name":"MintToZeroAddress","inputs":[]},{"type":"error","name":"MintZeroQuantity","inputs":[]},{"type":"error","name":"Ownable__NotOwner","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Ownable__ZeroAddress","inputs":[]},{"type":"error","name":"OwnerQueryForNonexistentToken","inputs":[]},{"type":"error","name":"OwnershipNotInitializedForExtraData","inputs":[]},{"type":"error","name":"Pausable__NotPaused","inputs":[]},{"type":"error","name":"Pausable__Paused","inputs":[]},{"type":"error","name":"Roles__EntitlementAlreadyExists","inputs":[]},{"type":"error","name":"Roles__EntitlementDoesNotExist","inputs":[]},{"type":"error","name":"Roles__InvalidEntitlementAddress","inputs":[]},{"type":"error","name":"Roles__InvalidPermission","inputs":[]},{"type":"error","name":"Roles__PermissionAlreadyExists","inputs":[]},{"type":"error","name":"Roles__PermissionDoesNotExist","inputs":[]},{"type":"error","name":"Roles__RoleDoesNotExist","inputs":[]},{"type":"error","name":"TransferCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"TransferFromIncorrectOwner","inputs":[]},{"type":"error","name":"TransferToNonERC721ReceiverImplementer","inputs":[]},{"type":"error","name":"TransferToZeroAddress","inputs":[]},{"type":"error","name":"URIQueryForNonexistentToken","inputs":[]},{"type":"error","name":"Validator__InvalidByteLength","inputs":[]},{"type":"error","name":"Validator__InvalidStringLength","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506131fc806100206000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80639a8e4c3e116100665780639a8e4c3e1461012a578063b42642331461013d578063b75157611461015d578063ba201ba814610170578063dba818641461018357600080fd5b80634d8b50a2146100a357806371061398146100b8578063784c872b146100d65780638fcd793d146100f65780639269182114610117575b600080fd5b6100b66100b13660046129c1565b610196565b005b6100c06101e7565b6040516100cd9190612b97565b60405180910390f35b6100e96100e4366004612bfb565b6101f6565b6040516100cd9190612c14565b610109610104366004612c27565b610242565b6040519081526020016100cd565b6100b6610125366004612bfb565b61028d565b6100b6610138366004612cb4565b6102d6565b61015061014b366004612bfb565b610321565b6040516100cd9190612cfa565b6100b661016b366004612cb4565b61032c565b6100b661017e366004612d51565b610373565b6100b6610191366004612d51565b6103ba565b6101ca604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6101d385610429565b6101e08585858585610470565b5050505050565b60606101f161076d565b905090565b61022a6040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b61023382610429565b61023c826108af565b92915050565b6000610278604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61028485858585610928565b95945050505050565b6102c1604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6102ca81610429565b6102d381610b0b565b50565b61030a604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61031382610429565b61031d8282610d6f565b5050565b606061023c82610e5a565b610360604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61036982610429565b61031d8282610e6e565b6103a7604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6103b082610429565b61031d8282610f1f565b6103ee604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6103f782610429565b61031d8282610f54565b61040c600082610f79565b6102d357604051630ce39a4b60e21b815260040160405180910390fd5b6104537f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0182610ffd565b6102d35760405163a3f70f7b60e01b815260040160405180910390fd5b600061047b86611018565b80518351919250906000816001600160401b0381111561049d5761049d61273c565b6040519080825280602002602001820160405280156104c6578160200160208202803683370190505b50905060005b828110156105595760008682815181106104e8576104e8612d8d565b60200260200101516000015190506104ff8161111c565b610508816111e5565b86828151811061051a5761051a612d8d565b60200260200101516000015183838151811061053857610538612d8d565b6001600160a01b0390921660209283029190910190910152506001016104cc565b5086156105885760008981526000805160206131dc83398151915260205260409020610586888a83612e1f565b505b8551156105ce5760008981526000805160206131dc833981519152602052604081206105b69060020161124d565b90506105c28a82610d6f565b6105cc8a88610e6e565b505b816000036105df57505050506101e0565b80511561065857805160005b8481101561061e576106168b87838151811061060957610609612d8d565b6020026020010151611258565b6001016105eb565b5060005b818110156106555761064d8b84838151811061064057610640612d8d565b60200260200101516112d0565b600101610622565b50505b60005b8381101561068e5761068685828151811061067857610678612d8d565b60200260200101518b611343565b60010161065b565b5060005b828110156107345760008682815181106106ae576106ae612d8d565b60200260200101516020015151111561072c576106e78682815181106106d6576106d6612d8d565b6020026020010151602001516113aa565b61072c8682815181106106fc576106fc612d8d565b6020026020010151600001518b88848151811061071b5761071b612d8d565b6020026020010151602001516113cc565b600101610692565b50604051899033907f1aff41ff8e9139aae6bb355cc69107cda7e1d1dcd25511da436f3171bdbf77e690600090a3505050505050505050565b6060600061077961143a565b8051909150806001600160401b038111156107965761079661273c565b6040519080825280602002602001820160405280156107fb57816020015b6107e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816107b45790505b50925060005b818110156108a95760008060008061083187868151811061082457610824612d8d565b6020026020010151611465565b93509350935093506040518060a0016040528088878151811061085657610856612d8d565b6020026020010151815260200185815260200184151581526020018381526020018281525088868151811061088d5761088d612d8d565b6020026020010181905250848060010195505050505050610801565b50505090565b6108e36040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b6000806000806108f286611465565b6040805160a0810182529a8b5260208b019490945291151592890192909252606088019190915260808701525093949350505050565b600061096c85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060029250611563915050565b81516000816001600160401b038111156109885761098861273c565b6040519080825280602002602001820160405280156109b1578160200160208202803683370190505b5090506109bc61158c565b925060005b82811015610a90576109ef8582815181106109de576109de612d8d565b60200260200101516000015161111c565b848181518110610a0157610a01612d8d565b602002602001015160000151828281518110610a1f57610a1f612d8d565b60200260200101906001600160a01b031690816001600160a01b031681525050610a548582815181106106d6576106d6612d8d565b610a88858281518110610a6957610a69612d8d565b6020026020010151600001518587848151811061071b5761071b612d8d565b6001016109c1565b50610ad387878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508991508590506115b2565b50604051839033907f20a7a288530dd94b1eccaa691a582ecfd7550c9dfcee78ddf50a97f774a2b14790600090a35050949350505050565b6000610b1682611018565b80519091506000805160206131bc833981519152610b547f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01856116db565b506000848152600382016020526040812090610b70828261264c565b60018201805460ff19169055600282016000610b8c8282612686565b50506004820160008181610ba082826126a4565b5050604080516020808201835260008083528b815260038901909152919091209450610bd193509150839050612ede565b506000848152600382016020526040812060018101805460ff19169055610bfa906002016116e7565b6000868152600384016020526040812091925090610c1a906004016116e7565b905060005b82811015610c6a5760008781526003850160205260409020610c6190610c4890600201836116f1565b60008981526003870160205260409020600201906116fd565b50600101610c1f565b5060005b81811015610cb95760008781526003850160205260409020610cb090610c979060040183611709565b6000898152600387016020526040902060040190611715565b50600101610c6e565b506000610cc58761172a565b805190915060005b81811015610d0057610cf8838281518110610cea57610cea612d8d565b60200260200101518a611816565b600101610ccd565b5060005b86811015610d3757610d2f888281518110610d2157610d21612d8d565b60200260200101518a611343565b600101610d04565b50604051889033907f268a6f1b90f6f5ddf50cc736d36513e80cdc5fd56326bff71f335e8b4b61d05590600090a35050505050505050565b80516000805160206131bc8339815191529060005b818110156101e057610dae848281518110610da157610da1612d8d565b60200260200101516118a6565b610df1848281518110610dc357610dc3612d8d565b60200260200101518460030160008881526020019081526020016000206002016118c790919063ffffffff16565b610e0e57604051633e2b026160e01b815260040160405180910390fd5b610e51848281518110610e2357610e23612d8d565b60200260200101518460030160008881526020019081526020016000206002016116fd90919063ffffffff16565b50600101610d84565b6060610e6582611465565b50949350505050565b80516000805160206131bc8339815191529060005b818110156101e057610ea0848281518110610da157610da1612d8d565b610eb5848281518110610dc357610dc3612d8d565b15610ed35760405163b0ab682160e01b815260040160405180910390fd5b610f16848281518110610ee857610ee8612d8d565b60200260200101518460030160008881526020019081526020016000206002016118d390919063ffffffff16565b50600101610e83565b610f2882610429565b8051610f33906111e5565b610f418282600001516112d0565b61031d81600001518383602001516113cc565b8051610f5f906111e5565b610f6d828260000151611258565b805161031d9083611343565b60003380610f856118df565b6001600160a01b03161480610ff557507fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff16158015610ff55750610ff5848285604051602001610fd89190612f9d565b604051602081830303815290604052610ff090612fb9565b6119a3565b949350505050565b600081815260018301602052604081205415155b9392505050565b60008181526000805160206131dc8339815191526020526040812060609190611043906004016116e7565b6001600160401b0381111561105a5761105a61273c565b604051908082528060200260200182016040528015611083578160200160208202803683370190505b50905060005b60008481526000805160206131dc833981519152602052604090206110b0906004016116e7565b8110156111155760008481526000805160206131dc833981519152602052604081206110df9060040183611709565b9050808383815181106110f4576110f4612d8d565b6001600160a01b039092166020928302919091019091015250600101611089565b5092915050565b6001600160a01b03811661114357604051630706e15760e51b815260040160405180910390fd5b6040516301ffc9a760e01b8152637bc2cb4560e11b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa9250505080156111aa575060408051601f3d908101601f191682019092526111a791810190612fdd565b60015b6111c75760405163f58a5f2760e01b815260040160405180910390fd5b8061031d5760405163f58a5f2760e01b815260040160405180910390fd5b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006112307fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310183611c50565b61031d5760405163017ab33760e71b815260040160405180910390fd5b606061023c82611c72565b60008281526000805160206131dc833981519152602052604090206000805160206131bc833981519152906112909060040183611c50565b6112ad57604051632405297d60e11b815260040160405180910390fd5b600083815260038201602052604090206112ca9060040183611715565b50505050565b60008281526000805160206131dc833981519152602052604090206000805160206131bc833981519152906113089060040183611c50565b156113265760405163fb5584f160e01b815260040160405180910390fd5b600083815260038201602052604090206112ca9060040183611d4f565b61134c826111e5565b60405163f0c111f960e01b8152600481018290526001600160a01b0383169063f0c111f990602401600060405180830381600087803b15801561138e57600080fd5b505af11580156113a2573d6000803e3d6000fd5b505050505050565b80516000036102d3576040516319c6193b60e31b815260040160405180910390fd5b6113d5836111e5565b604051633be2f95d60e21b81526001600160a01b0384169063ef8be574906114039085908590600401612fff565b600060405180830381600087803b15801561141d57600080fd5b505af1158015611431573d6000803e3d6000fd5b50505050505050565b60606101f17f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01611d64565b60008181526000805160206131dc83398151915260205260408120805460609291839182916000805160206131bc833981519152916114a390612da3565b80601f01602080910402602001604051908101604052809291908181526020018280546114cf90612da3565b801561151c5780601f106114f15761010080835404028352916020019161151c565b820191906000526020600020905b8154815290600101906020018083116114ff57829003601f168201915b50505060008981526003850160205260409020600181015493985060ff909316965061154e92600201915061124d9050565b925061155986611018565b9150509193509193565b81518290821115611587576040516374eb20a760e01b815260040160405180910390fd5b505050565b6000805160206131bc8339815191528054600091906115ac90600161302e565b91505090565b6000805160206131bc833981519152805460009190819083906115d490613041565b918290555091506115e86001820183611d71565b50600082815260038201602052604090206116038782612ede565b5060008281526003820160205260409020600101805460ff191686151517905561162d8285610e6e565b60005b83518110156116d15760006001600160a01b031684828151811061165657611656612d8d565b60200260200101516001600160a01b03160361168557604051637442429b60e01b815260040160405180910390fd5b6116c884828151811061169a5761169a612d8d565b6020026020010151836003016000868152602001908152602001600020600401611d4f90919063ffffffff16565b50600101611630565b5050949350505050565b60006110118383611d7d565b600061023c825490565b60606110118383611e70565b60006110118383611f22565b600061101183836120d7565b6000611011836001600160a01b038416611d7d565b606060008051602061319c8339815191526000611746826116e7565b90506000816001600160401b038111156117625761176261273c565b60405190808252806020026020018201604052801561178b578160200160208202803683370190505b50935060005b828110156117fb5760006117a58583611709565b600081815260038701602052604090209091506117c29088610ffd565b156117f2578086846117d381613041565b9550815181106117e5576117e5612d8d565b6020026020010181815250505b50600101611791565b508082111561180e578351818303900384525b505050919050565b61181f82612101565b61182882612136565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043036020526040902060008051602061319c8339815191529061186f9083610ffd565b61188c576040516333cb039f60e11b815260040160405180910390fd5b600083815260038201602052604090206112ca90836116db565b80516000036102d35760405162ce76c160e41b815260040160405180910390fd5b60006110118383612198565b600061101183836121c5565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa15801561197f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ac919061305a565b6000806119ae6118df565b905060006119bb85612227565b805190915060006119ca6124a8565b805190915060005b83811015611a895760008582815181106119ee576119ee612d8d565b60200260200101519050866001600160a01b0316816001600160a01b031603611a21576001975050505050505050611011565b60005b83811015611a7f57816001600160a01b0316611a58868381518110611a4b57611a4b612d8d565b60200260200101516124d3565b6001600160a01b031603611a7757600098505050505050505050611011565b600101611a24565b50506001016119d2565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006000611ad67fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931016116e7565b905060005b81811015611c3e5760008381611af46001830185611709565b6001600160a01b03908116825260208083019390935260409182016000208251606081018452905491821680825260ff600160a01b84048116151583870152600160a81b9093049092161515818401528251630b86d87960e21b815292519094509092632e1b61e492600480820193918290030181865afa158015611b7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba19190612fdd565b158015611c1e575080600001516001600160a01b0316630cf0b5338e8a8e6040518463ffffffff1660e01b8152600401611bdd93929190613077565b602060405180830381865afa158015611bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1e9190612fdd565b15611c355760019950505050505050505050611011565b50600101611adb565b5060009b9a5050505050505050505050565b6001600160a01b03811660009081526001830160205260408120541515611011565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015611d44578382906000526020600020018054611cb790612da3565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce390612da3565b8015611d305780601f10611d0557610100808354040283529160200191611d30565b820191906000526020600020905b815481529060010190602001808311611d1357829003601f168201915b505050505081526020019060010190611c98565b505050509050919050565b6000611011836001600160a01b0384166124de565b6060600061101183612525565b600061101183836124de565b60008181526001830160205260408120548015611e66576000611da16001836130d9565b8554909150600090611db5906001906130d9565b9050808214611e1a576000866000018281548110611dd557611dd5612d8d565b9060005260206000200154905080876000018481548110611df857611df8612d8d565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611e2b57611e2b6130ec565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061023c565b600091505061023c565b6060826000018281548110611e8757611e87612d8d565b906000526020600020018054611e9c90612da3565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec890612da3565b8015611f155780601f10611eea57610100808354040283529160200191611f15565b820191906000526020600020905b815481529060010190602001808311611ef857829003601f168201915b5050505050905092915050565b6000808360010183604051611f379190612f9d565b908152602001604051809103902054905080600014611e66576000611f5d6001836130d9565b8554909150600090611f71906001906130d9565b9050818114612078576000866000018281548110611f9157611f91612d8d565b906000526020600020018054611fa690612da3565b80601f0160208091040260200160405190810160405280929190818152602001828054611fd290612da3565b801561201f5780601f10611ff45761010080835404028352916020019161201f565b820191906000526020600020905b81548152906001019060200180831161200257829003601f168201915b505050505090508087600001848154811061203c5761203c612d8d565b9060005260206000200190816120529190612ede565b508387600101826040516120669190612f9d565b90815260405190819003602001902055505b8554869080612089576120896130ec565b6001900381819060005260206000200160006120a5919061264c565b905585600101856040516120b99190612f9d565b9081526020016040518091039020600090556001935050505061023c565b60008260000182815481106120ee576120ee612d8d565b9060005260206000200154905092915050565b61211960008051602061319c83398151915282610ffd565b6102d35760405163560b4b4160e11b815260040160405180910390fd5b60008181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090206001015460008051602061319c8339815191529060ff161561031d57604051636ce0028960e11b815260040160405180910390fd5b600082600101826040516121ac9190612f9d565b9081526040519081900360200190205415159392505050565b60006121d18383612198565b61221f578254600181018455600084815260209020016121f18382612ede565b5082546040516001850190612207908590612f9d565b9081526040519081900360200190205550600161023c565b50600061023c565b606060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6006006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa15801561229c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122c49190810190613102565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa158015612310573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612334919061305a565b90508151600014801561234f57506001600160a01b03811615155b156123c95760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa15801561239e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123c69190810190613102565b91505b815160006123d882600161302e565b6001600160401b038111156123ef576123ef61273c565b604051908082528060200260200182016040528015612418578160200160208202803683370190505b50905060005b828110156124725784818151811061243857612438612d8d565b602002602001015182828151811061245257612452612d8d565b6001600160a01b039092166020928302919091019091015260010161241e565b508681838151811061248657612486612d8d565b6001600160a01b03909216602092830291909101909101529695505050505050565b60606101f17f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf00611d64565b600061023c82612581565b600081815260018301602052604081205461221f5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561023c565b60608160000180548060200260200160405190810160405280929190818152602001828054801561257557602002820191906000526020600020905b815481526020019060010190808311612561575b50505050509050919050565b60008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090600160e01b83169003612632578160000361262c578054831061260857604051636f96cda160e11b815260040160405180910390fd5b5b600019909201600081815260048401602052604090205490929091508115612609575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b50805461265890612da3565b6000825580601f10612668575050565b601f0160209004906000526020600020908101906102d391906126be565b50805460008255906000526020600020908101906102d391906126d7565b50805460008255906000526020600020908101906102d391905b5b808211156126d357600081556001016126bf565b5090565b808211156126d35760006126eb828261264c565b506001016126d7565b60008083601f84011261270657600080fd5b5081356001600160401b0381111561271d57600080fd5b60208301915083602082850101111561273557600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561277a5761277a61273c565b604052919050565b60006001600160401b0382111561279b5761279b61273c565b5060051b60200190565b60006001600160401b038311156127be576127be61273c565b6127d1601f8401601f1916602001612752565b90508281528383830111156127e557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261280d57600080fd5b8135602061282261281d83612782565b612752565b82815260059290921b8401810191818101908684111561284157600080fd5b8286015b848110156128955780356001600160401b038111156128645760008081fd5b8701603f810189136128765760008081fd5b6128878986830135604084016127a5565b845250918301918301612845565b509695505050505050565b6001600160a01b03811681146102d357600080fd5b6000604082840312156128c757600080fd5b604051604081016001600160401b0382821081831117156128ea576128ea61273c565b81604052829350843591506128fe826128a0565b9082526020840135908082111561291457600080fd5b508301601f8101851361292657600080fd5b612935858235602084016127a5565b6020830152505092915050565b600082601f83011261295357600080fd5b8135602061296361281d83612782565b82815260059290921b8401810191818101908684111561298257600080fd5b8286015b848110156128955780356001600160401b038111156129a55760008081fd5b6129b38986838b01016128b5565b845250918301918301612986565b6000806000806000608086880312156129d957600080fd5b8535945060208601356001600160401b03808211156129f757600080fd5b612a0389838a016126f4565b90965094506040880135915080821115612a1c57600080fd5b612a2889838a016127fc565b93506060880135915080821115612a3e57600080fd5b50612a4b88828901612942565b9150509295509295909350565b60005b83811015612a73578181015183820152602001612a5b565b50506000910152565b60008151808452612a94816020860160208601612a58565b601f01601f19169290920160200192915050565b60008151808452602080850194506020840160005b83811015612ae25781516001600160a01b031687529582019590820190600101612abd565b509495945050505050565b80518252600060208083015160a082860152612b0c60a0860182612a7c565b9050604084015115156040860152606084015185820360608701528181518084528484019150848160051b850101858401935060005b82811015612b7057601f19868303018452612b5e828651612a7c565b94870194938701939150600101612b42565b506080880151955088810360808a0152612b8a8187612aa8565b9998505050505050505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612bee57603f19888603018452612bdc858351612aed565b94509285019290850190600101612bc0565b5092979650505050505050565b600060208284031215612c0d57600080fd5b5035919050565b6020815260006110116020830184612aed565b60008060008060608587031215612c3d57600080fd5b84356001600160401b0380821115612c5457600080fd5b612c60888389016126f4565b90965094506020870135915080821115612c7957600080fd5b612c85888389016127fc565b93506040870135915080821115612c9b57600080fd5b50612ca887828801612942565b91505092959194509250565b60008060408385031215612cc757600080fd5b8235915060208301356001600160401b03811115612ce457600080fd5b612cf0858286016127fc565b9150509250929050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612bee57603f19888603018452612d3f858351612a7c565b94509285019290850190600101612d23565b60008060408385031215612d6457600080fd5b8235915060208301356001600160401b03811115612d8157600080fd5b612cf0858286016128b5565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680612db757607f821691505b60208210810361262c57634e487b7160e01b600052602260045260246000fd5b601f821115611587576000816000526020600020601f850160051c81016020861015612e005750805b601f850160051c820191505b818110156113a257828155600101612e0c565b6001600160401b03831115612e3657612e3661273c565b612e4a83612e448354612da3565b83612dd7565b6000601f841160018114612e7e5760008515612e665750838201355b600019600387901b1c1916600186901b1783556101e0565b600083815260209020601f19861690835b82811015612eaf5786850135825560209485019460019092019101612e8f565b5086821015612ecc5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81516001600160401b03811115612ef757612ef761273c565b612f0b81612f058454612da3565b84612dd7565b602080601f831160018114612f405760008415612f285750858301515b600019600386901b1c1916600185901b1785556113a2565b600085815260208120601f198616915b82811015612f6f57888601518255948401946001909101908401612f50565b5085821015612f8d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251612faf818460208701612a58565b9190910192915050565b8051602080830151919081101561262c5760001960209190910360031b1b16919050565b600060208284031215612fef57600080fd5b8151801515811461101157600080fd5b828152604060208201526000610ff56040830184612a7c565b634e487b7160e01b600052601160045260246000fd5b8082018082111561023c5761023c613018565b60006001820161305357613053613018565b5060010190565b60006020828403121561306c57600080fd5b8151611011816128a0565b60006060820185835260206060602085015281865180845260808601915060208801935060005b818110156130c35784516001600160a01b03168352938301939183019160010161309e565b5050809350505050826040830152949350505050565b8181038181111561023c5761023c613018565b634e487b7160e01b600052603160045260246000fd5b6000602080838503121561311557600080fd5b82516001600160401b0381111561312b57600080fd5b8301601f8101851361313c57600080fd5b805161314a61281d82612782565b81815260059190911b8201830190838101908783111561316957600080fd5b928401925b82841015613190578351613181816128a0565b8252928401929084019061316e565b97965050505050505056fe804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03","sourceMap":"296:2281:244:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80639a8e4c3e116100665780639a8e4c3e1461012a578063b42642331461013d578063b75157611461015d578063ba201ba814610170578063dba818641461018357600080fd5b80634d8b50a2146100a357806371061398146100b8578063784c872b146100d65780638fcd793d146100f65780639269182114610117575b600080fd5b6100b66100b13660046129c1565b610196565b005b6100c06101e7565b6040516100cd9190612b97565b60405180910390f35b6100e96100e4366004612bfb565b6101f6565b6040516100cd9190612c14565b610109610104366004612c27565b610242565b6040519081526020016100cd565b6100b6610125366004612bfb565b61028d565b6100b6610138366004612cb4565b6102d6565b61015061014b366004612bfb565b610321565b6040516100cd9190612cfa565b6100b661016b366004612cb4565b61032c565b6100b661017e366004612d51565b610373565b6100b6610191366004612d51565b6103ba565b6101ca604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6101d385610429565b6101e08585858585610470565b5050505050565b60606101f161076d565b905090565b61022a6040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b61023382610429565b61023c826108af565b92915050565b6000610278604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61028485858585610928565b95945050505050565b6102c1604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6102ca81610429565b6102d381610b0b565b50565b61030a604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61031382610429565b61031d8282610d6f565b5050565b606061023c82610e5a565b610360604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61036982610429565b61031d8282610e6e565b6103a7604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6103b082610429565b61031d8282610f1f565b6103ee604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6103f782610429565b61031d8282610f54565b61040c600082610f79565b6102d357604051630ce39a4b60e21b815260040160405180910390fd5b6104537f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0182610ffd565b6102d35760405163a3f70f7b60e01b815260040160405180910390fd5b600061047b86611018565b80518351919250906000816001600160401b0381111561049d5761049d61273c565b6040519080825280602002602001820160405280156104c6578160200160208202803683370190505b50905060005b828110156105595760008682815181106104e8576104e8612d8d565b60200260200101516000015190506104ff8161111c565b610508816111e5565b86828151811061051a5761051a612d8d565b60200260200101516000015183838151811061053857610538612d8d565b6001600160a01b0390921660209283029190910190910152506001016104cc565b5086156105885760008981526000805160206131dc83398151915260205260409020610586888a83612e1f565b505b8551156105ce5760008981526000805160206131dc833981519152602052604081206105b69060020161124d565b90506105c28a82610d6f565b6105cc8a88610e6e565b505b816000036105df57505050506101e0565b80511561065857805160005b8481101561061e576106168b87838151811061060957610609612d8d565b6020026020010151611258565b6001016105eb565b5060005b818110156106555761064d8b84838151811061064057610640612d8d565b60200260200101516112d0565b600101610622565b50505b60005b8381101561068e5761068685828151811061067857610678612d8d565b60200260200101518b611343565b60010161065b565b5060005b828110156107345760008682815181106106ae576106ae612d8d565b60200260200101516020015151111561072c576106e78682815181106106d6576106d6612d8d565b6020026020010151602001516113aa565b61072c8682815181106106fc576106fc612d8d565b6020026020010151600001518b88848151811061071b5761071b612d8d565b6020026020010151602001516113cc565b600101610692565b50604051899033907f1aff41ff8e9139aae6bb355cc69107cda7e1d1dcd25511da436f3171bdbf77e690600090a3505050505050505050565b6060600061077961143a565b8051909150806001600160401b038111156107965761079661273c565b6040519080825280602002602001820160405280156107fb57816020015b6107e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816107b45790505b50925060005b818110156108a95760008060008061083187868151811061082457610824612d8d565b6020026020010151611465565b93509350935093506040518060a0016040528088878151811061085657610856612d8d565b6020026020010151815260200185815260200184151581526020018381526020018281525088868151811061088d5761088d612d8d565b6020026020010181905250848060010195505050505050610801565b50505090565b6108e36040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b6000806000806108f286611465565b6040805160a0810182529a8b5260208b019490945291151592890192909252606088019190915260808701525093949350505050565b600061096c85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060029250611563915050565b81516000816001600160401b038111156109885761098861273c565b6040519080825280602002602001820160405280156109b1578160200160208202803683370190505b5090506109bc61158c565b925060005b82811015610a90576109ef8582815181106109de576109de612d8d565b60200260200101516000015161111c565b848181518110610a0157610a01612d8d565b602002602001015160000151828281518110610a1f57610a1f612d8d565b60200260200101906001600160a01b031690816001600160a01b031681525050610a548582815181106106d6576106d6612d8d565b610a88858281518110610a6957610a69612d8d565b6020026020010151600001518587848151811061071b5761071b612d8d565b6001016109c1565b50610ad387878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508991508590506115b2565b50604051839033907f20a7a288530dd94b1eccaa691a582ecfd7550c9dfcee78ddf50a97f774a2b14790600090a35050949350505050565b6000610b1682611018565b80519091506000805160206131bc833981519152610b547f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01856116db565b506000848152600382016020526040812090610b70828261264c565b60018201805460ff19169055600282016000610b8c8282612686565b50506004820160008181610ba082826126a4565b5050604080516020808201835260008083528b815260038901909152919091209450610bd193509150839050612ede565b506000848152600382016020526040812060018101805460ff19169055610bfa906002016116e7565b6000868152600384016020526040812091925090610c1a906004016116e7565b905060005b82811015610c6a5760008781526003850160205260409020610c6190610c4890600201836116f1565b60008981526003870160205260409020600201906116fd565b50600101610c1f565b5060005b81811015610cb95760008781526003850160205260409020610cb090610c979060040183611709565b6000898152600387016020526040902060040190611715565b50600101610c6e565b506000610cc58761172a565b805190915060005b81811015610d0057610cf8838281518110610cea57610cea612d8d565b60200260200101518a611816565b600101610ccd565b5060005b86811015610d3757610d2f888281518110610d2157610d21612d8d565b60200260200101518a611343565b600101610d04565b50604051889033907f268a6f1b90f6f5ddf50cc736d36513e80cdc5fd56326bff71f335e8b4b61d05590600090a35050505050505050565b80516000805160206131bc8339815191529060005b818110156101e057610dae848281518110610da157610da1612d8d565b60200260200101516118a6565b610df1848281518110610dc357610dc3612d8d565b60200260200101518460030160008881526020019081526020016000206002016118c790919063ffffffff16565b610e0e57604051633e2b026160e01b815260040160405180910390fd5b610e51848281518110610e2357610e23612d8d565b60200260200101518460030160008881526020019081526020016000206002016116fd90919063ffffffff16565b50600101610d84565b6060610e6582611465565b50949350505050565b80516000805160206131bc8339815191529060005b818110156101e057610ea0848281518110610da157610da1612d8d565b610eb5848281518110610dc357610dc3612d8d565b15610ed35760405163b0ab682160e01b815260040160405180910390fd5b610f16848281518110610ee857610ee8612d8d565b60200260200101518460030160008881526020019081526020016000206002016118d390919063ffffffff16565b50600101610e83565b610f2882610429565b8051610f33906111e5565b610f418282600001516112d0565b61031d81600001518383602001516113cc565b8051610f5f906111e5565b610f6d828260000151611258565b805161031d9083611343565b60003380610f856118df565b6001600160a01b03161480610ff557507fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff16158015610ff55750610ff5848285604051602001610fd89190612f9d565b604051602081830303815290604052610ff090612fb9565b6119a3565b949350505050565b600081815260018301602052604081205415155b9392505050565b60008181526000805160206131dc8339815191526020526040812060609190611043906004016116e7565b6001600160401b0381111561105a5761105a61273c565b604051908082528060200260200182016040528015611083578160200160208202803683370190505b50905060005b60008481526000805160206131dc833981519152602052604090206110b0906004016116e7565b8110156111155760008481526000805160206131dc833981519152602052604081206110df9060040183611709565b9050808383815181106110f4576110f4612d8d565b6001600160a01b039092166020928302919091019091015250600101611089565b5092915050565b6001600160a01b03811661114357604051630706e15760e51b815260040160405180910390fd5b6040516301ffc9a760e01b8152637bc2cb4560e11b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa9250505080156111aa575060408051601f3d908101601f191682019092526111a791810190612fdd565b60015b6111c75760405163f58a5f2760e01b815260040160405180910390fd5b8061031d5760405163f58a5f2760e01b815260040160405180910390fd5b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006112307fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310183611c50565b61031d5760405163017ab33760e71b815260040160405180910390fd5b606061023c82611c72565b60008281526000805160206131dc833981519152602052604090206000805160206131bc833981519152906112909060040183611c50565b6112ad57604051632405297d60e11b815260040160405180910390fd5b600083815260038201602052604090206112ca9060040183611715565b50505050565b60008281526000805160206131dc833981519152602052604090206000805160206131bc833981519152906113089060040183611c50565b156113265760405163fb5584f160e01b815260040160405180910390fd5b600083815260038201602052604090206112ca9060040183611d4f565b61134c826111e5565b60405163f0c111f960e01b8152600481018290526001600160a01b0383169063f0c111f990602401600060405180830381600087803b15801561138e57600080fd5b505af11580156113a2573d6000803e3d6000fd5b505050505050565b80516000036102d3576040516319c6193b60e31b815260040160405180910390fd5b6113d5836111e5565b604051633be2f95d60e21b81526001600160a01b0384169063ef8be574906114039085908590600401612fff565b600060405180830381600087803b15801561141d57600080fd5b505af1158015611431573d6000803e3d6000fd5b50505050505050565b60606101f17f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01611d64565b60008181526000805160206131dc83398151915260205260408120805460609291839182916000805160206131bc833981519152916114a390612da3565b80601f01602080910402602001604051908101604052809291908181526020018280546114cf90612da3565b801561151c5780601f106114f15761010080835404028352916020019161151c565b820191906000526020600020905b8154815290600101906020018083116114ff57829003601f168201915b50505060008981526003850160205260409020600181015493985060ff909316965061154e92600201915061124d9050565b925061155986611018565b9150509193509193565b81518290821115611587576040516374eb20a760e01b815260040160405180910390fd5b505050565b6000805160206131bc8339815191528054600091906115ac90600161302e565b91505090565b6000805160206131bc833981519152805460009190819083906115d490613041565b918290555091506115e86001820183611d71565b50600082815260038201602052604090206116038782612ede565b5060008281526003820160205260409020600101805460ff191686151517905561162d8285610e6e565b60005b83518110156116d15760006001600160a01b031684828151811061165657611656612d8d565b60200260200101516001600160a01b03160361168557604051637442429b60e01b815260040160405180910390fd5b6116c884828151811061169a5761169a612d8d565b6020026020010151836003016000868152602001908152602001600020600401611d4f90919063ffffffff16565b50600101611630565b5050949350505050565b60006110118383611d7d565b600061023c825490565b60606110118383611e70565b60006110118383611f22565b600061101183836120d7565b6000611011836001600160a01b038416611d7d565b606060008051602061319c8339815191526000611746826116e7565b90506000816001600160401b038111156117625761176261273c565b60405190808252806020026020018201604052801561178b578160200160208202803683370190505b50935060005b828110156117fb5760006117a58583611709565b600081815260038701602052604090209091506117c29088610ffd565b156117f2578086846117d381613041565b9550815181106117e5576117e5612d8d565b6020026020010181815250505b50600101611791565b508082111561180e578351818303900384525b505050919050565b61181f82612101565b61182882612136565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af5185043036020526040902060008051602061319c8339815191529061186f9083610ffd565b61188c576040516333cb039f60e11b815260040160405180910390fd5b600083815260038201602052604090206112ca90836116db565b80516000036102d35760405162ce76c160e41b815260040160405180910390fd5b60006110118383612198565b600061101183836121c5565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa15801561197f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ac919061305a565b6000806119ae6118df565b905060006119bb85612227565b805190915060006119ca6124a8565b805190915060005b83811015611a895760008582815181106119ee576119ee612d8d565b60200260200101519050866001600160a01b0316816001600160a01b031603611a21576001975050505050505050611011565b60005b83811015611a7f57816001600160a01b0316611a58868381518110611a4b57611a4b612d8d565b60200260200101516124d3565b6001600160a01b031603611a7757600098505050505050505050611011565b600101611a24565b50506001016119d2565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006000611ad67fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931016116e7565b905060005b81811015611c3e5760008381611af46001830185611709565b6001600160a01b03908116825260208083019390935260409182016000208251606081018452905491821680825260ff600160a01b84048116151583870152600160a81b9093049092161515818401528251630b86d87960e21b815292519094509092632e1b61e492600480820193918290030181865afa158015611b7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba19190612fdd565b158015611c1e575080600001516001600160a01b0316630cf0b5338e8a8e6040518463ffffffff1660e01b8152600401611bdd93929190613077565b602060405180830381865afa158015611bfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1e9190612fdd565b15611c355760019950505050505050505050611011565b50600101611adb565b5060009b9a5050505050505050505050565b6001600160a01b03811660009081526001830160205260408120541515611011565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015611d44578382906000526020600020018054611cb790612da3565b80601f0160208091040260200160405190810160405280929190818152602001828054611ce390612da3565b8015611d305780601f10611d0557610100808354040283529160200191611d30565b820191906000526020600020905b815481529060010190602001808311611d1357829003601f168201915b505050505081526020019060010190611c98565b505050509050919050565b6000611011836001600160a01b0384166124de565b6060600061101183612525565b600061101183836124de565b60008181526001830160205260408120548015611e66576000611da16001836130d9565b8554909150600090611db5906001906130d9565b9050808214611e1a576000866000018281548110611dd557611dd5612d8d565b9060005260206000200154905080876000018481548110611df857611df8612d8d565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611e2b57611e2b6130ec565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061023c565b600091505061023c565b6060826000018281548110611e8757611e87612d8d565b906000526020600020018054611e9c90612da3565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec890612da3565b8015611f155780601f10611eea57610100808354040283529160200191611f15565b820191906000526020600020905b815481529060010190602001808311611ef857829003601f168201915b5050505050905092915050565b6000808360010183604051611f379190612f9d565b908152602001604051809103902054905080600014611e66576000611f5d6001836130d9565b8554909150600090611f71906001906130d9565b9050818114612078576000866000018281548110611f9157611f91612d8d565b906000526020600020018054611fa690612da3565b80601f0160208091040260200160405190810160405280929190818152602001828054611fd290612da3565b801561201f5780601f10611ff45761010080835404028352916020019161201f565b820191906000526020600020905b81548152906001019060200180831161200257829003601f168201915b505050505090508087600001848154811061203c5761203c612d8d565b9060005260206000200190816120529190612ede565b508387600101826040516120669190612f9d565b90815260405190819003602001902055505b8554869080612089576120896130ec565b6001900381819060005260206000200160006120a5919061264c565b905585600101856040516120b99190612f9d565b9081526020016040518091039020600090556001935050505061023c565b60008260000182815481106120ee576120ee612d8d565b9060005260206000200154905092915050565b61211960008051602061319c83398151915282610ffd565b6102d35760405163560b4b4160e11b815260040160405180910390fd5b60008181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504302602052604090206001015460008051602061319c8339815191529060ff161561031d57604051636ce0028960e11b815260040160405180910390fd5b600082600101826040516121ac9190612f9d565b9081526040519081900360200190205415159392505050565b60006121d18383612198565b61221f578254600181018455600084815260209020016121f18382612ede565b5082546040516001850190612207908590612f9d565b9081526040519081900360200190205550600161023c565b50600061023c565b606060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6006006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa15801561229c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122c49190810190613102565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa158015612310573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612334919061305a565b90508151600014801561234f57506001600160a01b03811615155b156123c95760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa15801561239e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123c69190810190613102565b91505b815160006123d882600161302e565b6001600160401b038111156123ef576123ef61273c565b604051908082528060200260200182016040528015612418578160200160208202803683370190505b50905060005b828110156124725784818151811061243857612438612d8d565b602002602001015182828151811061245257612452612d8d565b6001600160a01b039092166020928302919091019091015260010161241e565b508681838151811061248657612486612d8d565b6001600160a01b03909216602092830291909101909101529695505050505050565b60606101f17f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf00611d64565b600061023c82612581565b600081815260018301602052604081205461221f5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561023c565b60608160000180548060200260200160405190810160405280929190818152602001828054801561257557602002820191906000526020600020905b815481526020019060010190808311612561575b50505050509050919050565b60008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090600160e01b83169003612632578160000361262c578054831061260857604051636f96cda160e11b815260040160405180910390fd5b5b600019909201600081815260048401602052604090205490929091508115612609575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b50805461265890612da3565b6000825580601f10612668575050565b601f0160209004906000526020600020908101906102d391906126be565b50805460008255906000526020600020908101906102d391906126d7565b50805460008255906000526020600020908101906102d391905b5b808211156126d357600081556001016126bf565b5090565b808211156126d35760006126eb828261264c565b506001016126d7565b60008083601f84011261270657600080fd5b5081356001600160401b0381111561271d57600080fd5b60208301915083602082850101111561273557600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561277a5761277a61273c565b604052919050565b60006001600160401b0382111561279b5761279b61273c565b5060051b60200190565b60006001600160401b038311156127be576127be61273c565b6127d1601f8401601f1916602001612752565b90508281528383830111156127e557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261280d57600080fd5b8135602061282261281d83612782565b612752565b82815260059290921b8401810191818101908684111561284157600080fd5b8286015b848110156128955780356001600160401b038111156128645760008081fd5b8701603f810189136128765760008081fd5b6128878986830135604084016127a5565b845250918301918301612845565b509695505050505050565b6001600160a01b03811681146102d357600080fd5b6000604082840312156128c757600080fd5b604051604081016001600160401b0382821081831117156128ea576128ea61273c565b81604052829350843591506128fe826128a0565b9082526020840135908082111561291457600080fd5b508301601f8101851361292657600080fd5b612935858235602084016127a5565b6020830152505092915050565b600082601f83011261295357600080fd5b8135602061296361281d83612782565b82815260059290921b8401810191818101908684111561298257600080fd5b8286015b848110156128955780356001600160401b038111156129a55760008081fd5b6129b38986838b01016128b5565b845250918301918301612986565b6000806000806000608086880312156129d957600080fd5b8535945060208601356001600160401b03808211156129f757600080fd5b612a0389838a016126f4565b90965094506040880135915080821115612a1c57600080fd5b612a2889838a016127fc565b93506060880135915080821115612a3e57600080fd5b50612a4b88828901612942565b9150509295509295909350565b60005b83811015612a73578181015183820152602001612a5b565b50506000910152565b60008151808452612a94816020860160208601612a58565b601f01601f19169290920160200192915050565b60008151808452602080850194506020840160005b83811015612ae25781516001600160a01b031687529582019590820190600101612abd565b509495945050505050565b80518252600060208083015160a082860152612b0c60a0860182612a7c565b9050604084015115156040860152606084015185820360608701528181518084528484019150848160051b850101858401935060005b82811015612b7057601f19868303018452612b5e828651612a7c565b94870194938701939150600101612b42565b506080880151955088810360808a0152612b8a8187612aa8565b9998505050505050505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612bee57603f19888603018452612bdc858351612aed565b94509285019290850190600101612bc0565b5092979650505050505050565b600060208284031215612c0d57600080fd5b5035919050565b6020815260006110116020830184612aed565b60008060008060608587031215612c3d57600080fd5b84356001600160401b0380821115612c5457600080fd5b612c60888389016126f4565b90965094506020870135915080821115612c7957600080fd5b612c85888389016127fc565b93506040870135915080821115612c9b57600080fd5b50612ca887828801612942565b91505092959194509250565b60008060408385031215612cc757600080fd5b8235915060208301356001600160401b03811115612ce457600080fd5b612cf0858286016127fc565b9150509250929050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612bee57603f19888603018452612d3f858351612a7c565b94509285019290850190600101612d23565b60008060408385031215612d6457600080fd5b8235915060208301356001600160401b03811115612d8157600080fd5b612cf0858286016128b5565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680612db757607f821691505b60208210810361262c57634e487b7160e01b600052602260045260246000fd5b601f821115611587576000816000526020600020601f850160051c81016020861015612e005750805b601f850160051c820191505b818110156113a257828155600101612e0c565b6001600160401b03831115612e3657612e3661273c565b612e4a83612e448354612da3565b83612dd7565b6000601f841160018114612e7e5760008515612e665750838201355b600019600387901b1c1916600186901b1783556101e0565b600083815260209020601f19861690835b82811015612eaf5786850135825560209485019460019092019101612e8f565b5086821015612ecc5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81516001600160401b03811115612ef757612ef761273c565b612f0b81612f058454612da3565b84612dd7565b602080601f831160018114612f405760008415612f285750858301515b600019600386901b1c1916600185901b1785556113a2565b600085815260208120601f198616915b82811015612f6f57888601518255948401946001909101908401612f50565b5085821015612f8d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251612faf818460208701612a58565b9190910192915050565b8051602080830151919081101561262c5760001960209190910360031b1b16919050565b600060208284031215612fef57600080fd5b8151801515811461101157600080fd5b828152604060208201526000610ff56040830184612a7c565b634e487b7160e01b600052601160045260246000fd5b8082018082111561023c5761023c613018565b60006001820161305357613053613018565b5060010190565b60006020828403121561306c57600080fd5b8151611011816128a0565b60006060820185835260206060602085015281865180845260808601915060208801935060005b818110156130c35784516001600160a01b03168352938301939183019160010161309e565b5050809350505050826040830152949350505050565b8181038181111561023c5761023c613018565b634e487b7160e01b600052603160045260246000fd5b6000602080838503121561311557600080fd5b82516001600160401b0381111561312b57600080fd5b8301601f8101851361313c57600080fd5b805161314a61281d82612782565b81815260059190911b8201830190838101908783111561316957600080fd5b928401925b82841015613190578351613181816128a0565b8252928401929084019061316e565b97965050505050505056fe804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03","sourceMap":"296:2281:244:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:317;;;;;;:::i;:::-;;:::i;:::-;;634:96;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;734:158;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;346:284::-;;;;;;:::i;:::-;;:::i;:::-;;;9949:25:419;;;9937:2;9922:18;346:284:244;9803:177:419;1217:164:244;;;;;;:::i;:::-;;:::i;1645:248::-;;;;;;:::i;:::-;;:::i;1897:166::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1403:238::-;;;;;;:::i;:::-;;:::i;2085:::-;;;;;;:::i;:::-;;:::i;2327:248::-;;;;;;:::i;:::-;;:::i;896:317::-;1072:44;1092:23;;;;;;;;;;;;;-1:-1:-1;;;1092:23:244;;;1072:19;:44::i;:::-;1122:24;1139:6;1122:16;:24::i;:::-;1152:56;1164:6;1172:8;;1182:11;1195:12;1152:11;:56::i;:::-;896:317;;;;;:::o;634:96::-;686:13;714:11;:9;:11::i;:::-;707:18;;634:96;:::o;734:158::-;811:11;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;811:11:244;830:24;847:6;830:16;:24::i;:::-;867:20;880:6;867:12;:20::i;:::-;860:27;734:158;-1:-1:-1;;734:158:244:o;346:284::-;505:7;520:44;540:23;;;;;;;;;;;;;-1:-1:-1;;;540:23:244;;;520:19;:44::i;:::-;577:48;589:8;;599:11;612:12;577:11;:48::i;:::-;570:55;346:284;-1:-1:-1;;;;;346:284:244:o;1217:164::-;1277:44;1297:23;;;;;;;;;;;;;-1:-1:-1;;;1297:23:244;;;1277:19;:44::i;:::-;1327:24;1344:6;1327:16;:24::i;:::-;1357:19;1369:6;1357:11;:19::i;:::-;1217:164;:::o;1645:248::-;1761:44;1781:23;;;;;;;;;;;;;-1:-1:-1;;;1781:23:244;;;1761:19;:44::i;:::-;1811:24;1828:6;1811:16;:24::i;:::-;1841:47;1868:6;1876:11;1841:26;:47::i;:::-;1645:248;;:::o;1897:166::-;1985:27;2027:31;2051:6;2027:23;:31::i;1403:238::-;1514:44;1534:23;;;;;;;;;;;;;-1:-1:-1;;;1534:23:244;;;1514:19;:44::i;:::-;1564:24;1581:6;1564:16;:24::i;:::-;1594:42;1616:6;1624:11;1594:21;:42::i;2085:238::-;2196:44;2216:23;;;;;;;;;;;;;-1:-1:-1;;;2216:23:244;;;2196:19;:44::i;:::-;2246:24;2263:6;2246:16;:24::i;:::-;2276:42;2298:6;2306:11;2276:21;:42::i;2327:248::-;2443:44;2463:23;;;;;;;;;;;;;-1:-1:-1;;;2463:23:244;;;2443:19;:44::i;:::-;2493:24;2510:6;2493:16;:24::i;:::-;2523:47;2550:6;2558:11;2523:26;:47::i;3802:164:189:-;3882:31;1438:3;3902:10;3882;:31::i;:::-;3877:85;;3930:25;;-1:-1:-1;;;3930:25:189;;;;;;;;;;;9288:194:245;9385:44;:27;9422:6;9385:36;:44::i;:::-;9380:98;;9446:25;;-1:-1:-1;;;9446:25:245;;;;;;;;;;;4635:2709;4856:41;4900:30;4923:6;4900:22;:30::i;:::-;4969:26;;5028:19;;4856:74;;-1:-1:-1;4969:26:245;4936:30;5028:19;-1:-1:-1;;;;;5098:47:245;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5098:47:245;;5053:92;;5157:9;5152:322;5176:15;5172:1;:19;5152:322;;;5203:14;5228:12;5241:1;5228:15;;;;;;;;:::i;:::-;;;;;;;:22;;;5203:48;;5259:54;5306:6;5259:46;:54::i;:::-;5321:51;5365:6;5321:43;:51::i;:::-;5406:12;5419:1;5406:15;;;;;;;;:::i;:::-;;;;;;;:22;;;5380:20;5401:1;5380:23;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5380:48:245;;;:23;;;;;;;;;;;:48;-1:-1:-1;5456:3:245;;5152:322;;;-1:-1:-1;5512:26:245;;5508:101;;5548:38;;;;-1:-1:-1;;;;;;;;;;;5548:38:245;;;;;:54;5594:8;;5548:38;:54;:::i;:::-;;5508:101;5645:18;;:22;5641:370;;5677:34;5714:56;;;-1:-1:-1;;;;;;;;;;;5714:56:245;;;;;:95;;:77;;:93;:95::i;:::-;5677:132;;5862:54;5889:6;5897:18;5862:26;:54::i;:::-;5962:42;5984:6;5992:11;5962:21;:42::i;:::-;5669:342;5641:370;6021:15;6040:1;6021:20;6017:47;;6051:7;;;;;;6017:47;6074:27;;:31;6070:526;;6149:27;;6115:31;6185:181;6209:22;6205:1;:26;6185:181;;;6245:67;6272:6;6288:19;6308:1;6288:22;;;;;;;;:::i;:::-;;;;;;;6245:26;:67::i;:::-;6344:3;;6185:181;;;;6417:9;6412:178;6436:23;6432:1;:27;6412:178;;;6473:63;6495:6;6511:20;6532:1;6511:23;;;;;;;;:::i;:::-;;;;;;;6473:21;:63::i;:::-;6568:3;;6412:178;;;;6107:489;6070:526;6660:9;6655:227;6679:22;6675:1;:26;6655:227;;;6713:122;6788:19;6808:1;6788:22;;;;;;;;:::i;:::-;;;;;;;6821:6;6713:57;:122::i;:::-;6864:3;;6655:227;;;;6893:9;6888:409;6912:15;6908:1;:19;6888:409;;;6973:1;6943:12;6956:1;6943:15;;;;;;;;:::i;:::-;;;;;;;:20;;;:27;:31;6939:312;;;7029:47;7055:12;7068:1;7055:15;;;;;;;;:::i;:::-;;;;;;;:20;;;7029:25;:47::i;:::-;7087:155;7159:12;7172:1;7159:15;;;;;;;;:::i;:::-;;;;;;;:22;;;7194:6;7212:12;7225:1;7212:15;;;;;;;;:::i;:::-;;;;;;;:20;;;7087:52;:155::i;:::-;7279:3;;6888:409;;;-1:-1:-1;7308:31:245;;7332:6;;7320:10;;7308:31;;;;;4797:2547;;;;4635:2709;;;;;:::o;2116:635::-;2160:19;2187:24;2214:13;:11;:13::i;:::-;2253:14;;2187:40;;-1:-1:-1;2253:14:245;-1:-1:-1;;;;;2282:21:245;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2282:21:245;;;;;;;;;;;;;;;;;2274:29;;2315:9;2310:437;2334:9;2330:1;:13;2310:437;;;2365:18;2393:16;2419:27;2456:34;2501:20;2510:7;2518:1;2510:10;;;;;;;;:::i;:::-;;;;;;;2501:8;:20::i;:::-;2355:166;;;;;;;;2541:159;;;;;;;;2560:7;2568:1;2560:10;;;;;;;;:::i;:::-;;;;;;;2541:159;;;;2586:4;2541:159;;;;2610:11;2541:159;;;;;;2644:11;2541:159;;;;2679:12;2541:159;;;2530:5;2536:1;2530:8;;;;;;;;:::i;:::-;;;;;;:170;;;;2729:3;;;;;;;2347:400;;;;2310:437;;;;2181:570;;2116:635;:::o;4183:425::-;4252:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4252:16:245;4284:18;4310:16;4334:27;4369:34;4412:16;4421:6;4412:8;:16::i;:::-;4448:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4448:155:245;;4183:425;-1:-1:-1;;;;4183:425:245:o;1099:1013::-;1250:14;1272:34;1294:8;;1272:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1304:1:245;;-1:-1:-1;1272:21:245;;-1:-1:-1;;1272:34:245:i;:::-;1339:19;;1313:23;1339:19;-1:-1:-1;;;;;1410:47:245;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1410:47:245;;1365:92;;1473:16;:14;:16::i;:::-;1464:25;;1501:9;1496:502;1520:15;1516:1;:19;1496:502;;;1547:95;1611:12;1624:1;1611:15;;;;;;;;:::i;:::-;;;;;;;:22;;;1547:46;:95::i;:::-;1676:12;1689:1;1676:15;;;;;;;;:::i;:::-;;;;;;;:22;;;1650:20;1671:1;1650:23;;;;;;;;:::i;:::-;;;;;;:48;-1:-1:-1;;;;;1650:48:245;;;-1:-1:-1;;;;;1650:48:245;;;;;1748:47;1774:12;1787:1;1774:15;;;;;;;;:::i;1748:47::-;1804:147;1874:12;1887:1;1874:15;;;;;;;;:::i;:::-;;;;;;;:22;;;1907:6;1923:12;1936:1;1923:15;;;;;;;;:::i;1804:147::-;1980:3;;1496:502;;;;2004:60;2013:8;;2004:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2004:60:245;-1:-1:-1;2030:11:245;;-1:-1:-1;2043:20:245;;-1:-1:-1;2004:8:245;:60::i;:::-;-1:-1:-1;2076:31:245;;2100:6;;2088:10;;2076:31;;;;;1266:846;;1099:1013;;;;;;:::o;7348:1598::-;7432:41;7476:30;7499:6;7476:22;:30::i;:::-;7545:26;;;;-1:-1:-1;;;;;;;;;;;;7639:23:245;:8;7655:6;7639:15;:23::i;:::-;-1:-1:-1;7675:19:245;;;;:11;;;:19;;;;;;7668:26;7675:19;;7668:26;:::i;:::-;;;;;;-1:-1:-1;;7668:26:245;;;;;;;;;;;:::i;:::-;-1:-1:-1;;7668:26:245;;;;;;;;;;:::i;:::-;-1:-1:-1;;7700:29:245;;;;;;;;;-1:-1:-1;7700:29:245;;;:19;;;:11;;;:19;;;;;;;;-1:-1:-1;7700:29:245;;-1:-1:-1;7700:29:245;-1:-1:-1;7700:19:245;;-1:-1:-1;7700:29:245;:::i;:::-;-1:-1:-1;7769:5:245;7735:19;;;:11;;;:19;;;;;:31;;;:39;;-1:-1:-1;;7735:39:245;;;7805:40;;:31;;:38;:40::i;:::-;7851:22;7876:19;;;:11;;;:19;;;;;7781:64;;-1:-1:-1;7851:22:245;7876:41;;:32;;:39;:41::i;:::-;7851:66;;7929:9;7924:188;7948:13;7944:1;:17;7924:188;;;8021:19;;;;:11;;;:19;;;;;7973:93;;8021:37;;:31;;8056:1;8021:34;:37::i;:::-;7973:19;;;;:11;;;:19;;;;;:31;;;:38;:93::i;:::-;-1:-1:-1;8094:3:245;;7924:188;;;;8123:9;8118:191;8142:14;8138:1;:18;8118:191;;;8217:19;;;;:11;;;:19;;;;;8168:95;;8217:38;;:32;;8253:1;8217:35;:38::i;:::-;8168:19;;;;:11;;;:19;;;;;:32;;;:39;:95::i;:::-;-1:-1:-1;8291:3:245;;8118:191;;;;8315:27;8345:42;8380:6;8345:34;:42::i;:::-;8417:17;;8315:72;;-1:-1:-1;8393:21:245;8474:155;8498:13;8494:1;:17;8474:155;;;8523:59;8560:10;8571:1;8560:13;;;;;;;;:::i;:::-;;;;;;;8575:6;8523:36;:59::i;:::-;8611:3;;8474:155;;;;8677:9;8672:227;8696:22;8692:1;:26;8672:227;;;8730:122;8805:19;8825:1;8805:22;;;;;;;;:::i;:::-;;;;;;;8838:6;8730:57;:122::i;:::-;8881:3;;8672:227;;;-1:-1:-1;8910:31:245;;8934:6;;8922:10;;8910:31;;;;;7394:1552;;;;;;;7348:1598;:::o;12235:607::-;12453:18;;-1:-1:-1;;;;;;;;;;;427:66:246;12368:30:245;12478:360;12502:13;12498:1;:17;12478:360;;;12567:33;12585:11;12597:1;12585:14;;;;;;;;:::i;:::-;;;;;;;12567:17;:33::i;:::-;12614:56;12655:11;12667:1;12655:14;;;;;;;;:::i;:::-;;;;;;;12614:2;:11;;:19;12626:6;12614:19;;;;;;;;;;;:31;;:40;;:56;;;;:::i;:::-;12609:120;;12689:31;;-1:-1:-1;;;12689:31:245;;;;;;;;;;;12609:120;12737:54;12776:11;12788:1;12776:14;;;;;;;;:::i;:::-;;;;;;;12737:2;:11;;:19;12749:6;12737:19;;;;;;;;;;;:31;;:38;;:54;;;;:::i;:::-;-1:-1:-1;12820:3:245;;12478:360;;12846:158;12926:27;12983:16;12992:6;12983:8;:16::i;:::-;-1:-1:-1;12961:38:245;12846:158;-1:-1:-1;;;;12846:158:245:o;11611:620::-;11799:18;;-1:-1:-1;;;;;;;;;;;427:66:246;11714:30:245;11824:403;11848:13;11844:1;:17;11824:403;;;11913:33;11931:11;11943:1;11931:14;;;;;;;;:::i;11913:33::-;12005:56;12046:11;12058:1;12046:14;;;;;;;;:::i;12005:56::-;12001:120;;;12080:32;;-1:-1:-1;;;12080:32:245;;;;;;;;;;;12001:120;12129:51;12165:11;12177:1;12165:14;;;;;;;;:::i;:::-;;;;;;;12129:2;:11;;:19;12141:6;12129:19;;;;;;;;;;;:31;;:35;;:51;;;;:::i;:::-;-1:-1:-1;12209:3:245;;11824:403;;13195:543;13332:24;13349:6;13332:16;:24::i;:::-;13448:18;;13396:72;;:43;:72::i;:::-;13506:58;13528:6;13544:11;:18;;;13506:21;:58::i;:::-;13602:131;13670:11;:18;;;13697:6;13711:11;:16;;;13602:52;:131::i;13742:483::-;13944:18;;13892:72;;:43;:72::i;:::-;14007:63;14034:6;14050:11;:18;;;14007:26;:63::i;:::-;14181:18;;14108:112;;14208:6;14108:57;:112::i;3513:285:189:-;3613:4;3642:10;;3672:8;:6;:8::i;:::-;-1:-1:-1;;;;;3672:18:189;;:121;;;-1:-1:-1;286:66:113;519:31:111;;;3701:10:189;:91;;;;;3723:69;3735:9;3746:6;3779:10;3762:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;3754:37;;;:::i;:::-;3723:11;:69::i;:::-;3659:134;3513:285;-1:-1:-1;;;;3513:285:189:o;11317:144:371:-;11394:4;4360:21;;;:14;;;:21;;;;;;:26;;11417:37;11410:44;11317:144;-1:-1:-1;;;11317:144:371:o;10097:599:245:-;10205:39;10273:38;;;-1:-1:-1;;;;;;;;;;;10273:38:245;;;;;10176:21;;10205:39;10273:60;;:51;;:58;:60::i;:::-;-1:-1:-1;;;;;10247:92:245;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10247:92:245;;10205:134;;10358:9;10346:315;10383:38;;;;-1:-1:-1;;;;;;;;;;;10383:38:245;;;;;:60;;:51;;:58;:60::i;:::-;10379:1;:64;10346:315;;;10469:26;10498:56;;;-1:-1:-1;;;;;;;;;;;10498:56:245;;;;;:93;;:78;;10589:1;10498:90;:93::i;:::-;10469:122;;10635:18;10599:17;10617:1;10599:20;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10599:55:245;;;:20;;;;;;;;;;;:55;-1:-1:-1;10451:3:245;;10346:315;;;-1:-1:-1;10674:17:245;10097:599;-1:-1:-1;;10097:599:245:o;3430:476:207:-;-1:-1:-1;;;;;3504:25:207;;3500:101;;3546:48;;-1:-1:-1;;;3546:48:207;;;;;;;;;;;3500:101;3617:70;;-1:-1:-1;;;3617:70:207;;-1:-1:-1;;;3617:70:207;;;16325:52:419;-1:-1:-1;;;;;3617:38:207;;;;;16298:18:419;;3617:70:207;;;;;;;;;;;;;;;;;;-1:-1:-1;3617:70:207;;;;;;;;-1:-1:-1;;3617:70:207;;;;;;;;;;;;:::i;:::-;;;3607:295;;3845:50;;-1:-1:-1;;;3845:50:207;;;;;;;;;;;3607:295;3730:9;3725:92;;3758:50;;-1:-1:-1;;;3758:50:207;;;;;;;;;;;909:279;476:66:208;1077:37:207;:15;1102:11;1077:24;:37::i;:::-;1072:112;;1131:46;;-1:-1:-1;;;1131:46:207;;;;;;;;;;;5591:103:268;5647:15;5677:12;5685:3;5677:7;:12::i;14379:339:245:-;14479:30;14545:19;;;-1:-1:-1;;;;;;;;;;;14545:19:245;;;;;-1:-1:-1;;;;;;;;;;;427:66:246;14545:54:245;;:32;;14587:11;14545:41;:54::i;:::-;14540:115;;14616:32;;-1:-1:-1;;;14616:32:245;;;;;;;;;;;14540:115;14661:19;;;;:11;;;:19;;;;;:52;;:32;;14701:11;14661:39;:52::i;:::-;;14473:245;14379:339;;:::o;14722:319::-;14805:30;14870:19;;;-1:-1:-1;;;;;;;;;;;14870:19:245;;;;;-1:-1:-1;;;;;;;;;;;427:66:246;14870:54:245;;:32;;14912:11;14870:41;:54::i;:::-;14866:115;;;14941:33;;-1:-1:-1;;;14941:33:245;;;;;;;;;;;14866:115;14987:19;;;;:11;;;:19;;;;;:49;;:32;;15024:11;14987:36;:49::i;4562:191:207:-;4664:29;4681:11;4664:16;:29::i;:::-;4699:49;;-1:-1:-1;;;4699:49:207;;;;;9949:25:419;;;-1:-1:-1;;;;;4699:43:207;;;;;9922:18:419;;4699:49:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4562:191;;:::o;605:128:269:-;673:4;:11;688:1;673:16;669:59;;698:30;;-1:-1:-1;;;698:30:269;;;;;;;;;;;4324:234:207;4455:29;4472:11;4455:16;:29::i;:::-;4490:63;;-1:-1:-1;;;4490:63:207;;-1:-1:-1;;;;;4490:40:207;;;;;:63;;4531:4;;4537:15;;4490:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:234;;;:::o;9967:126:245:-;10013:24;10052:36;:27;:34;:36::i;9486:477::-;9596:16;9772:19;;;-1:-1:-1;;;;;;;;;;;9772:19:245;;;;;9765:31;;9570:18;;9596:16;9570:18;;;;-1:-1:-1;;;;;;;;;;;427:66:246;9765:31:245;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9816:19:245;;;;:11;;;:19;;;;;:31;;;;9765;;-1:-1:-1;9816:31:245;;;;;-1:-1:-1;9867:40:245;;:31;;;-1:-1:-1;9867:38:245;;-1:-1:-1;9867:40:245:i;:::-;9853:54;;9928:30;9951:6;9928:22;:30::i;:::-;9913:45;;9698:265;9486:477;;;;;:::o;418:183:269:-;534:15;;519:4;;534:21;-1:-1:-1;530:66:269;;;564:32;;-1:-1:-1;;;564:32:269;;;;;;;;;;;530:66;483:118;418:183;;:::o;9125:159:245:-;-1:-1:-1;;;;;;;;;;;9263:12:245;;9174:14;;427:66:246;9263:16:245;;9278:1;9263:16;:::i;:::-;9256:23;;;9125:159;:::o;10700:726::-;-1:-1:-1;;;;;;;;;;;10955:14:245;;10863;;427:66:246;;;10863:14:245;;10955;;;:::i;:::-;;;;;-1:-1:-1;10955:14:245;-1:-1:-1;10976:20:245;:8;;;10955:14;10976:12;:20::i;:::-;-1:-1:-1;11002:19:245;;;;:11;;;:19;;;;;:35;11029:8;11002:19;:35;:::i;:::-;-1:-1:-1;11043:19:245;;;;:11;;;:19;;;;;:31;;:45;;-1:-1:-1;;11043:45:245;;;;;;;11095:42;11043:19;11125:11;11095:21;:42::i;:::-;11149:9;11144:278;11168:12;:19;11164:1;:23;11144:278;;;11281:1;-1:-1:-1;;;;;11245:38:245;11253:12;11266:1;11253:15;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;11245:38:245;;11241:104;;11302:34;;-1:-1:-1;;;11302:34:245;;;;;;;;;;;11241:104;11353:62;11398:12;11411:1;11398:15;;;;;;;;:::i;:::-;;;;;;;11353:2;:11;;:19;11365:6;11353:19;;;;;;;;;;;:32;;:36;;:62;;;;:::i;:::-;-1:-1:-1;11189:3:245;;11144:278;;;;10879:547;10700:726;;;;;;:::o;11101:135:371:-;11171:4;11194:35;11202:3;11222:5;11194:7;:35::i;4527:95:268:-;4583:7;4605:12;4613:3;2602:18;;2524:101;4942:127;5021:13;5049:15;5053:3;5058:5;5049:3;:15::i;4118:127::-;4202:4;4221:19;4229:3;4234:5;4221:7;:19::i;9574:156:371:-;9648:7;9698:22;9702:3;9714:5;9698:3;:22::i;8634:156::-;8707:4;8730:53;8738:3;-1:-1:-1;;;;;8758:23:371;;8730:7;:53::i;3252:796:196:-;3328:27;-1:-1:-1;;;;;;;;;;;3363:37:196;3467:27;370:66:197;3467:25:196;:27::i;:::-;3433:61;;3500:13;3551:23;-1:-1:-1;;;;;3537:38:196;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3537:38:196;;3524:51;;3587:9;3582:266;3606:23;3602:1;:27;3582:266;;;3641:17;3661:24;:7;3683:1;3661:21;:24::i;:::-;3698:35;;;;:24;;;:35;;;;;3641:44;;-1:-1:-1;3698:52:196;;3743:6;3698:44;:52::i;:::-;3694:108;;;3784:9;3762:10;3773:7;;;;:::i;:::-;;;3762:19;;;;;;;;:::i;:::-;;;;;;:31;;;;;3694:108;-1:-1:-1;3830:3:196;;3582:266;;;;3884:5;3858:23;:31;3854:190;;;4001:17;;3934:35;;;3997:32;;3978:52;;3854:190;3357:691;;;3252:796;;;:::o;4494:438::-;4575:29;4594:9;4575:18;:29::i;:::-;4610:34;4634:9;4610:23;:34::i;:::-;4650:37;4761:35;;;:24;:35;;;;;-1:-1:-1;;;;;;;;;;;370:66:197;4761:52:196;;4806:6;4761:44;:52::i;:::-;4756:115;;4830:34;;-1:-1:-1;;;4830:34:196;;;;;;;;;;;4756:115;4877:35;;;;:24;;;:35;;;;;:50;;4920:6;4877:42;:50::i;14229:146:245:-;14305:3;14299:17;14320:1;14299:22;14295:76;;14338:26;;-1:-1:-1;;;14338:26:245;;;;;;;;;;;4318:136:268;4409:4;4428:21;4438:3;4443:5;4428:9;:21::i;3855:109::-;3924:4;3943:16;3948:3;3953:5;3943:4;:16::i;717:189:107:-;779:67;;;;;;;;295:66:109;779:67:107;-1:-1:-1;;;;;779:67:107;;;;;;;;;;;;;859:42;;-1:-1:-1;;;859:42:107;;;;;9949:25:419;;;;859:42:107;;758:13;;859:30;;9922:18:419;;;;;859:42:107;;;;;;779:67;859:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1559:1252:189:-;1672:4;1684:13;1700:8;:6;:8::i;:::-;1684:24;;1715;1742:31;1768:4;1742:25;:31::i;:::-;1809:14;;1715:58;;-1:-1:-1;1779:27:189;1862:17;:15;:17::i;:::-;1911:19;;1830:49;;-1:-1:-1;1885:23:189;1937:320;1961:19;1957:1;:23;1937:320;;;1995:14;2012:7;2020:1;2012:10;;;;;;;;:::i;:::-;;;;;;;1995:27;;2045:5;-1:-1:-1;;;;;2035:15:189;:6;-1:-1:-1;;;;;2035:15:189;;2031:51;;2069:4;2062:11;;;;;;;;;;;2031:51;2120:9;2115:136;2135:15;2131:1;:19;2115:136;;;2200:6;-1:-1:-1;;;;;2171:35:189;:25;2180:12;2193:1;2180:15;;;;;;;;:::i;:::-;;;;;;;2171:8;:25::i;:::-;-1:-1:-1;;;;;2171:35:189;;2167:76;;2227:5;2220:12;;;;;;;;;;;;2167:76;2152:3;;2115:136;;;-1:-1:-1;;1982:3:189;;1937:320;;;-1:-1:-1;476:66:208;2301:44:189;2425:24;:15;:22;:24::i;:::-;2396:53;;2461:9;2456:332;2480:18;2476:1;:22;2456:332;;;2513:47;2563:2;2513:47;2596:21;:15;;;2615:1;2596:18;:21::i;:::-;-1:-1:-1;;;;;2563:62:189;;;;;;;;;;;;;;;;;-1:-1:-1;2563:62:189;2513:112;;;;;;;;;;;;;;;;-1:-1:-1;;;2513:112:189;;;;;;;;;;-1:-1:-1;;;2513:112:189;;;;;;;;;;;;2647:28;;-1:-1:-1;;;2647:28:189;;;;2513:112;;-1:-1:-1;2513:112:189;;2647:26;;:28;;;;;;;;;;;2513:112;2647:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2646:29;:97;;;;;2687:1;:13;;;-1:-1:-1;;;;;2687:24:189;;2712:9;2723:7;2732:10;2687:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2633:149;;;2769:4;2762:11;;;;;;;;;;;;;2633:149;-1:-1:-1;2500:3:189;;2456:332;;;-1:-1:-1;2801:5:189;;1559:1252;-1:-1:-1;;;;;;;;;;;1559:1252:189:o;8871:165:371:-;-1:-1:-1;;;;;9004:23:371;;8951:4;4360:21;;;:14;;;:21;;;;;;:26;;8974:55;4264:129;3597:102:268;3653:15;3683:3;:11;;3676:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3597:102;;;:::o;8316:150:371:-;8386:4;8409:50;8414:3;-1:-1:-1;;;;;8434:23:371;;8409:4;:50::i;12671:297::-;12731:16;12759:22;12784:19;12792:3;12784:7;:19::i;10804:129::-;10871:4;10894:32;10899:3;10919:5;10894:4;:32::i;2815:1368::-;2881:4;3010:21;;;:14;;;:21;;;;;;3046:13;;3042:1135;;3413:18;3434:12;3445:1;3434:8;:12;:::i;:::-;3480:18;;3413:33;;-1:-1:-1;3460:17:371;;3480:22;;3501:1;;3480:22;:::i;:::-;3460:42;;3535:9;3521:10;:23;3517:378;;3564:17;3584:3;:11;;3596:9;3584:22;;;;;;;;:::i;:::-;;;;;;;;;3564:42;;3731:9;3705:3;:11;;3717:10;3705:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;;3844:25;;;:14;;;:25;;;;;:36;;;3517:378;3973:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4076:3;:14;;:21;4091:5;4076:21;;;;;;;;;;;4069:28;;;4119:4;4112:11;;;;;;;3042:1135;4161:5;4154:12;;;;;2945:130:268;3024:13;3052:3;:11;;3064:5;3052:18;;;;;;;;:::i;:::-;;;;;;;;3045:25;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2945:130;;;;:::o;973:1266::-;1057:4;1165:18;1186:3;:12;;1199:5;1186:19;;;;;;:::i;:::-;;;;;;;;;;;;;;1165:40;;1216:10;1230:1;1216:15;1212:1023;;1555:21;1579:14;1592:1;1579:10;:14;:::i;:::-;1621:18;;1555:38;;-1:-1:-1;1601:17:268;;1621:22;;1642:1;;1621:22;:::i;:::-;1601:42;;1669:13;1656:9;:26;1652:358;;1694:23;1720:3;:11;;1732:9;1720:22;;;;;;;;:::i;:::-;;;;;;;;1694:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1855:9;1826:3;:11;;1838:13;1826:26;;;;;;;;:::i;:::-;;;;;;;;:38;;;;;;:::i;:::-;;1948:10;1922:3;:12;;1935:9;1922:23;;;;;;:::i;:::-;;;;;;;;;;;;;;:36;-1:-1:-1;1652:358:268;2076:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;2156:3;:12;;2169:5;2156:19;;;;;;:::i;:::-;;;;;;;;;;;;;2149:26;;;2191:4;2184:11;;;;;;;4923:118:371;4990:7;5016:3;:11;;5028:5;5016:18;;;;;;;;:::i;:::-;;;;;;;;;5009:25;;4923:118;;;;:::o;5848:224:196:-;5953:54;-1:-1:-1;;;;;;;;;;;5997:9:196;5953:43;:54::i;:::-;5948:120;;6024:37;;-1:-1:-1;;;6024:37:196;;;;;;;;;;;5376:246;5448:37;5522:30;;;:19;:30;;;;;:39;;;-1:-1:-1;;;;;;;;;;;370:66:197;5522:39:196;;5518:100;;;5578:33;;-1:-1:-1;;;5578:33:196;;;;;;;;;;;2312:139:268;2403:4;2422:3;:12;;2435:5;2422:19;;;;;;:::i;:::-;;;;;;;;;;;;;;;:24;;;2312:139;-1:-1:-1;;;2312:139:268:o;459:360::-;528:4;545:21;555:3;560:5;545:9;:21::i;:::-;540:275;;576:23;;;;;;;:11;:23;;;;;;;;593:5;576:23;;:::i;:::-;-1:-1:-1;738:18:268;;716:19;;:12;;;;:19;;729:5;;716:19;:::i;:::-;;;;;;;;;;;;;;:40;-1:-1:-1;771:4:268;764:11;;540:275;-1:-1:-1;803:5:268;796:12;;4541:861:189;4624:16;4648:14;287:66:223;4677:39:189;;;4756:31;;-1:-1:-1;;;4756:31:189;;-1:-1:-1;;;;;18871:32:419;;;4756:31:189;;;18853:51:419;4677:39:189;;;;-1:-1:-1;4677:39:189;;;;4756:22;;18826:18:419;;4756:31:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4756:31:189;;;;;;;;;;;;:::i;:::-;4908;;-1:-1:-1;;;4908:31:189;;-1:-1:-1;;;;;18871:32:419;;;4908:31:189;;;18853:51:419;4723:64:189;;-1:-1:-1;4881:24:189;;4908:22;;;;;18826:18:419;;4908:31:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4881:58;;4949:13;:20;4973:1;4949:25;:59;;;;-1:-1:-1;;;;;;4978:30:189;;;;4949:59;4945:161;;;5068:31;;-1:-1:-1;;;5068:31:189;;-1:-1:-1;;;;;18871:32:419;;;5068:31:189;;;18853:51:419;5028:16:189;;-1:-1:-1;5028:16:189;;5068:22;;;;;18826:18:419;;5068:31:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5068:31:189;;;;;;;;;;;;:::i;:::-;5052:47;;4945:161;5142:20;;5112:27;5210:23;5142:20;5232:1;5210:23;:::i;:::-;-1:-1:-1;;;;;5196:38:189;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5196:38:189;;5169:65;;5245:9;5240:94;5264:19;5260:1;:23;5240:94;;;5311:13;5325:1;5311:16;;;;;;;;:::i;:::-;;;;;;;5298:7;5306:1;5298:10;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5298:29:189;;;:10;;;;;;;;;;;:29;5285:3;;5240:94;;;;5370:7;5339;5347:19;5339:28;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5339:38:189;;;:28;;;;;;;;;;;:38;5390:7;4541:861;-1:-1:-1;;;;;;4541:861:189:o;1221:128:192:-;1271:16;1302:42;370:66:193;1302:40:192;:42::i;22038:138:129:-;22104:7;22142:27;22161:7;22142:18;:27::i;2241:406:371:-;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:371;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;5581:109;5637:16;5672:3;:11;;5665:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:109;;;:::o;7829:1501:129:-;7967:32;8043:29;;;:20;:29;;;;;;;293:66:131;;-1:-1:-1;;;8108:24:129;;:29;;8104:1172;;8229:6;8239:1;8229:11;8225:791;;8269:16;;8258:27;;8254:83;;8306:31;;-1:-1:-1;;;8306:31:129;;;;;;;;;;;8254:83;8824:182;-1:-1:-1;;8903:9:129;;;8882:31;;;;:20;;;:31;;;;;;8903:9;;8882:31;;-1:-1:-1;8941:25:129;;8824:182;8941:25;;8980:13;7829:1501;;;:::o;8104:1172::-;7959:1323;9294:31;;-1:-1:-1;;;9294:31:129;;;;;;;;;;;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;14:348:419;66:8;76:6;130:3;123:4;115:6;111:17;107:27;97:55;;148:1;145;138:12;97:55;-1:-1:-1;171:20:419;;-1:-1:-1;;;;;203:30:419;;200:50;;;246:1;243;236:12;200:50;283:4;275:6;271:17;259:29;;335:3;328:4;319:6;311;307:19;303:30;300:39;297:59;;;352:1;349;342:12;297:59;14:348;;;;;:::o;367:127::-;428:10;423:3;419:20;416:1;409:31;459:4;456:1;449:15;483:4;480:1;473:15;499:275;570:2;564:9;635:2;616:13;;-1:-1:-1;;612:27:419;600:40;;-1:-1:-1;;;;;655:34:419;;691:22;;;652:62;649:88;;;717:18;;:::i;:::-;753:2;746:22;499:275;;-1:-1:-1;499:275:419:o;779:182::-;838:4;-1:-1:-1;;;;;863:6:419;860:30;857:56;;;893:18;;:::i;:::-;-1:-1:-1;938:1:419;934:14;950:4;930:25;;779:182::o;966:407::-;1031:5;-1:-1:-1;;;;;1057:6:419;1054:30;1051:56;;;1087:18;;:::i;:::-;1125:57;1170:2;1149:15;;-1:-1:-1;;1145:29:419;1176:4;1141:40;1125:57;:::i;:::-;1116:66;;1205:6;1198:5;1191:21;1245:3;1236:6;1231:3;1227:16;1224:25;1221:45;;;1262:1;1259;1252:12;1221:45;1311:6;1306:3;1299:4;1292:5;1288:16;1275:43;1365:1;1358:4;1349:6;1342:5;1338:18;1334:29;1327:40;966:407;;;;;:::o;1378:1088::-;1431:5;1484:3;1477:4;1469:6;1465:17;1461:27;1451:55;;1502:1;1499;1492:12;1451:55;1538:6;1525:20;1564:4;1588:59;1604:42;1643:2;1604:42;:::i;:::-;1588:59;:::i;:::-;1681:15;;;1767:1;1763:10;;;;1751:23;;1747:32;;;1712:12;;;;1791:15;;;1788:35;;;1819:1;1816;1809:12;1788:35;1855:2;1847:6;1843:15;1867:570;1883:6;1878:3;1875:15;1867:570;;;1969:3;1956:17;-1:-1:-1;;;;;1992:11:419;1989:35;1986:125;;;2065:1;2094:2;2090;2083:14;1986:125;2134:24;;2193:2;2185:11;;2181:21;-1:-1:-1;2171:119:419;;2244:1;2273:2;2269;2262:14;2171:119;2315:79;2390:3;2384:2;2380;2376:11;2363:25;2358:2;2354;2350:11;2315:79;:::i;:::-;2303:92;;-1:-1:-1;2415:12:419;;;;1900;;1867:570;;;-1:-1:-1;2455:5:419;1378:1088;-1:-1:-1;;;;;;1378:1088:419:o;2471:145::-;-1:-1:-1;;;;;2560:31:419;;2550:42;;2540:70;;2606:1;2603;2596:12;2621:831;2685:5;2733:4;2721:9;2716:3;2712:19;2708:30;2705:50;;;2751:1;2748;2741:12;2705:50;2784:4;2778:11;2828:4;2820:6;2816:17;-1:-1:-1;;;;;2920:6:419;2908:10;2905:22;2900:2;2888:10;2885:18;2882:46;2879:72;;;2931:18;;:::i;:::-;2973:10;2967:4;2960:24;3002:6;2993:15;;3045:9;3032:23;3017:38;;3064:47;3103:7;3064:47;:::i;:::-;3120:23;;;3194:2;3179:18;;3166:32;;3210:14;;;3207:34;;;3237:1;3234;3227:12;3207:34;-1:-1:-1;3260:22:419;;3313:4;3305:13;;3301:23;-1:-1:-1;3291:51:419;;3338:1;3335;3328:12;3291:51;3375:70;3441:3;3436:2;3423:16;3418:2;3414;3410:11;3375:70;:::i;:::-;3370:2;3362:6;3358:15;3351:95;;;2621:831;;;;:::o;3457:923::-;3528:5;3581:3;3574:4;3566:6;3562:17;3558:27;3548:55;;3599:1;3596;3589:12;3548:55;3635:6;3622:20;3661:4;3685:59;3701:42;3740:2;3701:42;:::i;3685:59::-;3778:15;;;3864:1;3860:10;;;;3848:23;;3844:32;;;3809:12;;;;3888:15;;;3885:35;;;3916:1;3913;3906:12;3885:35;3952:2;3944:6;3940:15;3964:387;3980:6;3975:3;3972:15;3964:387;;;4066:3;4053:17;-1:-1:-1;;;;;4089:11:419;4086:35;4083:125;;;4162:1;4191:2;4187;4180:14;4083:125;4233:75;4304:3;4299:2;4285:11;4277:6;4273:24;4269:33;4233:75;:::i;:::-;4221:88;;-1:-1:-1;4329:12:419;;;;3997;;3964:387;;4385:1015;4579:6;4587;4595;4603;4611;4664:3;4652:9;4643:7;4639:23;4635:33;4632:53;;;4681:1;4678;4671:12;4632:53;4717:9;4704:23;4694:33;;4778:2;4767:9;4763:18;4750:32;-1:-1:-1;;;;;4842:2:419;4834:6;4831:14;4828:34;;;4858:1;4855;4848:12;4828:34;4897:59;4948:7;4939:6;4928:9;4924:22;4897:59;:::i;:::-;4975:8;;-1:-1:-1;4871:85:419;-1:-1:-1;5063:2:419;5048:18;;5035:32;;-1:-1:-1;5079:16:419;;;5076:36;;;5108:1;5105;5098:12;5076:36;5131:62;5185:7;5174:8;5163:9;5159:24;5131:62;:::i;:::-;5121:72;;5246:2;5235:9;5231:18;5218:32;5202:48;;5275:2;5265:8;5262:16;5259:36;;;5291:1;5288;5281:12;5259:36;;5314:80;5386:7;5375:8;5364:9;5360:24;5314:80;:::i;:::-;5304:90;;;4385:1015;;;;;;;;:::o;5405:250::-;5490:1;5500:113;5514:6;5511:1;5508:13;5500:113;;;5590:11;;;5584:18;5571:11;;;5564:39;5536:2;5529:10;5500:113;;;-1:-1:-1;;5647:1:419;5629:16;;5622:27;5405:250::o;5660:271::-;5702:3;5740:5;5734:12;5767:6;5762:3;5755:19;5783:76;5852:6;5845:4;5840:3;5836:14;5829:4;5822:5;5818:16;5783:76;:::i;:::-;5913:2;5892:15;-1:-1:-1;;5888:29:419;5879:39;;;;5920:4;5875:50;;5660:271;-1:-1:-1;;5660:271:419:o;5936:479::-;6003:3;6041:5;6035:12;6068:6;6063:3;6056:19;6094:4;6123;6118:3;6114:14;6107:21;;6162:4;6155:5;6151:16;6185:1;6195:195;6209:6;6206:1;6203:13;6195:195;;;6274:13;;-1:-1:-1;;;;;6270:39:419;6258:52;;6330:12;;;;6365:15;;;;6306:1;6224:9;6195:195;;;-1:-1:-1;6406:3:419;;5936:479;-1:-1:-1;;;;;5936:479:419:o;6420:1147::-;6503:5;6497:12;6492:3;6485:25;6467:3;6529:4;6579:2;6572:5;6568:14;6562:21;6613:4;6608:2;6603:3;6599:12;6592:26;6639:47;6680:4;6675:3;6671:14;6657:12;6639:47;:::i;:::-;6627:59;;6749:4;6742:5;6738:16;6732:23;6725:31;6718:39;6711:4;6706:3;6702:14;6695:63;6806:4;6799:5;6795:16;6789:23;6854:3;6848:4;6844:14;6837:4;6832:3;6828:14;6821:38;6881:4;6914:14;6908:21;6951:6;6945:4;6938:20;6986:2;6980:4;6976:13;6967:22;;7043:2;7033:6;7030:1;7026:14;7020:4;7016:25;7012:34;7089:2;7073:14;7069:23;7055:37;;7110:1;7120:256;7134:6;7131:1;7128:13;7120:256;;;7224:2;7220:7;7213:4;7205:6;7201:17;7197:31;7190:5;7183:46;7252:40;7285:6;7276;7270:13;7252:40;:::i;:::-;7315:15;;;;7352:14;;;;7242:50;-1:-1:-1;7156:1:419;7149:9;7120:256;;;7124:3;7424:4;7417:5;7413:16;7407:23;7385:45;;7474:3;7466:6;7462:16;7455:4;7450:3;7446:14;7439:40;7495:66;7554:6;7538:14;7495:66;:::i;:::-;7488:73;6420:1147;-1:-1:-1;;;;;;;;;6420:1147:419:o;7572:834::-;7760:4;7789:2;7829;7818:9;7814:18;7859:2;7848:9;7841:21;7882:6;7917;7911:13;7948:6;7940;7933:22;7986:2;7975:9;7971:18;7964:25;;8048:2;8038:6;8035:1;8031:14;8020:9;8016:30;8012:39;7998:53;;8086:2;8078:6;8074:15;8107:1;8117:260;8131:6;8128:1;8125:13;8117:260;;;8224:2;8220:7;8208:9;8200:6;8196:22;8192:36;8187:3;8180:49;8252:45;8290:6;8281;8275:13;8252:45;:::i;:::-;8242:55;-1:-1:-1;8355:12:419;;;;8320:15;;;;8153:1;8146:9;8117:260;;;-1:-1:-1;8394:6:419;;7572:834;-1:-1:-1;;;;;;;7572:834:419:o;8411:180::-;8470:6;8523:2;8511:9;8502:7;8498:23;8494:32;8491:52;;;8539:1;8536;8529:12;8491:52;-1:-1:-1;8562:23:419;;8411:180;-1:-1:-1;8411:180:419:o;8596:251::-;8771:2;8760:9;8753:21;8734:4;8791:50;8837:2;8826:9;8822:18;8814:6;8791:50;:::i;8852:946::-;9037:6;9045;9053;9061;9114:2;9102:9;9093:7;9089:23;9085:32;9082:52;;;9130:1;9127;9120:12;9082:52;9170:9;9157:23;-1:-1:-1;;;;;9240:2:419;9232:6;9229:14;9226:34;;;9256:1;9253;9246:12;9226:34;9295:59;9346:7;9337:6;9326:9;9322:22;9295:59;:::i;:::-;9373:8;;-1:-1:-1;9269:85:419;-1:-1:-1;9461:2:419;9446:18;;9433:32;;-1:-1:-1;9477:16:419;;;9474:36;;;9506:1;9503;9496:12;9474:36;9529:62;9583:7;9572:8;9561:9;9557:24;9529:62;:::i;:::-;9519:72;;9644:2;9633:9;9629:18;9616:32;9600:48;;9673:2;9663:8;9660:16;9657:36;;;9689:1;9686;9679:12;9657:36;;9712:80;9784:7;9773:8;9762:9;9758:24;9712:80;:::i;:::-;9702:90;;;8852:946;;;;;;;:::o;9985:425::-;10088:6;10096;10149:2;10137:9;10128:7;10124:23;10120:32;10117:52;;;10165:1;10162;10155:12;10117:52;10201:9;10188:23;10178:33;;10262:2;10251:9;10247:18;10234:32;-1:-1:-1;;;;;10281:6:419;10278:30;10275:50;;;10321:1;10318;10311:12;10275:50;10344:60;10396:7;10387:6;10376:9;10372:22;10344:60;:::i;:::-;10334:70;;;9985:425;;;;;:::o;10415:803::-;10577:4;10606:2;10646;10635:9;10631:18;10676:2;10665:9;10658:21;10699:6;10734;10728:13;10765:6;10757;10750:22;10803:2;10792:9;10788:18;10781:25;;10865:2;10855:6;10852:1;10848:14;10837:9;10833:30;10829:39;10815:53;;10903:2;10895:6;10891:15;10924:1;10934:255;10948:6;10945:1;10942:13;10934:255;;;11041:2;11037:7;11025:9;11017:6;11013:22;11009:36;11004:3;10997:49;11069:40;11102:6;11093;11087:13;11069:40;:::i;:::-;11059:50;-1:-1:-1;11167:12:419;;;;11132:15;;;;10970:1;10963:9;10934:255;;11223:434;11327:6;11335;11388:2;11376:9;11367:7;11363:23;11359:32;11356:52;;;11404:1;11401;11394:12;11356:52;11440:9;11427:23;11417:33;;11501:2;11490:9;11486:18;11473:32;-1:-1:-1;;;;;11520:6:419;11517:30;11514:50;;;11560:1;11557;11550:12;11514:50;11583:68;11643:7;11634:6;11623:9;11619:22;11583:68;:::i;11662:127::-;11723:10;11718:3;11714:20;11711:1;11704:31;11754:4;11751:1;11744:15;11778:4;11775:1;11768:15;11794:380;11873:1;11869:12;;;;11916;;;11937:61;;11991:4;11983:6;11979:17;11969:27;;11937:61;12044:2;12036:6;12033:14;12013:18;12010:38;12007:161;;12090:10;12085:3;12081:20;12078:1;12071:31;12125:4;12122:1;12115:15;12153:4;12150:1;12143:15;12305:543;12407:2;12402:3;12399:11;12396:446;;;12443:1;12467:5;12464:1;12457:16;12511:4;12508:1;12498:18;12581:2;12569:10;12565:19;12562:1;12558:27;12552:4;12548:38;12617:4;12605:10;12602:20;12599:47;;;-1:-1:-1;12640:4:419;12599:47;12695:2;12690:3;12686:12;12683:1;12679:20;12673:4;12669:31;12659:41;;12750:82;12768:2;12761:5;12758:13;12750:82;;;12813:17;;;12794:1;12783:13;12750:82;;13024:1206;-1:-1:-1;;;;;13143:3:419;13140:27;13137:53;;;13170:18;;:::i;:::-;13199:94;13289:3;13249:38;13281:4;13275:11;13249:38;:::i;:::-;13243:4;13199:94;:::i;:::-;13319:1;13344:2;13339:3;13336:11;13361:1;13356:616;;;;14016:1;14033:3;14030:93;;;-1:-1:-1;14089:19:419;;;14076:33;14030:93;-1:-1:-1;;12981:1:419;12977:11;;;12973:24;12969:29;12959:40;13005:1;13001:11;;;12956:57;14136:78;;13329:895;;13356:616;12252:1;12245:14;;;12289:4;12276:18;;-1:-1:-1;;13392:17:419;;;13493:9;13515:229;13529:7;13526:1;13523:14;13515:229;;;13618:19;;;13605:33;13590:49;;13725:4;13710:20;;;;13678:1;13666:14;;;;13545:12;13515:229;;;13519:3;13772;13763:7;13760:16;13757:159;;;13896:1;13892:6;13886:3;13880;13877:1;13873:11;13869:21;13865:34;13861:39;13848:9;13843:3;13839:19;13826:33;13822:79;13814:6;13807:95;13757:159;;;13959:1;13953:3;13950:1;13946:11;13942:19;13936:4;13929:33;13329:895;;13024:1206;;;:::o;14235:1345::-;14361:3;14355:10;-1:-1:-1;;;;;14380:6:419;14377:30;14374:56;;;14410:18;;:::i;:::-;14439:97;14529:6;14489:38;14521:4;14515:11;14489:38;:::i;:::-;14483:4;14439:97;:::i;:::-;14591:4;;14648:2;14637:14;;14665:1;14660:663;;;;15367:1;15384:6;15381:89;;;-1:-1:-1;15436:19:419;;;15430:26;15381:89;-1:-1:-1;;12981:1:419;12977:11;;;12973:24;12969:29;12959:40;13005:1;13001:11;;;12956:57;15483:81;;14630:944;;14660:663;12252:1;12245:14;;;12289:4;12276:18;;-1:-1:-1;;14696:20:419;;;14814:236;14828:7;14825:1;14822:14;14814:236;;;14917:19;;;14911:26;14896:42;;15009:27;;;;14977:1;14965:14;;;;14844:19;;14814:236;;;14818:3;15078:6;15069:7;15066:19;15063:201;;;15139:19;;;15133:26;-1:-1:-1;;15222:1:419;15218:14;;;15234:3;15214:24;15210:37;15206:42;15191:58;15176:74;;15063:201;-1:-1:-1;;;;;15310:1:419;15294:14;;;15290:22;15277:36;;-1:-1:-1;14235:1345:419:o;15585:289::-;15716:3;15754:6;15748:13;15770:66;15829:6;15824:3;15817:4;15809:6;15805:17;15770:66;:::i;:::-;15852:16;;;;;15585:289;-1:-1:-1;;15585:289:419:o;15879:297::-;15997:12;;16044:4;16033:16;;;16027:23;;15997:12;16062:16;;16059:111;;;-1:-1:-1;;16136:4:419;16132:17;;;;16129:1;16125:25;16121:38;16110:50;;15879:297;-1:-1:-1;15879:297:419:o;16388:277::-;16455:6;16508:2;16496:9;16487:7;16483:23;16479:32;16476:52;;;16524:1;16521;16514:12;16476:52;16556:9;16550:16;16609:5;16602:13;16595:21;16588:5;16585:32;16575:60;;16631:1;16628;16621:12;16670:289;16845:6;16834:9;16827:25;16888:2;16883;16872:9;16868:18;16861:30;16808:4;16908:45;16949:2;16938:9;16934:18;16926:6;16908:45;:::i;16964:127::-;17025:10;17020:3;17016:20;17013:1;17006:31;17056:4;17053:1;17046:15;17080:4;17077:1;17070:15;17096:125;17161:9;;;17182:10;;;17179:36;;;17195:18;;:::i;17226:135::-;17265:3;17286:17;;;17283:43;;17306:18;;:::i;:::-;-1:-1:-1;17353:1:419;17342:13;;17226:135::o;17366:265::-;17436:6;17489:2;17477:9;17468:7;17464:23;17460:32;17457:52;;;17505:1;17502;17495:12;17457:52;17537:9;17531:16;17556:45;17595:5;17556:45;:::i;17636:801::-;17834:4;17882:2;17871:9;17867:18;17912:6;17901:9;17894:25;17938:2;17976;17971;17960:9;17956:18;17949:30;17999:6;18034;18028:13;18065:6;18057;18050:22;18103:3;18092:9;18088:19;18081:26;;18142:2;18134:6;18130:15;18116:29;;18163:1;18173:195;18187:6;18184:1;18181:13;18173:195;;;18252:13;;-1:-1:-1;;;;;18248:39:419;18236:52;;18343:15;;;;18308:12;;;;18284:1;18202:9;18173:195;;;18177:3;;18385;18377:11;;;;;18424:6;18419:2;18408:9;18404:18;18397:34;17636:801;;;;;;:::o;18442:128::-;18509:9;;;18530:11;;;18527:37;;;18544:18;;:::i;18575:127::-;18636:10;18631:3;18627:20;18624:1;18617:31;18667:4;18664:1;18657:15;18691:4;18688:1;18681:15;18915:969;19010:6;19041:2;19084;19072:9;19063:7;19059:23;19055:32;19052:52;;;19100:1;19097;19090:12;19052:52;19133:9;19127:16;-1:-1:-1;;;;;19158:6:419;19155:30;19152:50;;;19198:1;19195;19188:12;19152:50;19221:22;;19274:4;19266:13;;19262:27;-1:-1:-1;19252:55:419;;19303:1;19300;19293:12;19252:55;19332:2;19326:9;19355:59;19371:42;19410:2;19371:42;:::i;19355:59::-;19448:15;;;19530:1;19526:10;;;;19518:19;;19514:28;;;19479:12;;;;19554:19;;;19551:39;;;19586:1;19583;19576:12;19551:39;19610:11;;;;19630:224;19646:6;19641:3;19638:15;19630:224;;;19719:3;19713:10;19736:45;19775:5;19736:45;:::i;:::-;19794:18;;19663:12;;;;19832;;;;19630:224;;;19873:5;18915:969;-1:-1:-1;;;;;;;18915:969:419:o","linkReferences":{}},"methodIdentifiers":{"addPermissionsToRole(uint256,string[])":"b7515761","addRoleToEntitlement(uint256,(address,bytes))":"ba201ba8","createRole(string,string[],(address,bytes)[])":"8fcd793d","getPermissionsByRoleId(uint256)":"b4264233","getRoleById(uint256)":"784c872b","getRoles()":"71061398","removePermissionsFromRole(uint256,string[])":"9a8e4c3e","removeRole(uint256)":"92691821","removeRoleFromEntitlement(uint256,(address,bytes))":"dba81864","updateRole(uint256,string,string[],(address,bytes)[])":"4d8b50a2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__AlreadyBanned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banning__CannotBanOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banning__CannotBanSelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__NotBanned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__ChannelDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__ChannelDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__RoleDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC5643__DurationZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC5643__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC5643__NotApprovedOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC5643__SubscriptionNotRenewable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__ValueAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementsService__EntitlementDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementsService__InvalidEntitlementAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementsService__InvalidEntitlementInterface\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintERC2309QuantityExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintZeroQuantity\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Ownable__NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Ownable__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnershipNotInitializedForExtraData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__NotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__Paused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__EntitlementAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__EntitlementDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__InvalidEntitlementAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__InvalidPermission\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__PermissionAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__PermissionDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__RoleDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"URIQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Validator__InvalidByteLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Validator__InvalidStringLength\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"moderator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"ConsecutiveTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"RoleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remover\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"RoleRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"updater\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"RoleUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"expiration\",\"type\":\"uint64\"}],\"name\":\"SubscriptionUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"moderator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Unbanned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"}],\"name\":\"addPermissionsToRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"contract IEntitlement\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IRolesBase.CreateEntitlement\",\"name\":\"entitlement\",\"type\":\"tuple\"}],\"name\":\"addRoleToEntitlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"roleName\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"contract IEntitlement\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IRolesBase.CreateEntitlement[]\",\"name\":\"entitlements\",\"type\":\"tuple[]\"}],\"name\":\"createRole\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getPermissionsByRoleId\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getRoleById\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"disabled\",\"type\":\"bool\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"},{\"internalType\":\"contract IEntitlement[]\",\"name\":\"entitlements\",\"type\":\"address[]\"}],\"internalType\":\"struct IRolesBase.Role\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRoles\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"disabled\",\"type\":\"bool\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"},{\"internalType\":\"contract IEntitlement[]\",\"name\":\"entitlements\",\"type\":\"address[]\"}],\"internalType\":\"struct IRolesBase.Role[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"}],\"name\":\"removePermissionsFromRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"removeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"contract IEntitlement\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IRolesBase.CreateEntitlement\",\"name\":\"entitlement\",\"type\":\"tuple\"}],\"name\":\"removeRoleFromEntitlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"roleName\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"contract IEntitlement\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IRolesBase.CreateEntitlement[]\",\"name\":\"entitlements\",\"type\":\"tuple[]\"}],\"name\":\"updateRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"ConsecutiveTransfer(uint256,uint256,address,address)\":{\"details\":\"Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, as defined in the [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. See {_mintERC2309} for more details.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"This emits when ownership of a contract changes.\"},\"SubscriptionUpdate(uint256,uint64)\":{\"details\":\"When a subscription is canceled, the expiration value should also be 0.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"ApprovalCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"ApprovalQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"BalanceQueryForZeroAddress()\":[{\"notice\":\"Cannot query the balance for the zero address.\"}],\"MintERC2309QuantityExceedsLimit()\":[{\"notice\":\"The `quantity` minted with ERC2309 exceeds the safety limit.\"}],\"MintToZeroAddress()\":[{\"notice\":\"Cannot mint to the zero address.\"}],\"MintZeroQuantity()\":[{\"notice\":\"The quantity of tokens minted must be more than zero.\"}],\"OwnerQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"OwnershipNotInitializedForExtraData()\":[{\"notice\":\"The `extraData` cannot be set on an unintialized ownership slot.\"}],\"TransferCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"TransferFromIncorrectOwner()\":[{\"notice\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"notice\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"notice\":\"Cannot transfer to the zero address.\"}],\"URIQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}]},\"events\":{\"SubscriptionUpdate(uint256,uint64)\":{\"notice\":\"Emitted when a subscription expiration changes\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/facets/roles/Roles.sol\":\"Roles\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/ownable/IERC173.sol\":{\"keccak256\":\"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b\",\"dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd\"]},\"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol\":{\"keccak256\":\"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb\",\"dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol\":{\"keccak256\":\"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb\",\"dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol\":{\"keccak256\":\"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf\",\"dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F\"]},\"contracts/src/diamond/facets/pausable/IPausable.sol\":{\"keccak256\":\"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684\",\"dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ\"]},\"contracts/src/diamond/facets/pausable/PausableBase.sol\":{\"keccak256\":\"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3\",\"dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V\"]},\"contracts/src/diamond/facets/pausable/PausableStorage.sol\":{\"keccak256\":\"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd\",\"dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj\"]},\"contracts/src/diamond/facets/token/ERC5643/ERC5643Base.sol\":{\"keccak256\":\"0x21d3c281732e54c93520a4f2cc72cc5af38c517f2a150ee67aa84704a3d78627\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ce7c061da0142a4d775bb85896410d363d4a28c0275d3171a70872344fc9a4\",\"dweb:/ipfs/Qmdwgs3TaC4b83JVn6RG5pJJdCrxb74ZMRqZbYSe5DuqZf\"]},\"contracts/src/diamond/facets/token/ERC5643/ERC5643Storage.sol\":{\"keccak256\":\"0x68cbff071e6a6a6b91b675af567616799435676fbbbebf4f9226e1226d6128b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2c7aee6ef32477733a50ba667cc510c8c165b9a9e146609b1f800acd0e4832\",\"dweb:/ipfs/QmcWAz74x3AR6kpzWdyPWw3iLQ1yHBT3ZVoK6jT7T3LwXq\"]},\"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol\":{\"keccak256\":\"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615\",\"dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol\":{\"keccak256\":\"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba\",\"dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol\":{\"keccak256\":\"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04\",\"dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey\"]},\"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol\":{\"keccak256\":\"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d\",\"dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz\"]},\"contracts/src/factory/facets/wallet-link/IWalletLink.sol\":{\"keccak256\":\"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0\",\"dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5\"]},\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/facets/Entitled.sol\":{\"keccak256\":\"0x90204085688bf4dd1e1b6ca30684ee37db79210070c405406898c8a77d50bfce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9b194cc9977b03fbccc81529147a0fce7857893c8146927570c1ee5a28aa900\",\"dweb:/ipfs/QmZMvPPj5ZPYaRQaSraBkv3PSMeUZ4wN1tQ9EVvwW6SL4r\"]},\"contracts/src/spaces/facets/Permissions.sol\":{\"keccak256\":\"0xaeec9c70d231be9debb15660bf6939746532d0012c80d5518e8207dd33653de2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bab7c5dd8f55f03f48d3908b8d6732b3e2d93f36312a0c3408ff10be258c165a\",\"dweb:/ipfs/QmevmAc6tzP3kFoH84cRtipSq4ryqbrP3H4VB8mRZgnRxn\"]},\"contracts/src/spaces/facets/banning/BanningBase.sol\":{\"keccak256\":\"0x38c44494221f96568f3efb540a8a6c7af141de95f25caf26df6e8a8333f31249\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1f509347cab5090655ff8272443d18f9716fea5ef27cd86269ccbd2570aa7e\",\"dweb:/ipfs/QmbF8StzLRGnVvVXWYBowvdULoPPqQkU5hZR548cnRzuVs\"]},\"contracts/src/spaces/facets/banning/BanningStorage.sol\":{\"keccak256\":\"0xcfbf5c113056e569abf23158853ff4877744b22a4bf2bf49a282d04dab23ab17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f825e97ca65c9cd3bd5885d2fa8b8e5f8f0dcbe227dec064abbbab645685fbe\",\"dweb:/ipfs/QmXAMntxrjzeNUKh9WcyHvzDmnV89vrJ9PkKRceqxJSxZp\"]},\"contracts/src/spaces/facets/banning/IBanning.sol\":{\"keccak256\":\"0x350ec182a95a86a41335979cd7212132858c5cfcd366602b2f6cd0ec0694b63e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb4ad0c5a1086c38448b3e279733f33edc0cc39648368e5cb43dfff139ff7e8\",\"dweb:/ipfs/QmWYfYE8Haqk9kBRxmLijfQSfqbfxf7LB3wQ24d3pG5PE3\"]},\"contracts/src/spaces/facets/channels/ChannelService.sol\":{\"keccak256\":\"0xdac0460cb66d31e57593154fb31ccd112dd1d51c34ea6e5ce316250ac5548abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56c99fa9d482bd02ea96a01e1a960e1678edbbc1a9580511f68543ca194f6fb5\",\"dweb:/ipfs/QmbUjxxkjLCGXVC3bNtWQDas2vJwUmS5NraTGwWiKJAXvH\"]},\"contracts/src/spaces/facets/channels/ChannelStorage.sol\":{\"keccak256\":\"0xeb4174513a652b1571b3a92cbefa80e9d450144e8d07bfb29c863d7d9de9313c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c3b73c84a2b4a56fcc8bd1fbaa0a8896a2dfc62a7fde07b13c6d8b05dcf8fe6\",\"dweb:/ipfs/QmRPukfmps5ESAR5saLNLJp6GEg1nNCTq5qChGeAjgtLV4\"]},\"contracts/src/spaces/facets/delegation/WalletLinkProxyBase.sol\":{\"keccak256\":\"0xffef403556b46744bd1833e5df57b02eb79e010841b16610e1740bc0dac929b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1afa30929e8c6b0c69528d328774c98789825a8de53e5945a1e95092bee2ad08\",\"dweb:/ipfs/QmTbCqLJTBHgcMuFwWSTbrgR7uaASJqwqYuku4YkGzTWW1\"]},\"contracts/src/spaces/facets/delegation/WalletLinkProxyStorage.sol\":{\"keccak256\":\"0x9667e475b9ad9f1130583840c9b0594a7512f7edd33163b926b3db21f70d9909\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6271ce56258b1e9150378872d250cfaeb4501b5d0288e8f19f02096114c687f\",\"dweb:/ipfs/QmXSBA2CpLL9BdvZb994JYStgB9fJfsHwgcke6gsD3zybW\"]},\"contracts/src/spaces/facets/entitlements/EntitlementsManagerService.sol\":{\"keccak256\":\"0x1c52a860e8d0c9d025cdd0e6490aa68e82f0e12450966ed182825299f10dbc54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e82770448781ca94e9f4bf02ac981f6bebc55b2553de7bb8f977bc7335b26d11\",\"dweb:/ipfs/QmSP1gnWqnWEJwf9eFYptd2v6M8kuTa7JzNKtG6DzkzoK6\"]},\"contracts/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol\":{\"keccak256\":\"0x688692231af49bcca80f7da97be12d448b0c20a4338d259d5f654b95c5b046ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be9964e110363bf68fb4bbb8ff230fecf8c26e695077910ba07163db57030a8e\",\"dweb:/ipfs/QmNS3eUqCQU7H48LtW6hrB9xPGy9DrKCqh7JKWsAtje5dK\"]},\"contracts/src/spaces/facets/membership/MembershipStorage.sol\":{\"keccak256\":\"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a\",\"dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa\"]},\"contracts/src/spaces/facets/roles/IRoles.sol\":{\"keccak256\":\"0xa69cfbcd989b8794187a56a93deffbefaee8ca456e381ce30f85897893c50272\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf8e9b2711f66eefb949f5b5ead4d72005f1845cd63f22b287fdba3339101bd4\",\"dweb:/ipfs/Qmf7sPY4BgmvZf7p4GBsyVyd4o66yJXMgAmEgpdQAQyBdx\"]},\"contracts/src/spaces/facets/roles/Roles.sol\":{\"keccak256\":\"0xc38c54e7ffc0068eea75329016ebfcef4b81f07af7f26464ebf84f693aeaa98a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://691911cbd5a6b35d1307d7bb18502ab27ab7267f0331a6f0a909bd24468958d1\",\"dweb:/ipfs/QmXAZqxXHatia3QfpSTPfASg2AW7PUHZxf7Kb1qYvMPKBC\"]},\"contracts/src/spaces/facets/roles/RolesBase.sol\":{\"keccak256\":\"0x0662c3457d1a192a6095677b9df680798cac335ec016244671d5e39004116881\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe07c240371cd47923c9fb6f49d9863df715e02cdeec180fda3f7808ea91f7a8\",\"dweb:/ipfs/QmWtiHY1XkwWjRjQ55x4xFh8Rz1xos26uYgZGkWh2KzSLo\"]},\"contracts/src/spaces/facets/roles/RolesStorage.sol\":{\"keccak256\":\"0xc000f429d628abed048b0f6fe015a0c1505f4880562a981da966cd1e9d44f729\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://202ca9557330508e576337b60cd145009d2ed9e609030ef6802eb704b79caf7f\",\"dweb:/ipfs/QmRcArv84PmEFbKX9aWFJiJetd3eFUKR2GAPJmJ9c57cwB\"]},\"contracts/src/utils/StringSet.sol\":{\"keccak256\":\"0x2b9880e846f275864e847e8c7079d29a02c4a060c5a9d580fb153ff0e7b49ff6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df9c170f28318746eab23befba1318735652c7d198e273a322a0ff2702680605\",\"dweb:/ipfs/QmanQQi9YiPHb9Cn4wpfQ9VYUi7UZ9iQibLL6V46JPibLu\"]},\"contracts/src/utils/Validator.sol\":{\"keccak256\":\"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306\",\"dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt\"]},\"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ApprovalCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"ApprovalQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"BalanceQueryForZeroAddress"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__AlreadyBanned"},{"inputs":[],"type":"error","name":"Banning__CannotBanOwner"},{"inputs":[],"type":"error","name":"Banning__CannotBanSelf"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__InvalidTokenId"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__NotBanned"},{"inputs":[],"type":"error","name":"ChannelService__ChannelDisabled"},{"inputs":[],"type":"error","name":"ChannelService__ChannelDoesNotExist"},{"inputs":[],"type":"error","name":"ChannelService__RoleDoesNotExist"},{"inputs":[],"type":"error","name":"ERC5643__DurationZero"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC5643__InvalidTokenId"},{"inputs":[],"type":"error","name":"ERC5643__NotApprovedOrOwner"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC5643__SubscriptionNotRenewable"},{"inputs":[],"type":"error","name":"Entitlement__InvalidValue"},{"inputs":[],"type":"error","name":"Entitlement__NotAllowed"},{"inputs":[],"type":"error","name":"Entitlement__NotMember"},{"inputs":[],"type":"error","name":"Entitlement__ValueAlreadyExists"},{"inputs":[],"type":"error","name":"EntitlementsService__EntitlementDoesNotExist"},{"inputs":[],"type":"error","name":"EntitlementsService__InvalidEntitlementAddress"},{"inputs":[],"type":"error","name":"EntitlementsService__InvalidEntitlementInterface"},{"inputs":[],"type":"error","name":"MintERC2309QuantityExceedsLimit"},{"inputs":[],"type":"error","name":"MintToZeroAddress"},{"inputs":[],"type":"error","name":"MintZeroQuantity"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"Ownable__NotOwner"},{"inputs":[],"type":"error","name":"Ownable__ZeroAddress"},{"inputs":[],"type":"error","name":"OwnerQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"OwnershipNotInitializedForExtraData"},{"inputs":[],"type":"error","name":"Pausable__NotPaused"},{"inputs":[],"type":"error","name":"Pausable__Paused"},{"inputs":[],"type":"error","name":"Roles__EntitlementAlreadyExists"},{"inputs":[],"type":"error","name":"Roles__EntitlementDoesNotExist"},{"inputs":[],"type":"error","name":"Roles__InvalidEntitlementAddress"},{"inputs":[],"type":"error","name":"Roles__InvalidPermission"},{"inputs":[],"type":"error","name":"Roles__PermissionAlreadyExists"},{"inputs":[],"type":"error","name":"Roles__PermissionDoesNotExist"},{"inputs":[],"type":"error","name":"Roles__RoleDoesNotExist"},{"inputs":[],"type":"error","name":"TransferCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"TransferFromIncorrectOwner"},{"inputs":[],"type":"error","name":"TransferToNonERC721ReceiverImplementer"},{"inputs":[],"type":"error","name":"TransferToZeroAddress"},{"inputs":[],"type":"error","name":"URIQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"Validator__InvalidByteLength"},{"inputs":[],"type":"error","name":"Validator__InvalidStringLength"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"moderator","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Banned","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"toTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"ConsecutiveTransfer","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":true},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":true}],"type":"event","name":"RoleCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"remover","type":"address","indexed":true},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":true}],"type":"event","name":"RoleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"updater","type":"address","indexed":true},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":true}],"type":"event","name":"RoleUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint64","name":"expiration","type":"uint64","indexed":false}],"type":"event","name":"SubscriptionUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"moderator","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Unbanned","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"string[]","name":"permissions","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"addPermissionsToRole"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"struct IRolesBase.CreateEntitlement","name":"entitlement","type":"tuple","components":[{"internalType":"contract IEntitlement","name":"module","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"addRoleToEntitlement"},{"inputs":[{"internalType":"string","name":"roleName","type":"string"},{"internalType":"string[]","name":"permissions","type":"string[]"},{"internalType":"struct IRolesBase.CreateEntitlement[]","name":"entitlements","type":"tuple[]","components":[{"internalType":"contract IEntitlement","name":"module","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"createRole","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPermissionsByRoleId","outputs":[{"internalType":"string[]","name":"permissions","type":"string[]"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRoleById","outputs":[{"internalType":"struct IRolesBase.Role","name":"","type":"tuple","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"disabled","type":"bool"},{"internalType":"string[]","name":"permissions","type":"string[]"},{"internalType":"contract IEntitlement[]","name":"entitlements","type":"address[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRoles","outputs":[{"internalType":"struct IRolesBase.Role[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"disabled","type":"bool"},{"internalType":"string[]","name":"permissions","type":"string[]"},{"internalType":"contract IEntitlement[]","name":"entitlements","type":"address[]"}]}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"string[]","name":"permissions","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"removePermissionsFromRole"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeRole"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"struct IRolesBase.CreateEntitlement","name":"entitlement","type":"tuple","components":[{"internalType":"contract IEntitlement","name":"module","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"removeRoleFromEntitlement"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"string","name":"roleName","type":"string"},{"internalType":"string[]","name":"permissions","type":"string[]"},{"internalType":"struct IRolesBase.CreateEntitlement[]","name":"entitlements","type":"tuple[]","components":[{"internalType":"contract IEntitlement","name":"module","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"updateRole"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/facets/roles/Roles.sol":"Roles"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/ownable/IERC173.sol":{"keccak256":"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303","urls":["bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b","dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol":{"keccak256":"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816","urls":["bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb","dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol":{"keccak256":"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4","urls":["bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb","dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol":{"keccak256":"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479","urls":["bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf","dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F"],"license":"MIT"},"contracts/src/diamond/facets/pausable/IPausable.sol":{"keccak256":"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1","urls":["bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684","dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableBase.sol":{"keccak256":"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0","urls":["bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3","dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableStorage.sol":{"keccak256":"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f","urls":["bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd","dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/ERC5643Base.sol":{"keccak256":"0x21d3c281732e54c93520a4f2cc72cc5af38c517f2a150ee67aa84704a3d78627","urls":["bzz-raw://52ce7c061da0142a4d775bb85896410d363d4a28c0275d3171a70872344fc9a4","dweb:/ipfs/Qmdwgs3TaC4b83JVn6RG5pJJdCrxb74ZMRqZbYSe5DuqZf"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/ERC5643Storage.sol":{"keccak256":"0x68cbff071e6a6a6b91b675af567616799435676fbbbebf4f9226e1226d6128b2","urls":["bzz-raw://2e2c7aee6ef32477733a50ba667cc510c8c165b9a9e146609b1f800acd0e4832","dweb:/ipfs/QmcWAz74x3AR6kpzWdyPWw3iLQ1yHBT3ZVoK6jT7T3LwXq"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol":{"keccak256":"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224","urls":["bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615","dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol":{"keccak256":"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62","urls":["bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba","dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol":{"keccak256":"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4","urls":["bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04","dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol":{"keccak256":"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782","urls":["bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d","dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz"],"license":"MIT"},"contracts/src/factory/facets/wallet-link/IWalletLink.sol":{"keccak256":"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee","urls":["bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0","dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5"],"license":"MIT"},"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/facets/Entitled.sol":{"keccak256":"0x90204085688bf4dd1e1b6ca30684ee37db79210070c405406898c8a77d50bfce","urls":["bzz-raw://b9b194cc9977b03fbccc81529147a0fce7857893c8146927570c1ee5a28aa900","dweb:/ipfs/QmZMvPPj5ZPYaRQaSraBkv3PSMeUZ4wN1tQ9EVvwW6SL4r"],"license":"MIT"},"contracts/src/spaces/facets/Permissions.sol":{"keccak256":"0xaeec9c70d231be9debb15660bf6939746532d0012c80d5518e8207dd33653de2","urls":["bzz-raw://bab7c5dd8f55f03f48d3908b8d6732b3e2d93f36312a0c3408ff10be258c165a","dweb:/ipfs/QmevmAc6tzP3kFoH84cRtipSq4ryqbrP3H4VB8mRZgnRxn"],"license":"MIT"},"contracts/src/spaces/facets/banning/BanningBase.sol":{"keccak256":"0x38c44494221f96568f3efb540a8a6c7af141de95f25caf26df6e8a8333f31249","urls":["bzz-raw://cf1f509347cab5090655ff8272443d18f9716fea5ef27cd86269ccbd2570aa7e","dweb:/ipfs/QmbF8StzLRGnVvVXWYBowvdULoPPqQkU5hZR548cnRzuVs"],"license":"MIT"},"contracts/src/spaces/facets/banning/BanningStorage.sol":{"keccak256":"0xcfbf5c113056e569abf23158853ff4877744b22a4bf2bf49a282d04dab23ab17","urls":["bzz-raw://4f825e97ca65c9cd3bd5885d2fa8b8e5f8f0dcbe227dec064abbbab645685fbe","dweb:/ipfs/QmXAMntxrjzeNUKh9WcyHvzDmnV89vrJ9PkKRceqxJSxZp"],"license":"MIT"},"contracts/src/spaces/facets/banning/IBanning.sol":{"keccak256":"0x350ec182a95a86a41335979cd7212132858c5cfcd366602b2f6cd0ec0694b63e","urls":["bzz-raw://ecb4ad0c5a1086c38448b3e279733f33edc0cc39648368e5cb43dfff139ff7e8","dweb:/ipfs/QmWYfYE8Haqk9kBRxmLijfQSfqbfxf7LB3wQ24d3pG5PE3"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelService.sol":{"keccak256":"0xdac0460cb66d31e57593154fb31ccd112dd1d51c34ea6e5ce316250ac5548abb","urls":["bzz-raw://56c99fa9d482bd02ea96a01e1a960e1678edbbc1a9580511f68543ca194f6fb5","dweb:/ipfs/QmbUjxxkjLCGXVC3bNtWQDas2vJwUmS5NraTGwWiKJAXvH"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelStorage.sol":{"keccak256":"0xeb4174513a652b1571b3a92cbefa80e9d450144e8d07bfb29c863d7d9de9313c","urls":["bzz-raw://6c3b73c84a2b4a56fcc8bd1fbaa0a8896a2dfc62a7fde07b13c6d8b05dcf8fe6","dweb:/ipfs/QmRPukfmps5ESAR5saLNLJp6GEg1nNCTq5qChGeAjgtLV4"],"license":"MIT"},"contracts/src/spaces/facets/delegation/WalletLinkProxyBase.sol":{"keccak256":"0xffef403556b46744bd1833e5df57b02eb79e010841b16610e1740bc0dac929b2","urls":["bzz-raw://1afa30929e8c6b0c69528d328774c98789825a8de53e5945a1e95092bee2ad08","dweb:/ipfs/QmTbCqLJTBHgcMuFwWSTbrgR7uaASJqwqYuku4YkGzTWW1"],"license":"MIT"},"contracts/src/spaces/facets/delegation/WalletLinkProxyStorage.sol":{"keccak256":"0x9667e475b9ad9f1130583840c9b0594a7512f7edd33163b926b3db21f70d9909","urls":["bzz-raw://d6271ce56258b1e9150378872d250cfaeb4501b5d0288e8f19f02096114c687f","dweb:/ipfs/QmXSBA2CpLL9BdvZb994JYStgB9fJfsHwgcke6gsD3zybW"],"license":"MIT"},"contracts/src/spaces/facets/entitlements/EntitlementsManagerService.sol":{"keccak256":"0x1c52a860e8d0c9d025cdd0e6490aa68e82f0e12450966ed182825299f10dbc54","urls":["bzz-raw://e82770448781ca94e9f4bf02ac981f6bebc55b2553de7bb8f977bc7335b26d11","dweb:/ipfs/QmSP1gnWqnWEJwf9eFYptd2v6M8kuTa7JzNKtG6DzkzoK6"],"license":"MIT"},"contracts/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol":{"keccak256":"0x688692231af49bcca80f7da97be12d448b0c20a4338d259d5f654b95c5b046ca","urls":["bzz-raw://be9964e110363bf68fb4bbb8ff230fecf8c26e695077910ba07163db57030a8e","dweb:/ipfs/QmNS3eUqCQU7H48LtW6hrB9xPGy9DrKCqh7JKWsAtje5dK"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipStorage.sol":{"keccak256":"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0","urls":["bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a","dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa"],"license":"MIT"},"contracts/src/spaces/facets/roles/IRoles.sol":{"keccak256":"0xa69cfbcd989b8794187a56a93deffbefaee8ca456e381ce30f85897893c50272","urls":["bzz-raw://cf8e9b2711f66eefb949f5b5ead4d72005f1845cd63f22b287fdba3339101bd4","dweb:/ipfs/Qmf7sPY4BgmvZf7p4GBsyVyd4o66yJXMgAmEgpdQAQyBdx"],"license":"MIT"},"contracts/src/spaces/facets/roles/Roles.sol":{"keccak256":"0xc38c54e7ffc0068eea75329016ebfcef4b81f07af7f26464ebf84f693aeaa98a","urls":["bzz-raw://691911cbd5a6b35d1307d7bb18502ab27ab7267f0331a6f0a909bd24468958d1","dweb:/ipfs/QmXAZqxXHatia3QfpSTPfASg2AW7PUHZxf7Kb1qYvMPKBC"],"license":"MIT"},"contracts/src/spaces/facets/roles/RolesBase.sol":{"keccak256":"0x0662c3457d1a192a6095677b9df680798cac335ec016244671d5e39004116881","urls":["bzz-raw://fe07c240371cd47923c9fb6f49d9863df715e02cdeec180fda3f7808ea91f7a8","dweb:/ipfs/QmWtiHY1XkwWjRjQ55x4xFh8Rz1xos26uYgZGkWh2KzSLo"],"license":"MIT"},"contracts/src/spaces/facets/roles/RolesStorage.sol":{"keccak256":"0xc000f429d628abed048b0f6fe015a0c1505f4880562a981da966cd1e9d44f729","urls":["bzz-raw://202ca9557330508e576337b60cd145009d2ed9e609030ef6802eb704b79caf7f","dweb:/ipfs/QmRcArv84PmEFbKX9aWFJiJetd3eFUKR2GAPJmJ9c57cwB"],"license":"MIT"},"contracts/src/utils/StringSet.sol":{"keccak256":"0x2b9880e846f275864e847e8c7079d29a02c4a060c5a9d580fb153ff0e7b49ff6","urls":["bzz-raw://df9c170f28318746eab23befba1318735652c7d198e273a322a0ff2702680605","dweb:/ipfs/QmanQQi9YiPHb9Cn4wpfQ9VYUi7UZ9iQibLL6V46JPibLu"],"license":"MIT"},"contracts/src/utils/Validator.sol":{"keccak256":"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f","urls":["bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306","dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":244} \ No newline at end of file +{"abi":[{"type":"function","name":"addPermissionsToRole","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"permissions","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addRoleToEntitlement","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"entitlement","type":"tuple","internalType":"struct IRolesBase.CreateEntitlement","components":[{"name":"module","type":"address","internalType":"contract IEntitlement"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createRole","inputs":[{"name":"roleName","type":"string","internalType":"string"},{"name":"permissions","type":"string[]","internalType":"string[]"},{"name":"entitlements","type":"tuple[]","internalType":"struct IRolesBase.CreateEntitlement[]","components":[{"name":"module","type":"address","internalType":"contract IEntitlement"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPermissionsByRoleId","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"permissions","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"getRoleById","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRolesBase.Role","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"disabled","type":"bool","internalType":"bool"},{"name":"permissions","type":"string[]","internalType":"string[]"},{"name":"entitlements","type":"address[]","internalType":"contract IEntitlement[]"}]}],"stateMutability":"view"},{"type":"function","name":"getRoles","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IRolesBase.Role[]","components":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"disabled","type":"bool","internalType":"bool"},{"name":"permissions","type":"string[]","internalType":"string[]"},{"name":"entitlements","type":"address[]","internalType":"contract IEntitlement[]"}]}],"stateMutability":"view"},{"type":"function","name":"removePermissionsFromRole","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"permissions","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeRole","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeRoleFromEntitlement","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"entitlement","type":"tuple","internalType":"struct IRolesBase.CreateEntitlement","components":[{"name":"module","type":"address","internalType":"contract IEntitlement"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateRole","inputs":[{"name":"roleId","type":"uint256","internalType":"uint256"},{"name":"roleName","type":"string","internalType":"string"},{"name":"permissions","type":"string[]","internalType":"string[]"},{"name":"entitlements","type":"tuple[]","internalType":"struct IRolesBase.CreateEntitlement[]","components":[{"name":"module","type":"address","internalType":"contract IEntitlement"},{"name":"data","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Banned","inputs":[{"name":"moderator","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ConsecutiveTransfer","inputs":[{"name":"fromTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleCreated","inputs":[{"name":"creator","type":"address","indexed":true,"internalType":"address"},{"name":"roleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleRemoved","inputs":[{"name":"remover","type":"address","indexed":true,"internalType":"address"},{"name":"roleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"RoleUpdated","inputs":[{"name":"updater","type":"address","indexed":true,"internalType":"address"},{"name":"roleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SubscriptionUpdate","inputs":[{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"expiration","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unbanned","inputs":[{"name":"moderator","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ApprovalCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"ApprovalQueryForNonexistentToken","inputs":[]},{"type":"error","name":"BalanceQueryForZeroAddress","inputs":[]},{"type":"error","name":"Banning__AlreadyBanned","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Banning__CannotBanOwner","inputs":[]},{"type":"error","name":"Banning__CannotBanSelf","inputs":[]},{"type":"error","name":"Banning__InvalidTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Banning__NotBanned","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ChannelService__ChannelDisabled","inputs":[]},{"type":"error","name":"ChannelService__ChannelDoesNotExist","inputs":[]},{"type":"error","name":"ChannelService__RoleDoesNotExist","inputs":[]},{"type":"error","name":"ERC5643__DurationZero","inputs":[]},{"type":"error","name":"ERC5643__InvalidTokenId","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC5643__NotApprovedOrOwner","inputs":[]},{"type":"error","name":"ERC5643__SubscriptionNotRenewable","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Entitlement__InvalidValue","inputs":[]},{"type":"error","name":"Entitlement__NotAllowed","inputs":[]},{"type":"error","name":"Entitlement__NotMember","inputs":[]},{"type":"error","name":"Entitlement__ValueAlreadyExists","inputs":[]},{"type":"error","name":"EntitlementsService__EntitlementDoesNotExist","inputs":[]},{"type":"error","name":"EntitlementsService__InvalidEntitlementAddress","inputs":[]},{"type":"error","name":"EntitlementsService__InvalidEntitlementInterface","inputs":[]},{"type":"error","name":"MintERC2309QuantityExceedsLimit","inputs":[]},{"type":"error","name":"MintToZeroAddress","inputs":[]},{"type":"error","name":"MintZeroQuantity","inputs":[]},{"type":"error","name":"Ownable__NotOwner","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Ownable__ZeroAddress","inputs":[]},{"type":"error","name":"OwnerQueryForNonexistentToken","inputs":[]},{"type":"error","name":"OwnershipNotInitializedForExtraData","inputs":[]},{"type":"error","name":"Pausable__NotPaused","inputs":[]},{"type":"error","name":"Pausable__Paused","inputs":[]},{"type":"error","name":"Roles__EntitlementAlreadyExists","inputs":[]},{"type":"error","name":"Roles__EntitlementDoesNotExist","inputs":[]},{"type":"error","name":"Roles__InvalidEntitlementAddress","inputs":[]},{"type":"error","name":"Roles__InvalidPermission","inputs":[]},{"type":"error","name":"Roles__PermissionAlreadyExists","inputs":[]},{"type":"error","name":"Roles__PermissionDoesNotExist","inputs":[]},{"type":"error","name":"Roles__RoleDoesNotExist","inputs":[]},{"type":"error","name":"TransferCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"TransferFromIncorrectOwner","inputs":[]},{"type":"error","name":"TransferToNonERC721ReceiverImplementer","inputs":[]},{"type":"error","name":"TransferToZeroAddress","inputs":[]},{"type":"error","name":"URIQueryForNonexistentToken","inputs":[]},{"type":"error","name":"Validator__InvalidByteLength","inputs":[]},{"type":"error","name":"Validator__InvalidStringLength","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50613194806100206000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80639a8e4c3e116100665780639a8e4c3e1461012a578063b42642331461013d578063b75157611461015d578063ba201ba814610170578063dba818641461018357600080fd5b80634d8b50a2146100a357806371061398146100b8578063784c872b146100d65780638fcd793d146100f65780639269182114610117575b600080fd5b6100b66100b1366004612959565b610196565b005b6100c06101e7565b6040516100cd9190612b2f565b60405180910390f35b6100e96100e4366004612b93565b6101f6565b6040516100cd9190612bac565b610109610104366004612bbf565b610242565b6040519081526020016100cd565b6100b6610125366004612b93565b61028d565b6100b6610138366004612c4c565b6102d6565b61015061014b366004612b93565b610321565b6040516100cd9190612c92565b6100b661016b366004612c4c565b61032c565b6100b661017e366004612ce9565b610373565b6100b6610191366004612ce9565b6103ba565b6101ca604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6101d385610429565b6101e08585858585610470565b5050505050565b60606101f161076d565b905090565b61022a6040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b61023382610429565b61023c826108af565b92915050565b6000610278604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61028485858585610928565b95945050505050565b6102c1604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6102ca81610429565b6102d381610b0b565b50565b61030a604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61031382610429565b61031d8282610d6f565b5050565b606061023c82610e46565b610360604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61036982610429565b61031d8282610e5a565b6103a7604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6103b082610429565b61031d8282610f39565b6103ee604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6103f782610429565b61031d8282610f6e565b61040c600082610f93565b6102d357604051630ce39a4b60e21b815260040160405180910390fd5b6104537f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0182611017565b6102d35760405163a3f70f7b60e01b815260040160405180910390fd5b600061047b86611032565b80518351919250906000816001600160401b0381111561049d5761049d6126d4565b6040519080825280602002602001820160405280156104c6578160200160208202803683370190505b50905060005b828110156105595760008682815181106104e8576104e8612d25565b60200260200101516000015190506104ff816110f4565b610508816111bd565b86828151811061051a5761051a612d25565b60200260200101516000015183838151811061053857610538612d25565b6001600160a01b0390921660209283029190910190910152506001016104cc565b50861561058857600089815260008051602061317483398151915260205260409020610586888a83612db7565b505b8551156105ce576000898152600080516020613174833981519152602052604081206105b690600201611225565b90506105c28a82610d6f565b6105cc8a88610e5a565b505b816000036105df57505050506101e0565b80511561065857805160005b8481101561061e576106168b87838151811061060957610609612d25565b6020026020010151611230565b6001016105eb565b5060005b818110156106555761064d8b84838151811061064057610640612d25565b6020026020010151611288565b600101610622565b50505b60005b8381101561068e5761068685828151811061067857610678612d25565b60200260200101518b6112db565b60010161065b565b5060005b828110156107345760008682815181106106ae576106ae612d25565b60200260200101516020015151111561072c576106e78682815181106106d6576106d6612d25565b602002602001015160200151611342565b61072c8682815181106106fc576106fc612d25565b6020026020010151600001518b88848151811061071b5761071b612d25565b602002602001015160200151611364565b600101610692565b50604051899033907f1aff41ff8e9139aae6bb355cc69107cda7e1d1dcd25511da436f3171bdbf77e690600090a3505050505050505050565b606060006107796113d2565b8051909150806001600160401b03811115610796576107966126d4565b6040519080825280602002602001820160405280156107fb57816020015b6107e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816107b45790505b50925060005b818110156108a95760008060008061083187868151811061082457610824612d25565b60200260200101516113fd565b93509350935093506040518060a0016040528088878151811061085657610856612d25565b6020026020010151815260200185815260200184151581526020018381526020018281525088868151811061088d5761088d612d25565b6020026020010181905250848060010195505050505050610801565b50505090565b6108e36040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b6000806000806108f2866113fd565b6040805160a0810182529a8b5260208b019490945291151592890192909252606088019190915260808701525093949350505050565b600061096c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600292506114fb915050565b81516000816001600160401b03811115610988576109886126d4565b6040519080825280602002602001820160405280156109b1578160200160208202803683370190505b5090506109bc611524565b925060005b82811015610a90576109ef8582815181106109de576109de612d25565b6020026020010151600001516110f4565b848181518110610a0157610a01612d25565b602002602001015160000151828281518110610a1f57610a1f612d25565b60200260200101906001600160a01b031690816001600160a01b031681525050610a548582815181106106d6576106d6612d25565b610a88858281518110610a6957610a69612d25565b6020026020010151600001518587848151811061071b5761071b612d25565b6001016109c1565b50610ad387878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925089915085905061154a565b50604051839033907f20a7a288530dd94b1eccaa691a582ecfd7550c9dfcee78ddf50a97f774a2b14790600090a35050949350505050565b6000610b1682611032565b8051909150600080516020613154833981519152610b547f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0185611673565b506000848152600382016020526040812090610b7082826125e4565b60018201805460ff19169055600282016000610b8c828261261e565b50506004820160008181610ba0828261263c565b5050604080516020808201835260008083528b815260038901909152919091209450610bd193509150839050612e76565b506000848152600382016020526040812060018101805460ff19169055610bfa9060020161167f565b6000868152600384016020526040812091925090610c1a9060040161167f565b905060005b82811015610c6a5760008781526003850160205260409020610c6190610c489060020183611689565b6000898152600387016020526040902060020190611695565b50600101610c1f565b5060005b81811015610cb95760008781526003850160205260409020610cb090610c9790600401836116a1565b60008981526003870160205260409020600401906116ad565b50600101610c6e565b506000610cc5876116c2565b805190915060005b81811015610d0057610cf8838281518110610cea57610cea612d25565b60200260200101518a6117ae565b600101610ccd565b5060005b86811015610d3757610d2f888281518110610d2157610d21612d25565b60200260200101518a6112db565b600101610d04565b50604051889033907f268a6f1b90f6f5ddf50cc736d36513e80cdc5fd56326bff71f335e8b4b61d05590600090a35050505050505050565b80516000805160206131548339815191529060005b818110156101e057610dae848281518110610da157610da1612d25565b602002602001015161183e565b600085815260038401602052604090208451610df090869084908110610dd657610dd6612d25565b60200260200101518260020161185f90919063ffffffff16565b610e0d57604051633e2b026160e01b815260040160405180910390fd5b610e3c858381518110610e2257610e22612d25565b60200260200101518260020161169590919063ffffffff16565b5050600101610d84565b6060610e51826113fd565b50949350505050565b80516000805160206131548339815191529060005b818110156101e057610e8c848281518110610da157610da1612d25565b610ecf848281518110610ea157610ea1612d25565b602002602001015184600301600088815260200190815260200160002060020161185f90919063ffffffff16565b15610eed5760405163b0ab682160e01b815260040160405180910390fd5b610f30848281518110610f0257610f02612d25565b602002602001015184600301600088815260200190815260200160002060020161186b90919063ffffffff16565b50600101610e6f565b610f4282610429565b8051610f4d906111bd565b610f5b828260000151611288565b61031d8160000151838360200151611364565b8051610f79906111bd565b610f87828260000151611230565b805161031d90836112db565b60003380610f9f611877565b6001600160a01b0316148061100f57507fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff1615801561100f575061100f848285604051602001610ff29190612f35565b60405160208183030381529060405261100a90612f51565b61193b565b949350505050565b600081815260018301602052604081205415155b9392505050565b60008181526000805160206131748339815191526020526040812060609160049091019061105f8261167f565b90506000816001600160401b0381111561107b5761107b6126d4565b6040519080825280602002602001820160405280156110a4578160200160208202803683370190505b50905060005b82811015610e515760006110be85836116a1565b9050808383815181106110d3576110d3612d25565b6001600160a01b0390921660209283029190910190910152506001016110aa565b6001600160a01b03811661111b57604051630706e15760e51b815260040160405180910390fd5b6040516301ffc9a760e01b8152637bc2cb4560e11b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa925050508015611182575060408051601f3d908101601f1916820190925261117f91810190612f75565b60015b61119f5760405163f58a5f2760e01b815260040160405180910390fd5b8061031d5760405163f58a5f2760e01b815260040160405180910390fd5b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006112087fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310183611be8565b61031d5760405163017ab33760e71b815260040160405180910390fd5b606061023c82611c0a565b6000828152600080516020613174833981519152602052604090206112586004820183611be8565b61127557604051632405297d60e11b815260040160405180910390fd5b61128260048201836116ad565b50505050565b6000828152600080516020613174833981519152602052604090206112b06004820183611be8565b156112ce5760405163fb5584f160e01b815260040160405180910390fd5b6112826004820183611ce7565b6112e4826111bd565b60405163f0c111f960e01b8152600481018290526001600160a01b0383169063f0c111f990602401600060405180830381600087803b15801561132657600080fd5b505af115801561133a573d6000803e3d6000fd5b505050505050565b80516000036102d3576040516319c6193b60e31b815260040160405180910390fd5b61136d836111bd565b604051633be2f95d60e21b81526001600160a01b0384169063ef8be5749061139b9085908590600401612f97565b600060405180830381600087803b1580156113b557600080fd5b505af11580156113c9573d6000803e3d6000fd5b50505050505050565b60606101f17f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01611cfc565b600081815260008051602061317483398151915260205260408120805460609291839182916000805160206131548339815191529161143b90612d3b565b80601f016020809104026020016040519081016040528092919081815260200182805461146790612d3b565b80156114b45780601f10611489576101008083540402835291602001916114b4565b820191906000526020600020905b81548152906001019060200180831161149757829003601f168201915b50505060008981526003850160205260409020600181015493985060ff90931696506114e69260020191506112259050565b92506114f186611032565b9150509193509193565b8151829082111561151f576040516374eb20a760e01b815260040160405180910390fd5b505050565b600080516020613154833981519152805460009190611544906001612fc6565b91505090565b6000805160206131548339815191528054600091908190839061156c90612fd9565b918290555091506115806001820183611d09565b506000828152600382016020526040902061159b8782612e76565b5060008281526003820160205260409020600101805460ff19168615151790556115c58285610e5a565b60005b83518110156116695760006001600160a01b03168482815181106115ee576115ee612d25565b60200260200101516001600160a01b03160361161d57604051637442429b60e01b815260040160405180910390fd5b61166084828151811061163257611632612d25565b6020026020010151836003016000868152602001908152602001600020600401611ce790919063ffffffff16565b506001016115c8565b5050949350505050565b600061102b8383611d15565b600061023c825490565b606061102b8383611e08565b600061102b8383611eba565b600061102b838361206f565b600061102b836001600160a01b038416611d15565b606060008051602061313483398151915260006116de8261167f565b90506000816001600160401b038111156116fa576116fa6126d4565b604051908082528060200260200182016040528015611723578160200160208202803683370190505b50935060005b8281101561179357600061173d85836116a1565b6000818152600387016020526040902090915061175a9088611017565b1561178a5780868461176b81612fd9565b95508151811061177d5761177d612d25565b6020026020010181815250505b50600101611729565b50808211156117a6578351818303900384525b505050919050565b6117b782612099565b6117c0826120ce565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020613134833981519152906118079083611017565b611824576040516333cb039f60e11b815260040160405180910390fd5b600083815260038201602052604090206112829083611673565b80516000036102d35760405162ce76c160e41b815260040160405180910390fd5b600061102b8383612130565b600061102b838361215d565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015611917573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115449190612ff2565b600080611946611877565b90506000611953856121bf565b80519091506000611962612440565b805190915060005b83811015611a2157600085828151811061198657611986612d25565b60200260200101519050866001600160a01b0316816001600160a01b0316036119b957600197505050505050505061102b565b60005b83811015611a1757816001600160a01b03166119f08683815181106119e3576119e3612d25565b602002602001015161246b565b6001600160a01b031603611a0f5760009850505050505050505061102b565b6001016119bc565b505060010161196a565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006000611a6e7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310161167f565b905060005b81811015611bd65760008381611a8c60018301856116a1565b6001600160a01b03908116825260208083019390935260409182016000208251606081018452905491821680825260ff600160a01b84048116151583870152600160a81b9093049092161515818401528251630b86d87960e21b815292519094509092632e1b61e492600480820193918290030181865afa158015611b15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b399190612f75565b158015611bb6575080600001516001600160a01b0316630cf0b5338e8a8e6040518463ffffffff1660e01b8152600401611b759392919061300f565b602060405180830381865afa158015611b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb69190612f75565b15611bcd576001995050505050505050505061102b565b50600101611a73565b5060009b9a5050505050505050505050565b6001600160a01b0381166000908152600183016020526040812054151561102b565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015611cdc578382906000526020600020018054611c4f90612d3b565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7b90612d3b565b8015611cc85780601f10611c9d57610100808354040283529160200191611cc8565b820191906000526020600020905b815481529060010190602001808311611cab57829003601f168201915b505050505081526020019060010190611c30565b505050509050919050565b600061102b836001600160a01b038416612476565b6060600061102b836124bd565b600061102b8383612476565b60008181526001830160205260408120548015611dfe576000611d39600183613071565b8554909150600090611d4d90600190613071565b9050808214611db2576000866000018281548110611d6d57611d6d612d25565b9060005260206000200154905080876000018481548110611d9057611d90612d25565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611dc357611dc3613084565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061023c565b600091505061023c565b6060826000018281548110611e1f57611e1f612d25565b906000526020600020018054611e3490612d3b565b80601f0160208091040260200160405190810160405280929190818152602001828054611e6090612d3b565b8015611ead5780601f10611e8257610100808354040283529160200191611ead565b820191906000526020600020905b815481529060010190602001808311611e9057829003601f168201915b5050505050905092915050565b6000808360010183604051611ecf9190612f35565b908152602001604051809103902054905080600014611dfe576000611ef5600183613071565b8554909150600090611f0990600190613071565b9050818114612010576000866000018281548110611f2957611f29612d25565b906000526020600020018054611f3e90612d3b565b80601f0160208091040260200160405190810160405280929190818152602001828054611f6a90612d3b565b8015611fb75780601f10611f8c57610100808354040283529160200191611fb7565b820191906000526020600020905b815481529060010190602001808311611f9a57829003601f168201915b5050505050905080876000018481548110611fd457611fd4612d25565b906000526020600020019081611fea9190612e76565b50838760010182604051611ffe9190612f35565b90815260405190819003602001902055505b855486908061202157612021613084565b60019003818190600052602060002001600061203d91906125e4565b905585600101856040516120519190612f35565b9081526020016040518091039020600090556001935050505061023c565b600082600001828154811061208657612086612d25565b9060005260206000200154905092915050565b6120b160008051602061313483398151915282611017565b6102d35760405163560b4b4160e11b815260040160405180910390fd5b60008181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430260205260409020600101546000805160206131348339815191529060ff161561031d57604051636ce0028960e11b815260040160405180910390fd5b600082600101826040516121449190612f35565b9081526040519081900360200190205415159392505050565b60006121698383612130565b6121b7578254600181018455600084815260209020016121898382612e76565b508254604051600185019061219f908590612f35565b9081526040519081900360200190205550600161023c565b50600061023c565b606060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6006006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa158015612234573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261225c919081019061309a565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa1580156122a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122cc9190612ff2565b9050815160001480156122e757506001600160a01b03811615155b156123615760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015612336573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261235e919081019061309a565b91505b81516000612370826001612fc6565b6001600160401b03811115612387576123876126d4565b6040519080825280602002602001820160405280156123b0578160200160208202803683370190505b50905060005b8281101561240a578481815181106123d0576123d0612d25565b60200260200101518282815181106123ea576123ea612d25565b6001600160a01b03909216602092830291909101909101526001016123b6565b508681838151811061241e5761241e612d25565b6001600160a01b03909216602092830291909101909101529695505050505050565b60606101f17f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf00611cfc565b600061023c82612519565b60008181526001830160205260408120546121b75750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561023c565b60608160000180548060200260200160405190810160405280929190818152602001828054801561250d57602002820191906000526020600020905b8154815260200190600101908083116124f9575b50505050509050919050565b60008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090600160e01b831690036125ca57816000036125c457805483106125a057604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156125a1575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b5080546125f090612d3b565b6000825580601f10612600575050565b601f0160209004906000526020600020908101906102d39190612656565b50805460008255906000526020600020908101906102d3919061266f565b50805460008255906000526020600020908101906102d391905b5b8082111561266b5760008155600101612657565b5090565b8082111561266b57600061268382826125e4565b5060010161266f565b60008083601f84011261269e57600080fd5b5081356001600160401b038111156126b557600080fd5b6020830191508360208285010111156126cd57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612712576127126126d4565b604052919050565b60006001600160401b03821115612733576127336126d4565b5060051b60200190565b60006001600160401b03831115612756576127566126d4565b612769601f8401601f19166020016126ea565b905082815283838301111561277d57600080fd5b828260208301376000602084830101529392505050565b600082601f8301126127a557600080fd5b813560206127ba6127b58361271a565b6126ea565b82815260059290921b840181019181810190868411156127d957600080fd5b8286015b8481101561282d5780356001600160401b038111156127fc5760008081fd5b8701603f8101891361280e5760008081fd5b61281f89868301356040840161273d565b8452509183019183016127dd565b509695505050505050565b6001600160a01b03811681146102d357600080fd5b60006040828403121561285f57600080fd5b604051604081016001600160401b038282108183111715612882576128826126d4565b816040528293508435915061289682612838565b908252602084013590808211156128ac57600080fd5b508301601f810185136128be57600080fd5b6128cd8582356020840161273d565b6020830152505092915050565b600082601f8301126128eb57600080fd5b813560206128fb6127b58361271a565b82815260059290921b8401810191818101908684111561291a57600080fd5b8286015b8481101561282d5780356001600160401b0381111561293d5760008081fd5b61294b8986838b010161284d565b84525091830191830161291e565b60008060008060006080868803121561297157600080fd5b8535945060208601356001600160401b038082111561298f57600080fd5b61299b89838a0161268c565b909650945060408801359150808211156129b457600080fd5b6129c089838a01612794565b935060608801359150808211156129d657600080fd5b506129e3888289016128da565b9150509295509295909350565b60005b83811015612a0b5781810151838201526020016129f3565b50506000910152565b60008151808452612a2c8160208601602086016129f0565b601f01601f19169290920160200192915050565b60008151808452602080850194506020840160005b83811015612a7a5781516001600160a01b031687529582019590820190600101612a55565b509495945050505050565b80518252600060208083015160a082860152612aa460a0860182612a14565b9050604084015115156040860152606084015185820360608701528181518084528484019150848160051b850101858401935060005b82811015612b0857601f19868303018452612af6828651612a14565b94870194938701939150600101612ada565b506080880151955088810360808a0152612b228187612a40565b9998505050505050505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612b8657603f19888603018452612b74858351612a85565b94509285019290850190600101612b58565b5092979650505050505050565b600060208284031215612ba557600080fd5b5035919050565b60208152600061102b6020830184612a85565b60008060008060608587031215612bd557600080fd5b84356001600160401b0380821115612bec57600080fd5b612bf88883890161268c565b90965094506020870135915080821115612c1157600080fd5b612c1d88838901612794565b93506040870135915080821115612c3357600080fd5b50612c40878288016128da565b91505092959194509250565b60008060408385031215612c5f57600080fd5b8235915060208301356001600160401b03811115612c7c57600080fd5b612c8885828601612794565b9150509250929050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612b8657603f19888603018452612cd7858351612a14565b94509285019290850190600101612cbb565b60008060408385031215612cfc57600080fd5b8235915060208301356001600160401b03811115612d1957600080fd5b612c888582860161284d565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680612d4f57607f821691505b6020821081036125c457634e487b7160e01b600052602260045260246000fd5b601f82111561151f576000816000526020600020601f850160051c81016020861015612d985750805b601f850160051c820191505b8181101561133a57828155600101612da4565b6001600160401b03831115612dce57612dce6126d4565b612de283612ddc8354612d3b565b83612d6f565b6000601f841160018114612e165760008515612dfe5750838201355b600019600387901b1c1916600186901b1783556101e0565b600083815260209020601f19861690835b82811015612e475786850135825560209485019460019092019101612e27565b5086821015612e645760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81516001600160401b03811115612e8f57612e8f6126d4565b612ea381612e9d8454612d3b565b84612d6f565b602080601f831160018114612ed85760008415612ec05750858301515b600019600386901b1c1916600185901b17855561133a565b600085815260208120601f198616915b82811015612f0757888601518255948401946001909101908401612ee8565b5085821015612f255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251612f478184602087016129f0565b9190910192915050565b805160208083015191908110156125c45760001960209190910360031b1b16919050565b600060208284031215612f8757600080fd5b8151801515811461102b57600080fd5b82815260406020820152600061100f6040830184612a14565b634e487b7160e01b600052601160045260246000fd5b8082018082111561023c5761023c612fb0565b600060018201612feb57612feb612fb0565b5060010190565b60006020828403121561300457600080fd5b815161102b81612838565b60006060820185835260206060602085015281865180845260808601915060208801935060005b8181101561305b5784516001600160a01b031683529383019391830191600101613036565b5050809350505050826040830152949350505050565b8181038181111561023c5761023c612fb0565b634e487b7160e01b600052603160045260246000fd5b600060208083850312156130ad57600080fd5b82516001600160401b038111156130c357600080fd5b8301601f810185136130d457600080fd5b80516130e26127b58261271a565b81815260059190911b8201830190838101908783111561310157600080fd5b928401925b8284101561312857835161311981612838565b82529284019290840190613106565b97965050505050505056fe804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03","sourceMap":"296:2281:229:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80639a8e4c3e116100665780639a8e4c3e1461012a578063b42642331461013d578063b75157611461015d578063ba201ba814610170578063dba818641461018357600080fd5b80634d8b50a2146100a357806371061398146100b8578063784c872b146100d65780638fcd793d146100f65780639269182114610117575b600080fd5b6100b66100b1366004612959565b610196565b005b6100c06101e7565b6040516100cd9190612b2f565b60405180910390f35b6100e96100e4366004612b93565b6101f6565b6040516100cd9190612bac565b610109610104366004612bbf565b610242565b6040519081526020016100cd565b6100b6610125366004612b93565b61028d565b6100b6610138366004612c4c565b6102d6565b61015061014b366004612b93565b610321565b6040516100cd9190612c92565b6100b661016b366004612c4c565b61032c565b6100b661017e366004612ce9565b610373565b6100b6610191366004612ce9565b6103ba565b6101ca604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6101d385610429565b6101e08585858585610470565b5050505050565b60606101f161076d565b905090565b61022a6040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b61023382610429565b61023c826108af565b92915050565b6000610278604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61028485858585610928565b95945050505050565b6102c1604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6102ca81610429565b6102d381610b0b565b50565b61030a604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61031382610429565b61031d8282610d6f565b5050565b606061023c82610e46565b610360604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b61036982610429565b61031d8282610e5a565b6103a7604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6103b082610429565b61031d8282610f39565b6103ee604051806040016040528060138152602001724d6f64696679537061636553657474696e677360681b815250610401565b6103f782610429565b61031d8282610f6e565b61040c600082610f93565b6102d357604051630ce39a4b60e21b815260040160405180910390fd5b6104537f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0182611017565b6102d35760405163a3f70f7b60e01b815260040160405180910390fd5b600061047b86611032565b80518351919250906000816001600160401b0381111561049d5761049d6126d4565b6040519080825280602002602001820160405280156104c6578160200160208202803683370190505b50905060005b828110156105595760008682815181106104e8576104e8612d25565b60200260200101516000015190506104ff816110f4565b610508816111bd565b86828151811061051a5761051a612d25565b60200260200101516000015183838151811061053857610538612d25565b6001600160a01b0390921660209283029190910190910152506001016104cc565b50861561058857600089815260008051602061317483398151915260205260409020610586888a83612db7565b505b8551156105ce576000898152600080516020613174833981519152602052604081206105b690600201611225565b90506105c28a82610d6f565b6105cc8a88610e5a565b505b816000036105df57505050506101e0565b80511561065857805160005b8481101561061e576106168b87838151811061060957610609612d25565b6020026020010151611230565b6001016105eb565b5060005b818110156106555761064d8b84838151811061064057610640612d25565b6020026020010151611288565b600101610622565b50505b60005b8381101561068e5761068685828151811061067857610678612d25565b60200260200101518b6112db565b60010161065b565b5060005b828110156107345760008682815181106106ae576106ae612d25565b60200260200101516020015151111561072c576106e78682815181106106d6576106d6612d25565b602002602001015160200151611342565b61072c8682815181106106fc576106fc612d25565b6020026020010151600001518b88848151811061071b5761071b612d25565b602002602001015160200151611364565b600101610692565b50604051899033907f1aff41ff8e9139aae6bb355cc69107cda7e1d1dcd25511da436f3171bdbf77e690600090a3505050505050505050565b606060006107796113d2565b8051909150806001600160401b03811115610796576107966126d4565b6040519080825280602002602001820160405280156107fb57816020015b6107e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816107b45790505b50925060005b818110156108a95760008060008061083187868151811061082457610824612d25565b60200260200101516113fd565b93509350935093506040518060a0016040528088878151811061085657610856612d25565b6020026020010151815260200185815260200184151581526020018381526020018281525088868151811061088d5761088d612d25565b6020026020010181905250848060010195505050505050610801565b50505090565b6108e36040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b6000806000806108f2866113fd565b6040805160a0810182529a8b5260208b019490945291151592890192909252606088019190915260808701525093949350505050565b600061096c85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600292506114fb915050565b81516000816001600160401b03811115610988576109886126d4565b6040519080825280602002602001820160405280156109b1578160200160208202803683370190505b5090506109bc611524565b925060005b82811015610a90576109ef8582815181106109de576109de612d25565b6020026020010151600001516110f4565b848181518110610a0157610a01612d25565b602002602001015160000151828281518110610a1f57610a1f612d25565b60200260200101906001600160a01b031690816001600160a01b031681525050610a548582815181106106d6576106d6612d25565b610a88858281518110610a6957610a69612d25565b6020026020010151600001518587848151811061071b5761071b612d25565b6001016109c1565b50610ad387878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250925089915085905061154a565b50604051839033907f20a7a288530dd94b1eccaa691a582ecfd7550c9dfcee78ddf50a97f774a2b14790600090a35050949350505050565b6000610b1682611032565b8051909150600080516020613154833981519152610b547f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0185611673565b506000848152600382016020526040812090610b7082826125e4565b60018201805460ff19169055600282016000610b8c828261261e565b50506004820160008181610ba0828261263c565b5050604080516020808201835260008083528b815260038901909152919091209450610bd193509150839050612e76565b506000848152600382016020526040812060018101805460ff19169055610bfa9060020161167f565b6000868152600384016020526040812091925090610c1a9060040161167f565b905060005b82811015610c6a5760008781526003850160205260409020610c6190610c489060020183611689565b6000898152600387016020526040902060020190611695565b50600101610c1f565b5060005b81811015610cb95760008781526003850160205260409020610cb090610c9790600401836116a1565b60008981526003870160205260409020600401906116ad565b50600101610c6e565b506000610cc5876116c2565b805190915060005b81811015610d0057610cf8838281518110610cea57610cea612d25565b60200260200101518a6117ae565b600101610ccd565b5060005b86811015610d3757610d2f888281518110610d2157610d21612d25565b60200260200101518a6112db565b600101610d04565b50604051889033907f268a6f1b90f6f5ddf50cc736d36513e80cdc5fd56326bff71f335e8b4b61d05590600090a35050505050505050565b80516000805160206131548339815191529060005b818110156101e057610dae848281518110610da157610da1612d25565b602002602001015161183e565b600085815260038401602052604090208451610df090869084908110610dd657610dd6612d25565b60200260200101518260020161185f90919063ffffffff16565b610e0d57604051633e2b026160e01b815260040160405180910390fd5b610e3c858381518110610e2257610e22612d25565b60200260200101518260020161169590919063ffffffff16565b5050600101610d84565b6060610e51826113fd565b50949350505050565b80516000805160206131548339815191529060005b818110156101e057610e8c848281518110610da157610da1612d25565b610ecf848281518110610ea157610ea1612d25565b602002602001015184600301600088815260200190815260200160002060020161185f90919063ffffffff16565b15610eed5760405163b0ab682160e01b815260040160405180910390fd5b610f30848281518110610f0257610f02612d25565b602002602001015184600301600088815260200190815260200160002060020161186b90919063ffffffff16565b50600101610e6f565b610f4282610429565b8051610f4d906111bd565b610f5b828260000151611288565b61031d8160000151838360200151611364565b8051610f79906111bd565b610f87828260000151611230565b805161031d90836112db565b60003380610f9f611877565b6001600160a01b0316148061100f57507fe17a067c7963a59b6dfd65d33b053fdbea1c56500e2aae4f976d9eda4da9eb005460ff1615801561100f575061100f848285604051602001610ff29190612f35565b60405160208183030381529060405261100a90612f51565b61193b565b949350505050565b600081815260018301602052604081205415155b9392505050565b60008181526000805160206131748339815191526020526040812060609160049091019061105f8261167f565b90506000816001600160401b0381111561107b5761107b6126d4565b6040519080825280602002602001820160405280156110a4578160200160208202803683370190505b50905060005b82811015610e515760006110be85836116a1565b9050808383815181106110d3576110d3612d25565b6001600160a01b0390921660209283029190910190910152506001016110aa565b6001600160a01b03811661111b57604051630706e15760e51b815260040160405180910390fd5b6040516301ffc9a760e01b8152637bc2cb4560e11b60048201526001600160a01b038216906301ffc9a790602401602060405180830381865afa925050508015611182575060408051601f3d908101601f1916820190925261117f91810190612f75565b60015b61119f5760405163f58a5f2760e01b815260040160405180910390fd5b8061031d5760405163f58a5f2760e01b815260040160405180910390fd5b7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006112087fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310183611be8565b61031d5760405163017ab33760e71b815260040160405180910390fd5b606061023c82611c0a565b6000828152600080516020613174833981519152602052604090206112586004820183611be8565b61127557604051632405297d60e11b815260040160405180910390fd5b61128260048201836116ad565b50505050565b6000828152600080516020613174833981519152602052604090206112b06004820183611be8565b156112ce5760405163fb5584f160e01b815260040160405180910390fd5b6112826004820183611ce7565b6112e4826111bd565b60405163f0c111f960e01b8152600481018290526001600160a01b0383169063f0c111f990602401600060405180830381600087803b15801561132657600080fd5b505af115801561133a573d6000803e3d6000fd5b505050505050565b80516000036102d3576040516319c6193b60e31b815260040160405180910390fd5b61136d836111bd565b604051633be2f95d60e21b81526001600160a01b0384169063ef8be5749061139b9085908590600401612f97565b600060405180830381600087803b1580156113b557600080fd5b505af11580156113c9573d6000803e3d6000fd5b50505050505050565b60606101f17f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01611cfc565b600081815260008051602061317483398151915260205260408120805460609291839182916000805160206131548339815191529161143b90612d3b565b80601f016020809104026020016040519081016040528092919081815260200182805461146790612d3b565b80156114b45780601f10611489576101008083540402835291602001916114b4565b820191906000526020600020905b81548152906001019060200180831161149757829003601f168201915b50505060008981526003850160205260409020600181015493985060ff90931696506114e69260020191506112259050565b92506114f186611032565b9150509193509193565b8151829082111561151f576040516374eb20a760e01b815260040160405180910390fd5b505050565b600080516020613154833981519152805460009190611544906001612fc6565b91505090565b6000805160206131548339815191528054600091908190839061156c90612fd9565b918290555091506115806001820183611d09565b506000828152600382016020526040902061159b8782612e76565b5060008281526003820160205260409020600101805460ff19168615151790556115c58285610e5a565b60005b83518110156116695760006001600160a01b03168482815181106115ee576115ee612d25565b60200260200101516001600160a01b03160361161d57604051637442429b60e01b815260040160405180910390fd5b61166084828151811061163257611632612d25565b6020026020010151836003016000868152602001908152602001600020600401611ce790919063ffffffff16565b506001016115c8565b5050949350505050565b600061102b8383611d15565b600061023c825490565b606061102b8383611e08565b600061102b8383611eba565b600061102b838361206f565b600061102b836001600160a01b038416611d15565b606060008051602061313483398151915260006116de8261167f565b90506000816001600160401b038111156116fa576116fa6126d4565b604051908082528060200260200182016040528015611723578160200160208202803683370190505b50935060005b8281101561179357600061173d85836116a1565b6000818152600387016020526040902090915061175a9088611017565b1561178a5780868461176b81612fd9565b95508151811061177d5761177d612d25565b6020026020010181815250505b50600101611729565b50808211156117a6578351818303900384525b505050919050565b6117b782612099565b6117c0826120ce565b60008281527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430360205260409020600080516020613134833981519152906118079083611017565b611824576040516333cb039f60e11b815260040160405180910390fd5b600083815260038201602052604090206112829083611673565b80516000036102d35760405162ce76c160e41b815260040160405180910390fd5b600061102b8383612130565b600061102b838361215d565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015611917573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115449190612ff2565b600080611946611877565b90506000611953856121bf565b80519091506000611962612440565b805190915060005b83811015611a2157600085828151811061198657611986612d25565b60200260200101519050866001600160a01b0316816001600160a01b0316036119b957600197505050505050505061102b565b60005b83811015611a1757816001600160a01b03166119f08683815181106119e3576119e3612d25565b602002602001015161246b565b6001600160a01b031603611a0f5760009850505050505050505061102b565b6001016119bc565b505060010161196a565b507fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c931006000611a6e7fa558e822bd359dacbe30f0da89cbfde5f95895b441e13a4864caec1423c9310161167f565b905060005b81811015611bd65760008381611a8c60018301856116a1565b6001600160a01b03908116825260208083019390935260409182016000208251606081018452905491821680825260ff600160a01b84048116151583870152600160a81b9093049092161515818401528251630b86d87960e21b815292519094509092632e1b61e492600480820193918290030181865afa158015611b15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b399190612f75565b158015611bb6575080600001516001600160a01b0316630cf0b5338e8a8e6040518463ffffffff1660e01b8152600401611b759392919061300f565b602060405180830381865afa158015611b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb69190612f75565b15611bcd576001995050505050505050505061102b565b50600101611a73565b5060009b9a5050505050505050505050565b6001600160a01b0381166000908152600183016020526040812054151561102b565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015611cdc578382906000526020600020018054611c4f90612d3b565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7b90612d3b565b8015611cc85780601f10611c9d57610100808354040283529160200191611cc8565b820191906000526020600020905b815481529060010190602001808311611cab57829003601f168201915b505050505081526020019060010190611c30565b505050509050919050565b600061102b836001600160a01b038416612476565b6060600061102b836124bd565b600061102b8383612476565b60008181526001830160205260408120548015611dfe576000611d39600183613071565b8554909150600090611d4d90600190613071565b9050808214611db2576000866000018281548110611d6d57611d6d612d25565b9060005260206000200154905080876000018481548110611d9057611d90612d25565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611dc357611dc3613084565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061023c565b600091505061023c565b6060826000018281548110611e1f57611e1f612d25565b906000526020600020018054611e3490612d3b565b80601f0160208091040260200160405190810160405280929190818152602001828054611e6090612d3b565b8015611ead5780601f10611e8257610100808354040283529160200191611ead565b820191906000526020600020905b815481529060010190602001808311611e9057829003601f168201915b5050505050905092915050565b6000808360010183604051611ecf9190612f35565b908152602001604051809103902054905080600014611dfe576000611ef5600183613071565b8554909150600090611f0990600190613071565b9050818114612010576000866000018281548110611f2957611f29612d25565b906000526020600020018054611f3e90612d3b565b80601f0160208091040260200160405190810160405280929190818152602001828054611f6a90612d3b565b8015611fb75780601f10611f8c57610100808354040283529160200191611fb7565b820191906000526020600020905b815481529060010190602001808311611f9a57829003601f168201915b5050505050905080876000018481548110611fd457611fd4612d25565b906000526020600020019081611fea9190612e76565b50838760010182604051611ffe9190612f35565b90815260405190819003602001902055505b855486908061202157612021613084565b60019003818190600052602060002001600061203d91906125e4565b905585600101856040516120519190612f35565b9081526020016040518091039020600090556001935050505061023c565b600082600001828154811061208657612086612d25565b9060005260206000200154905092915050565b6120b160008051602061313483398151915282611017565b6102d35760405163560b4b4160e11b815260040160405180910390fd5b60008181527f804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af51850430260205260409020600101546000805160206131348339815191529060ff161561031d57604051636ce0028960e11b815260040160405180910390fd5b600082600101826040516121449190612f35565b9081526040519081900360200190205415159392505050565b60006121698383612130565b6121b7578254600181018455600084815260209020016121898382612e76565b508254604051600185019061219f908590612f35565b9081526040519081900360200190205550600161023c565b50600061023c565b606060007fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6006006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa158015612234573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261225c919081019061309a565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa1580156122a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122cc9190612ff2565b9050815160001480156122e757506001600160a01b03811615155b156123615760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015612336573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261235e919081019061309a565b91505b81516000612370826001612fc6565b6001600160401b03811115612387576123876126d4565b6040519080825280602002602001820160405280156123b0578160200160208202803683370190505b50905060005b8281101561240a578481815181106123d0576123d0612d25565b60200260200101518282815181106123ea576123ea612d25565b6001600160a01b03909216602092830291909101909101526001016123b6565b508681838151811061241e5761241e612d25565b6001600160a01b03909216602092830291909101909101529695505050505050565b60606101f17f49daf035076c43671ca9f9fb568d931e51ab7f9098a5a694781b45341112cf00611cfc565b600061023c82612519565b60008181526001830160205260408120546121b75750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561023c565b60608160000180548060200260200160405190810160405280929190818152602001828054801561250d57602002820191906000526020600020905b8154815260200190600101908083116124f9575b50505050509050919050565b60008181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090600160e01b831690036125ca57816000036125c457805483106125a057604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156125a1575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b5080546125f090612d3b565b6000825580601f10612600575050565b601f0160209004906000526020600020908101906102d39190612656565b50805460008255906000526020600020908101906102d3919061266f565b50805460008255906000526020600020908101906102d391905b5b8082111561266b5760008155600101612657565b5090565b8082111561266b57600061268382826125e4565b5060010161266f565b60008083601f84011261269e57600080fd5b5081356001600160401b038111156126b557600080fd5b6020830191508360208285010111156126cd57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612712576127126126d4565b604052919050565b60006001600160401b03821115612733576127336126d4565b5060051b60200190565b60006001600160401b03831115612756576127566126d4565b612769601f8401601f19166020016126ea565b905082815283838301111561277d57600080fd5b828260208301376000602084830101529392505050565b600082601f8301126127a557600080fd5b813560206127ba6127b58361271a565b6126ea565b82815260059290921b840181019181810190868411156127d957600080fd5b8286015b8481101561282d5780356001600160401b038111156127fc5760008081fd5b8701603f8101891361280e5760008081fd5b61281f89868301356040840161273d565b8452509183019183016127dd565b509695505050505050565b6001600160a01b03811681146102d357600080fd5b60006040828403121561285f57600080fd5b604051604081016001600160401b038282108183111715612882576128826126d4565b816040528293508435915061289682612838565b908252602084013590808211156128ac57600080fd5b508301601f810185136128be57600080fd5b6128cd8582356020840161273d565b6020830152505092915050565b600082601f8301126128eb57600080fd5b813560206128fb6127b58361271a565b82815260059290921b8401810191818101908684111561291a57600080fd5b8286015b8481101561282d5780356001600160401b0381111561293d5760008081fd5b61294b8986838b010161284d565b84525091830191830161291e565b60008060008060006080868803121561297157600080fd5b8535945060208601356001600160401b038082111561298f57600080fd5b61299b89838a0161268c565b909650945060408801359150808211156129b457600080fd5b6129c089838a01612794565b935060608801359150808211156129d657600080fd5b506129e3888289016128da565b9150509295509295909350565b60005b83811015612a0b5781810151838201526020016129f3565b50506000910152565b60008151808452612a2c8160208601602086016129f0565b601f01601f19169290920160200192915050565b60008151808452602080850194506020840160005b83811015612a7a5781516001600160a01b031687529582019590820190600101612a55565b509495945050505050565b80518252600060208083015160a082860152612aa460a0860182612a14565b9050604084015115156040860152606084015185820360608701528181518084528484019150848160051b850101858401935060005b82811015612b0857601f19868303018452612af6828651612a14565b94870194938701939150600101612ada565b506080880151955088810360808a0152612b228187612a40565b9998505050505050505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612b8657603f19888603018452612b74858351612a85565b94509285019290850190600101612b58565b5092979650505050505050565b600060208284031215612ba557600080fd5b5035919050565b60208152600061102b6020830184612a85565b60008060008060608587031215612bd557600080fd5b84356001600160401b0380821115612bec57600080fd5b612bf88883890161268c565b90965094506020870135915080821115612c1157600080fd5b612c1d88838901612794565b93506040870135915080821115612c3357600080fd5b50612c40878288016128da565b91505092959194509250565b60008060408385031215612c5f57600080fd5b8235915060208301356001600160401b03811115612c7c57600080fd5b612c8885828601612794565b9150509250929050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015612b8657603f19888603018452612cd7858351612a14565b94509285019290850190600101612cbb565b60008060408385031215612cfc57600080fd5b8235915060208301356001600160401b03811115612d1957600080fd5b612c888582860161284d565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680612d4f57607f821691505b6020821081036125c457634e487b7160e01b600052602260045260246000fd5b601f82111561151f576000816000526020600020601f850160051c81016020861015612d985750805b601f850160051c820191505b8181101561133a57828155600101612da4565b6001600160401b03831115612dce57612dce6126d4565b612de283612ddc8354612d3b565b83612d6f565b6000601f841160018114612e165760008515612dfe5750838201355b600019600387901b1c1916600186901b1783556101e0565b600083815260209020601f19861690835b82811015612e475786850135825560209485019460019092019101612e27565b5086821015612e645760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81516001600160401b03811115612e8f57612e8f6126d4565b612ea381612e9d8454612d3b565b84612d6f565b602080601f831160018114612ed85760008415612ec05750858301515b600019600386901b1c1916600185901b17855561133a565b600085815260208120601f198616915b82811015612f0757888601518255948401946001909101908401612ee8565b5085821015612f255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251612f478184602087016129f0565b9190910192915050565b805160208083015191908110156125c45760001960209190910360031b1b16919050565b600060208284031215612f8757600080fd5b8151801515811461102b57600080fd5b82815260406020820152600061100f6040830184612a14565b634e487b7160e01b600052601160045260246000fd5b8082018082111561023c5761023c612fb0565b600060018201612feb57612feb612fb0565b5060010190565b60006020828403121561300457600080fd5b815161102b81612838565b60006060820185835260206060602085015281865180845260808601915060208801935060005b8181101561305b5784516001600160a01b031683529383019391830191600101613036565b5050809350505050826040830152949350505050565b8181038181111561023c5761023c612fb0565b634e487b7160e01b600052603160045260246000fd5b600060208083850312156130ad57600080fd5b82516001600160401b038111156130c357600080fd5b8301601f810185136130d457600080fd5b80516130e26127b58261271a565b81815260059190911b8201830190838101908783111561310157600080fd5b928401925b8284101561312857835161311981612838565b82529284019290840190613106565b97965050505050505056fe804ad633258ac9b908ae115a2763b3f6e04be3b1165402c872b25af518504300672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd00672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03","sourceMap":"296:2281:229:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:317;;;;;;:::i;:::-;;:::i;:::-;;634:96;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;734:158;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;346:284::-;;;;;;:::i;:::-;;:::i;:::-;;;9949:25:398;;;9937:2;9922:18;346:284:229;9803:177:398;1217:164:229;;;;;;:::i;:::-;;:::i;1645:248::-;;;;;;:::i;:::-;;:::i;1897:166::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1403:238::-;;;;;;:::i;:::-;;:::i;2085:::-;;;;;;:::i;:::-;;:::i;2327:248::-;;;;;;:::i;:::-;;:::i;896:317::-;1072:44;1092:23;;;;;;;;;;;;;-1:-1:-1;;;1092:23:229;;;1072:19;:44::i;:::-;1122:24;1139:6;1122:16;:24::i;:::-;1152:56;1164:6;1172:8;;1182:11;1195:12;1152:11;:56::i;:::-;896:317;;;;;:::o;634:96::-;686:13;714:11;:9;:11::i;:::-;707:18;;634:96;:::o;734:158::-;811:11;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;811:11:229;830:24;847:6;830:16;:24::i;:::-;867:20;880:6;867:12;:20::i;:::-;860:27;734:158;-1:-1:-1;;734:158:229:o;346:284::-;505:7;520:44;540:23;;;;;;;;;;;;;-1:-1:-1;;;540:23:229;;;520:19;:44::i;:::-;577:48;589:8;;599:11;612:12;577:11;:48::i;:::-;570:55;346:284;-1:-1:-1;;;;;346:284:229:o;1217:164::-;1277:44;1297:23;;;;;;;;;;;;;-1:-1:-1;;;1297:23:229;;;1277:19;:44::i;:::-;1327:24;1344:6;1327:16;:24::i;:::-;1357:19;1369:6;1357:11;:19::i;:::-;1217:164;:::o;1645:248::-;1761:44;1781:23;;;;;;;;;;;;;-1:-1:-1;;;1781:23:229;;;1761:19;:44::i;:::-;1811:24;1828:6;1811:16;:24::i;:::-;1841:47;1868:6;1876:11;1841:26;:47::i;:::-;1645:248;;:::o;1897:166::-;1985:27;2027:31;2051:6;2027:23;:31::i;1403:238::-;1514:44;1534:23;;;;;;;;;;;;;-1:-1:-1;;;1534:23:229;;;1514:19;:44::i;:::-;1564:24;1581:6;1564:16;:24::i;:::-;1594:42;1616:6;1624:11;1594:21;:42::i;2085:238::-;2196:44;2216:23;;;;;;;;;;;;;-1:-1:-1;;;2216:23:229;;;2196:19;:44::i;:::-;2246:24;2263:6;2246:16;:24::i;:::-;2276:42;2298:6;2306:11;2276:21;:42::i;2327:248::-;2443:44;2463:23;;;;;;;;;;;;;-1:-1:-1;;;2463:23:229;;;2443:19;:44::i;:::-;2493:24;2510:6;2493:16;:24::i;:::-;2523:47;2550:6;2558:11;2523:26;:47::i;3802:164:174:-;3882:31;1438:3;3902:10;3882;:31::i;:::-;3877:85;;3930:25;;-1:-1:-1;;;3930:25:174;;;;;;;;;;;9288:194:230;9385:44;:27;9422:6;9385:36;:44::i;:::-;9380:98;;9446:25;;-1:-1:-1;;;9446:25:230;;;;;;;;;;;4635:2709;4856:41;4900:30;4923:6;4900:22;:30::i;:::-;4969:26;;5028:19;;4856:74;;-1:-1:-1;4969:26:230;4936:30;5028:19;-1:-1:-1;;;;;5098:47:230;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5098:47:230;;5053:92;;5157:9;5152:322;5176:15;5172:1;:19;5152:322;;;5203:14;5228:12;5241:1;5228:15;;;;;;;;:::i;:::-;;;;;;;:22;;;5203:48;;5259:54;5306:6;5259:46;:54::i;:::-;5321:51;5365:6;5321:43;:51::i;:::-;5406:12;5419:1;5406:15;;;;;;;;:::i;:::-;;;;;;;:22;;;5380:20;5401:1;5380:23;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5380:48:230;;;:23;;;;;;;;;;;:48;-1:-1:-1;5456:3:230;;5152:322;;;-1:-1:-1;5512:26:230;;5508:101;;5548:38;;;;-1:-1:-1;;;;;;;;;;;5548:38:230;;;;;:54;5594:8;;5548:38;:54;:::i;:::-;;5508:101;5645:18;;:22;5641:370;;5677:34;5714:56;;;-1:-1:-1;;;;;;;;;;;5714:56:230;;;;;:95;;:77;;:93;:95::i;:::-;5677:132;;5862:54;5889:6;5897:18;5862:26;:54::i;:::-;5962:42;5984:6;5992:11;5962:21;:42::i;:::-;5669:342;5641:370;6021:15;6040:1;6021:20;6017:47;;6051:7;;;;;;6017:47;6074:27;;:31;6070:526;;6149:27;;6115:31;6185:181;6209:22;6205:1;:26;6185:181;;;6245:67;6272:6;6288:19;6308:1;6288:22;;;;;;;;:::i;:::-;;;;;;;6245:26;:67::i;:::-;6344:3;;6185:181;;;;6417:9;6412:178;6436:23;6432:1;:27;6412:178;;;6473:63;6495:6;6511:20;6532:1;6511:23;;;;;;;;:::i;:::-;;;;;;;6473:21;:63::i;:::-;6568:3;;6412:178;;;;6107:489;6070:526;6660:9;6655:227;6679:22;6675:1;:26;6655:227;;;6713:122;6788:19;6808:1;6788:22;;;;;;;;:::i;:::-;;;;;;;6821:6;6713:57;:122::i;:::-;6864:3;;6655:227;;;;6893:9;6888:409;6912:15;6908:1;:19;6888:409;;;6973:1;6943:12;6956:1;6943:15;;;;;;;;:::i;:::-;;;;;;;:20;;;:27;:31;6939:312;;;7029:47;7055:12;7068:1;7055:15;;;;;;;;:::i;:::-;;;;;;;:20;;;7029:25;:47::i;:::-;7087:155;7159:12;7172:1;7159:15;;;;;;;;:::i;:::-;;;;;;;:22;;;7194:6;7212:12;7225:1;7212:15;;;;;;;;:::i;:::-;;;;;;;:20;;;7087:52;:155::i;:::-;7279:3;;6888:409;;;-1:-1:-1;7308:31:230;;7332:6;;7320:10;;7308:31;;;;;4797:2547;;;;4635:2709;;;;;:::o;2116:635::-;2160:19;2187:24;2214:13;:11;:13::i;:::-;2253:14;;2187:40;;-1:-1:-1;2253:14:230;-1:-1:-1;;;;;2282:21:230;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2282:21:230;;;;;;;;;;;;;;;;;2274:29;;2315:9;2310:437;2334:9;2330:1;:13;2310:437;;;2365:18;2393:16;2419:27;2456:34;2501:20;2510:7;2518:1;2510:10;;;;;;;;:::i;:::-;;;;;;;2501:8;:20::i;:::-;2355:166;;;;;;;;2541:159;;;;;;;;2560:7;2568:1;2560:10;;;;;;;;:::i;:::-;;;;;;;2541:159;;;;2586:4;2541:159;;;;2610:11;2541:159;;;;;;2644:11;2541:159;;;;2679:12;2541:159;;;2530:5;2536:1;2530:8;;;;;;;;:::i;:::-;;;;;;:170;;;;2729:3;;;;;;;2347:400;;;;2310:437;;;;2181:570;;2116:635;:::o;4183:425::-;4252:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4252:16:230;4284:18;4310:16;4334:27;4369:34;4412:16;4421:6;4412:8;:16::i;:::-;4448:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4448:155:230;;4183:425;-1:-1:-1;;;;4183:425:230:o;1099:1013::-;1250:14;1272:34;1294:8;;1272:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1304:1:230;;-1:-1:-1;1272:21:230;;-1:-1:-1;;1272:34:230:i;:::-;1339:19;;1313:23;1339:19;-1:-1:-1;;;;;1410:47:230;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1410:47:230;;1365:92;;1473:16;:14;:16::i;:::-;1464:25;;1501:9;1496:502;1520:15;1516:1;:19;1496:502;;;1547:95;1611:12;1624:1;1611:15;;;;;;;;:::i;:::-;;;;;;;:22;;;1547:46;:95::i;:::-;1676:12;1689:1;1676:15;;;;;;;;:::i;:::-;;;;;;;:22;;;1650:20;1671:1;1650:23;;;;;;;;:::i;:::-;;;;;;:48;-1:-1:-1;;;;;1650:48:230;;;-1:-1:-1;;;;;1650:48:230;;;;;1748:47;1774:12;1787:1;1774:15;;;;;;;;:::i;1748:47::-;1804:147;1874:12;1887:1;1874:15;;;;;;;;:::i;:::-;;;;;;;:22;;;1907:6;1923:12;1936:1;1923:15;;;;;;;;:::i;1804:147::-;1980:3;;1496:502;;;;2004:60;2013:8;;2004:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2004:60:230;-1:-1:-1;2030:11:230;;-1:-1:-1;2043:20:230;;-1:-1:-1;2004:8:230;:60::i;:::-;-1:-1:-1;2076:31:230;;2100:6;;2088:10;;2076:31;;;;;1266:846;;1099:1013;;;;;;:::o;7348:1598::-;7432:41;7476:30;7499:6;7476:22;:30::i;:::-;7545:26;;;;-1:-1:-1;;;;;;;;;;;;7639:23:230;:8;7655:6;7639:15;:23::i;:::-;-1:-1:-1;7675:19:230;;;;:11;;;:19;;;;;;7668:26;7675:19;;7668:26;:::i;:::-;;;;;;-1:-1:-1;;7668:26:230;;;;;;;;;;;:::i;:::-;-1:-1:-1;;7668:26:230;;;;;;;;;;:::i;:::-;-1:-1:-1;;7700:29:230;;;;;;;;;-1:-1:-1;7700:29:230;;;:19;;;:11;;;:19;;;;;;;;-1:-1:-1;7700:29:230;;-1:-1:-1;7700:29:230;-1:-1:-1;7700:19:230;;-1:-1:-1;7700:29:230;:::i;:::-;-1:-1:-1;7769:5:230;7735:19;;;:11;;;:19;;;;;:31;;;:39;;-1:-1:-1;;7735:39:230;;;7805:40;;:31;;:38;:40::i;:::-;7851:22;7876:19;;;:11;;;:19;;;;;7781:64;;-1:-1:-1;7851:22:230;7876:41;;:32;;:39;:41::i;:::-;7851:66;;7929:9;7924:188;7948:13;7944:1;:17;7924:188;;;8021:19;;;;:11;;;:19;;;;;7973:93;;8021:37;;:31;;8056:1;8021:34;:37::i;:::-;7973:19;;;;:11;;;:19;;;;;:31;;;:38;:93::i;:::-;-1:-1:-1;8094:3:230;;7924:188;;;;8123:9;8118:191;8142:14;8138:1;:18;8118:191;;;8217:19;;;;:11;;;:19;;;;;8168:95;;8217:38;;:32;;8253:1;8217:35;:38::i;:::-;8168:19;;;;:11;;;:19;;;;;:32;;;:39;:95::i;:::-;-1:-1:-1;8291:3:230;;8118:191;;;;8315:27;8345:42;8380:6;8345:34;:42::i;:::-;8417:17;;8315:72;;-1:-1:-1;8393:21:230;8474:155;8498:13;8494:1;:17;8474:155;;;8523:59;8560:10;8571:1;8560:13;;;;;;;;:::i;:::-;;;;;;;8575:6;8523:36;:59::i;:::-;8611:3;;8474:155;;;;8677:9;8672:227;8696:22;8692:1;:26;8672:227;;;8730:122;8805:19;8825:1;8805:22;;;;;;;;:::i;:::-;;;;;;;8838:6;8730:57;:122::i;:::-;8881:3;;8672:227;;;-1:-1:-1;8910:31:230;;8934:6;;8922:10;;8910:31;;;;;7394:1552;;;;;;;7348:1598;:::o;12224:638::-;12442:18;;-1:-1:-1;;;;;;;;;;;427:66:231;12357:30:230;12467:391;12491:13;12487:1;:17;12467:391;;;12556:33;12574:11;12586:1;12574:14;;;;;;;;:::i;:::-;;;;;;;12556:17;:33::i;:::-;12598:30;12631:19;;;:11;;;:19;;;;;12690:14;;12664:41;;12690:11;;12702:1;;12690:14;;;;;;:::i;:::-;;;;;;;12664:4;:16;;:25;;:41;;;;:::i;:::-;12659:105;;12724:31;;-1:-1:-1;;;12724:31:230;;;;;;;;;;;12659:105;12772:39;12796:11;12808:1;12796:14;;;;;;;;:::i;:::-;;;;;;;12772:4;:16;;:23;;:39;;;;:::i;:::-;-1:-1:-1;;12840:3:230;;12467:391;;12866:158;12946:27;13003:16;13012:6;13003:8;:16::i;:::-;-1:-1:-1;12981:38:230;12866:158;-1:-1:-1;;;;12866:158:230:o;11600:620::-;11788:18;;-1:-1:-1;;;;;;;;;;;427:66:231;11703:30:230;11813:403;11837:13;11833:1;:17;11813:403;;;11902:33;11920:11;11932:1;11920:14;;;;;;;;:::i;11902:33::-;11994:56;12035:11;12047:1;12035:14;;;;;;;;:::i;:::-;;;;;;;11994:2;:11;;:19;12006:6;11994:19;;;;;;;;;;;:31;;:40;;:56;;;;:::i;:::-;11990:120;;;12069:32;;-1:-1:-1;;;12069:32:230;;;;;;;;;;;11990:120;12118:51;12154:11;12166:1;12154:14;;;;;;;;:::i;:::-;;;;;;;12118:2;:11;;:19;12130:6;12118:19;;;;;;;;;;;:31;;:35;;:51;;;;:::i;:::-;-1:-1:-1;12198:3:230;;11813:403;;13215:543;13352:24;13369:6;13352:16;:24::i;:::-;13468:18;;13416:72;;:43;:72::i;:::-;13526:58;13548:6;13564:11;:18;;;13526:21;:58::i;:::-;13622:131;13690:11;:18;;;13717:6;13731:11;:16;;;13622:52;:131::i;13762:483::-;13964:18;;13912:72;;:43;:72::i;:::-;14027:63;14054:6;14070:11;:18;;;14027:26;:63::i;:::-;14201:18;;14128:112;;14228:6;14128:57;:112::i;3513:285:174:-;3613:4;3642:10;;3672:8;:6;:8::i;:::-;-1:-1:-1;;;;;3672:18:174;;:121;;;-1:-1:-1;286:66:108;519:31:106;;;3701:10:174;:91;;;;;3723:69;3735:9;3746:6;3779:10;3762:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;3754:37;;;:::i;:::-;3723:11;:69::i;:::-;3659:134;3513:285;-1:-1:-1;;;;3513:285:174:o;11317:144:350:-;11394:4;4360:21;;;:14;;;:21;;;;;;:26;;11417:37;11410:44;11317:144;-1:-1:-1;;;11317:144:350:o;10097:588:230:-;10205:45;10253:52;;;-1:-1:-1;;;;;;;;;;;10253:52:230;;;;;10176:21;;10253:72;;;;;10357:21;10253:72;10357:19;:21::i;:::-;10332:46;;10385:39;10453:14;-1:-1:-1;;;;;10427:46:230;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10427:46:230;;10385:88;;10485:9;10480:170;10504:14;10500:1;:18;10480:170;;;10533:26;10562:18;:12;10578:1;10562:15;:18::i;:::-;10533:47;;10624:18;10588:17;10606:1;10588:20;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10588:55:230;;;:20;;;;;;;;;;;:55;-1:-1:-1;10520:3:230;;10480:170;;3430:476:192;-1:-1:-1;;;;;3504:25:192;;3500:101;;3546:48;;-1:-1:-1;;;3546:48:192;;;;;;;;;;;3500:101;3617:70;;-1:-1:-1;;;3617:70:192;;-1:-1:-1;;;3617:70:192;;;16325:52:398;-1:-1:-1;;;;;3617:38:192;;;;;16298:18:398;;3617:70:192;;;;;;;;;;;;;;;;;;-1:-1:-1;3617:70:192;;;;;;;;-1:-1:-1;;3617:70:192;;;;;;;;;;;;:::i;:::-;;;3607:295;;3845:50;;-1:-1:-1;;;3845:50:192;;;;;;;;;;;3607:295;3730:9;3725:92;;3758:50;;-1:-1:-1;;;3758:50:192;;;;;;;;;;;909:279;476:66:193;1077:37:192;:15;1102:11;1077:24;:37::i;:::-;1072:112;;1131:46;;-1:-1:-1;;;1131:46:192;;;;;;;;;;;5591:103:253;5647:15;5677:12;5685:3;5677:7;:12::i;14399:326:230:-;14499:30;14532:38;;;-1:-1:-1;;;;;;;;;;;14532:38:230;;;;;14582:39;:17;;;14609:11;14582:26;:39::i;:::-;14577:100;;14638:32;;-1:-1:-1;;;14638:32:230;;;;;;;;;;;14577:100;14683:37;:17;;;14708:11;14683:24;:37::i;:::-;;14493:232;14399:326;;:::o;14729:306::-;14812:30;14845:38;;;-1:-1:-1;;;;;;;;;;;14845:38:230;;;;;14894:39;:17;;;14921:11;14894:26;:39::i;:::-;14890:100;;;14950:33;;-1:-1:-1;;;14950:33:230;;;;;;;;;;;14890:100;14996:34;:17;;;15018:11;14996:21;:34::i;4562:191:192:-;4664:29;4681:11;4664:16;:29::i;:::-;4699:49;;-1:-1:-1;;;4699:49:192;;;;;9949:25:398;;;-1:-1:-1;;;;;4699:43:192;;;;;9922:18:398;;4699:49:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4562:191;;:::o;605:128:254:-;673:4;:11;688:1;673:16;669:59;;698:30;;-1:-1:-1;;;698:30:254;;;;;;;;;;;4324:234:192;4455:29;4472:11;4455:16;:29::i;:::-;4490:63;;-1:-1:-1;;;4490:63:192;;-1:-1:-1;;;;;4490:40:192;;;;;:63;;4531:4;;4537:15;;4490:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:234;;;:::o;9967:126:230:-;10013:24;10052:36;:27;:34;:36::i;9486:477::-;9596:16;9772:19;;;-1:-1:-1;;;;;;;;;;;9772:19:230;;;;;9765:31;;9570:18;;9596:16;9570:18;;;;-1:-1:-1;;;;;;;;;;;427:66:231;9765:31:230;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9816:19:230;;;;:11;;;:19;;;;;:31;;;;9765;;-1:-1:-1;9816:31:230;;;;;-1:-1:-1;9867:40:230;;:31;;;-1:-1:-1;9867:38:230;;-1:-1:-1;9867:40:230:i;:::-;9853:54;;9928:30;9951:6;9928:22;:30::i;:::-;9913:45;;9698:265;9486:477;;;;;:::o;418:183:254:-;534:15;;519:4;;534:21;-1:-1:-1;530:66:254;;;564:32;;-1:-1:-1;;;564:32:254;;;;;;;;;;;530:66;483:118;418:183;;:::o;9125:159:230:-;-1:-1:-1;;;;;;;;;;;9263:12:230;;9174:14;;427:66:231;9263:16:230;;9278:1;9263:16;:::i;:::-;9256:23;;;9125:159;:::o;10689:726::-;-1:-1:-1;;;;;;;;;;;10944:14:230;;10852;;427:66:231;;;10852:14:230;;10944;;;:::i;:::-;;;;;-1:-1:-1;10944:14:230;-1:-1:-1;10965:20:230;:8;;;10944:14;10965:12;:20::i;:::-;-1:-1:-1;10991:19:230;;;;:11;;;:19;;;;;:35;11018:8;10991:19;:35;:::i;:::-;-1:-1:-1;11032:19:230;;;;:11;;;:19;;;;;:31;;:45;;-1:-1:-1;;11032:45:230;;;;;;;11084:42;11032:19;11114:11;11084:21;:42::i;:::-;11138:9;11133:278;11157:12;:19;11153:1;:23;11133:278;;;11270:1;-1:-1:-1;;;;;11234:38:230;11242:12;11255:1;11242:15;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;11234:38:230;;11230:104;;11291:34;;-1:-1:-1;;;11291:34:230;;;;;;;;;;;11230:104;11342:62;11387:12;11400:1;11387:15;;;;;;;;:::i;:::-;;;;;;;11342:2;:11;;:19;11354:6;11342:19;;;;;;;;;;;:32;;:36;;:62;;;;:::i;:::-;-1:-1:-1;11178:3:230;;11133:278;;;;10868:547;10689:726;;;;;;:::o;11101:135:350:-;11171:4;11194:35;11202:3;11222:5;11194:7;:35::i;4527:95:253:-;4583:7;4605:12;4613:3;2602:18;;2524:101;4942:127;5021:13;5049:15;5053:3;5058:5;5049:3;:15::i;4118:127::-;4202:4;4221:19;4229:3;4234:5;4221:7;:19::i;9574:156:350:-;9648:7;9698:22;9702:3;9714:5;9698:3;:22::i;8634:156::-;8707:4;8730:53;8738:3;-1:-1:-1;;;;;8758:23:350;;8730:7;:53::i;3252:796:181:-;3328:27;-1:-1:-1;;;;;;;;;;;3363:37:181;3467:27;370:66:182;3467:25:181;:27::i;:::-;3433:61;;3500:13;3551:23;-1:-1:-1;;;;;3537:38:181;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3537:38:181;;3524:51;;3587:9;3582:266;3606:23;3602:1;:27;3582:266;;;3641:17;3661:24;:7;3683:1;3661:21;:24::i;:::-;3698:35;;;;:24;;;:35;;;;;3641:44;;-1:-1:-1;3698:52:181;;3743:6;3698:44;:52::i;:::-;3694:108;;;3784:9;3762:10;3773:7;;;;:::i;:::-;;;3762:19;;;;;;;;:::i;:::-;;;;;;:31;;;;;3694:108;-1:-1:-1;3830:3:181;;3582:266;;;;3884:5;3858:23;:31;3854:190;;;4001:17;;3934:35;;;3997:32;;3978:52;;3854:190;3357:691;;;3252:796;;;:::o;4494:438::-;4575:29;4594:9;4575:18;:29::i;:::-;4610:34;4634:9;4610:23;:34::i;:::-;4650:37;4761:35;;;:24;:35;;;;;-1:-1:-1;;;;;;;;;;;370:66:182;4761:52:181;;4806:6;4761:44;:52::i;:::-;4756:115;;4830:34;;-1:-1:-1;;;4830:34:181;;;;;;;;;;;4756:115;4877:35;;;;:24;;;:35;;;;;:50;;4920:6;4877:42;:50::i;14249:146:230:-;14325:3;14319:17;14340:1;14319:22;14315:76;;14358:26;;-1:-1:-1;;;14358:26:230;;;;;;;;;;;4318:136:253;4409:4;4428:21;4438:3;4443:5;4428:9;:21::i;3855:109::-;3924:4;3943:16;3948:3;3953:5;3943:4;:16::i;717:189:102:-;779:67;;;;;;;;295:66:104;779:67:102;-1:-1:-1;;;;;779:67:102;;;;;;;;;;;;;859:42;;-1:-1:-1;;;859:42:102;;;;;9949:25:398;;;;859:42:102;;758:13;;859:30;;9922:18:398;;;;;859:42:102;;;;;;779:67;859:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1559:1252:174:-;1672:4;1684:13;1700:8;:6;:8::i;:::-;1684:24;;1715;1742:31;1768:4;1742:25;:31::i;:::-;1809:14;;1715:58;;-1:-1:-1;1779:27:174;1862:17;:15;:17::i;:::-;1911:19;;1830:49;;-1:-1:-1;1885:23:174;1937:320;1961:19;1957:1;:23;1937:320;;;1995:14;2012:7;2020:1;2012:10;;;;;;;;:::i;:::-;;;;;;;1995:27;;2045:5;-1:-1:-1;;;;;2035:15:174;:6;-1:-1:-1;;;;;2035:15:174;;2031:51;;2069:4;2062:11;;;;;;;;;;;2031:51;2120:9;2115:136;2135:15;2131:1;:19;2115:136;;;2200:6;-1:-1:-1;;;;;2171:35:174;:25;2180:12;2193:1;2180:15;;;;;;;;:::i;:::-;;;;;;;2171:8;:25::i;:::-;-1:-1:-1;;;;;2171:35:174;;2167:76;;2227:5;2220:12;;;;;;;;;;;;2167:76;2152:3;;2115:136;;;-1:-1:-1;;1982:3:174;;1937:320;;;-1:-1:-1;476:66:193;2301:44:174;2425:24;:15;:22;:24::i;:::-;2396:53;;2461:9;2456:332;2480:18;2476:1;:22;2456:332;;;2513:47;2563:2;2513:47;2596:21;:15;;;2615:1;2596:18;:21::i;:::-;-1:-1:-1;;;;;2563:62:174;;;;;;;;;;;;;;;;;-1:-1:-1;2563:62:174;2513:112;;;;;;;;;;;;;;;;-1:-1:-1;;;2513:112:174;;;;;;;;;;-1:-1:-1;;;2513:112:174;;;;;;;;;;;;2647:28;;-1:-1:-1;;;2647:28:174;;;;2513:112;;-1:-1:-1;2513:112:174;;2647:26;;:28;;;;;;;;;;;2513:112;2647:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2646:29;:97;;;;;2687:1;:13;;;-1:-1:-1;;;;;2687:24:174;;2712:9;2723:7;2732:10;2687:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2633:149;;;2769:4;2762:11;;;;;;;;;;;;;2633:149;-1:-1:-1;2500:3:174;;2456:332;;;-1:-1:-1;2801:5:174;;1559:1252;-1:-1:-1;;;;;;;;;;;1559:1252:174:o;8871:165:350:-;-1:-1:-1;;;;;9004:23:350;;8951:4;4360:21;;;:14;;;:21;;;;;;:26;;8974:55;4264:129;3597:102:253;3653:15;3683:3;:11;;3676:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3597:102;;;:::o;8316:150:350:-;8386:4;8409:50;8414:3;-1:-1:-1;;;;;8434:23:350;;8409:4;:50::i;12671:297::-;12731:16;12759:22;12784:19;12792:3;12784:7;:19::i;10804:129::-;10871:4;10894:32;10899:3;10919:5;10894:4;:32::i;2815:1368::-;2881:4;3010:21;;;:14;;;:21;;;;;;3046:13;;3042:1135;;3413:18;3434:12;3445:1;3434:8;:12;:::i;:::-;3480:18;;3413:33;;-1:-1:-1;3460:17:350;;3480:22;;3501:1;;3480:22;:::i;:::-;3460:42;;3535:9;3521:10;:23;3517:378;;3564:17;3584:3;:11;;3596:9;3584:22;;;;;;;;:::i;:::-;;;;;;;;;3564:42;;3731:9;3705:3;:11;;3717:10;3705:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;;3844:25;;;:14;;;:25;;;;;:36;;;3517:378;3973:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4076:3;:14;;:21;4091:5;4076:21;;;;;;;;;;;4069:28;;;4119:4;4112:11;;;;;;;3042:1135;4161:5;4154:12;;;;;2945:130:253;3024:13;3052:3;:11;;3064:5;3052:18;;;;;;;;:::i;:::-;;;;;;;;3045:25;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2945:130;;;;:::o;973:1266::-;1057:4;1165:18;1186:3;:12;;1199:5;1186:19;;;;;;:::i;:::-;;;;;;;;;;;;;;1165:40;;1216:10;1230:1;1216:15;1212:1023;;1555:21;1579:14;1592:1;1579:10;:14;:::i;:::-;1621:18;;1555:38;;-1:-1:-1;1601:17:253;;1621:22;;1642:1;;1621:22;:::i;:::-;1601:42;;1669:13;1656:9;:26;1652:358;;1694:23;1720:3;:11;;1732:9;1720:22;;;;;;;;:::i;:::-;;;;;;;;1694:48;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1855:9;1826:3;:11;;1838:13;1826:26;;;;;;;;:::i;:::-;;;;;;;;:38;;;;;;:::i;:::-;;1948:10;1922:3;:12;;1935:9;1922:23;;;;;;:::i;:::-;;;;;;;;;;;;;;:36;-1:-1:-1;1652:358:253;2076:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;2156:3;:12;;2169:5;2156:19;;;;;;:::i;:::-;;;;;;;;;;;;;2149:26;;;2191:4;2184:11;;;;;;;4923:118:350;4990:7;5016:3;:11;;5028:5;5016:18;;;;;;;;:::i;:::-;;;;;;;;;5009:25;;4923:118;;;;:::o;5848:224:181:-;5953:54;-1:-1:-1;;;;;;;;;;;5997:9:181;5953:43;:54::i;:::-;5948:120;;6024:37;;-1:-1:-1;;;6024:37:181;;;;;;;;;;;5376:246;5448:37;5522:30;;;:19;:30;;;;;:39;;;-1:-1:-1;;;;;;;;;;;370:66:182;5522:39:181;;5518:100;;;5578:33;;-1:-1:-1;;;5578:33:181;;;;;;;;;;;2312:139:253;2403:4;2422:3;:12;;2435:5;2422:19;;;;;;:::i;:::-;;;;;;;;;;;;;;;:24;;;2312:139;-1:-1:-1;;;2312:139:253:o;459:360::-;528:4;545:21;555:3;560:5;545:9;:21::i;:::-;540:275;;576:23;;;;;;;:11;:23;;;;;;;;593:5;576:23;;:::i;:::-;-1:-1:-1;738:18:253;;716:19;;:12;;;;:19;;729:5;;716:19;:::i;:::-;;;;;;;;;;;;;;:40;-1:-1:-1;771:4:253;764:11;;540:275;-1:-1:-1;803:5:253;796:12;;4541:861:174;4624:16;4648:14;287:66:208;4677:39:174;;;4756:31;;-1:-1:-1;;;4756:31:174;;-1:-1:-1;;;;;18871:32:398;;;4756:31:174;;;18853:51:398;4677:39:174;;;;-1:-1:-1;4677:39:174;;;;4756:22;;18826:18:398;;4756:31:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4756:31:174;;;;;;;;;;;;:::i;:::-;4908;;-1:-1:-1;;;4908:31:174;;-1:-1:-1;;;;;18871:32:398;;;4908:31:174;;;18853:51:398;4723:64:174;;-1:-1:-1;4881:24:174;;4908:22;;;;;18826:18:398;;4908:31:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4881:58;;4949:13;:20;4973:1;4949:25;:59;;;;-1:-1:-1;;;;;;4978:30:174;;;;4949:59;4945:161;;;5068:31;;-1:-1:-1;;;5068:31:174;;-1:-1:-1;;;;;18871:32:398;;;5068:31:174;;;18853:51:398;5028:16:174;;-1:-1:-1;5028:16:174;;5068:22;;;;;18826:18:398;;5068:31:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5068:31:174;;;;;;;;;;;;:::i;:::-;5052:47;;4945:161;5142:20;;5112:27;5210:23;5142:20;5232:1;5210:23;:::i;:::-;-1:-1:-1;;;;;5196:38:174;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5196:38:174;;5169:65;;5245:9;5240:94;5264:19;5260:1;:23;5240:94;;;5311:13;5325:1;5311:16;;;;;;;;:::i;:::-;;;;;;;5298:7;5306:1;5298:10;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5298:29:174;;;:10;;;;;;;;;;;:29;5285:3;;5240:94;;;;5370:7;5339;5347:19;5339:28;;;;;;;;:::i;:::-;-1:-1:-1;;;;;5339:38:174;;;:28;;;;;;;;;;;:38;5390:7;4541:861;-1:-1:-1;;;;;;4541:861:174:o;1221:128:177:-;1271:16;1302:42;370:66:178;1302:40:177;:42::i;22038:138:124:-;22104:7;22142:27;22161:7;22142:18;:27::i;2241:406:350:-;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:350;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;5581:109;5637:16;5672:3;:11;;5665:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:109;;;:::o;7829:1501:124:-;7967:32;8043:29;;;:20;:29;;;;;;;293:66:126;;-1:-1:-1;;;8108:24:124;;:29;;8104:1172;;8229:6;8239:1;8229:11;8225:791;;8269:16;;8258:27;;8254:83;;8306:31;;-1:-1:-1;;;8306:31:124;;;;;;;;;;;8254:83;8824:182;-1:-1:-1;;8903:9:124;;;8882:31;;;;:20;;;:31;;;;;;8903:9;;8882:31;;-1:-1:-1;8941:25:124;;8824:182;8941:25;;8980:13;7829:1501;;;:::o;8104:1172::-;7959:1323;9294:31;;-1:-1:-1;;;9294:31:124;;;;;;;;;;;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;14:348:398;66:8;76:6;130:3;123:4;115:6;111:17;107:27;97:55;;148:1;145;138:12;97:55;-1:-1:-1;171:20:398;;-1:-1:-1;;;;;203:30:398;;200:50;;;246:1;243;236:12;200:50;283:4;275:6;271:17;259:29;;335:3;328:4;319:6;311;307:19;303:30;300:39;297:59;;;352:1;349;342:12;297:59;14:348;;;;;:::o;367:127::-;428:10;423:3;419:20;416:1;409:31;459:4;456:1;449:15;483:4;480:1;473:15;499:275;570:2;564:9;635:2;616:13;;-1:-1:-1;;612:27:398;600:40;;-1:-1:-1;;;;;655:34:398;;691:22;;;652:62;649:88;;;717:18;;:::i;:::-;753:2;746:22;499:275;;-1:-1:-1;499:275:398:o;779:182::-;838:4;-1:-1:-1;;;;;863:6:398;860:30;857:56;;;893:18;;:::i;:::-;-1:-1:-1;938:1:398;934:14;950:4;930:25;;779:182::o;966:407::-;1031:5;-1:-1:-1;;;;;1057:6:398;1054:30;1051:56;;;1087:18;;:::i;:::-;1125:57;1170:2;1149:15;;-1:-1:-1;;1145:29:398;1176:4;1141:40;1125:57;:::i;:::-;1116:66;;1205:6;1198:5;1191:21;1245:3;1236:6;1231:3;1227:16;1224:25;1221:45;;;1262:1;1259;1252:12;1221:45;1311:6;1306:3;1299:4;1292:5;1288:16;1275:43;1365:1;1358:4;1349:6;1342:5;1338:18;1334:29;1327:40;966:407;;;;;:::o;1378:1088::-;1431:5;1484:3;1477:4;1469:6;1465:17;1461:27;1451:55;;1502:1;1499;1492:12;1451:55;1538:6;1525:20;1564:4;1588:59;1604:42;1643:2;1604:42;:::i;:::-;1588:59;:::i;:::-;1681:15;;;1767:1;1763:10;;;;1751:23;;1747:32;;;1712:12;;;;1791:15;;;1788:35;;;1819:1;1816;1809:12;1788:35;1855:2;1847:6;1843:15;1867:570;1883:6;1878:3;1875:15;1867:570;;;1969:3;1956:17;-1:-1:-1;;;;;1992:11:398;1989:35;1986:125;;;2065:1;2094:2;2090;2083:14;1986:125;2134:24;;2193:2;2185:11;;2181:21;-1:-1:-1;2171:119:398;;2244:1;2273:2;2269;2262:14;2171:119;2315:79;2390:3;2384:2;2380;2376:11;2363:25;2358:2;2354;2350:11;2315:79;:::i;:::-;2303:92;;-1:-1:-1;2415:12:398;;;;1900;;1867:570;;;-1:-1:-1;2455:5:398;1378:1088;-1:-1:-1;;;;;;1378:1088:398:o;2471:145::-;-1:-1:-1;;;;;2560:31:398;;2550:42;;2540:70;;2606:1;2603;2596:12;2621:831;2685:5;2733:4;2721:9;2716:3;2712:19;2708:30;2705:50;;;2751:1;2748;2741:12;2705:50;2784:4;2778:11;2828:4;2820:6;2816:17;-1:-1:-1;;;;;2920:6:398;2908:10;2905:22;2900:2;2888:10;2885:18;2882:46;2879:72;;;2931:18;;:::i;:::-;2973:10;2967:4;2960:24;3002:6;2993:15;;3045:9;3032:23;3017:38;;3064:47;3103:7;3064:47;:::i;:::-;3120:23;;;3194:2;3179:18;;3166:32;;3210:14;;;3207:34;;;3237:1;3234;3227:12;3207:34;-1:-1:-1;3260:22:398;;3313:4;3305:13;;3301:23;-1:-1:-1;3291:51:398;;3338:1;3335;3328:12;3291:51;3375:70;3441:3;3436:2;3423:16;3418:2;3414;3410:11;3375:70;:::i;:::-;3370:2;3362:6;3358:15;3351:95;;;2621:831;;;;:::o;3457:923::-;3528:5;3581:3;3574:4;3566:6;3562:17;3558:27;3548:55;;3599:1;3596;3589:12;3548:55;3635:6;3622:20;3661:4;3685:59;3701:42;3740:2;3701:42;:::i;3685:59::-;3778:15;;;3864:1;3860:10;;;;3848:23;;3844:32;;;3809:12;;;;3888:15;;;3885:35;;;3916:1;3913;3906:12;3885:35;3952:2;3944:6;3940:15;3964:387;3980:6;3975:3;3972:15;3964:387;;;4066:3;4053:17;-1:-1:-1;;;;;4089:11:398;4086:35;4083:125;;;4162:1;4191:2;4187;4180:14;4083:125;4233:75;4304:3;4299:2;4285:11;4277:6;4273:24;4269:33;4233:75;:::i;:::-;4221:88;;-1:-1:-1;4329:12:398;;;;3997;;3964:387;;4385:1015;4579:6;4587;4595;4603;4611;4664:3;4652:9;4643:7;4639:23;4635:33;4632:53;;;4681:1;4678;4671:12;4632:53;4717:9;4704:23;4694:33;;4778:2;4767:9;4763:18;4750:32;-1:-1:-1;;;;;4842:2:398;4834:6;4831:14;4828:34;;;4858:1;4855;4848:12;4828:34;4897:59;4948:7;4939:6;4928:9;4924:22;4897:59;:::i;:::-;4975:8;;-1:-1:-1;4871:85:398;-1:-1:-1;5063:2:398;5048:18;;5035:32;;-1:-1:-1;5079:16:398;;;5076:36;;;5108:1;5105;5098:12;5076:36;5131:62;5185:7;5174:8;5163:9;5159:24;5131:62;:::i;:::-;5121:72;;5246:2;5235:9;5231:18;5218:32;5202:48;;5275:2;5265:8;5262:16;5259:36;;;5291:1;5288;5281:12;5259:36;;5314:80;5386:7;5375:8;5364:9;5360:24;5314:80;:::i;:::-;5304:90;;;4385:1015;;;;;;;;:::o;5405:250::-;5490:1;5500:113;5514:6;5511:1;5508:13;5500:113;;;5590:11;;;5584:18;5571:11;;;5564:39;5536:2;5529:10;5500:113;;;-1:-1:-1;;5647:1:398;5629:16;;5622:27;5405:250::o;5660:271::-;5702:3;5740:5;5734:12;5767:6;5762:3;5755:19;5783:76;5852:6;5845:4;5840:3;5836:14;5829:4;5822:5;5818:16;5783:76;:::i;:::-;5913:2;5892:15;-1:-1:-1;;5888:29:398;5879:39;;;;5920:4;5875:50;;5660:271;-1:-1:-1;;5660:271:398:o;5936:479::-;6003:3;6041:5;6035:12;6068:6;6063:3;6056:19;6094:4;6123;6118:3;6114:14;6107:21;;6162:4;6155:5;6151:16;6185:1;6195:195;6209:6;6206:1;6203:13;6195:195;;;6274:13;;-1:-1:-1;;;;;6270:39:398;6258:52;;6330:12;;;;6365:15;;;;6306:1;6224:9;6195:195;;;-1:-1:-1;6406:3:398;;5936:479;-1:-1:-1;;;;;5936:479:398:o;6420:1147::-;6503:5;6497:12;6492:3;6485:25;6467:3;6529:4;6579:2;6572:5;6568:14;6562:21;6613:4;6608:2;6603:3;6599:12;6592:26;6639:47;6680:4;6675:3;6671:14;6657:12;6639:47;:::i;:::-;6627:59;;6749:4;6742:5;6738:16;6732:23;6725:31;6718:39;6711:4;6706:3;6702:14;6695:63;6806:4;6799:5;6795:16;6789:23;6854:3;6848:4;6844:14;6837:4;6832:3;6828:14;6821:38;6881:4;6914:14;6908:21;6951:6;6945:4;6938:20;6986:2;6980:4;6976:13;6967:22;;7043:2;7033:6;7030:1;7026:14;7020:4;7016:25;7012:34;7089:2;7073:14;7069:23;7055:37;;7110:1;7120:256;7134:6;7131:1;7128:13;7120:256;;;7224:2;7220:7;7213:4;7205:6;7201:17;7197:31;7190:5;7183:46;7252:40;7285:6;7276;7270:13;7252:40;:::i;:::-;7315:15;;;;7352:14;;;;7242:50;-1:-1:-1;7156:1:398;7149:9;7120:256;;;7124:3;7424:4;7417:5;7413:16;7407:23;7385:45;;7474:3;7466:6;7462:16;7455:4;7450:3;7446:14;7439:40;7495:66;7554:6;7538:14;7495:66;:::i;:::-;7488:73;6420:1147;-1:-1:-1;;;;;;;;;6420:1147:398:o;7572:834::-;7760:4;7789:2;7829;7818:9;7814:18;7859:2;7848:9;7841:21;7882:6;7917;7911:13;7948:6;7940;7933:22;7986:2;7975:9;7971:18;7964:25;;8048:2;8038:6;8035:1;8031:14;8020:9;8016:30;8012:39;7998:53;;8086:2;8078:6;8074:15;8107:1;8117:260;8131:6;8128:1;8125:13;8117:260;;;8224:2;8220:7;8208:9;8200:6;8196:22;8192:36;8187:3;8180:49;8252:45;8290:6;8281;8275:13;8252:45;:::i;:::-;8242:55;-1:-1:-1;8355:12:398;;;;8320:15;;;;8153:1;8146:9;8117:260;;;-1:-1:-1;8394:6:398;;7572:834;-1:-1:-1;;;;;;;7572:834:398:o;8411:180::-;8470:6;8523:2;8511:9;8502:7;8498:23;8494:32;8491:52;;;8539:1;8536;8529:12;8491:52;-1:-1:-1;8562:23:398;;8411:180;-1:-1:-1;8411:180:398:o;8596:251::-;8771:2;8760:9;8753:21;8734:4;8791:50;8837:2;8826:9;8822:18;8814:6;8791:50;:::i;8852:946::-;9037:6;9045;9053;9061;9114:2;9102:9;9093:7;9089:23;9085:32;9082:52;;;9130:1;9127;9120:12;9082:52;9170:9;9157:23;-1:-1:-1;;;;;9240:2:398;9232:6;9229:14;9226:34;;;9256:1;9253;9246:12;9226:34;9295:59;9346:7;9337:6;9326:9;9322:22;9295:59;:::i;:::-;9373:8;;-1:-1:-1;9269:85:398;-1:-1:-1;9461:2:398;9446:18;;9433:32;;-1:-1:-1;9477:16:398;;;9474:36;;;9506:1;9503;9496:12;9474:36;9529:62;9583:7;9572:8;9561:9;9557:24;9529:62;:::i;:::-;9519:72;;9644:2;9633:9;9629:18;9616:32;9600:48;;9673:2;9663:8;9660:16;9657:36;;;9689:1;9686;9679:12;9657:36;;9712:80;9784:7;9773:8;9762:9;9758:24;9712:80;:::i;:::-;9702:90;;;8852:946;;;;;;;:::o;9985:425::-;10088:6;10096;10149:2;10137:9;10128:7;10124:23;10120:32;10117:52;;;10165:1;10162;10155:12;10117:52;10201:9;10188:23;10178:33;;10262:2;10251:9;10247:18;10234:32;-1:-1:-1;;;;;10281:6:398;10278:30;10275:50;;;10321:1;10318;10311:12;10275:50;10344:60;10396:7;10387:6;10376:9;10372:22;10344:60;:::i;:::-;10334:70;;;9985:425;;;;;:::o;10415:803::-;10577:4;10606:2;10646;10635:9;10631:18;10676:2;10665:9;10658:21;10699:6;10734;10728:13;10765:6;10757;10750:22;10803:2;10792:9;10788:18;10781:25;;10865:2;10855:6;10852:1;10848:14;10837:9;10833:30;10829:39;10815:53;;10903:2;10895:6;10891:15;10924:1;10934:255;10948:6;10945:1;10942:13;10934:255;;;11041:2;11037:7;11025:9;11017:6;11013:22;11009:36;11004:3;10997:49;11069:40;11102:6;11093;11087:13;11069:40;:::i;:::-;11059:50;-1:-1:-1;11167:12:398;;;;11132:15;;;;10970:1;10963:9;10934:255;;11223:434;11327:6;11335;11388:2;11376:9;11367:7;11363:23;11359:32;11356:52;;;11404:1;11401;11394:12;11356:52;11440:9;11427:23;11417:33;;11501:2;11490:9;11486:18;11473:32;-1:-1:-1;;;;;11520:6:398;11517:30;11514:50;;;11560:1;11557;11550:12;11514:50;11583:68;11643:7;11634:6;11623:9;11619:22;11583:68;:::i;11662:127::-;11723:10;11718:3;11714:20;11711:1;11704:31;11754:4;11751:1;11744:15;11778:4;11775:1;11768:15;11794:380;11873:1;11869:12;;;;11916;;;11937:61;;11991:4;11983:6;11979:17;11969:27;;11937:61;12044:2;12036:6;12033:14;12013:18;12010:38;12007:161;;12090:10;12085:3;12081:20;12078:1;12071:31;12125:4;12122:1;12115:15;12153:4;12150:1;12143:15;12305:543;12407:2;12402:3;12399:11;12396:446;;;12443:1;12467:5;12464:1;12457:16;12511:4;12508:1;12498:18;12581:2;12569:10;12565:19;12562:1;12558:27;12552:4;12548:38;12617:4;12605:10;12602:20;12599:47;;;-1:-1:-1;12640:4:398;12599:47;12695:2;12690:3;12686:12;12683:1;12679:20;12673:4;12669:31;12659:41;;12750:82;12768:2;12761:5;12758:13;12750:82;;;12813:17;;;12794:1;12783:13;12750:82;;13024:1206;-1:-1:-1;;;;;13143:3:398;13140:27;13137:53;;;13170:18;;:::i;:::-;13199:94;13289:3;13249:38;13281:4;13275:11;13249:38;:::i;:::-;13243:4;13199:94;:::i;:::-;13319:1;13344:2;13339:3;13336:11;13361:1;13356:616;;;;14016:1;14033:3;14030:93;;;-1:-1:-1;14089:19:398;;;14076:33;14030:93;-1:-1:-1;;12981:1:398;12977:11;;;12973:24;12969:29;12959:40;13005:1;13001:11;;;12956:57;14136:78;;13329:895;;13356:616;12252:1;12245:14;;;12289:4;12276:18;;-1:-1:-1;;13392:17:398;;;13493:9;13515:229;13529:7;13526:1;13523:14;13515:229;;;13618:19;;;13605:33;13590:49;;13725:4;13710:20;;;;13678:1;13666:14;;;;13545:12;13515:229;;;13519:3;13772;13763:7;13760:16;13757:159;;;13896:1;13892:6;13886:3;13880;13877:1;13873:11;13869:21;13865:34;13861:39;13848:9;13843:3;13839:19;13826:33;13822:79;13814:6;13807:95;13757:159;;;13959:1;13953:3;13950:1;13946:11;13942:19;13936:4;13929:33;13329:895;;13024:1206;;;:::o;14235:1345::-;14361:3;14355:10;-1:-1:-1;;;;;14380:6:398;14377:30;14374:56;;;14410:18;;:::i;:::-;14439:97;14529:6;14489:38;14521:4;14515:11;14489:38;:::i;:::-;14483:4;14439:97;:::i;:::-;14591:4;;14648:2;14637:14;;14665:1;14660:663;;;;15367:1;15384:6;15381:89;;;-1:-1:-1;15436:19:398;;;15430:26;15381:89;-1:-1:-1;;12981:1:398;12977:11;;;12973:24;12969:29;12959:40;13005:1;13001:11;;;12956:57;15483:81;;14630:944;;14660:663;12252:1;12245:14;;;12289:4;12276:18;;-1:-1:-1;;14696:20:398;;;14814:236;14828:7;14825:1;14822:14;14814:236;;;14917:19;;;14911:26;14896:42;;15009:27;;;;14977:1;14965:14;;;;14844:19;;14814:236;;;14818:3;15078:6;15069:7;15066:19;15063:201;;;15139:19;;;15133:26;-1:-1:-1;;15222:1:398;15218:14;;;15234:3;15214:24;15210:37;15206:42;15191:58;15176:74;;15063:201;-1:-1:-1;;;;;15310:1:398;15294:14;;;15290:22;15277:36;;-1:-1:-1;14235:1345:398:o;15585:289::-;15716:3;15754:6;15748:13;15770:66;15829:6;15824:3;15817:4;15809:6;15805:17;15770:66;:::i;:::-;15852:16;;;;;15585:289;-1:-1:-1;;15585:289:398:o;15879:297::-;15997:12;;16044:4;16033:16;;;16027:23;;15997:12;16062:16;;16059:111;;;-1:-1:-1;;16136:4:398;16132:17;;;;16129:1;16125:25;16121:38;16110:50;;15879:297;-1:-1:-1;15879:297:398:o;16388:277::-;16455:6;16508:2;16496:9;16487:7;16483:23;16479:32;16476:52;;;16524:1;16521;16514:12;16476:52;16556:9;16550:16;16609:5;16602:13;16595:21;16588:5;16585:32;16575:60;;16631:1;16628;16621:12;16670:289;16845:6;16834:9;16827:25;16888:2;16883;16872:9;16868:18;16861:30;16808:4;16908:45;16949:2;16938:9;16934:18;16926:6;16908:45;:::i;16964:127::-;17025:10;17020:3;17016:20;17013:1;17006:31;17056:4;17053:1;17046:15;17080:4;17077:1;17070:15;17096:125;17161:9;;;17182:10;;;17179:36;;;17195:18;;:::i;17226:135::-;17265:3;17286:17;;;17283:43;;17306:18;;:::i;:::-;-1:-1:-1;17353:1:398;17342:13;;17226:135::o;17366:265::-;17436:6;17489:2;17477:9;17468:7;17464:23;17460:32;17457:52;;;17505:1;17502;17495:12;17457:52;17537:9;17531:16;17556:45;17595:5;17556:45;:::i;17636:801::-;17834:4;17882:2;17871:9;17867:18;17912:6;17901:9;17894:25;17938:2;17976;17971;17960:9;17956:18;17949:30;17999:6;18034;18028:13;18065:6;18057;18050:22;18103:3;18092:9;18088:19;18081:26;;18142:2;18134:6;18130:15;18116:29;;18163:1;18173:195;18187:6;18184:1;18181:13;18173:195;;;18252:13;;-1:-1:-1;;;;;18248:39:398;18236:52;;18343:15;;;;18308:12;;;;18284:1;18202:9;18173:195;;;18177:3;;18385;18377:11;;;;;18424:6;18419:2;18408:9;18404:18;18397:34;17636:801;;;;;;:::o;18442:128::-;18509:9;;;18530:11;;;18527:37;;;18544:18;;:::i;18575:127::-;18636:10;18631:3;18627:20;18624:1;18617:31;18667:4;18664:1;18657:15;18691:4;18688:1;18681:15;18915:969;19010:6;19041:2;19084;19072:9;19063:7;19059:23;19055:32;19052:52;;;19100:1;19097;19090:12;19052:52;19133:9;19127:16;-1:-1:-1;;;;;19158:6:398;19155:30;19152:50;;;19198:1;19195;19188:12;19152:50;19221:22;;19274:4;19266:13;;19262:27;-1:-1:-1;19252:55:398;;19303:1;19300;19293:12;19252:55;19332:2;19326:9;19355:59;19371:42;19410:2;19371:42;:::i;19355:59::-;19448:15;;;19530:1;19526:10;;;;19518:19;;19514:28;;;19479:12;;;;19554:19;;;19551:39;;;19586:1;19583;19576:12;19551:39;19610:11;;;;19630:224;19646:6;19641:3;19638:15;19630:224;;;19719:3;19713:10;19736:45;19775:5;19736:45;:::i;:::-;19794:18;;19663:12;;;;19832;;;;19630:224;;;19873:5;18915:969;-1:-1:-1;;;;;;;18915:969:398:o","linkReferences":{}},"methodIdentifiers":{"addPermissionsToRole(uint256,string[])":"b7515761","addRoleToEntitlement(uint256,(address,bytes))":"ba201ba8","createRole(string,string[],(address,bytes)[])":"8fcd793d","getPermissionsByRoleId(uint256)":"b4264233","getRoleById(uint256)":"784c872b","getRoles()":"71061398","removePermissionsFromRole(uint256,string[])":"9a8e4c3e","removeRole(uint256)":"92691821","removeRoleFromEntitlement(uint256,(address,bytes))":"dba81864","updateRole(uint256,string,string[],(address,bytes)[])":"4d8b50a2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__AlreadyBanned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banning__CannotBanOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banning__CannotBanSelf\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banning__NotBanned\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__ChannelDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__ChannelDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ChannelService__RoleDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC5643__DurationZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC5643__InvalidTokenId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC5643__NotApprovedOrOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC5643__SubscriptionNotRenewable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__InvalidValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__NotMember\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Entitlement__ValueAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementsService__EntitlementDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementsService__InvalidEntitlementAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EntitlementsService__InvalidEntitlementInterface\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintERC2309QuantityExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintZeroQuantity\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Ownable__NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Ownable__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnershipNotInitializedForExtraData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__NotPaused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Pausable__Paused\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__EntitlementAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__EntitlementDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__InvalidEntitlementAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__InvalidPermission\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__PermissionAlreadyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__PermissionDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Roles__RoleDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"URIQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Validator__InvalidByteLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Validator__InvalidStringLength\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"moderator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Banned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"ConsecutiveTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"RoleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"remover\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"RoleRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"updater\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"RoleUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"expiration\",\"type\":\"uint64\"}],\"name\":\"SubscriptionUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"moderator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Unbanned\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"}],\"name\":\"addPermissionsToRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"contract IEntitlement\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IRolesBase.CreateEntitlement\",\"name\":\"entitlement\",\"type\":\"tuple\"}],\"name\":\"addRoleToEntitlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"roleName\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"contract IEntitlement\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IRolesBase.CreateEntitlement[]\",\"name\":\"entitlements\",\"type\":\"tuple[]\"}],\"name\":\"createRole\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getPermissionsByRoleId\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"getRoleById\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"disabled\",\"type\":\"bool\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"},{\"internalType\":\"contract IEntitlement[]\",\"name\":\"entitlements\",\"type\":\"address[]\"}],\"internalType\":\"struct IRolesBase.Role\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRoles\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"disabled\",\"type\":\"bool\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"},{\"internalType\":\"contract IEntitlement[]\",\"name\":\"entitlements\",\"type\":\"address[]\"}],\"internalType\":\"struct IRolesBase.Role[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"}],\"name\":\"removePermissionsFromRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"}],\"name\":\"removeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"contract IEntitlement\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IRolesBase.CreateEntitlement\",\"name\":\"entitlement\",\"type\":\"tuple\"}],\"name\":\"removeRoleFromEntitlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"roleId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"roleName\",\"type\":\"string\"},{\"internalType\":\"string[]\",\"name\":\"permissions\",\"type\":\"string[]\"},{\"components\":[{\"internalType\":\"contract IEntitlement\",\"name\":\"module\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IRolesBase.CreateEntitlement[]\",\"name\":\"entitlements\",\"type\":\"tuple[]\"}],\"name\":\"updateRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"ConsecutiveTransfer(uint256,uint256,address,address)\":{\"details\":\"Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, as defined in the [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. See {_mintERC2309} for more details.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"This emits when ownership of a contract changes.\"},\"SubscriptionUpdate(uint256,uint64)\":{\"details\":\"When a subscription is canceled, the expiration value should also be 0.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"ApprovalCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"ApprovalQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"BalanceQueryForZeroAddress()\":[{\"notice\":\"Cannot query the balance for the zero address.\"}],\"MintERC2309QuantityExceedsLimit()\":[{\"notice\":\"The `quantity` minted with ERC2309 exceeds the safety limit.\"}],\"MintToZeroAddress()\":[{\"notice\":\"Cannot mint to the zero address.\"}],\"MintZeroQuantity()\":[{\"notice\":\"The quantity of tokens minted must be more than zero.\"}],\"OwnerQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"OwnershipNotInitializedForExtraData()\":[{\"notice\":\"The `extraData` cannot be set on an unintialized ownership slot.\"}],\"TransferCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"TransferFromIncorrectOwner()\":[{\"notice\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"notice\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"notice\":\"Cannot transfer to the zero address.\"}],\"URIQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}]},\"events\":{\"SubscriptionUpdate(uint256,uint64)\":{\"notice\":\"Emitted when a subscription expiration changes\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/facets/roles/Roles.sol\":\"Roles\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/ownable/IERC173.sol\":{\"keccak256\":\"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b\",\"dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd\"]},\"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol\":{\"keccak256\":\"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb\",\"dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol\":{\"keccak256\":\"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb\",\"dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ\"]},\"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol\":{\"keccak256\":\"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf\",\"dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F\"]},\"contracts/src/diamond/facets/pausable/IPausable.sol\":{\"keccak256\":\"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684\",\"dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ\"]},\"contracts/src/diamond/facets/pausable/PausableBase.sol\":{\"keccak256\":\"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3\",\"dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V\"]},\"contracts/src/diamond/facets/pausable/PausableStorage.sol\":{\"keccak256\":\"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd\",\"dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj\"]},\"contracts/src/diamond/facets/token/ERC5643/ERC5643Base.sol\":{\"keccak256\":\"0x21d3c281732e54c93520a4f2cc72cc5af38c517f2a150ee67aa84704a3d78627\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ce7c061da0142a4d775bb85896410d363d4a28c0275d3171a70872344fc9a4\",\"dweb:/ipfs/Qmdwgs3TaC4b83JVn6RG5pJJdCrxb74ZMRqZbYSe5DuqZf\"]},\"contracts/src/diamond/facets/token/ERC5643/ERC5643Storage.sol\":{\"keccak256\":\"0x68cbff071e6a6a6b91b675af567616799435676fbbbebf4f9226e1226d6128b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2c7aee6ef32477733a50ba667cc510c8c165b9a9e146609b1f800acd0e4832\",\"dweb:/ipfs/QmcWAz74x3AR6kpzWdyPWw3iLQ1yHBT3ZVoK6jT7T3LwXq\"]},\"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol\":{\"keccak256\":\"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615\",\"dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol\":{\"keccak256\":\"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba\",\"dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol\":{\"keccak256\":\"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04\",\"dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey\"]},\"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol\":{\"keccak256\":\"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d\",\"dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz\"]},\"contracts/src/factory/facets/wallet-link/IWalletLink.sol\":{\"keccak256\":\"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0\",\"dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5\"]},\"contracts/src/spaces/entitlements/IEntitlement.sol\":{\"keccak256\":\"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca\",\"dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8\"]},\"contracts/src/spaces/facets/Entitled.sol\":{\"keccak256\":\"0x90204085688bf4dd1e1b6ca30684ee37db79210070c405406898c8a77d50bfce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9b194cc9977b03fbccc81529147a0fce7857893c8146927570c1ee5a28aa900\",\"dweb:/ipfs/QmZMvPPj5ZPYaRQaSraBkv3PSMeUZ4wN1tQ9EVvwW6SL4r\"]},\"contracts/src/spaces/facets/Permissions.sol\":{\"keccak256\":\"0x08f1d02cacf8b8adcb38219623f999d15908185eefca4e3d0ea2c3486091d08c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6b021cd9adfed316fc1f43b99e5430d75469ef13d252fa5eb25057155908b77\",\"dweb:/ipfs/QmYAhL8hWcbtHARsAY9nauyRB4BERUi9s7SSRYkb1e1kCh\"]},\"contracts/src/spaces/facets/banning/BanningBase.sol\":{\"keccak256\":\"0x38c44494221f96568f3efb540a8a6c7af141de95f25caf26df6e8a8333f31249\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf1f509347cab5090655ff8272443d18f9716fea5ef27cd86269ccbd2570aa7e\",\"dweb:/ipfs/QmbF8StzLRGnVvVXWYBowvdULoPPqQkU5hZR548cnRzuVs\"]},\"contracts/src/spaces/facets/banning/BanningStorage.sol\":{\"keccak256\":\"0xcfbf5c113056e569abf23158853ff4877744b22a4bf2bf49a282d04dab23ab17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f825e97ca65c9cd3bd5885d2fa8b8e5f8f0dcbe227dec064abbbab645685fbe\",\"dweb:/ipfs/QmXAMntxrjzeNUKh9WcyHvzDmnV89vrJ9PkKRceqxJSxZp\"]},\"contracts/src/spaces/facets/banning/IBanning.sol\":{\"keccak256\":\"0x350ec182a95a86a41335979cd7212132858c5cfcd366602b2f6cd0ec0694b63e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb4ad0c5a1086c38448b3e279733f33edc0cc39648368e5cb43dfff139ff7e8\",\"dweb:/ipfs/QmWYfYE8Haqk9kBRxmLijfQSfqbfxf7LB3wQ24d3pG5PE3\"]},\"contracts/src/spaces/facets/channels/ChannelService.sol\":{\"keccak256\":\"0xdac0460cb66d31e57593154fb31ccd112dd1d51c34ea6e5ce316250ac5548abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56c99fa9d482bd02ea96a01e1a960e1678edbbc1a9580511f68543ca194f6fb5\",\"dweb:/ipfs/QmbUjxxkjLCGXVC3bNtWQDas2vJwUmS5NraTGwWiKJAXvH\"]},\"contracts/src/spaces/facets/channels/ChannelStorage.sol\":{\"keccak256\":\"0xeb4174513a652b1571b3a92cbefa80e9d450144e8d07bfb29c863d7d9de9313c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c3b73c84a2b4a56fcc8bd1fbaa0a8896a2dfc62a7fde07b13c6d8b05dcf8fe6\",\"dweb:/ipfs/QmRPukfmps5ESAR5saLNLJp6GEg1nNCTq5qChGeAjgtLV4\"]},\"contracts/src/spaces/facets/delegation/WalletLinkProxyBase.sol\":{\"keccak256\":\"0xffef403556b46744bd1833e5df57b02eb79e010841b16610e1740bc0dac929b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1afa30929e8c6b0c69528d328774c98789825a8de53e5945a1e95092bee2ad08\",\"dweb:/ipfs/QmTbCqLJTBHgcMuFwWSTbrgR7uaASJqwqYuku4YkGzTWW1\"]},\"contracts/src/spaces/facets/delegation/WalletLinkProxyStorage.sol\":{\"keccak256\":\"0x9667e475b9ad9f1130583840c9b0594a7512f7edd33163b926b3db21f70d9909\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6271ce56258b1e9150378872d250cfaeb4501b5d0288e8f19f02096114c687f\",\"dweb:/ipfs/QmXSBA2CpLL9BdvZb994JYStgB9fJfsHwgcke6gsD3zybW\"]},\"contracts/src/spaces/facets/entitlements/EntitlementsManagerService.sol\":{\"keccak256\":\"0x1c52a860e8d0c9d025cdd0e6490aa68e82f0e12450966ed182825299f10dbc54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e82770448781ca94e9f4bf02ac981f6bebc55b2553de7bb8f977bc7335b26d11\",\"dweb:/ipfs/QmSP1gnWqnWEJwf9eFYptd2v6M8kuTa7JzNKtG6DzkzoK6\"]},\"contracts/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol\":{\"keccak256\":\"0x688692231af49bcca80f7da97be12d448b0c20a4338d259d5f654b95c5b046ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be9964e110363bf68fb4bbb8ff230fecf8c26e695077910ba07163db57030a8e\",\"dweb:/ipfs/QmNS3eUqCQU7H48LtW6hrB9xPGy9DrKCqh7JKWsAtje5dK\"]},\"contracts/src/spaces/facets/membership/MembershipStorage.sol\":{\"keccak256\":\"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a\",\"dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa\"]},\"contracts/src/spaces/facets/roles/IRoles.sol\":{\"keccak256\":\"0xa69cfbcd989b8794187a56a93deffbefaee8ca456e381ce30f85897893c50272\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf8e9b2711f66eefb949f5b5ead4d72005f1845cd63f22b287fdba3339101bd4\",\"dweb:/ipfs/Qmf7sPY4BgmvZf7p4GBsyVyd4o66yJXMgAmEgpdQAQyBdx\"]},\"contracts/src/spaces/facets/roles/Roles.sol\":{\"keccak256\":\"0xc38c54e7ffc0068eea75329016ebfcef4b81f07af7f26464ebf84f693aeaa98a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://691911cbd5a6b35d1307d7bb18502ab27ab7267f0331a6f0a909bd24468958d1\",\"dweb:/ipfs/QmXAZqxXHatia3QfpSTPfASg2AW7PUHZxf7Kb1qYvMPKBC\"]},\"contracts/src/spaces/facets/roles/RolesBase.sol\":{\"keccak256\":\"0x0ba296166ab3d7165e5d9422bca641fb4c687917304e2c062209c7182035ce79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a86d3b393fc521face2b749f5ffd4e111173728aac97f1f7137c58354413cd0a\",\"dweb:/ipfs/Qmeq5WLHDB2GX2kHEuZqgzg1Mw2PivwZZfYKAuNu5a7PCC\"]},\"contracts/src/spaces/facets/roles/RolesStorage.sol\":{\"keccak256\":\"0xc000f429d628abed048b0f6fe015a0c1505f4880562a981da966cd1e9d44f729\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://202ca9557330508e576337b60cd145009d2ed9e609030ef6802eb704b79caf7f\",\"dweb:/ipfs/QmRcArv84PmEFbKX9aWFJiJetd3eFUKR2GAPJmJ9c57cwB\"]},\"contracts/src/utils/StringSet.sol\":{\"keccak256\":\"0x2b9880e846f275864e847e8c7079d29a02c4a060c5a9d580fb153ff0e7b49ff6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df9c170f28318746eab23befba1318735652c7d198e273a322a0ff2702680605\",\"dweb:/ipfs/QmanQQi9YiPHb9Cn4wpfQ9VYUi7UZ9iQibLL6V46JPibLu\"]},\"contracts/src/utils/Validator.sol\":{\"keccak256\":\"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306\",\"dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt\"]},\"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ApprovalCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"ApprovalQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"BalanceQueryForZeroAddress"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__AlreadyBanned"},{"inputs":[],"type":"error","name":"Banning__CannotBanOwner"},{"inputs":[],"type":"error","name":"Banning__CannotBanSelf"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__InvalidTokenId"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"Banning__NotBanned"},{"inputs":[],"type":"error","name":"ChannelService__ChannelDisabled"},{"inputs":[],"type":"error","name":"ChannelService__ChannelDoesNotExist"},{"inputs":[],"type":"error","name":"ChannelService__RoleDoesNotExist"},{"inputs":[],"type":"error","name":"ERC5643__DurationZero"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC5643__InvalidTokenId"},{"inputs":[],"type":"error","name":"ERC5643__NotApprovedOrOwner"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC5643__SubscriptionNotRenewable"},{"inputs":[],"type":"error","name":"Entitlement__InvalidValue"},{"inputs":[],"type":"error","name":"Entitlement__NotAllowed"},{"inputs":[],"type":"error","name":"Entitlement__NotMember"},{"inputs":[],"type":"error","name":"Entitlement__ValueAlreadyExists"},{"inputs":[],"type":"error","name":"EntitlementsService__EntitlementDoesNotExist"},{"inputs":[],"type":"error","name":"EntitlementsService__InvalidEntitlementAddress"},{"inputs":[],"type":"error","name":"EntitlementsService__InvalidEntitlementInterface"},{"inputs":[],"type":"error","name":"MintERC2309QuantityExceedsLimit"},{"inputs":[],"type":"error","name":"MintToZeroAddress"},{"inputs":[],"type":"error","name":"MintZeroQuantity"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"Ownable__NotOwner"},{"inputs":[],"type":"error","name":"Ownable__ZeroAddress"},{"inputs":[],"type":"error","name":"OwnerQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"OwnershipNotInitializedForExtraData"},{"inputs":[],"type":"error","name":"Pausable__NotPaused"},{"inputs":[],"type":"error","name":"Pausable__Paused"},{"inputs":[],"type":"error","name":"Roles__EntitlementAlreadyExists"},{"inputs":[],"type":"error","name":"Roles__EntitlementDoesNotExist"},{"inputs":[],"type":"error","name":"Roles__InvalidEntitlementAddress"},{"inputs":[],"type":"error","name":"Roles__InvalidPermission"},{"inputs":[],"type":"error","name":"Roles__PermissionAlreadyExists"},{"inputs":[],"type":"error","name":"Roles__PermissionDoesNotExist"},{"inputs":[],"type":"error","name":"Roles__RoleDoesNotExist"},{"inputs":[],"type":"error","name":"TransferCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"TransferFromIncorrectOwner"},{"inputs":[],"type":"error","name":"TransferToNonERC721ReceiverImplementer"},{"inputs":[],"type":"error","name":"TransferToZeroAddress"},{"inputs":[],"type":"error","name":"URIQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"Validator__InvalidByteLength"},{"inputs":[],"type":"error","name":"Validator__InvalidStringLength"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"moderator","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Banned","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"toTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"ConsecutiveTransfer","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"creator","type":"address","indexed":true},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":true}],"type":"event","name":"RoleCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"remover","type":"address","indexed":true},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":true}],"type":"event","name":"RoleRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"updater","type":"address","indexed":true},{"internalType":"uint256","name":"roleId","type":"uint256","indexed":true}],"type":"event","name":"RoleUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint64","name":"expiration","type":"uint64","indexed":false}],"type":"event","name":"SubscriptionUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"moderator","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Unbanned","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"string[]","name":"permissions","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"addPermissionsToRole"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"struct IRolesBase.CreateEntitlement","name":"entitlement","type":"tuple","components":[{"internalType":"contract IEntitlement","name":"module","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"addRoleToEntitlement"},{"inputs":[{"internalType":"string","name":"roleName","type":"string"},{"internalType":"string[]","name":"permissions","type":"string[]"},{"internalType":"struct IRolesBase.CreateEntitlement[]","name":"entitlements","type":"tuple[]","components":[{"internalType":"contract IEntitlement","name":"module","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"createRole","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPermissionsByRoleId","outputs":[{"internalType":"string[]","name":"permissions","type":"string[]"}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getRoleById","outputs":[{"internalType":"struct IRolesBase.Role","name":"","type":"tuple","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"disabled","type":"bool"},{"internalType":"string[]","name":"permissions","type":"string[]"},{"internalType":"contract IEntitlement[]","name":"entitlements","type":"address[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRoles","outputs":[{"internalType":"struct IRolesBase.Role[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"disabled","type":"bool"},{"internalType":"string[]","name":"permissions","type":"string[]"},{"internalType":"contract IEntitlement[]","name":"entitlements","type":"address[]"}]}]},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"string[]","name":"permissions","type":"string[]"}],"stateMutability":"nonpayable","type":"function","name":"removePermissionsFromRole"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeRole"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"struct IRolesBase.CreateEntitlement","name":"entitlement","type":"tuple","components":[{"internalType":"contract IEntitlement","name":"module","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"removeRoleFromEntitlement"},{"inputs":[{"internalType":"uint256","name":"roleId","type":"uint256"},{"internalType":"string","name":"roleName","type":"string"},{"internalType":"string[]","name":"permissions","type":"string[]"},{"internalType":"struct IRolesBase.CreateEntitlement[]","name":"entitlements","type":"tuple[]","components":[{"internalType":"contract IEntitlement","name":"module","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"updateRole"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/facets/roles/Roles.sol":"Roles"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/ownable/IERC173.sol":{"keccak256":"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303","urls":["bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b","dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/ITokenOwnable.sol":{"keccak256":"0x086fd1151d35e0b231d9d184b93b413721c6f8e96777df597146fc194d346816","urls":["bzz-raw://e0db5e9362bd9886c65d29a1369cf6450a18dd138f36e479c549a640459c57eb","dweb:/ipfs/QmWY12UEr3DpVFhUyAjKyz9V5pAZPSKcZbNgdqXMusyNUs"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableBase.sol":{"keccak256":"0xeb38d5601e3e5ea48c47722e1f7294e78ad55649961ff7605b8fdeee8f84f0e4","urls":["bzz-raw://399307a92513cbb97d8f753415fd520598bac64a93871e9b5ce0941275bf3beb","dweb:/ipfs/QmVaPg5DkVNfBPLqg5jPaddaKBhcptHgdyLbNwwnrnN6CQ"],"license":"MIT"},"contracts/src/diamond/facets/ownable/token/TokenOwnableStorage.sol":{"keccak256":"0xb2646ac976d46fe9b135f0fe5b0ca680279a74d6491c8cc49bc9c212d39da479","urls":["bzz-raw://413b2dbc619e27f5b43d38c3aee457a2217ad41aece2689fa7913a6756689faf","dweb:/ipfs/QmW8ToN4UN4FZognfXRgBuKqPkYPJhoQrJAU45GpZoX32F"],"license":"MIT"},"contracts/src/diamond/facets/pausable/IPausable.sol":{"keccak256":"0x3df1579165cc634718d4619e0760ea3c492b2766c2e42328208a38457e103ca1","urls":["bzz-raw://1c6d3f4e3a3437075fb09c4875cfbf640af5cdc50c31b64e77ff5678dc1a8684","dweb:/ipfs/QmNSnSYZrtNLdQqidpGR6ujbhuxhSr6LJEQBc3pCu6MNNJ"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableBase.sol":{"keccak256":"0xc15f937b2c4844ecf4831fb7bad77c29db231a6a046bbbf4fc60a4066d138cf0","urls":["bzz-raw://7c787b1d900ab0442f89503a50aba744b7403bb4609c161fae8c9c11a142d6d3","dweb:/ipfs/QmafDG4KCRyetPzLXVjyz4NxUafFKJ8xwGUJEnu7Y3wz8V"],"license":"MIT"},"contracts/src/diamond/facets/pausable/PausableStorage.sol":{"keccak256":"0x998397ccc66cda4d76d219cf08bdd45eb26f583e0b484670f43d3b59ed64c19f","urls":["bzz-raw://a153e74c68fc0e2d7aa422d3b169b712a242bbf92da316732c4efd52e31781fd","dweb:/ipfs/QmVtPuvumAG5qRHinmdQn7wkEK3J4HK9gBB5LBDWbeTRNj"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/ERC5643Base.sol":{"keccak256":"0x21d3c281732e54c93520a4f2cc72cc5af38c517f2a150ee67aa84704a3d78627","urls":["bzz-raw://52ce7c061da0142a4d775bb85896410d363d4a28c0275d3171a70872344fc9a4","dweb:/ipfs/Qmdwgs3TaC4b83JVn6RG5pJJdCrxb74ZMRqZbYSe5DuqZf"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/ERC5643Storage.sol":{"keccak256":"0x68cbff071e6a6a6b91b675af567616799435676fbbbebf4f9226e1226d6128b2","urls":["bzz-raw://2e2c7aee6ef32477733a50ba667cc510c8c165b9a9e146609b1f800acd0e4832","dweb:/ipfs/QmcWAz74x3AR6kpzWdyPWw3iLQ1yHBT3ZVoK6jT7T3LwXq"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC5643/IERC5643.sol":{"keccak256":"0x82dfa9b4063600f22326a66626284bc1d2dfad2efd89e5057c820d182298f224","urls":["bzz-raw://7ab9fc298c8239a7469c1a55d052eb904620e31e5183904b5928cb48f27f1615","dweb:/ipfs/QmUn3WWo3s6xDYQosaAURbartVnWAbfUffLjNWR5jrbLjU"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol":{"keccak256":"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62","urls":["bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba","dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol":{"keccak256":"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4","urls":["bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04","dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol":{"keccak256":"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782","urls":["bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d","dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz"],"license":"MIT"},"contracts/src/factory/facets/wallet-link/IWalletLink.sol":{"keccak256":"0x1c9084570c24d5297c09ae2ced5a7cc74b0d4525d82c50ab4837073d371492ee","urls":["bzz-raw://c5a554705b2dd0483babbb512ac97bdfc24dfc9c0bc5ea80c6781c056fd03df0","dweb:/ipfs/QmNdURhnWUeSs5294Puz2FZq2bRikgPgfi4oNppd6pJSH5"],"license":"MIT"},"contracts/src/spaces/entitlements/IEntitlement.sol":{"keccak256":"0x81712a4b9127000ba341966d99395917dcb4b1305eadeddd1e1ad4e562587fdd","urls":["bzz-raw://df0fcc9d7ed7489786684f5fa8375b277146969021f96f6a9feb81cb39176eca","dweb:/ipfs/QmbxXXeXe6AzXUL8cSoABMx2E2QbRAK2uJXd8TRnDuKSJ8"],"license":"MIT"},"contracts/src/spaces/facets/Entitled.sol":{"keccak256":"0x90204085688bf4dd1e1b6ca30684ee37db79210070c405406898c8a77d50bfce","urls":["bzz-raw://b9b194cc9977b03fbccc81529147a0fce7857893c8146927570c1ee5a28aa900","dweb:/ipfs/QmZMvPPj5ZPYaRQaSraBkv3PSMeUZ4wN1tQ9EVvwW6SL4r"],"license":"MIT"},"contracts/src/spaces/facets/Permissions.sol":{"keccak256":"0x08f1d02cacf8b8adcb38219623f999d15908185eefca4e3d0ea2c3486091d08c","urls":["bzz-raw://b6b021cd9adfed316fc1f43b99e5430d75469ef13d252fa5eb25057155908b77","dweb:/ipfs/QmYAhL8hWcbtHARsAY9nauyRB4BERUi9s7SSRYkb1e1kCh"],"license":"MIT"},"contracts/src/spaces/facets/banning/BanningBase.sol":{"keccak256":"0x38c44494221f96568f3efb540a8a6c7af141de95f25caf26df6e8a8333f31249","urls":["bzz-raw://cf1f509347cab5090655ff8272443d18f9716fea5ef27cd86269ccbd2570aa7e","dweb:/ipfs/QmbF8StzLRGnVvVXWYBowvdULoPPqQkU5hZR548cnRzuVs"],"license":"MIT"},"contracts/src/spaces/facets/banning/BanningStorage.sol":{"keccak256":"0xcfbf5c113056e569abf23158853ff4877744b22a4bf2bf49a282d04dab23ab17","urls":["bzz-raw://4f825e97ca65c9cd3bd5885d2fa8b8e5f8f0dcbe227dec064abbbab645685fbe","dweb:/ipfs/QmXAMntxrjzeNUKh9WcyHvzDmnV89vrJ9PkKRceqxJSxZp"],"license":"MIT"},"contracts/src/spaces/facets/banning/IBanning.sol":{"keccak256":"0x350ec182a95a86a41335979cd7212132858c5cfcd366602b2f6cd0ec0694b63e","urls":["bzz-raw://ecb4ad0c5a1086c38448b3e279733f33edc0cc39648368e5cb43dfff139ff7e8","dweb:/ipfs/QmWYfYE8Haqk9kBRxmLijfQSfqbfxf7LB3wQ24d3pG5PE3"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelService.sol":{"keccak256":"0xdac0460cb66d31e57593154fb31ccd112dd1d51c34ea6e5ce316250ac5548abb","urls":["bzz-raw://56c99fa9d482bd02ea96a01e1a960e1678edbbc1a9580511f68543ca194f6fb5","dweb:/ipfs/QmbUjxxkjLCGXVC3bNtWQDas2vJwUmS5NraTGwWiKJAXvH"],"license":"MIT"},"contracts/src/spaces/facets/channels/ChannelStorage.sol":{"keccak256":"0xeb4174513a652b1571b3a92cbefa80e9d450144e8d07bfb29c863d7d9de9313c","urls":["bzz-raw://6c3b73c84a2b4a56fcc8bd1fbaa0a8896a2dfc62a7fde07b13c6d8b05dcf8fe6","dweb:/ipfs/QmRPukfmps5ESAR5saLNLJp6GEg1nNCTq5qChGeAjgtLV4"],"license":"MIT"},"contracts/src/spaces/facets/delegation/WalletLinkProxyBase.sol":{"keccak256":"0xffef403556b46744bd1833e5df57b02eb79e010841b16610e1740bc0dac929b2","urls":["bzz-raw://1afa30929e8c6b0c69528d328774c98789825a8de53e5945a1e95092bee2ad08","dweb:/ipfs/QmTbCqLJTBHgcMuFwWSTbrgR7uaASJqwqYuku4YkGzTWW1"],"license":"MIT"},"contracts/src/spaces/facets/delegation/WalletLinkProxyStorage.sol":{"keccak256":"0x9667e475b9ad9f1130583840c9b0594a7512f7edd33163b926b3db21f70d9909","urls":["bzz-raw://d6271ce56258b1e9150378872d250cfaeb4501b5d0288e8f19f02096114c687f","dweb:/ipfs/QmXSBA2CpLL9BdvZb994JYStgB9fJfsHwgcke6gsD3zybW"],"license":"MIT"},"contracts/src/spaces/facets/entitlements/EntitlementsManagerService.sol":{"keccak256":"0x1c52a860e8d0c9d025cdd0e6490aa68e82f0e12450966ed182825299f10dbc54","urls":["bzz-raw://e82770448781ca94e9f4bf02ac981f6bebc55b2553de7bb8f977bc7335b26d11","dweb:/ipfs/QmSP1gnWqnWEJwf9eFYptd2v6M8kuTa7JzNKtG6DzkzoK6"],"license":"MIT"},"contracts/src/spaces/facets/entitlements/EntitlementsManagerStorage.sol":{"keccak256":"0x688692231af49bcca80f7da97be12d448b0c20a4338d259d5f654b95c5b046ca","urls":["bzz-raw://be9964e110363bf68fb4bbb8ff230fecf8c26e695077910ba07163db57030a8e","dweb:/ipfs/QmNS3eUqCQU7H48LtW6hrB9xPGy9DrKCqh7JKWsAtje5dK"],"license":"MIT"},"contracts/src/spaces/facets/membership/MembershipStorage.sol":{"keccak256":"0xe9085b2b8ec900936853d0f8d7204f11eb5db3aba8c9c72799da62817afed8c0","urls":["bzz-raw://3fec75bce4b207c375b54dacc0296dc11991f7cc89da0e81e13457ae2120146a","dweb:/ipfs/QmXzZdw5FnTZqpskq3yLguKTRmhLRBVueMVfH6RY4HuSsa"],"license":"MIT"},"contracts/src/spaces/facets/roles/IRoles.sol":{"keccak256":"0xa69cfbcd989b8794187a56a93deffbefaee8ca456e381ce30f85897893c50272","urls":["bzz-raw://cf8e9b2711f66eefb949f5b5ead4d72005f1845cd63f22b287fdba3339101bd4","dweb:/ipfs/Qmf7sPY4BgmvZf7p4GBsyVyd4o66yJXMgAmEgpdQAQyBdx"],"license":"MIT"},"contracts/src/spaces/facets/roles/Roles.sol":{"keccak256":"0xc38c54e7ffc0068eea75329016ebfcef4b81f07af7f26464ebf84f693aeaa98a","urls":["bzz-raw://691911cbd5a6b35d1307d7bb18502ab27ab7267f0331a6f0a909bd24468958d1","dweb:/ipfs/QmXAZqxXHatia3QfpSTPfASg2AW7PUHZxf7Kb1qYvMPKBC"],"license":"MIT"},"contracts/src/spaces/facets/roles/RolesBase.sol":{"keccak256":"0x0ba296166ab3d7165e5d9422bca641fb4c687917304e2c062209c7182035ce79","urls":["bzz-raw://a86d3b393fc521face2b749f5ffd4e111173728aac97f1f7137c58354413cd0a","dweb:/ipfs/Qmeq5WLHDB2GX2kHEuZqgzg1Mw2PivwZZfYKAuNu5a7PCC"],"license":"MIT"},"contracts/src/spaces/facets/roles/RolesStorage.sol":{"keccak256":"0xc000f429d628abed048b0f6fe015a0c1505f4880562a981da966cd1e9d44f729","urls":["bzz-raw://202ca9557330508e576337b60cd145009d2ed9e609030ef6802eb704b79caf7f","dweb:/ipfs/QmRcArv84PmEFbKX9aWFJiJetd3eFUKR2GAPJmJ9c57cwB"],"license":"MIT"},"contracts/src/utils/StringSet.sol":{"keccak256":"0x2b9880e846f275864e847e8c7079d29a02c4a060c5a9d580fb153ff0e7b49ff6","urls":["bzz-raw://df9c170f28318746eab23befba1318735652c7d198e273a322a0ff2702680605","dweb:/ipfs/QmanQQi9YiPHb9Cn4wpfQ9VYUi7UZ9iQibLL6V46JPibLu"],"license":"MIT"},"contracts/src/utils/Validator.sol":{"keccak256":"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f","urls":["bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306","dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt"],"license":"MIT"},"lib/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":229} \ No newline at end of file diff --git a/packages/generated/dev/abis/Roles.metadata.json b/packages/generated/dev/abis/Roles.metadata.json index 994404135..f4fd163b1 100644 --- a/packages/generated/dev/abis/Roles.metadata.json +++ b/packages/generated/dev/abis/Roles.metadata.json @@ -995,10 +995,10 @@ "license": "MIT" }, "contracts/src/spaces/facets/Permissions.sol": { - "keccak256": "0xaeec9c70d231be9debb15660bf6939746532d0012c80d5518e8207dd33653de2", + "keccak256": "0x08f1d02cacf8b8adcb38219623f999d15908185eefca4e3d0ea2c3486091d08c", "urls": [ - "bzz-raw://bab7c5dd8f55f03f48d3908b8d6732b3e2d93f36312a0c3408ff10be258c165a", - "dweb:/ipfs/QmevmAc6tzP3kFoH84cRtipSq4ryqbrP3H4VB8mRZgnRxn" + "bzz-raw://b6b021cd9adfed316fc1f43b99e5430d75469ef13d252fa5eb25057155908b77", + "dweb:/ipfs/QmYAhL8hWcbtHARsAY9nauyRB4BERUi9s7SSRYkb1e1kCh" ], "license": "MIT" }, @@ -1099,10 +1099,10 @@ "license": "MIT" }, "contracts/src/spaces/facets/roles/RolesBase.sol": { - "keccak256": "0x0662c3457d1a192a6095677b9df680798cac335ec016244671d5e39004116881", + "keccak256": "0x0ba296166ab3d7165e5d9422bca641fb4c687917304e2c062209c7182035ce79", "urls": [ - "bzz-raw://fe07c240371cd47923c9fb6f49d9863df715e02cdeec180fda3f7808ea91f7a8", - "dweb:/ipfs/QmWtiHY1XkwWjRjQ55x4xFh8Rz1xos26uYgZGkWh2KzSLo" + "bzz-raw://a86d3b393fc521face2b749f5ffd4e111173728aac97f1f7137c58354413cd0a", + "dweb:/ipfs/Qmeq5WLHDB2GX2kHEuZqgzg1Mw2PivwZZfYKAuNu5a7PCC" ], "license": "MIT" }, diff --git a/packages/generated/dev/abis/SpaceOwner.json b/packages/generated/dev/abis/SpaceOwner.json index 1ab61cae0..c8bbcc1a0 100644 --- a/packages/generated/dev/abis/SpaceOwner.json +++ b/packages/generated/dev/abis/SpaceOwner.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"CLOCK_MODE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"__ERC721A_init","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"__SpaceOwner_init","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"clock","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegate","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateBySig","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expiry","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegates","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPastTotalSupply","inputs":[{"name":"timepoint","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPastVotes","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timepoint","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSpaceInfo","inputs":[{"name":"space","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ISpaceOwnerBase.Space","components":[{"name":"name","type":"string","internalType":"string"},{"name":"uri","type":"string","internalType":"string"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"shortDescription","type":"string","internalType":"string"},{"name":"longDescription","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getVotes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintSpace","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"uri","type":"string","internalType":"string"},{"name":"space","type":"address","internalType":"address"},{"name":"shortDescription","type":"string","internalType":"string"},{"name":"longDescription","type":"string","internalType":"string"}],"outputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextTokenId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFactory","inputs":[{"name":"factory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"updateSpaceInfo","inputs":[{"name":"space","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"},{"name":"uri","type":"string","internalType":"string"},{"name":"shortDescription","type":"string","internalType":"string"},{"name":"longDescription","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ConsecutiveTransfer","inputs":[{"name":"fromTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateChanged","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"fromDelegate","type":"address","indexed":true,"internalType":"address"},{"name":"toDelegate","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateVotesChanged","inputs":[{"name":"delegate","type":"address","indexed":true,"internalType":"address"},{"name":"previousBalance","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"GuardianUpdated","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"enabled","type":"bool","indexed":true,"internalType":"bool"},{"name":"cooldown","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"InterfaceAdded","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"InterfaceRemoved","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SpaceOwner__SetFactory","inputs":[{"name":"factory","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SpaceOwner__UpdateSpace","inputs":[{"name":"space","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AlreadyDisabled","inputs":[]},{"type":"error","name":"AlreadyEnabled","inputs":[]},{"type":"error","name":"ApprovalCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"ApprovalQueryForNonexistentToken","inputs":[]},{"type":"error","name":"BalanceQueryForZeroAddress","inputs":[]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"GuardianEnabled","inputs":[]},{"type":"error","name":"Initializable_AlreadyInitialized","inputs":[{"name":"version","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"Initializable_InInitializingState","inputs":[]},{"type":"error","name":"Initializable_NotInInitializingState","inputs":[]},{"type":"error","name":"Introspection_AlreadySupported","inputs":[]},{"type":"error","name":"Introspection_NotSupported","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"MintERC2309QuantityExceedsLimit","inputs":[]},{"type":"error","name":"MintToZeroAddress","inputs":[]},{"type":"error","name":"MintZeroQuantity","inputs":[]},{"type":"error","name":"NotExternalAccount","inputs":[]},{"type":"error","name":"Ownable__NotOwner","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Ownable__ZeroAddress","inputs":[]},{"type":"error","name":"OwnerQueryForNonexistentToken","inputs":[]},{"type":"error","name":"OwnershipNotInitializedForExtraData","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SpaceOwner__OnlyFactoryAllowed","inputs":[]},{"type":"error","name":"SpaceOwner__OnlySpaceOwnerAllowed","inputs":[]},{"type":"error","name":"TransferCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"TransferFromIncorrectOwner","inputs":[]},{"type":"error","name":"TransferToNonERC721ReceiverImplementer","inputs":[]},{"type":"error","name":"TransferToZeroAddress","inputs":[]},{"type":"error","name":"URIQueryForNonexistentToken","inputs":[]},{"type":"error","name":"Validator__InvalidAddress","inputs":[]},{"type":"error","name":"Validator__InvalidStringLength","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001c62000022565b620000ca565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200006f576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff9081161015620000c757805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b613bd280620000da6000396000f3fe6080604052600436106101e35760003560e01c806375794a3c116101025780639ab24eb011610095578063c87b56dd11610064578063c87b56dd14610546578063d2f01f1914610566578063d7a901d314610586578063e985e9c5146105a657600080fd5b80639ab24eb0146104d3578063a22cb465146104f3578063b88d4fde14610513578063c3cda5201461052657600080fd5b806388cc58e4116100d157806388cc58e41461045d5780638e539e8c1461047257806391ddadf41461049257806395d89b41146104be57600080fd5b806375794a3c146103e05780637ecebe00146103f5578063848806141461041557806384b0196e1461043557600080fd5b806342842e0e1161017a5780635c19a95c116101495780635c19a95c146103535780636352211e146103735780636a9a38e61461039357806370a08231146103c057600080fd5b806342842e0e146102eb5780634bf5d7e9146102fe578063587cde1e146103135780635bb478081461033357600080fd5b806323b872dd116101b657806323b872dd146102835780633644e515146102965780633a46b1a8146102ab5780633bf5b8f4146102cb57600080fd5b806306fdde03146101e8578063081812fc14610213578063095ea7b31461024b57806318160ddd14610260575b600080fd5b3480156101f457600080fd5b506101fd6105d6565b60405161020a919061317e565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004613191565b610671565b6040516001600160a01b03909116815260200161020a565b61025e6102593660046131c6565b610682565b005b34801561026c57600080fd5b506102756106ca565b60405190815260200161020a565b61025e6102913660046131f0565b6106d9565b3480156102a257600080fd5b506102756108e9565b3480156102b757600080fd5b506102756102c63660046131c6565b6108f3565b3480156102d757600080fd5b506102756102e63660046132d8565b610906565b61025e6102f93660046131f0565b610972565b34801561030a57600080fd5b506101fd610992565b34801561031f57600080fd5b5061023361032e366004613396565b61099c565b34801561033f57600080fd5b5061025e61034e366004613396565b6109a7565b34801561035f57600080fd5b5061025e61036e366004613396565b610a04565b34801561037f57600080fd5b5061023361038e366004613191565b610a0e565b34801561039f57600080fd5b506103b36103ae366004613396565b610a19565b60405161020a91906133b1565b3480156103cc57600080fd5b506102756103db366004613396565b610a5b565b3480156103ec57600080fd5b50610275610a66565b34801561040157600080fd5b50610275610410366004613396565b610a70565b34801561042157600080fd5b5061025e610430366004613443565b610aad565b34801561044157600080fd5b5061044a610aca565b60405161020a97969594939291906134af565b34801561046957600080fd5b50610233610b8d565b34801561047e57600080fd5b5061027561048d366004613191565b610bae565b34801561049e57600080fd5b506104a7610bb9565b60405165ffffffffffff909116815260200161020a565b3480156104ca57600080fd5b506101fd610bc3565b3480156104df57600080fd5b506102756104ee366004613396565b610bdb565b3480156104ff57600080fd5b5061025e61050e366004613548565b610be6565b61025e610521366004613584565b610c1f565b34801561053257600080fd5b5061025e610541366004613600565b610c69565b34801561055257600080fd5b506101fd610561366004613191565b610c77565b34801561057257600080fd5b5061025e610581366004613660565b610ca8565b34801561059257600080fd5b5061025e6105a13660046136c4565b610cfb565b3480156105b257600080fd5b506105c66105c136600461374c565b610df7565b604051901515815260200161020a565b60606105e0610e03565b60020180546105ee9061377f565b80601f016020809104026020016040519081016040528092919081815260200182805461061a9061377f565b80156106675780601f1061063c57610100808354040283529160200191610667565b820191906000526020600020905b81548152906001019060200180831161064a57829003601f168201915b5050505050905090565b600061067c82610e27565b92915050565b6001600160a01b0382161580159061069e575061069e33610e74565b156106bc57604051638043dfaf60e01b815260040160405180910390fd5b6106c68282610ef0565b5050565b60006106d4610efc565b905090565b60006106e482610f1b565b9050836001600160a01b0316816001600160a01b0316146107175760405162a1148160e81b815260040160405180910390fd5b60008061072384610fb6565b9150915061074881876107333390565b6001600160a01b039081169116811491141790565b610773576107568633610df7565b61077357604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661079a57604051633a954ecd60e21b815260040160405180910390fd5b6107a78686866001610fde565b80156107b257600082555b6107ba610e03565b6001600160a01b03871660009081526005919091016020526040902080546000190190556107e6610e03565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b1761081d610e03565b60008681526004919091016020526040812091909155600160e11b84169003610893576001840161084c610e03565b6000828152600491909101602052604081205490036108915761086d610e03565b548114610891578361087d610e03565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46108e1868686600161101d565b505050505050565b60006106d4611028565b60006108ff8383611032565b9392505050565b600080600080516020613b3283398151915280549091506001600160a01b031633146109455760405163443e750b60e11b815260040160405180910390fd5b61094d6110d0565b915061095d8787848888886110e0565b610968336001611237565b5095945050505050565b61098d83838360405180602001604052806000815250610c1f565b505050565b60606106d4611387565b600061067c8261141f565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031633146109f8576040516365f4906560e01b81523360048201526024015b60405180910390fd5b610a018161145c565b50565b610a0133826114c6565b600061067c82610f1b565b610a526040518060c001604052806060815260200160608152602001600081526020016000815260200160608152602001606081525090565b61067c82611560565b600061067c8261186b565b60006106d46110d0565b6001600160a01b03811660009081527fda5d6d87446d81938877f0ee239dac391146dd7466ea30567f72becf06773c00602052604081205461067c565b610ab6856118d4565b610ac38585858585611911565b5050505050565b600060608082808083600080516020613b5283398151915254158015610b0f57507f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336d54155b610b535760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016109ef565b610b5b6119fc565b610b63611a12565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60006106d4600080516020613b32833981519152546001600160a01b031690565b600061067c82611a28565b60006106d4611ac1565b6060610bcd610e03565b60030180546105ee9061377f565b600061067c82611acc565b808015610bf75750610bf733610e74565b15610c1557604051638043dfaf60e01b815260040160405180910390fd5b6106c68282611afa565b610c2a8484846106d9565b6001600160a01b0383163b15610c6357610c4684848484611b77565b610c63576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6108e1868686868686611c62565b6060610c8282611d4b565b610c9f57604051630a14c4b560e41b815260040160405180910390fd5b61067c82611d87565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054600160201b900460ff16610cf157604051630ef4733760e31b815260040160405180910390fd5b6106c68282611fb3565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054600160201b900460ff161580610d3757303b1515610d46565b8154600163ffffffff90911610155b15610d6f578154604051630a8ef77f60e31b815263ffffffff90911660048201526024016109ef565b815463ffffffff191660011782558015610d9657815464ff000000001916600160201b1782555b610da08585611fb3565b610daa8584611fdd565b8015610ac357815464ff0000000019168255604051600181527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15050505050565b60006108ff8383612030565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090565b6000610e3282611d4b565b610e4f576040516333d1c03960e21b815260040160405180910390fd5b610e57610e03565b60009283526006016020525060409020546001600160a01b031690565b60007f0c89d3aad1b583c77a2e9f9fffa651b386c9c29e300bf2a8e2f3de1bb0100a006001600160a01b0383163b1580156108ff57506001600160a01b038316600090815260018201602052604090205415806108ff57506001600160a01b038316600090815260018201602052604090205442109392505050565b6106c68282600161206d565b600080610f07610e03565b60010154610f13610e03565b540303919050565b600080610f26610e03565b60008481526004820160205260408120549350909150600160e01b83169003610f9c5781600003610f965780548310610f7257604051636f96cda160e11b815260040160405180910390fd5b5b600019909201600081815260048401602052604090205490929091508115610f73575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b6000806000610fc3610e03565b60009485526006016020525050604090912080549092909150565b6001600160a01b03841615801590610ffa5750610ffa84610e74565b1561101857604051638043dfaf60e01b815260040160405180910390fd5b610c63565b611018848483612122565b60006106d46121c4565b600061103c611ac1565b65ffffffffffff1682106110895760405162461bcd60e51b81526020600482015260146024820152730566f7465733a20667574757265206c6f6f6b75760641b60448201526064016109ef565b6110c061109583612238565b6001600160a01b0385166000908152600080516020613bb2833981519152602052604090209061226d565b6001600160e01b03169392505050565b60006110da610e03565b54919050565b6110eb866002612321565b6110f6856000612321565b6110ff83612345565b60008481527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477016020908152604080832080546001600160a01b0319166001600160a01b03881690811790915581516080810183528a81528084018a90528083018990524260608201529084527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477029092529091208151600080516020613b3283398151915292919081906111b290826137fb565b50602082015160018201906111c790826137fb565b5060408281015160028301556060909201516003918201558151808301835285815260208082018690526001600160a01b038816600090815292850190529190208151819061121690826137fb565b506020820151600182019061122b90826137fb565b50505050505050505050565b6000611241610e03565b54905060008290036112665760405163b562e8dd60e01b815260040160405180910390fd5b6112736000848385610fde565b680100000000000000018202611287610e03565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b17176112c2610e03565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461134c57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101611314565b508160000361136d57604051622e076360e81b815260040160405180910390fd5b80611376610e03565b555061098d9050600084838561101d565b606043611392611ac1565b65ffffffffffff16146113e75760405162461bcd60e51b815260206004820152601860248201527f566f7465733a2062726f6b656e20636c6f636b206d6f6465000000000000000060448201526064016109ef565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6001600160a01b0390811660009081527f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f6560205260409020541690565b61146581612345565b600080516020613b3283398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f64c14256e532eac2ec90ddc4973ed2d3f5623faf7951d90eec38f9b7812f99a79181900360200190a15050565b60006114d18361141f565b6001600160a01b0384811660008181527f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f65602052604080822080546001600160a01b031916888616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461098d818361155b8661236c565b612377565b6115996040518060c001604052806060815260200160608152602001600081526020016000815260200160608152602001606081525090565b6001600160a01b03821660009081527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe5747702602090815260408083207f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe574770390925291829020825160c08101909352815491929091819084906116179061377f565b80601f01602080910402602001604051908101604052809291908181526020018280546116439061377f565b80156116905780601f1061166557610100808354040283529160200191611690565b820191906000526020600020905b81548152906001019060200180831161167357829003601f168201915b505050505081526020018360010180546116a99061377f565b80601f01602080910402602001604051908101604052809291908181526020018280546116d59061377f565b80156117225780601f106116f757610100808354040283529160200191611722565b820191906000526020600020905b81548152906001019060200180831161170557829003601f168201915b50505050508152602001836002015481526020018360030154815260200182600001805461174f9061377f565b80601f016020809104026020016040519081016040528092919081815260200182805461177b9061377f565b80156117c85780601f1061179d576101008083540402835291602001916117c8565b820191906000526020600020905b8154815290600101906020018083116117ab57829003601f168201915b505050505081526020018260010180546117e19061377f565b80601f016020809104026020016040519081016040528092919081815260200182805461180d9061377f565b801561185a5780601f1061182f5761010080835404028352916020019161185a565b820191906000526020600020905b81548152906001019060200180831161183d57829003601f168201915b505050505081525092505050919050565b60006001600160a01b038216611894576040516323d3ad8160e21b815260040160405180910390fd5b67ffffffffffffffff6118a5610e03565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b336118ea6118e183611560565b60400151610a0e565b6001600160a01b031614610a015760405163dbfcf17d60e01b815260040160405180910390fd5b61191c846002612321565b611927836001612321565b6001600160a01b03851660009081527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe574770260205260409020600080516020613b32833981519152908061197987826137fb565b506001810161198886826137fb565b506001600160a01b03871660009081526003830160205260409020806119ae86826137fb565b50600181016119bd85826137fb565b506040516001600160a01b038916907f66da702131703ee5e745ecf2f5b98311caa00729edd55541baad49289fc42ed890600090a25050505050505050565b6060600080516020613b528339815191526105e0565b6060600080516020613b52833981519152610bcd565b6000611a32611ac1565b65ffffffffffff168210611a7f5760405162461bcd60e51b81526020600482015260146024820152730566f7465733a20667574757265206c6f6f6b75760641b60448201526064016109ef565b611ab2611a8b83612238565b7f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f679061226d565b6001600160e01b031692915050565b60006106d4436124f8565b6001600160a01b0381166000908152600080516020613bb283398151915260205260408120611ab29061252b565b80611b03610e03565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290611bac9033908990889088906004016138bb565b6020604051808303816000875af1925050508015611be7575060408051601f3d908101601f19168201909252611be4918101906138f8565b60015b611c45573d808015611c15576040519150601f19603f3d011682016040523d82523d6000602084013e611c1a565b606091505b508051600003611c3d576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b83421115611cb25760405162461bcd60e51b815260206004820152601860248201527f566f7465733a207369676e61747572652065787069726564000000000000000060448201526064016109ef565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090611d2c90611d249060a00160405160208183030381529060405280519060200120612564565b858585612591565b9050611d3881876125bf565b611d4281886114c6565b50505050505050565b6000611d55610e03565b548210801561067c5750600160e01b611d6c610e03565b60008481526004919091016020526040902054161592915050565b60008181527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477016020526040902054606090600080516020613b32833981519152906001600160a01b031680611ded57505060408051602081019091526000815292915050565b6001600160a01b0381166000908152600283016020526040808220815160808101909252805482908290611e209061377f565b80601f0160208091040260200160405190810160405280929190818152602001828054611e4c9061377f565b8015611e995780601f10611e6e57610100808354040283529160200191611e99565b820191906000526020600020905b815481529060010190602001808311611e7c57829003601f168201915b50505050508152602001600182018054611eb29061377f565b80601f0160208091040260200160405190810160405280929190818152602001828054611ede9061377f565b8015611f2b5780601f10611f0057610100808354040283529160200191611f2b565b820191906000526020600020905b815481529060010190602001808311611f0e57829003601f168201915b50505050508152602001600282015481526020016003820154815250509050611f8a81600001518260200151611f648460600151612631565b604051602001611f7693929190613922565b6040516020818303038152906040526126c4565b604051602001611f9a9190613a04565b6040516020818303038152906040529350505050919050565b611fc36380ac58cd60e01b612829565b611fd3635b5e139f60e01b612829565b6106c68282612907565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054600160201b900460ff1661202657604051630ef4733760e31b815260040160405180910390fd5b6106c68282612939565b600061203a610e03565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b600061207883610a0e565b905081156120b757336001600160a01b038216146120b75761209a8133612030565b6120b7576040516367d9dca160e11b815260040160405180910390fd5b836120c0610e03565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b6001600160a01b038316612168576121657f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f676129cb612160846129d7565b612a0b565b50505b6001600160a01b0382166121a9576121a67f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f67612a54612160846129d7565b50505b61098d6121b58461141f565b6121be8461141f565b83612377565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6121ef612a60565b6121f7612ac6565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600063ffffffff821115612269576040516306dfcc6560e41b815260206004820152602481018390526044016109ef565b5090565b8154600090818160058111156122ca57600061228884612b16565b6122929085613a5f565b60008881526020902090915081015463ffffffff90811690871610156122ba578091506122c8565b6122c5816001613a72565b92505b505b60006122d887878585612bfe565b90508015612313576122fd876122ef600184613a5f565b600091825260209091200190565b54600160201b90046001600160e01b0316612316565b60005b979650505050505050565b8151829082111561098d576040516374eb20a760e01b815260040160405180910390fd5b6001600160a01b038116610a01576040516302e47d1560e41b815260040160405180910390fd5b600061067c82610a5b565b816001600160a01b0316836001600160a01b0316141580156123995750600081115b1561098d576001600160a01b03831615612449576001600160a01b0383166000908152600080516020613bb28339815191526020526040812081906123e490612a54612160866129d7565b6001600160e01b031691506001600160e01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161243e929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561098d576001600160a01b0382166000908152600080516020613bb283398151915260205260408120819061248f906129cb612160866129d7565b6001600160e01b031691506001600160e01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516124e9929190918252602082015260400190565b60405180910390a25050505050565b600065ffffffffffff821115612269576040516306dfcc6560e41b815260306004820152602481018390526044016109ef565b8054600090801561255b57612545836122ef600184613a5f565b54600160201b90046001600160e01b03166108ff565b60009392505050565b600061067c612571611028565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000806125a388888888612c5c565b9250925092506125b38282612d2b565b50909695505050505050565b6001600160a01b03821660009081527fda5d6d87446d81938877f0ee239dac391146dd7466ea30567f72becf06773c006020526040902080546001810190915581811461098d576040516301d4b62360e61b81526001600160a01b0384166004820152602481018290526044016109ef565b6060600061263e83612de4565b600101905060008167ffffffffffffffff81111561265e5761265e61322c565b6040519080825280601f01601f191660200182016040528015612688576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461269257509392505050565b606081516000036126e357505060408051602081019091526000815290565b6000604051806060016040528060408152602001613b7260409139905060006003845160026127129190613a72565b61271c9190613a9b565b612727906004613abd565b90506000612736826020613a72565b67ffffffffffffffff81111561274e5761274e61322c565b6040519080825280601f01601f191660200182016040528015612778576020820181803683370190505b509050818152600183018586518101602084015b818310156127e4576003830192508251603f8160121c168501518253600182019150603f81600c1c168501518253600182019150603f8160061c168501518253600182019150603f811685015182535060010161278c565b6003895106600181146127fe576002811461280f5761281b565b613d3d60f01b60011983015261281b565b603d60f81b6000198301525b509398975050505050505050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff1615156001146128b6576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff191660011790556128cf565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b6000612911610e03565b90506002810161292184826137fb565b506003810161293083826137fb565b50600090555050565b7f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336e61296483826137fb565b507f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336f61299082826137fb565b50506000600080516020613b528339815191528190557f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336d5550565b60006108ff8284613ad4565b60006001600160e01b03821115612269576040516306dfcc6560e41b815260e06004820152602481018390526044016109ef565b600080612a47612a29612a1c611ac1565b65ffffffffffff16612238565b612a3f612a358861252b565b868863ffffffff16565b879190612ebc565b915091505b935093915050565b60006108ff8284613afb565b600080612a6b6119fc565b805190915015612a82578051602090910120919050565b600080516020613b52833981519152548015612a9e5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080612ad1611a12565b805190915015612ae8578051602090910120919050565b7f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336d548015612a9e5792915050565b600081600003612b2857506000919050565b60006001612b3584612eca565b901c6001901b90506001818481612b4e57612b4e613a85565b048201901c90506001818481612b6657612b66613a85565b048201901c90506001818481612b7e57612b7e613a85565b048201901c90506001818481612b9657612b96613a85565b048201901c90506001818481612bae57612bae613a85565b048201901c90506001818481612bc657612bc6613a85565b048201901c90506001818481612bde57612bde613a85565b048201901c90506108ff81828581612bf857612bf8613a85565b04612f5e565b60005b81831015612c54576000612c158484612f74565b60008781526020902090915063ffffffff86169082015463ffffffff161115612c4057809250612c4e565b612c4b816001613a72565b93505b50612c01565b509392505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612c975750600091506003905082612d21565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612ceb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612d1757506000925060019150829050612d21565b9250600091508190505b9450945094915050565b6000826003811115612d3f57612d3f613b1b565b03612d48575050565b6001826003811115612d5c57612d5c613b1b565b03612d7a5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612d8e57612d8e613b1b565b03612daf5760405163fce698f760e01b8152600481018290526024016109ef565b6003826003811115612dc357612dc3613b1b565b036106c6576040516335e2f38360e21b8152600481018290526024016109ef565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612e235772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612e4f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612e6d57662386f26fc10000830492506010015b6305f5e1008310612e85576305f5e100830492506008015b6127108310612e9957612710830492506004015b60648310612eab576064830492506002015b600a831061067c5760010192915050565b600080612a47858585612f8f565b600080608083901c15612edf57608092831c92015b604083901c15612ef157604092831c92015b602083901c15612f0357602092831c92015b601083901c15612f1557601092831c92015b600883901c15612f2757600892831c92015b600483901c15612f3957600492831c92015b600283901c15612f4b57600292831c92015b600183901c1561067c5760010192915050565b6000818310612f6d57816108ff565b5090919050565b6000612f836002848418613a9b565b6108ff90848416613a72565b8254600090819080156130d5576000612fad876122ef600185613a5f565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b03166020840152919250908716101561302e5760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b657973000000000060448201526064016109ef565b805163ffffffff808816911603613076578461304f886122ef600186613a5f565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790556130c5565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b602001519250839150612a4c9050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081612a4c565b60005b83811015613149578181015183820152602001613131565b50506000910152565b6000815180845261316a81602086016020860161312e565b601f01601f19169290920160200192915050565b6020815260006108ff6020830184613152565b6000602082840312156131a357600080fd5b5035919050565b80356001600160a01b03811681146131c157600080fd5b919050565b600080604083850312156131d957600080fd5b6131e2836131aa565b946020939093013593505050565b60008060006060848603121561320557600080fd5b61320e846131aa565b925061321c602085016131aa565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561325d5761325d61322c565b604051601f8501601f19908116603f011681019082821181831017156132855761328561322c565b8160405280935085815286868601111561329e57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126132c957600080fd5b6108ff83833560208501613242565b600080600080600060a086880312156132f057600080fd5b853567ffffffffffffffff8082111561330857600080fd5b61331489838a016132b8565b9650602088013591508082111561332a57600080fd5b61333689838a016132b8565b9550613344604089016131aa565b9450606088013591508082111561335a57600080fd5b61336689838a016132b8565b9350608088013591508082111561337c57600080fd5b50613389888289016132b8565b9150509295509295909350565b6000602082840312156133a857600080fd5b6108ff826131aa565b602081526000825160c060208401526133cd60e0840182613152565b90506020840151601f19808584030160408601526133eb8383613152565b9250604086015160608601526060860151608086015260808601519150808584030160a086015261341c8383613152565b925060a08601519150808584030160c08601525061343a8282613152565b95945050505050565b600080600080600060a0868803121561345b57600080fd5b613464866131aa565b9450602086013567ffffffffffffffff8082111561348157600080fd5b61348d89838a016132b8565b955060408801359150808211156134a357600080fd5b61334489838a016132b8565b60ff60f81b881681526000602060e060208401526134d060e084018a613152565b83810360408501526134e2818a613152565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156135365783518352928401929184019160010161351a565b50909c9b505050505050505050505050565b6000806040838503121561355b57600080fd5b613564836131aa565b91506020830135801515811461357957600080fd5b809150509250929050565b6000806000806080858703121561359a57600080fd5b6135a3856131aa565b93506135b1602086016131aa565b925060408501359150606085013567ffffffffffffffff8111156135d457600080fd5b8501601f810187136135e557600080fd5b6135f487823560208401613242565b91505092959194509250565b60008060008060008060c0878903121561361957600080fd5b613622876131aa565b95506020870135945060408701359350606087013560ff8116811461364657600080fd5b9598949750929560808101359460a0909101359350915050565b6000806040838503121561367357600080fd5b823567ffffffffffffffff8082111561368b57600080fd5b613697868387016132b8565b935060208501359150808211156136ad57600080fd5b506136ba858286016132b8565b9150509250929050565b6000806000606084860312156136d957600080fd5b833567ffffffffffffffff808211156136f157600080fd5b6136fd878388016132b8565b9450602086013591508082111561371357600080fd5b61371f878388016132b8565b9350604086013591508082111561373557600080fd5b50613742868287016132b8565b9150509250925092565b6000806040838503121561375f57600080fd5b613768836131aa565b9150613776602084016131aa565b90509250929050565b600181811c9082168061379357607f821691505b602082108103610f9657634e487b7160e01b600052602260045260246000fd5b601f82111561098d576000816000526020600020601f850160051c810160208610156137dc5750805b601f850160051c820191505b818110156108e1578281556001016137e8565b815167ffffffffffffffff8111156138155761381561322c565b61382981613823845461377f565b846137b3565b602080601f83116001811461385e57600084156138465750858301515b600019600386901b1c1916600185901b1785556108e1565b600085815260208120601f198616915b8281101561388d5788860151825594840194600190910190840161386e565b50858210156138ab5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906138ee90830184613152565b9695505050505050565b60006020828403121561390a57600080fd5b81516001600160e01b0319811681146108ff57600080fd5b683d913730b6b2911d1160b91b8152835160009061394781600985016020890161312e565b6a11161134b6b0b3b2911d1160a91b600991840191820152845161397281601484016020890161312e565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a2243601492909101918201527f726561746564222c22646973706c61795f74797065223a202264617465222c20603482015267113b30b63ab2911d60c11b605482015283516139e781605c84016020880161312e565b627d5d7d60e81b605c9290910191820152605f0195945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251613a3c81601d85016020870161312e565b91909101601d0192915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561067c5761067c613a49565b8082018082111561067c5761067c613a49565b634e487b7160e01b600052601260045260246000fd5b600082613ab857634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761067c5761067c613a49565b6001600160e01b03818116838216019080821115613af457613af4613a49565b5092915050565b6001600160e01b03828116828216039080821115613af457613af4613a49565b634e487b7160e01b600052602160045260246000fdfe7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477003a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336c4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f66","sourceMap":"586:4151:219:-:0;;;;;;;;;;;;-1:-1:-1;378:22:67;:20;:22::i;:::-;586:4151:219;;1653:314:82;296:66:83;1779:14:82;;;;;;;1775:62;;;1802:35;;-1:-1:-1;;;1802:35:82;;;;;;;;;;;1775:62;1848:9;;1860:16;1848:9;;;:28;1844:119;;;1886:28;;-1:-1:-1;;1886:28:82;1898:16;1886:28;;;;;1927:29;;158:42:399;;;1927:29:82;;146:2:399;131:18;1927:29:82;;;;;;;1844:119;1694:273;1653:314::o;14:192:399:-;586:4151:219;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101e35760003560e01c806375794a3c116101025780639ab24eb011610095578063c87b56dd11610064578063c87b56dd14610546578063d2f01f1914610566578063d7a901d314610586578063e985e9c5146105a657600080fd5b80639ab24eb0146104d3578063a22cb465146104f3578063b88d4fde14610513578063c3cda5201461052657600080fd5b806388cc58e4116100d157806388cc58e41461045d5780638e539e8c1461047257806391ddadf41461049257806395d89b41146104be57600080fd5b806375794a3c146103e05780637ecebe00146103f5578063848806141461041557806384b0196e1461043557600080fd5b806342842e0e1161017a5780635c19a95c116101495780635c19a95c146103535780636352211e146103735780636a9a38e61461039357806370a08231146103c057600080fd5b806342842e0e146102eb5780634bf5d7e9146102fe578063587cde1e146103135780635bb478081461033357600080fd5b806323b872dd116101b657806323b872dd146102835780633644e515146102965780633a46b1a8146102ab5780633bf5b8f4146102cb57600080fd5b806306fdde03146101e8578063081812fc14610213578063095ea7b31461024b57806318160ddd14610260575b600080fd5b3480156101f457600080fd5b506101fd6105d6565b60405161020a919061317e565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004613191565b610671565b6040516001600160a01b03909116815260200161020a565b61025e6102593660046131c6565b610682565b005b34801561026c57600080fd5b506102756106ca565b60405190815260200161020a565b61025e6102913660046131f0565b6106d9565b3480156102a257600080fd5b506102756108e9565b3480156102b757600080fd5b506102756102c63660046131c6565b6108f3565b3480156102d757600080fd5b506102756102e63660046132d8565b610906565b61025e6102f93660046131f0565b610972565b34801561030a57600080fd5b506101fd610992565b34801561031f57600080fd5b5061023361032e366004613396565b61099c565b34801561033f57600080fd5b5061025e61034e366004613396565b6109a7565b34801561035f57600080fd5b5061025e61036e366004613396565b610a04565b34801561037f57600080fd5b5061023361038e366004613191565b610a0e565b34801561039f57600080fd5b506103b36103ae366004613396565b610a19565b60405161020a91906133b1565b3480156103cc57600080fd5b506102756103db366004613396565b610a5b565b3480156103ec57600080fd5b50610275610a66565b34801561040157600080fd5b50610275610410366004613396565b610a70565b34801561042157600080fd5b5061025e610430366004613443565b610aad565b34801561044157600080fd5b5061044a610aca565b60405161020a97969594939291906134af565b34801561046957600080fd5b50610233610b8d565b34801561047e57600080fd5b5061027561048d366004613191565b610bae565b34801561049e57600080fd5b506104a7610bb9565b60405165ffffffffffff909116815260200161020a565b3480156104ca57600080fd5b506101fd610bc3565b3480156104df57600080fd5b506102756104ee366004613396565b610bdb565b3480156104ff57600080fd5b5061025e61050e366004613548565b610be6565b61025e610521366004613584565b610c1f565b34801561053257600080fd5b5061025e610541366004613600565b610c69565b34801561055257600080fd5b506101fd610561366004613191565b610c77565b34801561057257600080fd5b5061025e610581366004613660565b610ca8565b34801561059257600080fd5b5061025e6105a13660046136c4565b610cfb565b3480156105b257600080fd5b506105c66105c136600461374c565b610df7565b604051901515815260200161020a565b60606105e0610e03565b60020180546105ee9061377f565b80601f016020809104026020016040519081016040528092919081815260200182805461061a9061377f565b80156106675780601f1061063c57610100808354040283529160200191610667565b820191906000526020600020905b81548152906001019060200180831161064a57829003601f168201915b5050505050905090565b600061067c82610e27565b92915050565b6001600160a01b0382161580159061069e575061069e33610e74565b156106bc57604051638043dfaf60e01b815260040160405180910390fd5b6106c68282610ef0565b5050565b60006106d4610efc565b905090565b60006106e482610f1b565b9050836001600160a01b0316816001600160a01b0316146107175760405162a1148160e81b815260040160405180910390fd5b60008061072384610fb6565b9150915061074881876107333390565b6001600160a01b039081169116811491141790565b610773576107568633610df7565b61077357604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661079a57604051633a954ecd60e21b815260040160405180910390fd5b6107a78686866001610fde565b80156107b257600082555b6107ba610e03565b6001600160a01b03871660009081526005919091016020526040902080546000190190556107e6610e03565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b1761081d610e03565b60008681526004919091016020526040812091909155600160e11b84169003610893576001840161084c610e03565b6000828152600491909101602052604081205490036108915761086d610e03565b548114610891578361087d610e03565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46108e1868686600161101d565b505050505050565b60006106d4611028565b60006108ff8383611032565b9392505050565b600080600080516020613b3283398151915280549091506001600160a01b031633146109455760405163443e750b60e11b815260040160405180910390fd5b61094d6110d0565b915061095d8787848888886110e0565b610968336001611237565b5095945050505050565b61098d83838360405180602001604052806000815250610c1f565b505050565b60606106d4611387565b600061067c8261141f565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031633146109f8576040516365f4906560e01b81523360048201526024015b60405180910390fd5b610a018161145c565b50565b610a0133826114c6565b600061067c82610f1b565b610a526040518060c001604052806060815260200160608152602001600081526020016000815260200160608152602001606081525090565b61067c82611560565b600061067c8261186b565b60006106d46110d0565b6001600160a01b03811660009081527fda5d6d87446d81938877f0ee239dac391146dd7466ea30567f72becf06773c00602052604081205461067c565b610ab6856118d4565b610ac38585858585611911565b5050505050565b600060608082808083600080516020613b5283398151915254158015610b0f57507f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336d54155b610b535760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016109ef565b610b5b6119fc565b610b63611a12565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60006106d4600080516020613b32833981519152546001600160a01b031690565b600061067c82611a28565b60006106d4611ac1565b6060610bcd610e03565b60030180546105ee9061377f565b600061067c82611acc565b808015610bf75750610bf733610e74565b15610c1557604051638043dfaf60e01b815260040160405180910390fd5b6106c68282611afa565b610c2a8484846106d9565b6001600160a01b0383163b15610c6357610c4684848484611b77565b610c63576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6108e1868686868686611c62565b6060610c8282611d4b565b610c9f57604051630a14c4b560e41b815260040160405180910390fd5b61067c82611d87565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054600160201b900460ff16610cf157604051630ef4733760e31b815260040160405180910390fd5b6106c68282611fb3565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054600160201b900460ff161580610d3757303b1515610d46565b8154600163ffffffff90911610155b15610d6f578154604051630a8ef77f60e31b815263ffffffff90911660048201526024016109ef565b815463ffffffff191660011782558015610d9657815464ff000000001916600160201b1782555b610da08585611fb3565b610daa8584611fdd565b8015610ac357815464ff0000000019168255604051600181527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15050505050565b60006108ff8383612030565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090565b6000610e3282611d4b565b610e4f576040516333d1c03960e21b815260040160405180910390fd5b610e57610e03565b60009283526006016020525060409020546001600160a01b031690565b60007f0c89d3aad1b583c77a2e9f9fffa651b386c9c29e300bf2a8e2f3de1bb0100a006001600160a01b0383163b1580156108ff57506001600160a01b038316600090815260018201602052604090205415806108ff57506001600160a01b038316600090815260018201602052604090205442109392505050565b6106c68282600161206d565b600080610f07610e03565b60010154610f13610e03565b540303919050565b600080610f26610e03565b60008481526004820160205260408120549350909150600160e01b83169003610f9c5781600003610f965780548310610f7257604051636f96cda160e11b815260040160405180910390fd5b5b600019909201600081815260048401602052604090205490929091508115610f73575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b6000806000610fc3610e03565b60009485526006016020525050604090912080549092909150565b6001600160a01b03841615801590610ffa5750610ffa84610e74565b1561101857604051638043dfaf60e01b815260040160405180910390fd5b610c63565b611018848483612122565b60006106d46121c4565b600061103c611ac1565b65ffffffffffff1682106110895760405162461bcd60e51b81526020600482015260146024820152730566f7465733a20667574757265206c6f6f6b75760641b60448201526064016109ef565b6110c061109583612238565b6001600160a01b0385166000908152600080516020613bb2833981519152602052604090209061226d565b6001600160e01b03169392505050565b60006110da610e03565b54919050565b6110eb866002612321565b6110f6856000612321565b6110ff83612345565b60008481527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477016020908152604080832080546001600160a01b0319166001600160a01b03881690811790915581516080810183528a81528084018a90528083018990524260608201529084527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477029092529091208151600080516020613b3283398151915292919081906111b290826137fb565b50602082015160018201906111c790826137fb565b5060408281015160028301556060909201516003918201558151808301835285815260208082018690526001600160a01b038816600090815292850190529190208151819061121690826137fb565b506020820151600182019061122b90826137fb565b50505050505050505050565b6000611241610e03565b54905060008290036112665760405163b562e8dd60e01b815260040160405180910390fd5b6112736000848385610fde565b680100000000000000018202611287610e03565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b17176112c2610e03565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461134c57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101611314565b508160000361136d57604051622e076360e81b815260040160405180910390fd5b80611376610e03565b555061098d9050600084838561101d565b606043611392611ac1565b65ffffffffffff16146113e75760405162461bcd60e51b815260206004820152601860248201527f566f7465733a2062726f6b656e20636c6f636b206d6f6465000000000000000060448201526064016109ef565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6001600160a01b0390811660009081527f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f6560205260409020541690565b61146581612345565b600080516020613b3283398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f64c14256e532eac2ec90ddc4973ed2d3f5623faf7951d90eec38f9b7812f99a79181900360200190a15050565b60006114d18361141f565b6001600160a01b0384811660008181527f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f65602052604080822080546001600160a01b031916888616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461098d818361155b8661236c565b612377565b6115996040518060c001604052806060815260200160608152602001600081526020016000815260200160608152602001606081525090565b6001600160a01b03821660009081527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe5747702602090815260408083207f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe574770390925291829020825160c08101909352815491929091819084906116179061377f565b80601f01602080910402602001604051908101604052809291908181526020018280546116439061377f565b80156116905780601f1061166557610100808354040283529160200191611690565b820191906000526020600020905b81548152906001019060200180831161167357829003601f168201915b505050505081526020018360010180546116a99061377f565b80601f01602080910402602001604051908101604052809291908181526020018280546116d59061377f565b80156117225780601f106116f757610100808354040283529160200191611722565b820191906000526020600020905b81548152906001019060200180831161170557829003601f168201915b50505050508152602001836002015481526020018360030154815260200182600001805461174f9061377f565b80601f016020809104026020016040519081016040528092919081815260200182805461177b9061377f565b80156117c85780601f1061179d576101008083540402835291602001916117c8565b820191906000526020600020905b8154815290600101906020018083116117ab57829003601f168201915b505050505081526020018260010180546117e19061377f565b80601f016020809104026020016040519081016040528092919081815260200182805461180d9061377f565b801561185a5780601f1061182f5761010080835404028352916020019161185a565b820191906000526020600020905b81548152906001019060200180831161183d57829003601f168201915b505050505081525092505050919050565b60006001600160a01b038216611894576040516323d3ad8160e21b815260040160405180910390fd5b67ffffffffffffffff6118a5610e03565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b336118ea6118e183611560565b60400151610a0e565b6001600160a01b031614610a015760405163dbfcf17d60e01b815260040160405180910390fd5b61191c846002612321565b611927836001612321565b6001600160a01b03851660009081527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe574770260205260409020600080516020613b32833981519152908061197987826137fb565b506001810161198886826137fb565b506001600160a01b03871660009081526003830160205260409020806119ae86826137fb565b50600181016119bd85826137fb565b506040516001600160a01b038916907f66da702131703ee5e745ecf2f5b98311caa00729edd55541baad49289fc42ed890600090a25050505050505050565b6060600080516020613b528339815191526105e0565b6060600080516020613b52833981519152610bcd565b6000611a32611ac1565b65ffffffffffff168210611a7f5760405162461bcd60e51b81526020600482015260146024820152730566f7465733a20667574757265206c6f6f6b75760641b60448201526064016109ef565b611ab2611a8b83612238565b7f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f679061226d565b6001600160e01b031692915050565b60006106d4436124f8565b6001600160a01b0381166000908152600080516020613bb283398151915260205260408120611ab29061252b565b80611b03610e03565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290611bac9033908990889088906004016138bb565b6020604051808303816000875af1925050508015611be7575060408051601f3d908101601f19168201909252611be4918101906138f8565b60015b611c45573d808015611c15576040519150601f19603f3d011682016040523d82523d6000602084013e611c1a565b606091505b508051600003611c3d576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b83421115611cb25760405162461bcd60e51b815260206004820152601860248201527f566f7465733a207369676e61747572652065787069726564000000000000000060448201526064016109ef565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090611d2c90611d249060a00160405160208183030381529060405280519060200120612564565b858585612591565b9050611d3881876125bf565b611d4281886114c6565b50505050505050565b6000611d55610e03565b548210801561067c5750600160e01b611d6c610e03565b60008481526004919091016020526040902054161592915050565b60008181527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477016020526040902054606090600080516020613b32833981519152906001600160a01b031680611ded57505060408051602081019091526000815292915050565b6001600160a01b0381166000908152600283016020526040808220815160808101909252805482908290611e209061377f565b80601f0160208091040260200160405190810160405280929190818152602001828054611e4c9061377f565b8015611e995780601f10611e6e57610100808354040283529160200191611e99565b820191906000526020600020905b815481529060010190602001808311611e7c57829003601f168201915b50505050508152602001600182018054611eb29061377f565b80601f0160208091040260200160405190810160405280929190818152602001828054611ede9061377f565b8015611f2b5780601f10611f0057610100808354040283529160200191611f2b565b820191906000526020600020905b815481529060010190602001808311611f0e57829003601f168201915b50505050508152602001600282015481526020016003820154815250509050611f8a81600001518260200151611f648460600151612631565b604051602001611f7693929190613922565b6040516020818303038152906040526126c4565b604051602001611f9a9190613a04565b6040516020818303038152906040529350505050919050565b611fc36380ac58cd60e01b612829565b611fd3635b5e139f60e01b612829565b6106c68282612907565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054600160201b900460ff1661202657604051630ef4733760e31b815260040160405180910390fd5b6106c68282612939565b600061203a610e03565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b600061207883610a0e565b905081156120b757336001600160a01b038216146120b75761209a8133612030565b6120b7576040516367d9dca160e11b815260040160405180910390fd5b836120c0610e03565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b6001600160a01b038316612168576121657f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f676129cb612160846129d7565b612a0b565b50505b6001600160a01b0382166121a9576121a67f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f67612a54612160846129d7565b50505b61098d6121b58461141f565b6121be8461141f565b83612377565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6121ef612a60565b6121f7612ac6565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600063ffffffff821115612269576040516306dfcc6560e41b815260206004820152602481018390526044016109ef565b5090565b8154600090818160058111156122ca57600061228884612b16565b6122929085613a5f565b60008881526020902090915081015463ffffffff90811690871610156122ba578091506122c8565b6122c5816001613a72565b92505b505b60006122d887878585612bfe565b90508015612313576122fd876122ef600184613a5f565b600091825260209091200190565b54600160201b90046001600160e01b0316612316565b60005b979650505050505050565b8151829082111561098d576040516374eb20a760e01b815260040160405180910390fd5b6001600160a01b038116610a01576040516302e47d1560e41b815260040160405180910390fd5b600061067c82610a5b565b816001600160a01b0316836001600160a01b0316141580156123995750600081115b1561098d576001600160a01b03831615612449576001600160a01b0383166000908152600080516020613bb28339815191526020526040812081906123e490612a54612160866129d7565b6001600160e01b031691506001600160e01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161243e929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561098d576001600160a01b0382166000908152600080516020613bb283398151915260205260408120819061248f906129cb612160866129d7565b6001600160e01b031691506001600160e01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516124e9929190918252602082015260400190565b60405180910390a25050505050565b600065ffffffffffff821115612269576040516306dfcc6560e41b815260306004820152602481018390526044016109ef565b8054600090801561255b57612545836122ef600184613a5f565b54600160201b90046001600160e01b03166108ff565b60009392505050565b600061067c612571611028565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000806125a388888888612c5c565b9250925092506125b38282612d2b565b50909695505050505050565b6001600160a01b03821660009081527fda5d6d87446d81938877f0ee239dac391146dd7466ea30567f72becf06773c006020526040902080546001810190915581811461098d576040516301d4b62360e61b81526001600160a01b0384166004820152602481018290526044016109ef565b6060600061263e83612de4565b600101905060008167ffffffffffffffff81111561265e5761265e61322c565b6040519080825280601f01601f191660200182016040528015612688576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461269257509392505050565b606081516000036126e357505060408051602081019091526000815290565b6000604051806060016040528060408152602001613b7260409139905060006003845160026127129190613a72565b61271c9190613a9b565b612727906004613abd565b90506000612736826020613a72565b67ffffffffffffffff81111561274e5761274e61322c565b6040519080825280601f01601f191660200182016040528015612778576020820181803683370190505b509050818152600183018586518101602084015b818310156127e4576003830192508251603f8160121c168501518253600182019150603f81600c1c168501518253600182019150603f8160061c168501518253600182019150603f811685015182535060010161278c565b6003895106600181146127fe576002811461280f5761281b565b613d3d60f01b60011983015261281b565b603d60f81b6000198301525b509398975050505050505050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff1615156001146128b6576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff191660011790556128cf565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b6000612911610e03565b90506002810161292184826137fb565b506003810161293083826137fb565b50600090555050565b7f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336e61296483826137fb565b507f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336f61299082826137fb565b50506000600080516020613b528339815191528190557f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336d5550565b60006108ff8284613ad4565b60006001600160e01b03821115612269576040516306dfcc6560e41b815260e06004820152602481018390526044016109ef565b600080612a47612a29612a1c611ac1565b65ffffffffffff16612238565b612a3f612a358861252b565b868863ffffffff16565b879190612ebc565b915091505b935093915050565b60006108ff8284613afb565b600080612a6b6119fc565b805190915015612a82578051602090910120919050565b600080516020613b52833981519152548015612a9e5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080612ad1611a12565b805190915015612ae8578051602090910120919050565b7f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336d548015612a9e5792915050565b600081600003612b2857506000919050565b60006001612b3584612eca565b901c6001901b90506001818481612b4e57612b4e613a85565b048201901c90506001818481612b6657612b66613a85565b048201901c90506001818481612b7e57612b7e613a85565b048201901c90506001818481612b9657612b96613a85565b048201901c90506001818481612bae57612bae613a85565b048201901c90506001818481612bc657612bc6613a85565b048201901c90506001818481612bde57612bde613a85565b048201901c90506108ff81828581612bf857612bf8613a85565b04612f5e565b60005b81831015612c54576000612c158484612f74565b60008781526020902090915063ffffffff86169082015463ffffffff161115612c4057809250612c4e565b612c4b816001613a72565b93505b50612c01565b509392505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612c975750600091506003905082612d21565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612ceb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612d1757506000925060019150829050612d21565b9250600091508190505b9450945094915050565b6000826003811115612d3f57612d3f613b1b565b03612d48575050565b6001826003811115612d5c57612d5c613b1b565b03612d7a5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612d8e57612d8e613b1b565b03612daf5760405163fce698f760e01b8152600481018290526024016109ef565b6003826003811115612dc357612dc3613b1b565b036106c6576040516335e2f38360e21b8152600481018290526024016109ef565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612e235772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612e4f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612e6d57662386f26fc10000830492506010015b6305f5e1008310612e85576305f5e100830492506008015b6127108310612e9957612710830492506004015b60648310612eab576064830492506002015b600a831061067c5760010192915050565b600080612a47858585612f8f565b600080608083901c15612edf57608092831c92015b604083901c15612ef157604092831c92015b602083901c15612f0357602092831c92015b601083901c15612f1557601092831c92015b600883901c15612f2757600892831c92015b600483901c15612f3957600492831c92015b600283901c15612f4b57600292831c92015b600183901c1561067c5760010192915050565b6000818310612f6d57816108ff565b5090919050565b6000612f836002848418613a9b565b6108ff90848416613a72565b8254600090819080156130d5576000612fad876122ef600185613a5f565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b03166020840152919250908716101561302e5760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b657973000000000060448201526064016109ef565b805163ffffffff808816911603613076578461304f886122ef600186613a5f565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790556130c5565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b602001519250839150612a4c9050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081612a4c565b60005b83811015613149578181015183820152602001613131565b50506000910152565b6000815180845261316a81602086016020860161312e565b601f01601f19169290920160200192915050565b6020815260006108ff6020830184613152565b6000602082840312156131a357600080fd5b5035919050565b80356001600160a01b03811681146131c157600080fd5b919050565b600080604083850312156131d957600080fd5b6131e2836131aa565b946020939093013593505050565b60008060006060848603121561320557600080fd5b61320e846131aa565b925061321c602085016131aa565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561325d5761325d61322c565b604051601f8501601f19908116603f011681019082821181831017156132855761328561322c565b8160405280935085815286868601111561329e57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126132c957600080fd5b6108ff83833560208501613242565b600080600080600060a086880312156132f057600080fd5b853567ffffffffffffffff8082111561330857600080fd5b61331489838a016132b8565b9650602088013591508082111561332a57600080fd5b61333689838a016132b8565b9550613344604089016131aa565b9450606088013591508082111561335a57600080fd5b61336689838a016132b8565b9350608088013591508082111561337c57600080fd5b50613389888289016132b8565b9150509295509295909350565b6000602082840312156133a857600080fd5b6108ff826131aa565b602081526000825160c060208401526133cd60e0840182613152565b90506020840151601f19808584030160408601526133eb8383613152565b9250604086015160608601526060860151608086015260808601519150808584030160a086015261341c8383613152565b925060a08601519150808584030160c08601525061343a8282613152565b95945050505050565b600080600080600060a0868803121561345b57600080fd5b613464866131aa565b9450602086013567ffffffffffffffff8082111561348157600080fd5b61348d89838a016132b8565b955060408801359150808211156134a357600080fd5b61334489838a016132b8565b60ff60f81b881681526000602060e060208401526134d060e084018a613152565b83810360408501526134e2818a613152565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156135365783518352928401929184019160010161351a565b50909c9b505050505050505050505050565b6000806040838503121561355b57600080fd5b613564836131aa565b91506020830135801515811461357957600080fd5b809150509250929050565b6000806000806080858703121561359a57600080fd5b6135a3856131aa565b93506135b1602086016131aa565b925060408501359150606085013567ffffffffffffffff8111156135d457600080fd5b8501601f810187136135e557600080fd5b6135f487823560208401613242565b91505092959194509250565b60008060008060008060c0878903121561361957600080fd5b613622876131aa565b95506020870135945060408701359350606087013560ff8116811461364657600080fd5b9598949750929560808101359460a0909101359350915050565b6000806040838503121561367357600080fd5b823567ffffffffffffffff8082111561368b57600080fd5b613697868387016132b8565b935060208501359150808211156136ad57600080fd5b506136ba858286016132b8565b9150509250929050565b6000806000606084860312156136d957600080fd5b833567ffffffffffffffff808211156136f157600080fd5b6136fd878388016132b8565b9450602086013591508082111561371357600080fd5b61371f878388016132b8565b9350604086013591508082111561373557600080fd5b50613742868287016132b8565b9150509250925092565b6000806040838503121561375f57600080fd5b613768836131aa565b9150613776602084016131aa565b90509250929050565b600181811c9082168061379357607f821691505b602082108103610f9657634e487b7160e01b600052602260045260246000fd5b601f82111561098d576000816000526020600020601f850160051c810160208610156137dc5750805b601f850160051c820191505b818110156108e1578281556001016137e8565b815167ffffffffffffffff8111156138155761381561322c565b61382981613823845461377f565b846137b3565b602080601f83116001811461385e57600084156138465750858301515b600019600386901b1c1916600185901b1785556108e1565b600085815260208120601f198616915b8281101561388d5788860151825594840194600190910190840161386e565b50858210156138ab5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906138ee90830184613152565b9695505050505050565b60006020828403121561390a57600080fd5b81516001600160e01b0319811681146108ff57600080fd5b683d913730b6b2911d1160b91b8152835160009061394781600985016020890161312e565b6a11161134b6b0b3b2911d1160a91b600991840191820152845161397281601484016020890161312e565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a2243601492909101918201527f726561746564222c22646973706c61795f74797065223a202264617465222c20603482015267113b30b63ab2911d60c11b605482015283516139e781605c84016020880161312e565b627d5d7d60e81b605c9290910191820152605f0195945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251613a3c81601d85016020870161312e565b91909101601d0192915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561067c5761067c613a49565b8082018082111561067c5761067c613a49565b634e487b7160e01b600052601260045260246000fd5b600082613ab857634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761067c5761067c613a49565b6001600160e01b03818116838216019080821115613af457613af4613a49565b5092915050565b6001600160e01b03828116828216039080821115613af457613af4613a49565b634e487b7160e01b600052602160045260246000fdfe7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477003a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336c4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f66","sourceMap":"586:4151:219:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:116:123;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3498:132;;;;;;;;;;-1:-1:-1;3498:132:123;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1119:32:399;;;1101:51;;1089:2;1074:18;3498:132:123;955:203:399;2870:266:219;;;;;;:::i;:::-;;:::i;:::-;;1503:93:123;;;;;;;;;;;;;:::i;:::-;;;1746:25:399;;;1734:2;1719:18;1503:93:123;1600:177:399;4893:2680:123;;;;;;:::i;:::-;;:::i;2586:105:219:-;;;;;;;;;;;;;:::i;650:159:76:-;;;;;;;;;;-1:-1:-1;650:159:76;;;;;:::i;:::-;;:::i;1670:346:219:-;;;;;;;;;;-1:-1:-1;1670:346:219;;;;;:::i;:::-;;:::i;7656:167:123:-;;;;;;:::i;:::-;;:::i;387:96:76:-;;;;;;;;;;;;;:::i;1008:111::-;;;;;;;;;;-1:-1:-1;1008:111:76;;;;;:::i;:::-;;:::i;1137:87:219:-;;;;;;;;;;-1:-1:-1;1137:87:219;;;;;:::i;:::-;;:::i;1148:95:76:-;;;;;;;;;;-1:-1:-1;1148:95:76;;;;;:::i;:::-;;:::i;2867:152:123:-;;;;;;;;;;-1:-1:-1;2867:152:123;;;;;:::i;:::-;;:::i;2050:108:219:-;;;;;;;;;;-1:-1:-1;2050:108:219;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1673:107:123:-;;;;;;;;;;-1:-1:-1;1673:107:123;;;;;:::i;:::-;;:::i;1549:87:219:-;;;;;;;;;;;;;:::i;2475:107::-;;;;;;;;;;-1:-1:-1;2475:107:219;;;;;:::i;:::-;;:::i;2192:279::-;;;;;;;;;;-1:-1:-1;2192:279:219;;;;;:::i;:::-;;:::i;4514:801:142:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;1258:85:219:-;;;;;;;;;;;;;:::i;838:141:76:-;;;;;;;;;;-1:-1:-1;838:141:76;;;;;:::i;:::-;;:::i;276:80::-;;;;;;;;;;;;;:::i;:::-;;;8018:14:399;8006:27;;;7988:46;;7976:2;7961:18;276:80:76;7844:196:399;2199:120:123;;;;;;;;;;;;;:::i;512:109:76:-;;;;;;;;;;-1:-1:-1;512:109:76;;;;;:::i;:::-;;:::i;3140:281:219:-;;;;;;;;;;-1:-1:-1;3140:281:219;;;;;:::i;:::-;;:::i;8372:348:123:-;;;;;;:::i;:::-;;:::i;1272:214:76:-;;;;;;;;;;-1:-1:-1;1272:214:76;;;;;:::i;:::-;;:::i;3425:196:219:-;;;;;;;;;;-1:-1:-1;3425:196:219;;;;;:::i;:::-;;:::i;869:157:123:-;;;;;;;;;;-1:-1:-1;869:157:123;;;;;:::i;:::-;;:::i;717:212:219:-;;;;;;;;;;-1:-1:-1;717:212:219;;;;;:::i;:::-;;:::i;4340:167:123:-;;;;;;;;;;-1:-1:-1;4340:167:123;;;;;:::i;:::-;;:::i;:::-;;;11418:14:399;;11411:22;11393:41;;11381:2;11366:18;4340:167:123;11253:187:399;2020:116:123;2074:13;2102:23;:21;:23::i;:::-;:29;;2095:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:116;:::o;3498:132::-;3582:7;3604:21;3617:7;3604:12;:21::i;:::-;3597:28;3498:132;-1:-1:-1;;3498:132:123:o;2870:266:219:-;-1:-1:-1;;;;;3010:16:219;;;;;;:48;;;3030:28;3047:10;3030:16;:28::i;:::-;3006:93;;;3075:17;;-1:-1:-1;;;3075:17:219;;;;;;;;;;;3006:93;3105:26;3119:2;3123:7;3105:13;:26::i;:::-;2870:266;;:::o;1503:93:123:-;1555:7;1577:14;:12;:14::i;:::-;1570:21;;1503:93;:::o;4893:2680::-;5012:27;5042;5061:7;5042:18;:27::i;:::-;5012:57;;5121:4;-1:-1:-1;;;;;5080:45:123;5096:19;-1:-1:-1;;;;;5080:45:123;;5076:92;;5140:28;;-1:-1:-1;;;5140:28:123;;;;;;;;;;;5076:92;5183:27;5218:23;5250:35;5277:7;5250:26;:35::i;:::-;5175:110;;;;5374:68;5399:15;5416:4;5422:19;29364:10:124;;29282:97;5422:19:123;-1:-1:-1;;;;;11870:32:124;;;11728:28;;11985:20;;12007:30;;11982:56;;11461:587;5374:68:123;5369:181;;5455:43;5472:4;29364:10:124;4340:167:123;:::i;5455:43::-;5450:100;;5515:35;;-1:-1:-1;;;5515:35:123;;;;;;;;;;;5450:100;-1:-1:-1;;;;;5561:16:123;;5557:52;;5586:23;;-1:-1:-1;;;5586:23:123;;;;;;;;;;;5557:52;5616:43;5638:4;5644:2;5648:7;5657:1;5616:21;:43::i;:::-;5734:15;5731:135;;;5856:1;5835:19;5828:30;5731:135;6206:23;:21;:23::i;:::-;-1:-1:-1;;;;;6206:48:123;;;;;;:42;;;;;:48;;;;;6204:50;;-1:-1:-1;;6204:50:123;;;6292:23;:21;:23::i;:::-;-1:-1:-1;;;;;6292:46:123;;;;;;:42;;;;;:46;;;;;;6290:48;;;;;;10229:11:124;10204:23;10200:41;10187:63;-1:-1:-1;;;10187:63:124;6566:23:123;:21;:23::i;:::-;:50;;;;:41;;;;;:50;;;;;:184;;;;-1:-1:-1;;;6855:47:123;;:52;;6851:625;;6951:1;6941:11;;7056:23;:21;:23::i;:::-;:54;;;;:41;;;;;:54;;;;;;:59;;7052:416;;7196:23;:21;:23::i;:::-;:37;7181:52;;7177:281;;7426:19;7341:23;:21;:23::i;:::-;:82;;;;:41;;;;;:82;;;;;:104;7177:281;6909:567;6851:625;7512:7;7508:2;-1:-1:-1;;;;;7493:27:123;7502:4;-1:-1:-1;;;;;7493:27:123;;;;;;;;;;;7526:42;7547:4;7553:2;7557:7;7566:1;7526:20;:42::i;:::-;5006:2567;;;4893:2680;;;:::o;2586:105:219:-;2637:14;2666:20;:18;:20::i;650:159:76:-;749:7;771:33;785:7;794:9;771:13;:33::i;:::-;764:40;650:159;-1:-1:-1;;;650:159:76:o;1670:346:219:-;1860:15;;-1:-1:-1;;;;;;;;;;;618:10:220;;;;-1:-1:-1;;;;;;618:10:220;604;:24;600:84;;645:32;;-1:-1:-1;;;645:32:220;;;;;;;;;;;600:84;1893:14:219::1;:12;:14::i;:::-;1883:24;;1913:72;1924:4;1930:3;1935:7;1944:5;1951:16;1969:15;1913:10;:72::i;:::-;1991:20;1997:10;2009:1;1991:5;:20::i;:::-;524:171:220::0;1670:346:219;;;;;;;:::o;7656:167:123:-;7779:39;7796:4;7802:2;7806:7;7779:39;;;;;;;;;;;;:16;:39::i;:::-;7656:167;;;:::o;387:96:76:-;438:13;466:12;:10;:12::i;1008:111::-;1073:7;1095:19;1106:7;1095:10;:19::i;1137:87:219:-;284:66:96;438:29:94;-1:-1:-1;;;;;438:29:94;279:10;:22;275:79;;318:29;;-1:-1:-1;;;318:29:94;;336:10;318:29;;;1101:51:399;1074:18;;318:29:94;;;;;;;;275:79;1199:20:219::1;1211:7;1199:11;:20::i;:::-;1137:87:::0;:::o;1148:95:76:-;1206:32;1216:10;1228:9;1206;:32::i;2867:152:123:-;2947:7;2985:27;3004:7;2985:18;:27::i;2050:108:219:-;2110:12;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2110:12:219;2137:16;2147:5;2137:9;:16::i;1673:107:123:-;1736:7;1758:17;1769:5;1758:10;:17::i;1549:87:219:-;1595:7;1617:14;:12;:14::i;2475:107::-;-1:-1:-1;;;;;526:37:141;;2529:14:219;526:37:141;;;1554:66;526:37;;;;;;2558:19:219;436:132:141;2192:279:219;2373:22;2389:5;2373:15;:22::i;:::-;2401:65;2414:5;2421:4;2427:3;2432:16;2450:15;2401:12;:65::i;:::-;2192:279;;;;;:::o;4514:801:142:-;4603:13;4624:18;;4603:13;;;4624:18;-1:-1:-1;;;;;;;;;;;5007:34:142;:39;:93;;;;-1:-1:-1;5058:37:142;;:42;5007:93;4992:145;;;;-1:-1:-1;;;4992:145:142;;12032:2:399;4992:145:142;;;12014:21:399;12071:2;12051:18;;;12044:30;-1:-1:-1;;;12090:18:399;;;12083:51;12151:18;;4992:145:142;11830:345:399;4992:145:142;5183:13;:11;:13::i;:::-;5204:16;:14;:16::i;:::-;5288;;;5278:1;5288:16;;;;;;;;;-1:-1:-1;;;5144:166:142;;;-1:-1:-1;5144:166:142;;-1:-1:-1;5228:13:142;;-1:-1:-1;5257:4:142;;-1:-1:-1;5278:1:142;-1:-1:-1;5288:16:142;-1:-1:-1;5144:166:142;-1:-1:-1;4514:801:142:o;1258:85:219:-;1303:7;1325:13;-1:-1:-1;;;;;;;;;;;1069:10:220;-1:-1:-1;;;;;1069:10:220;;931:153;838:141:76;922:7;944:30;964:9;944:19;:30::i;276:80::-;322:6;343:8;:6;:8::i;2199:120:123:-;2255:13;2283:23;:21;:23::i;:::-;:31;;2276:38;;;;;:::i;512:109:76:-;576:7;598:18;608:7;598:9;:18::i;3140:281:219:-;3286:8;:40;;;;;3298:28;3315:10;3298:16;:28::i;:::-;3282:85;;;3343:17;;-1:-1:-1;;;3343:17:219;;;;;;;;;;;3282:85;3373:43;3397:8;3407;3373:23;:43::i;8372:348:123:-;8519:31;8532:4;8538:2;8542:7;8519:12;:31::i;:::-;-1:-1:-1;;;;;8560:14:123;;;:19;8556:160;;8592:56;8623:4;8629:2;8633:7;8642:5;8592:30;:56::i;:::-;8587:129;;8667:40;;-1:-1:-1;;;8667:40:123;;;;;;;;;;;8587:129;8372:348;;;;:::o;1272:214:76:-;1432:49;1447:9;1458:5;1465:6;1473:1;1476;1479;1432:14;:49::i;3425:196:219:-;3506:13;3532:16;3540:7;3532;:16::i;:::-;3527:59;;3557:29;;-1:-1:-1;;;3557:29:219;;;;;;;;;;;3527:59;3600:16;3608:7;3600;:16::i;869:157:123:-;296:66:83;1263:42:82;-1:-1:-1;;;1263:42:82;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:82;;;;;;;;;;;1258:100;981:40:123::1;1006:5;1013:7;981:24;:40::i;717:212:219:-:0;296:66:83;540:14:82;;-1:-1:-1;;;540:14:82;;;;539:15;;564:53;;2049:4;2041:25;:30;;564:53;;;581:9;;594:1;581:9;;;;:14;;564:53;560:124;;;667:9;;634:43;;-1:-1:-1;;;634:43:82;;667:9;;;;634:43;;;12324:42:399;12297:18;;634:43:82;12180:192:399;560:124:82;689:13;;-1:-1:-1;;689:13:82;701:1;689:13;;;708:56;;;;736:21;;-1:-1:-1;;736:21:82;-1:-1:-1;;;736:21:82;;;708:56;852:38:219::1;877:4;883:6;852:24;:38::i;:::-;896:28;910:4;916:7;896:13;:28::i;:::-;780:14:82::0;776:84;;;804:22;;-1:-1:-1;;804:22:82;;;839:14;;-1:-1:-1;12324:42:399;;839:14:82;;12312:2:399;12297:18;839:14:82;;;;;;;435:429;;717:212:219;;;:::o;4340:167:123:-;4449:4;4468:34;4486:5;4493:8;4468:17;:34::i;1689:139:126:-;293:66;;1689:139::o;22504:230:124:-;22582:7;22602:16;22610:7;22602;:16::i;:::-;22597:64;;22627:34;;-1:-1:-1;;;22627:34:124;;;;;;;;;;;22597:64;22675:23;:21;:23::i;:::-;:48;;;;:39;;:48;;-1:-1:-1;22675:48:124;;;:54;-1:-1:-1;;;;;22675:54:124;;22504:230::o;1755:435:201:-;1822:4;280:66:203;-1:-1:-1;;;;;2053:20:201;;;:25;:132;;;;-1:-1:-1;;;;;;2089:30:201;;;;;;:20;;;:30;;;;;;:35;;:95;;-1:-1:-1;;;;;;2154:30:201;;;;;;:20;;;:30;;;;;;2136:15;:48;2040:145;1755:435;-1:-1:-1;;;1755:435:201:o;3236:128:123:-;3332:27;3341:2;3345:7;3354:4;3332:8;:27::i;2978:351:124:-;3025:7;;3256:23;:21;:23::i;:::-;:36;;;3208:23;:21;:23::i;:::-;:37;:84;:110;;2978:351;-1:-1:-1;2978:351:124:o;7829:1501::-;7905:14;7967:32;8002:23;:21;:23::i;:::-;8043:29;;;;:20;;;:29;;;;;;;-1:-1:-1;7967:58:124;;-1:-1:-1;;;;8108:24:124;;:29;;8104:1172;;8229:6;8239:1;8229:11;8225:791;;8269:16;;8258:27;;8254:83;;8306:31;;-1:-1:-1;;;8306:31:124;;;;;;;;;;;8254:83;8824:182;-1:-1:-1;;8903:9:124;;;8882:31;;;;:20;;;:31;;;;;;8903:9;;8882:31;;-1:-1:-1;8941:25:124;;8824:182;8941:25;;8980:13;7829:1501;;;:::o;8104:1172::-;7959:1323;9294:31;;-1:-1:-1;;;9294:31:124;;;;;;;;;;;12148:478;12244:27;12273:23;12306:38;12347:30;:28;:30::i;:::-;:62;;;;:53;;:62;;-1:-1:-1;;12347:62:124;;;;12590:26;;12347:62;;12590:26;;-1:-1:-1;12148:478:124:o;3625:352:219:-;-1:-1:-1;;;;;3770:18:219;;;;;;:44;;;3792:22;3809:4;3792:16;:22::i;:::-;3766:139;;;3881:17;;-1:-1:-1;;;3881:17:219;;;;;;;;;;;3766:139;3911:61;8372:348:123;3981:262:219;4130:41;4151:4;4157:2;4161:9;4130:20;:41::i;3292:103:142:-;3345:7;3367:23;:21;:23::i;3995:301:77:-;4089:7;4124:8;:6;:8::i;:::-;4112:20;;:9;:20;4104:53;;;;-1:-1:-1;;;4104:53:77;;12785:2:399;4104:53:77;;;12767:21:399;12824:2;12804:18;;;12797:30;-1:-1:-1;;;12843:18:399;;;12836:50;12903:18;;4104:53:77;12583:344:399;4104:53:77;4176:115;4255:28;4273:9;4255:17;:28::i;:::-;-1:-1:-1;;;;;4176:51:77;;;;;;-1:-1:-1;;;;;;;;;;;4176:51:77;;;;;;:69;:115::i;:::-;-1:-1:-1;;;;;4163:128:77;;3995:301;-1:-1:-1;;;3995:301:77:o;4035:119:124:-;4090:7;4112:23;:21;:23::i;:::-;:37;;4035:119;-1:-1:-1;4035:119:124:o;1260:723:220:-;1457:30;1479:4;1485:1;1457:21;:30::i;:::-;1493:29;1515:3;1520:1;1493:21;:29::i;:::-;1528;1551:5;1528:22;:29::i;:::-;1564:35;1635:26;;;:17;:26;;;;;;;;:34;;-1:-1:-1;;;;;;1635:34:220;-1:-1:-1;;;;;1635:34:220;;;;;;;;1702:123;;;;;;;;;;;;;;;;;;;;;;1803:15;1702:123;;;;1675:24;;;:17;:24;;;;;;:150;;-1:-1:-1;;;;;;;;;;;284:66:221;1702:123:220;1675:24;;;:150;;:24;:150;:::i;:::-;-1:-1:-1;1675:150:220;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1675:150:220;;;;;;;;;;;;;;;;;;;1857:121;;;;;;;;;;-1:-1:-1;1857:121:220;;;;;;-1:-1:-1;;;;;1831:23:220;;-1:-1:-1;1831:23:220;;;:16;;;:23;;;;;:147;;:23;;:147;;:23;:147;:::i;:::-;-1:-1:-1;1831:147:220;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;1260:723:220:o;15799:2642:124:-;15867:20;15890:23;:21;:23::i;:::-;:37;;-1:-1:-1;15890:37:124;15937:13;;;15933:44;;15959:18;;-1:-1:-1;;;15959:18:124;;;;;;;;;;;15933:44;15984:61;16014:1;16018:2;16022:12;16036:8;15984:21;:61::i;:::-;16474:32;16454:53;;16396:23;:21;:23::i;:::-;-1:-1:-1;;;;;16396:46:124;;;;;;:42;;;;;:46;;;;;;:111;;;;;;;;;10229:11;10204:23;10200:41;-1:-1:-1;10624:15:124;;10598:24;10594:46;10197:52;10187:63;16707:23;:21;:23::i;:::-;:71;;;;:41;;;;;:71;;;;;:188;;;;-1:-1:-1;;;;;17416:25:124;;;16942:23;;;;16758:12;;17416:25;;17602;16707:71;;17488:260;18026:1;18012:12;18008:20;17977:275;18058:3;18049:7;18046:16;17977:275;;18234:7;18224:8;18221:1;18194:25;18191:1;18188;18183:59;18100:1;18087:15;17977:275;;;17981:57;18271:8;18283:1;18271:13;18267:45;;18293:19;;-1:-1:-1;;;18293:19:124;;;;;;;;;;;18267:45;18361:3;18321:23;:21;:23::i;:::-;:43;-1:-1:-1;18376:60:124;;-1:-1:-1;18321:37:124;18409:2;18413:12;18427:8;18376:20;:60::i;3007:221:77:-;3052:13;3138:12;3126:8;:6;:8::i;:::-;:24;;;3118:61;;;;-1:-1:-1;;;3118:61:77;;15329:2:399;3118:61:77;;;15311:21:399;15368:2;15348:18;;;15341:30;15407:26;15387:18;;;15380:54;15451:18;;3118:61:77;15127:348:399;3118:61:77;-1:-1:-1;3185:38:77;;;;;;;;;;;;;;;;;;3007:221::o;5254:129::-;-1:-1:-1;;;;;5336:42:77;;;5314:7;5336:42;;;219:52:78;5336:42:77;;;;;;;;5254:129::o;699:228:220:-;752:31;775:7;752:22;:31::i;:::-;-1:-1:-1;;;;;;;;;;;860:20:220;;-1:-1:-1;;;;;860:20:220;;-1:-1:-1;;;;;;860:20:220;;;;;;;891:31;;;1101:51:399;;;891:31:220;;;;;;1089:2:399;891:31:220;;;746:181;699:228;:::o;6612:401:77:-;6732:19;6754;6765:7;6754:10;:19::i;:::-;-1:-1:-1;;;;;6779:42:77;;;:33;:42;;;219:52:78;6779:42:77;;;;;;:54;;-1:-1:-1;;;;;;6779:54:77;;;;;;;;;;6845:48;;6732:41;;-1:-1:-1;6779:54:77;6845:48;;;;;;6779:33;6845:48;6899:68;6918:11;6931:9;6942:24;6958:7;6942:15;:24::i;:::-;6899:18;:68::i;2658:580:220:-;2715:12;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2715:12:220;-1:-1:-1;;;;;2779:62:220;;2735:41;2779:62;;;:55;:62;;;;;;;;2899:54;:61;;;;;;;2980:253;;;;;;;;;;2779:62;;2899:61;;2980:253;;2779:62;;2980:253;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3031:9;:13;;2980:253;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3063:9;:17;;;2980:253;;;;3101:9;:19;;;2980:253;;;;3148:8;:25;;2980:253;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3200:8;:24;;2980:253;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2967:266;;;;2658:580;;;:::o;3333:242:124:-;3391:7;-1:-1:-1;;;;;3410:19:124;;3406:60;;3438:28;;-1:-1:-1;;;3438:28:124;;;;;;;;;;;3406:60;564:13;3485:23;:21;:23::i;:::-;:42;;:49;3528:5;-1:-1:-1;;;;;3485:49:124;-1:-1:-1;;;;;3485:49:124;;;;;;;;;;;;;:85;3472:98;;3333:242;;;:::o;4560:175:219:-;4662:10;4624:34;4633:16;4643:5;4633:9;:16::i;:::-;:24;;;4624:8;:34::i;:::-;-1:-1:-1;;;;;4624:48:219;;4620:111;;4689:35;;-1:-1:-1;;;4689:35:219;;;;;;;;;;;1987:667:220;2165:30;2187:4;2193:1;2165:21;:30::i;:::-;2201:29;2223:3;2228:1;2201:21;:29::i;:::-;-1:-1:-1;;;;;2352:24:220;;2237:35;2352:24;;;:17;:24;;;;;-1:-1:-1;;;;;;;;;;;284:66:221;2352:24:220;2382:21;2399:4;2352:24;2382:21;:::i;:::-;-1:-1:-1;2409:13:220;;;:19;2425:3;2409:13;:19;:::i;:::-;-1:-1:-1;;;;;;2486:23:220;;2435:48;2486:23;;;:16;;;:23;;;;;;2515:44;2543:16;2486:23;2515:44;:::i;:::-;-1:-1:-1;2565:24:220;;;:42;2592:15;2565:24;:42;:::i;:::-;-1:-1:-1;2619:30:220;;-1:-1:-1;;;;;2619:30:220;;;;;;;;2159:495;;;1987:667;;;;;:::o;5525:115:142:-;5579:13;-1:-1:-1;;;;;;;;;;;5607:22:142;7824:139;5853:121;5910:13;-1:-1:-1;;;;;;;;;;;5938:22:142;7824:139;4906:274:77;4985:7;5020:8;:6;:8::i;:::-;5008:20;;:9;:20;5000:53;;;;-1:-1:-1;;;5000:53:77;;12785:2:399;5000:53:77;;;12767:21:399;12824:2;12804:18;;;12797:30;-1:-1:-1;;;12843:18:399;;;12836:50;12903:18;;5000:53:77;12583:344:399;5000:53:77;5072:103;5139:28;5157:9;5139:17;:28::i;:::-;5072:39;;:57;:103::i;:::-;-1:-1:-1;;;;;5059:116:77;;4906:274;-1:-1:-1;;4906:274:77:o;2764:98::-;2805:6;2826:31;2844:12;2826:17;:31::i;3482:146::-;-1:-1:-1;;;;;3563:51:77;;3541:7;3563:51;;;-1:-1:-1;;;;;;;;;;;3563:51:77;;;;;:60;;:58;:60::i;3933:269:123:-;4123:8;4035:23;:21;:23::i;:::-;29364:10:124;4035:63:123;;;;:42;;;;;:63;;;;;;;;-1:-1:-1;;;;;4035:85:123;;;;;;;;;;;;:96;;-1:-1:-1;;4035:96:123;;;;;;;;;;;4142:55;;11418:14:399;;11411:22;11393:41;;4035:85:123;;29364:10:124;;4142:55:123;;11366:18:399;4142:55:123;;;;;;;3933:269;;:::o;14707:674:124:-;14870:139;;-1:-1:-1;;;14870:139:124;;14848:4;;-1:-1:-1;;;;;14870:56:124;;;;;:139;;29364:10;;14965:4;;14979:7;;14996:5;;14870:139;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14870:139:124;;;;;;;;-1:-1:-1;;14870:139:124;;;;;;;;;;;;:::i;:::-;;;14860:517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15192:6;:13;15209:1;15192:18;15188:183;;15229:40;;-1:-1:-1;;;15229:40:124;;;;;;;;;;;15188:183;15345:6;15339:13;15330:6;15326:2;15322:15;15315:38;14860:517;-1:-1:-1;;;;;;15061:83:124;-1:-1:-1;;;15061:83:124;;-1:-1:-1;14707:674:124;;;;;;:::o;5453:467:77:-;5628:6;5609:15;:25;;5601:62;;;;-1:-1:-1;;;5601:62:77;;16471:2:399;5601:62:77;;;16453:21:399;16510:2;16490:18;;;16483:30;16549:26;16529:18;;;16522:54;16593:18;;5601:62:77;16269:348:399;5601:62:77;5743:58;;;2310:71;5743:58;;;16853:25:399;-1:-1:-1;;;;;16914:32:399;;16894:18;;;16887:60;;;;16963:18;;;16956:34;;;17006:18;;;16999:34;;;5669:14:77;;5686:157;;5707:103;;16825:19:399;;5743:58:77;;;;;;;;;;;;5733:69;;;;;;5707:16;:103::i;:::-;5818:1;5827;5836;5686:13;:157::i;:::-;5669:174;;5850:31;5867:6;5875:5;5850:16;:31::i;:::-;5887:28;5897:6;5905:9;5887;:28::i;:::-;5595:325;5453:467;;;;;;:::o;11064:301:124:-;11129:4;11200:23;:21;:23::i;:::-;:37;11190:47;;11154:187;;;;;-1:-1:-1;;;11268:23:124;:21;:23::i;:::-;:50;;;;:41;;;;;:50;;;;;;:68;:73;11141:200;11064:301;-1:-1:-1;;11064:301:124:o;443:804:222:-;537:35;630:26;;;:17;:26;;;;;;516:13;;-1:-1:-1;;;;;;;;;;;284:66:221;-1:-1:-1;;;;;630:26:222;;663:41;;-1:-1:-1;;695:9:222;;;;;;;;;-1:-1:-1;695:9:222;;;443:804;-1:-1:-1;;443:804:222:o;663:41::-;-1:-1:-1;;;;;750:31:222;;711:36;750:31;;;:17;;;:31;;;;;;711:70;;;;;;;;;;;;750:31;;711:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;888:336;974:5;:10;;;1029:5;:9;;;1144:33;1161:5;:15;;;1144:16;:33::i;:::-;915:297;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;888:13;:336::i;:::-;817:417;;;;;;;;:::i;:::-;;;;;;;;;;;;;788:454;;;;;443:804;;;:::o;1030:282:123:-;1135:25;-1:-1:-1;;;1135:13:123;:25::i;:::-;1200;-1:-1:-1;;;1200:13:123;:25::i;:::-;1273:34;1292:5;1299:7;1273:18;:34::i;2725:153:142:-;296:66:83;1263:42:82;-1:-1:-1;;;1263:42:82;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:82;;;;;;;;;;;1258:100;2835:38:142::1;2859:4;2865:7;2835:23;:38::i;22314:186:124:-:0;22417:4;22436:23;:21;:23::i;:::-;-1:-1:-1;;;;;22436:49:124;;;;;;;:42;;;;;:49;;;;;;;;:59;;;;;;;;;;-1:-1:-1;22436:59:124;;;;;22314:186::o;23284:439::-;23390:13;23406:17;23415:7;23406:8;:17::i;:::-;23390:33;;23434:13;23430:184;;;29364:10;-1:-1:-1;;;;;23459:28:124;;;23455:159;;23502:45;23520:5;29364:10;23502:17;:45::i;:::-;23497:117;;23568:35;;-1:-1:-1;;;23568:35:124;;;;;;;;;;;23497:117;23677:2;23620:23;:21;:23::i;:::-;:48;;;;:39;;;;;:48;;;;;;:59;;-1:-1:-1;;;;;;23620:59:124;-1:-1:-1;;;;;23620:59:124;;;;;;23690:28;23620:48;;23690:28;;;;;;;;;;23620:48;23690:28;23384:339;23284:439;;;:::o;7237:491:77:-;-1:-1:-1;;;;;7352:18:77;;7348:151;;7380:112;7395:39;7444:4;7458:26;7477:6;7458:18;:26::i;:::-;7380:5;:112::i;:::-;;;7348:151;-1:-1:-1;;;;;7508:16:77;;7504:154;;7534:117;7549:39;7598:9;7617:26;7636:6;7617:18;:26::i;7534:117::-;;;7504:154;7663:60;7682:16;7693:4;7682:10;:16::i;:::-;7700:14;7711:2;7700:10;:14::i;:::-;7716:6;7663:18;:60::i;3399:268:142:-;3454:7;2073:107;3545:17;:15;:17::i;:::-;3574:20;:18;:20::i;:::-;3501:153;;;;;;19319:25:399;;;;19360:18;;19353:34;;;;19403:18;;;19396:34;3606:13:142;19446:18:399;;;19439:34;3639:4:142;19489:19:399;;;19482:61;19291:19;;3501:153:142;;;;;;;;;;;;3482:180;;;;;;3469:193;;3399:268;:::o;15291:213:348:-;15347:6;15377:16;15369:24;;15365:103;;;15416:41;;-1:-1:-1;;;15416:41:348;;15447:2;15416:41;;;19735:36:399;19787:18;;;19780:34;;;19708:18;;15416:41:348;19554:266:399;15365:103:348;-1:-1:-1;15491:5:348;15291:213::o;8964:548:72:-;9090:24;;9061:7;;;9090:24;9177:1;9171:7;;9167:190;;;9188:11;9208:14;9218:3;9208:9;:14::i;:::-;9202:20;;:3;:20;:::i;:::-;13062:28;13115:20;;;13174:4;13161:18;;9188:34;;-1:-1:-1;13157:28:72;;9240:42;;;;;9234:48;;;;9230:121;;;9301:3;9294:10;;9230:121;;;9335:7;:3;9341:1;9335:7;:::i;:::-;9329:13;;9230:121;9180:177;9167:190;9363:11;9377:53;9396:4;9415:3;9420;9425:4;9377:18;:53::i;:::-;9363:67;-1:-1:-1;9444:8:72;;:63;;9459:41;9473:4;9492:7;9498:1;9492:3;:7;:::i;:::-;13062:28;13115:20;;;13174:4;13161:18;;;13157:28;;12962:233;9459:41;:48;-1:-1:-1;;;9459:48:72;;-1:-1:-1;;;;;9459:48:72;9444:63;;;9455:1;9444:63;9437:70;8964:548;-1:-1:-1;;;;;;;8964:548:72:o;418:183:254:-;534:15;;519:4;;534:21;-1:-1:-1;530:66:254;;;564:32;;-1:-1:-1;;;564:32:254;;;;;;;;;;;737:119;-1:-1:-1;;;;;797:18:254;;793:58;;824:27;;-1:-1:-1;;;824:27:254;;;;;;;;;;;4247:135:219;4337:7;4359:18;4369:7;4359:9;:18::i;7806:698:77:-;7918:2;-1:-1:-1;;;;;7910:10:77;:4;-1:-1:-1;;;;;7910:10:77;;;:24;;;;;7933:1;7924:6;:10;7910:24;7906:594;;;-1:-1:-1;;;;;7948:18:77;;;7944:277;;-1:-1:-1;;;;;8034:48:77;;7979:16;8034:48;;;-1:-1:-1;;;;;;;;;;;8034:48:77;;;;;7979:16;;8017:134;;8094:9;8115:26;8134:6;8115:18;:26::i;8017:134::-;-1:-1:-1;;;;;7978:173:77;;;-1:-1:-1;;;;;7978:173:77;;;8187:4;-1:-1:-1;;;;;8166:46:77;;8193:8;8203;8166:46;;;;;;20394:25:399;;;20450:2;20435:18;;20428:34;20382:2;20367:18;;20220:248;8166:46:77;;;;;;;;7968:253;;7944:277;-1:-1:-1;;;;;8232:16:77;;;8228:266;;-1:-1:-1;;;;;8316:46:77;;8261:16;8316:46;;;-1:-1:-1;;;;;;;;;;;8316:46:77;;;;;8261:16;;8299:127;;8374:4;8390:26;8409:6;8390:18;:26::i;8299:127::-;-1:-1:-1;;;;;8260:166:77;;;-1:-1:-1;;;;;8260:166:77;;;8462:2;-1:-1:-1;;;;;8441:44:77;;8466:8;8476;8441:44;;;;;;20394:25:399;;;20450:2;20435:18;;20428:34;20382:2;20367:18;;20220:248;8441:44:77;;;;;;;;8250:244;;7806:698;;;:::o;14291:213:348:-;14347:6;14377:16;14369:24;;14365:103;;;14416:41;;-1:-1:-1;;;14416:41:348;;14447:2;14416:41;;;19735:36:399;19787:18;;;19780:34;;;19708:18;;14416:41:348;19554:266:399;9624:196:72;9715:24;;9686:7;;9752:8;;:63;;9767:41;9781:4;9800:7;9806:1;9800:3;:7;:::i;9767:41::-;:48;-1:-1:-1;;;9767:48:72;;-1:-1:-1;;;;;9767:48:72;9752:63;;;9763:1;9745:70;9624:196;-1:-1:-1;;;9624:196:72:o;4260:178:142:-;4345:7;4367:66;4400:20;:18;:20::i;:::-;4422:10;3555:4:344;3549:11;-1:-1:-1;;;3573:23:344;;3625:4;3616:14;;3609:39;;;;3677:4;3668:14;;3661:34;3733:4;3718:20;;;3353:401;6803:260:342;6888:7;6908:17;6927:18;6947:16;6967:25;6978:4;6984:1;6987;6990;6967:10;:25::i;:::-;6907:85;;;;;;7002:28;7014:5;7021:8;7002:11;:28::i;:::-;-1:-1:-1;7047:9:342;;6803:260;-1:-1:-1;;;;;;6803:260:342:o;1161:202:141:-;-1:-1:-1;;;;;1008:37:141;;1240:15;1008:37;;;1554:66;1008:37;;;;;:39;;;;;;;;1284:16;;;1280:79;;1317:35;;-1:-1:-1;;;1317:35:141;;-1:-1:-1;;;;;20936:32:399;;1317:35:141;;;20918:51:399;20985:18;;;20978:34;;;20891:18;;1317:35:141;20744:274:399;637:698:341;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:341;-1:-1:-1;794:41:341;-1:-1:-1;955:28:341;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:341;-1:-1:-1;;;1175:2:341;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:341;1010:282;1256:21;-1:-1:-1;1312:6:341;637:698;-1:-1:-1;;;637:698:341:o;777:1861:377:-;835:13;864:4;:11;879:1;864:16;860:31;;-1:-1:-1;;882:9:377;;;;;;;;;-1:-1:-1;882:9:377;;;777:1861::o;860:31::-;940:19;962:12;;;;;;;;;;;;;;;;;940:34;;1023:18;1069:1;1050:4;:11;1064:1;1050:15;;;;:::i;:::-;1049:21;;;;:::i;:::-;1044:27;;:1;:27;:::i;:::-;1023:48;-1:-1:-1;1151:20:377;1185:15;1023:48;1198:2;1185:15;:::i;:::-;1174:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1174:27:377;;1151:50;;1294:10;1286:6;1279:26;1386:1;1379:5;1375:13;1442:4;1492;1486:11;1477:7;1473:25;1585:2;1577:6;1573:15;1655:739;1674:6;1665:7;1662:19;1655:739;;;1771:1;1762:7;1758:15;1747:26;;1809:7;1803:14;1932:4;1924:5;1920:2;1916:14;1912:25;1902:8;1898:40;1892:47;1881:9;1873:67;1985:1;1974:9;1970:17;1957:30;;2063:4;2055:5;2051:2;2047:14;2043:25;2033:8;2029:40;2023:47;2012:9;2004:67;2116:1;2105:9;2101:17;2088:30;;2194:4;2186:5;2183:1;2178:14;2174:25;2164:8;2160:40;2154:47;2143:9;2135:67;2247:1;2236:9;2232:17;2219:30;;2325:4;2317:5;2305:25;2295:8;2291:40;2285:47;2274:9;2266:67;-1:-1:-1;2378:1:377;2363:17;1655:739;;;2464:1;2457:4;2451:11;2447:19;2484:1;2479:54;;;;2551:1;2546:52;;;;2440:158;;2479:54;-1:-1:-1;;;;;2495:17:377;;2488:43;2479:54;;2546:52;-1:-1:-1;;;;;2562:17:377;;2555:41;2440:158;-1:-1:-1;2625:6:377;;777:1861;-1:-1:-1;;;;;;;;777:1861:377:o;445:282:85:-;-1:-1:-1;;;;;;1114:62:85;;1089:4;1114:62;;;296:66:87;1114:62:85;;;;;;;;:70;;:62;:70;503:182;;-1:-1:-1;;;;;;549:62:85;;:49;:62;;;296:66:87;549:62:85;;;;;:69;;-1:-1:-1;;549:69:85;614:4;549:69;;;503:182;;;646:32;;-1:-1:-1;;;646:32:85;;;;;;;;;;;503:182;695:27;;-1:-1:-1;;;;;;695:27:85;;;;;;;;445:282;:::o;2553:247:124:-;2650:32;2685:23;:21;:23::i;:::-;2650:58;-1:-1:-1;2715:8:124;;;:15;2726:4;2715:8;:15;:::i;:::-;-1:-1:-1;2736:10:124;;;:19;2749:6;2736:10;:19;:::i;:::-;-1:-1:-1;3941:7:124;2761:34;;-1:-1:-1;;2553:247:124:o;2882:332:142:-;2985:28;:35;3016:4;2985:28;:35;:::i;:::-;-1:-1:-1;3026:31:142;:41;3060:7;3026:31;:41;:::i;:::-;-1:-1:-1;;3161:1:142;-1:-1:-1;;;;;;;;;;;3124:38:142;;;3168:37;:41;-1:-1:-1;2882:332:142:o;8767:90:77:-;8825:7;8847:5;8851:1;8847;:5;:::i;3151:218:348:-;3208:7;-1:-1:-1;;;;;3231:25:348;;3227:105;;;3279:42;;-1:-1:-1;;;3279:42:348;;3310:3;3279:42;;;19735:36:399;19787:18;;;19780:34;;;19708:18;;3279:42:348;19554:266:399;8508:255:77;8661:7;8670;8692:66;8703:27;8721:8;:6;:8::i;:::-;8703:27;;:17;:27::i;:::-;8732:25;8735:14;:5;:12;:14::i;:::-;8751:5;8732:2;:25;;:::i;:::-;8692:5;;:66;:10;:66::i;:::-;8685:73;;;;8508:255;;;;;;;:::o;8861:95::-;8924:7;8946:5;8950:1;8946;:5;:::i;6177:577:142:-;6227:7;6242:18;6263:13;:11;:13::i;:::-;6286:18;;6242:34;;-1:-1:-1;6286:22:142;6282:468;;6325:22;;;;;;;;6177:577;-1:-1:-1;6177:577:142:o;6282:468::-;-1:-1:-1;;;;;;;;;;;6600:34:142;6646:15;;6642:102;;6680:10;6177:577;-1:-1:-1;;6177:577:142:o;6642:102::-;6722:13;6715:20;;;;6177:577;:::o;6963:613::-;7016:7;7031:21;7055:16;:14;:16::i;:::-;7081:21;;7031:40;;-1:-1:-1;7081:25:142;7077:495;;7123:25;;;;;;;;6963:613;-1:-1:-1;6963:613:142:o;7077:495::-;7413:37;;7462:18;;7458:108;;7499:13;6963:613;-1:-1:-1;;6963:613:142:o;8587:1642:347:-;8635:7;8658:1;8663;8658:6;8654:45;;-1:-1:-1;8687:1:347;;8587:1642;-1:-1:-1;8587:1642:347:o;8654:45::-;9378:14;9412:1;9401:7;9406:1;9401:4;:7::i;:::-;:12;;9395:1;:19;;9378:36;;9873:1;9862:6;9858:1;:10;;;;;:::i;:::-;;9849:6;:19;9848:26;;9839:35;;9922:1;9911:6;9907:1;:10;;;;;:::i;:::-;;9898:6;:19;9897:26;;9888:35;;9971:1;9960:6;9956:1;:10;;;;;:::i;:::-;;9947:6;:19;9946:26;;9937:35;;10020:1;10009:6;10005:1;:10;;;;;:::i;:::-;;9996:6;:19;9995:26;;9986:35;;10069:1;10058:6;10054:1;:10;;;;;:::i;:::-;;10045:6;:19;10044:26;;10035:35;;10118:1;10107:6;10103:1;:10;;;;;:::i;:::-;;10094:6;:19;10093:26;;10084:35;;10167:1;10156:6;10152:1;:10;;;;;:::i;:::-;;10143:6;:19;10142:26;;10133:35;;10189:23;10193:6;10205;10201:1;:10;;;;;:::i;:::-;;10189:3;:23::i;11772:361:72:-;11911:7;11926:186;11939:4;11933:3;:10;11926:186;;;11953:11;11967:23;11980:3;11985:4;11967:12;:23::i;:::-;13062:28;13115:20;;;13174:4;13161:18;;11953:37;;-1:-1:-1;12002:35:72;;;;13157:28;;12002:29;;;:35;11998:108;;;12056:3;12049:10;;11998:108;;;12090:7;:3;12096:1;12090:7;:::i;:::-;12084:13;;11998:108;11945:167;11926:186;;;-1:-1:-1;12124:4:72;11772:361;-1:-1:-1;;;11772:361:72:o;5140:1530:342:-;5266:7;;;6199:66;6186:79;;6182:164;;;-1:-1:-1;6297:1:342;;-1:-1:-1;6301:30:342;;-1:-1:-1;6333:1:342;6281:54;;6182:164;6457:24;;;6440:14;6457:24;;;;;;;;;22426:25:399;;;22499:4;22487:17;;22467:18;;;22460:45;;;;22521:18;;;22514:34;;;22564:18;;;22557:34;;;6457:24:342;;22398:19:399;;6457:24:342;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6457:24:342;;-1:-1:-1;;6457:24:342;;;-1:-1:-1;;;;;;;6495:20:342;;6491:113;;-1:-1:-1;6547:1:342;;-1:-1:-1;6551:29:342;;-1:-1:-1;6547:1:342;;-1:-1:-1;6531:62:342;;6491:113;6622:6;-1:-1:-1;6630:20:342;;-1:-1:-1;6630:20:342;;-1:-1:-1;5140:1530:342;;;;;;;;;:::o;7196:532::-;7291:20;7282:5;:29;;;;;;;;:::i;:::-;;7278:444;;7196:532;;:::o;7278:444::-;7387:29;7378:5;:38;;;;;;;;:::i;:::-;;7374:348;;7439:23;;-1:-1:-1;;;7439:23:342;;;;;;;;;;;7374:348;7492:35;7483:5;:44;;;;;;;;:::i;:::-;;7479:243;;7550:46;;-1:-1:-1;;;7550:46:342;;;;;1746:25:399;;;1719:18;;7550:46:342;1600:177:399;7479:243:342;7626:30;7617:5;:39;;;;;;;;:::i;:::-;;7613:109;;7679:32;;-1:-1:-1;;;7679:32:342;;;;;1746:25:399;;;1719:18;;7679:32:342;1600:177:399;12214:916:347;12267:7;;-1:-1:-1;;;12342:17:347;;12338:103;;-1:-1:-1;;;12379:17:347;;;-1:-1:-1;12424:2:347;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:347;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:347;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:347;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:347;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:347;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:347:o;7623:172:72:-;7721:7;;7752:38;7760:4;7779:3;7784:5;7752:7;:38::i;10699:983:347:-;10751:7;;10835:3;10826:12;;;:16;10822:99;;10872:3;10862:13;;;;10893;10822:99;10947:2;10938:11;;;:15;10934:96;;10983:2;10973:12;;;;11003;10934:96;11056:2;11047:11;;;:15;11043:96;;11092:2;11082:12;;;;11112;11043:96;11165:2;11156:11;;;:15;11152:96;;11201:2;11191:12;;;;11221;11152:96;11274:1;11265:10;;;:14;11261:93;;11309:1;11299:11;;;;11328;11261:93;11380:1;11371:10;;;:14;11367:93;;11415:1;11405:11;;;;11434;11367:93;11486:1;11477:10;;;:14;11473:93;;11521:1;11511:11;;;;11540;11473:93;11592:1;11583:10;;;:14;11579:64;;11627:1;11617:11;11669:6;10699:983;-1:-1:-1;;10699:983:347:o;2557:104::-;2615:7;2645:1;2641;:5;:13;;2653:1;2641:13;;;-1:-1:-1;2649:1:347;;2557:104;-1:-1:-1;2557:104:347:o;2774:153::-;2836:7;2909:11;2919:1;2910:5;;;2909:11;:::i;:::-;2899:21;;2900:5;;;2899:21;:::i;10688:752:72:-;10833:11;;10795:7;;;;10855;;10851:585;;10918:25;10946:28;10960:4;10966:7;10972:1;10966:3;:7;:::i;10946:28::-;10918:56;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10918:56:72;;;-1:-1:-1;;;;;10918:56:72;;;;;;;-1:-1:-1;11040:16:72;;;-1:-1:-1;11040:16:72;11032:56;;;;-1:-1:-1;;;11032:56:72;;22936:2:399;11032:56:72;;;22918:21:399;22975:2;22955:18;;;22948:30;23014:29;22994:18;;;22987:57;23061:18;;11032:56:72;22734:351:399;11032:56:72;11140:9;;:16;;;;;;;11136:161;;11206:5;11168:28;11182:4;11188:7;11194:1;11188:3;:7;:::i;11168:28::-;:43;;-1:-1:-1;;;;;11168:43:72;;;;-1:-1:-1;;;11168:43:72;;;;;;;;;;;11136:161;;;11246:41;;;;;;;;;;;;;;;-1:-1:-1;;;;;11246:41:72;;;;;;;;;;11236:52;;;;;;;-1:-1:-1;11236:52:72;;;;;;;;;;;;;;-1:-1:-1;;;11236:52:72;;;;;;;;;;11136:161;11312:11;;;;-1:-1:-1;11325:5:72;;-1:-1:-1;11304:27:72;;-1:-1:-1;11304:27:72;10851:585;-1:-1:-1;;11362:41:72;;;;;;;;;;;;;;;-1:-1:-1;;;;;11362:41:72;;;;;;;;;;11352:52;;;;;;;-1:-1:-1;11352:52:72;;;;;;;;;;;;;-1:-1:-1;;;11352:52:72;;;;;;;;;;;;-1:-1:-1;;11396:5:72;11412:17;;14:250:399;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:399;238:16;;231:27;14:250::o;269:271::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;522:2;501:15;-1:-1:-1;;497:29:399;488:39;;;;529:4;484:50;;269:271;-1:-1:-1;;269:271:399:o;545:220::-;694:2;683:9;676:21;657:4;714:45;755:2;744:9;740:18;732:6;714:45;:::i;770:180::-;829:6;882:2;870:9;861:7;857:23;853:32;850:52;;;898:1;895;888:12;850:52;-1:-1:-1;921:23:399;;770:180;-1:-1:-1;770:180:399:o;1163:173::-;1231:20;;-1:-1:-1;;;;;1280:31:399;;1270:42;;1260:70;;1326:1;1323;1316:12;1260:70;1163:173;;;:::o;1341:254::-;1409:6;1417;1470:2;1458:9;1449:7;1445:23;1441:32;1438:52;;;1486:1;1483;1476:12;1438:52;1509:29;1528:9;1509:29;:::i;:::-;1499:39;1585:2;1570:18;;;;1557:32;;-1:-1:-1;;;1341:254:399:o;1782:328::-;1859:6;1867;1875;1928:2;1916:9;1907:7;1903:23;1899:32;1896:52;;;1944:1;1941;1934:12;1896:52;1967:29;1986:9;1967:29;:::i;:::-;1957:39;;2015:38;2049:2;2038:9;2034:18;2015:38;:::i;:::-;2005:48;;2100:2;2089:9;2085:18;2072:32;2062:42;;1782:328;;;;;:::o;2297:127::-;2358:10;2353:3;2349:20;2346:1;2339:31;2389:4;2386:1;2379:15;2413:4;2410:1;2403:15;2429:632;2494:5;2524:18;2565:2;2557:6;2554:14;2551:40;;;2571:18;;:::i;:::-;2646:2;2640:9;2614:2;2700:15;;-1:-1:-1;;2696:24:399;;;2722:2;2692:33;2688:42;2676:55;;;2746:18;;;2766:22;;;2743:46;2740:72;;;2792:18;;:::i;:::-;2832:10;2828:2;2821:22;2861:6;2852:15;;2891:6;2883;2876:22;2931:3;2922:6;2917:3;2913:16;2910:25;2907:45;;;2948:1;2945;2938:12;2907:45;2998:6;2993:3;2986:4;2978:6;2974:17;2961:44;3053:1;3046:4;3037:6;3029;3025:19;3021:30;3014:41;;;;2429:632;;;;;:::o;3066:222::-;3109:5;3162:3;3155:4;3147:6;3143:17;3139:27;3129:55;;3180:1;3177;3170:12;3129:55;3202:80;3278:3;3269:6;3256:20;3249:4;3241:6;3237:17;3202:80;:::i;3293:1019::-;3428:6;3436;3444;3452;3460;3513:3;3501:9;3492:7;3488:23;3484:33;3481:53;;;3530:1;3527;3520:12;3481:53;3570:9;3557:23;3599:18;3640:2;3632:6;3629:14;3626:34;;;3656:1;3653;3646:12;3626:34;3679:50;3721:7;3712:6;3701:9;3697:22;3679:50;:::i;:::-;3669:60;;3782:2;3771:9;3767:18;3754:32;3738:48;;3811:2;3801:8;3798:16;3795:36;;;3827:1;3824;3817:12;3795:36;3850:52;3894:7;3883:8;3872:9;3868:24;3850:52;:::i;:::-;3840:62;;3921:38;3955:2;3944:9;3940:18;3921:38;:::i;:::-;3911:48;;4012:2;4001:9;3997:18;3984:32;3968:48;;4041:2;4031:8;4028:16;4025:36;;;4057:1;4054;4047:12;4025:36;4080:52;4124:7;4113:8;4102:9;4098:24;4080:52;:::i;:::-;4070:62;;4185:3;4174:9;4170:19;4157:33;4141:49;;4215:2;4205:8;4202:16;4199:36;;;4231:1;4228;4221:12;4199:36;;4254:52;4298:7;4287:8;4276:9;4272:24;4254:52;:::i;:::-;4244:62;;;3293:1019;;;;;;;;:::o;4317:186::-;4376:6;4429:2;4417:9;4408:7;4404:23;4400:32;4397:52;;;4445:1;4442;4435:12;4397:52;4468:29;4487:9;4468:29;:::i;4508:1043::-;4685:2;4674:9;4667:21;4648:4;4723:6;4717:13;4766:4;4761:2;4750:9;4746:18;4739:32;4794:52;4841:3;4830:9;4826:19;4812:12;4794:52;:::i;:::-;4780:66;;4895:2;4887:6;4883:15;4877:22;4922:2;4918:7;4989:2;4977:9;4969:6;4965:22;4961:31;4956:2;4945:9;4941:18;4934:59;5016:41;5050:6;5034:14;5016:41;:::i;:::-;5002:55;;5111:2;5103:6;5099:15;5093:22;5088:2;5077:9;5073:18;5066:50;5171:2;5163:6;5159:15;5153:22;5147:3;5136:9;5132:19;5125:51;5225:3;5217:6;5213:16;5207:23;5185:45;;5295:2;5283:9;5275:6;5271:22;5267:31;5261:3;5250:9;5246:19;5239:60;5322:41;5356:6;5340:14;5322:41;:::i;:::-;5308:55;;5412:3;5404:6;5400:16;5394:23;5372:45;;5483:2;5471:9;5463:6;5459:22;5455:31;5448:4;5437:9;5433:20;5426:61;;5504:41;5538:6;5522:14;5504:41;:::i;:::-;5496:49;4508:1043;-1:-1:-1;;;;;4508:1043:399:o;5556:1019::-;5691:6;5699;5707;5715;5723;5776:3;5764:9;5755:7;5751:23;5747:33;5744:53;;;5793:1;5790;5783:12;5744:53;5816:29;5835:9;5816:29;:::i;:::-;5806:39;;5896:2;5885:9;5881:18;5868:32;5919:18;5960:2;5952:6;5949:14;5946:34;;;5976:1;5973;5966:12;5946:34;5999:50;6041:7;6032:6;6021:9;6017:22;5999:50;:::i;:::-;5989:60;;6102:2;6091:9;6087:18;6074:32;6058:48;;6131:2;6121:8;6118:16;6115:36;;;6147:1;6144;6137:12;6115:36;6170:52;6214:7;6203:8;6192:9;6188:24;6170:52;:::i;6580:1259::-;6986:3;6981;6977:13;6969:6;6965:26;6954:9;6947:45;6928:4;7011:2;7049:3;7044:2;7033:9;7029:18;7022:31;7076:46;7117:3;7106:9;7102:19;7094:6;7076:46;:::i;:::-;7170:9;7162:6;7158:22;7153:2;7142:9;7138:18;7131:50;7204:33;7230:6;7222;7204:33;:::i;:::-;7268:2;7253:18;;7246:34;;;-1:-1:-1;;;;;7317:32:399;;7311:3;7296:19;;7289:61;7337:3;7366:19;;7359:35;;;7431:22;;;7425:3;7410:19;;7403:51;7503:13;;7525:22;;;7575:2;7601:15;;;;-1:-1:-1;7563:15:399;;;;-1:-1:-1;7644:169:399;7658:6;7655:1;7652:13;7644:169;;;7719:13;;7707:26;;7788:15;;;;7753:12;;;;7680:1;7673:9;7644:169;;;-1:-1:-1;7830:3:399;;6580:1259;-1:-1:-1;;;;;;;;;;;;6580:1259:399:o;8045:347::-;8110:6;8118;8171:2;8159:9;8150:7;8146:23;8142:32;8139:52;;;8187:1;8184;8177:12;8139:52;8210:29;8229:9;8210:29;:::i;:::-;8200:39;;8289:2;8278:9;8274:18;8261:32;8336:5;8329:13;8322:21;8315:5;8312:32;8302:60;;8358:1;8355;8348:12;8302:60;8381:5;8371:15;;;8045:347;;;;;:::o;8397:667::-;8492:6;8500;8508;8516;8569:3;8557:9;8548:7;8544:23;8540:33;8537:53;;;8586:1;8583;8576:12;8537:53;8609:29;8628:9;8609:29;:::i;:::-;8599:39;;8657:38;8691:2;8680:9;8676:18;8657:38;:::i;:::-;8647:48;;8742:2;8731:9;8727:18;8714:32;8704:42;;8797:2;8786:9;8782:18;8769:32;8824:18;8816:6;8813:30;8810:50;;;8856:1;8853;8846:12;8810:50;8879:22;;8932:4;8924:13;;8920:27;-1:-1:-1;8910:55:399;;8961:1;8958;8951:12;8910:55;8984:74;9050:7;9045:2;9032:16;9027:2;9023;9019:11;8984:74;:::i;:::-;8974:84;;;8397:667;;;;;;;:::o;9069:618::-;9171:6;9179;9187;9195;9203;9211;9264:3;9252:9;9243:7;9239:23;9235:33;9232:53;;;9281:1;9278;9271:12;9232:53;9304:29;9323:9;9304:29;:::i;:::-;9294:39;;9380:2;9369:9;9365:18;9352:32;9342:42;;9431:2;9420:9;9416:18;9403:32;9393:42;;9485:2;9474:9;9470:18;9457:32;9529:4;9522:5;9518:16;9511:5;9508:27;9498:55;;9549:1;9546;9539:12;9498:55;9069:618;;;;-1:-1:-1;9069:618:399;;9624:3;9609:19;;9596:33;;9676:3;9661:19;;;9648:33;;-1:-1:-1;9069:618:399;-1:-1:-1;;9069:618:399:o;9692:543::-;9780:6;9788;9841:2;9829:9;9820:7;9816:23;9812:32;9809:52;;;9857:1;9854;9847:12;9809:52;9897:9;9884:23;9926:18;9967:2;9959:6;9956:14;9953:34;;;9983:1;9980;9973:12;9953:34;10006:50;10048:7;10039:6;10028:9;10024:22;10006:50;:::i;:::-;9996:60;;10109:2;10098:9;10094:18;10081:32;10065:48;;10138:2;10128:8;10125:16;10122:36;;;10154:1;10151;10144:12;10122:36;;10177:52;10221:7;10210:8;10199:9;10195:24;10177:52;:::i;:::-;10167:62;;;9692:543;;;;;:::o;10240:743::-;10347:6;10355;10363;10416:2;10404:9;10395:7;10391:23;10387:32;10384:52;;;10432:1;10429;10422:12;10384:52;10472:9;10459:23;10501:18;10542:2;10534:6;10531:14;10528:34;;;10558:1;10555;10548:12;10528:34;10581:50;10623:7;10614:6;10603:9;10599:22;10581:50;:::i;:::-;10571:60;;10684:2;10673:9;10669:18;10656:32;10640:48;;10713:2;10703:8;10700:16;10697:36;;;10729:1;10726;10719:12;10697:36;10752:52;10796:7;10785:8;10774:9;10770:24;10752:52;:::i;:::-;10742:62;;10857:2;10846:9;10842:18;10829:32;10813:48;;10886:2;10876:8;10873:16;10870:36;;;10902:1;10899;10892:12;10870:36;;10925:52;10969:7;10958:8;10947:9;10943:24;10925:52;:::i;:::-;10915:62;;;10240:743;;;;;:::o;10988:260::-;11056:6;11064;11117:2;11105:9;11096:7;11092:23;11088:32;11085:52;;;11133:1;11130;11123:12;11085:52;11156:29;11175:9;11156:29;:::i;:::-;11146:39;;11204:38;11238:2;11227:9;11223:18;11204:38;:::i;:::-;11194:48;;10988:260;;;;;:::o;11445:380::-;11524:1;11520:12;;;;11567;;;11588:61;;11642:4;11634:6;11630:17;11620:27;;11588:61;11695:2;11687:6;11684:14;11664:18;11661:38;11658:161;;11741:10;11736:3;11732:20;11729:1;11722:31;11776:4;11773:1;11766:15;11804:4;11801:1;11794:15;13058:543;13160:2;13155:3;13152:11;13149:446;;;13196:1;13220:5;13217:1;13210:16;13264:4;13261:1;13251:18;13334:2;13322:10;13318:19;13315:1;13311:27;13305:4;13301:38;13370:4;13358:10;13355:20;13352:47;;;-1:-1:-1;13393:4:399;13352:47;13448:2;13443:3;13439:12;13436:1;13432:20;13426:4;13422:31;13412:41;;13503:82;13521:2;13514:5;13511:13;13503:82;;;13566:17;;;13547:1;13536:13;13503:82;;13777:1345;13903:3;13897:10;13930:18;13922:6;13919:30;13916:56;;;13952:18;;:::i;:::-;13981:97;14071:6;14031:38;14063:4;14057:11;14031:38;:::i;:::-;14025:4;13981:97;:::i;:::-;14133:4;;14190:2;14179:14;;14207:1;14202:663;;;;14909:1;14926:6;14923:89;;;-1:-1:-1;14978:19:399;;;14972:26;14923:89;-1:-1:-1;;13734:1:399;13730:11;;;13726:24;13722:29;13712:40;13758:1;13754:11;;;13709:57;15025:81;;14172:944;;14202:663;13005:1;12998:14;;;13042:4;13029:18;;-1:-1:-1;;14238:20:399;;;14356:236;14370:7;14367:1;14364:14;14356:236;;;14459:19;;;14453:26;14438:42;;14551:27;;;;14519:1;14507:14;;;;14386:19;;14356:236;;;14360:3;14620:6;14611:7;14608:19;14605:201;;;14681:19;;;14675:26;-1:-1:-1;;14764:1:399;14760:14;;;14776:3;14756:24;14752:37;14748:42;14733:58;14718:74;;14605:201;-1:-1:-1;;;;;14852:1:399;14836:14;;;14832:22;14819:36;;-1:-1:-1;13777:1345:399:o;15480:489::-;-1:-1:-1;;;;;15749:15:399;;;15731:34;;15801:15;;15796:2;15781:18;;15774:43;15848:2;15833:18;;15826:34;;;15896:3;15891:2;15876:18;;15869:31;;;15674:4;;15917:46;;15943:19;;15935:6;15917:46;:::i;:::-;15909:54;15480:489;-1:-1:-1;;;;;;15480:489:399:o;15974:290::-;16043:6;16096:2;16084:9;16075:7;16071:23;16067:32;16064:52;;;16112:1;16109;16102:12;16064:52;16138:16;;-1:-1:-1;;;;;;16183:32:399;;16173:43;;16163:71;;16230:1;16227;16220:12;17044:1545;-1:-1:-1;;;17693:43:399;;17759:13;;17675:3;;17781:74;17759:13;17844:1;17835:11;;17828:4;17816:17;;17781:74;:::i;:::-;-1:-1:-1;;;17914:1:399;17874:16;;;17906:10;;;17899:54;17978:13;;18000:76;17978:13;18062:2;18054:11;;18047:4;18035:17;;18000:76;:::i;:::-;18141:66;18136:2;18095:17;;;;18128:11;;;18121:87;18237:66;18232:2;18224:11;;18217:87;-1:-1:-1;;;18328:2:399;18320:11;;18313:49;18387:13;;18409:76;18387:13;18471:2;18463:11;;18456:4;18444:17;;18409:76;:::i;:::-;-1:-1:-1;;;18545:2:399;18504:17;;;;18537:11;;;18530:26;18580:2;18572:11;;17044:1545;-1:-1:-1;;;;;17044:1545:399:o;18594:461::-;18856:31;18851:3;18844:44;18826:3;18917:6;18911:13;18933:75;19001:6;18996:2;18991:3;18987:12;18980:4;18972:6;18968:17;18933:75;:::i;:::-;19028:16;;;;19046:2;19024:25;;18594:461;-1:-1:-1;;18594:461:399:o;19825:127::-;19886:10;19881:3;19877:20;19874:1;19867:31;19917:4;19914:1;19907:15;19941:4;19938:1;19931:15;19957:128;20024:9;;;20045:11;;;20042:37;;;20059:18;;:::i;20090:125::-;20155:9;;;20176:10;;;20173:36;;;20189:18;;:::i;21023:127::-;21084:10;21079:3;21075:20;21072:1;21065:31;21115:4;21112:1;21105:15;21139:4;21136:1;21129:15;21155:217;21195:1;21221;21211:132;;21265:10;21260:3;21256:20;21253:1;21246:31;21300:4;21297:1;21290:15;21328:4;21325:1;21318:15;21211:132;-1:-1:-1;21357:9:399;;21155:217::o;21377:168::-;21450:9;;;21481;;21498:15;;;21492:22;;21478:37;21468:71;;21519:18;;:::i;21550:182::-;-1:-1:-1;;;;;21657:10:399;;;21669;;;21653:27;;21692:11;;;21689:37;;;21706:18;;:::i;:::-;21689:37;21550:182;;;;:::o;22009:185::-;-1:-1:-1;;;;;22130:10:399;;;22118;;;22114:27;;22153:12;;;22150:38;;;22168:18;;:::i;22602:127::-;22663:10;22658:3;22654:20;22651:1;22644:31;22694:4;22691:1;22684:15;22718:4;22715:1;22708:15","linkReferences":{}},"methodIdentifiers":{"CLOCK_MODE()":"4bf5d7e9","DOMAIN_SEPARATOR()":"3644e515","__ERC721A_init(string,string)":"d2f01f19","__SpaceOwner_init(string,string,string)":"d7a901d3","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","clock()":"91ddadf4","delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","eip712Domain()":"84b0196e","getApproved(uint256)":"081812fc","getFactory()":"88cc58e4","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getSpaceInfo(address)":"6a9a38e6","getVotes(address)":"9ab24eb0","isApprovedForAll(address,address)":"e985e9c5","mintSpace(string,string,address,string,string)":"3bf5b8f4","name()":"06fdde03","nextTokenId()":"75794a3c","nonces(address)":"7ecebe00","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setFactory(address)":"5bb47808","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","updateSpaceInfo(address,string,string,string,string)":"84880614"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GuardianEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initializable_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_InInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_NotInInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_AlreadySupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_NotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintERC2309QuantityExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintZeroQuantity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotExternalAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Ownable__NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Ownable__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnershipNotInitializedForExtraData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SpaceOwner__OnlyFactoryAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SpaceOwner__OnlySpaceOwnerAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"URIQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Validator__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Validator__InvalidStringLength\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"ConsecutiveTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cooldown\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"GuardianUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"SpaceOwner__SetFactory\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"}],\"name\":\"SpaceOwner__UpdateSpace\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CLOCK_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"name\":\"__ERC721A_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"name\":\"__SpaceOwner_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clock\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"}],\"name\":\"getSpaceInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"shortDescription\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"longDescription\",\"type\":\"string\"}],\"internalType\":\"struct ISpaceOwnerBase.Space\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"shortDescription\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"longDescription\",\"type\":\"string\"}],\"name\":\"mintSpace\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"setFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"shortDescription\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"longDescription\",\"type\":\"string\"}],\"name\":\"updateSpaceInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"ConsecutiveTransfer(uint256,uint256,address,address)\":{\"details\":\"Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, as defined in the [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. See {_mintERC2309} for more details.\"},\"DelegateChanged(address,address,address)\":{\"details\":\"Emitted when an account changes their delegate.\"},\"DelegateVotesChanged(address,uint256,uint256)\":{\"details\":\"Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"This emits when ownership of a contract changes.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"CLOCK_MODE()\":{\"details\":\"Description of the clock\"},\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in `owner`'s account.\"},\"clock()\":{\"details\":\"Clock used for flagging checkpoints. Can be overridden to implement timestamp based checkpoints (and voting).\"},\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"eip712Domain()\":{\"details\":\"See {EIP-5267}. _Available since v4.9._\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block. NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote.\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block.\"},\"getSpaceInfo(address)\":{\"params\":{\"space\":\"The address of the space\"},\"returns\":{\"_0\":\"space The space info\"}},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}.\"},\"mintSpace(string,string,address,string,string)\":{\"details\":\"Only the factory is allowed to mint spaces\",\"params\":{\"longDescription\":\"The long description of the space\",\"name\":\"The name of the space\",\"shortDescription\":\"The short description of the space\",\"space\":\"The address of the space\",\"uri\":\"The URI of the space\"},\"returns\":{\"tokenId\":\"The token id of the minted space\"}},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, tokenId, '')`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"totalSupply()\":{\"details\":\"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"},\"updateSpaceInfo(address,string,string,string,string)\":{\"details\":\"Only the space owner is allowed to update the space info\",\"params\":{\"longDescription\":\"The long description of the space\",\"name\":\"The name of the space\",\"shortDescription\":\"The short description of the space\",\"space\":\"The address of the space\",\"uri\":\"The URI of the space\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"ApprovalCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"ApprovalQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"BalanceQueryForZeroAddress()\":[{\"notice\":\"Cannot query the balance for the zero address.\"}],\"MintERC2309QuantityExceedsLimit()\":[{\"notice\":\"The `quantity` minted with ERC2309 exceeds the safety limit.\"}],\"MintToZeroAddress()\":[{\"notice\":\"Cannot mint to the zero address.\"}],\"MintZeroQuantity()\":[{\"notice\":\"The quantity of tokens minted must be more than zero.\"}],\"OwnerQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"OwnershipNotInitializedForExtraData()\":[{\"notice\":\"The `extraData` cannot be set on an unintialized ownership slot.\"}],\"TransferCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"TransferFromIncorrectOwner()\":[{\"notice\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"notice\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"notice\":\"Cannot transfer to the zero address.\"}],\"URIQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}]},\"events\":{\"InterfaceAdded(bytes4)\":{\"notice\":\"Emitted when an interface is added to the contract via `_addInterface`.\"},\"InterfaceRemoved(bytes4)\":{\"notice\":\"Emitted when an interface is removed from the contract via `_removeInterface`.\"}},\"kind\":\"user\",\"methods\":{\"getFactory()\":{\"notice\":\"Get the factory address\"},\"getSpaceInfo(address)\":{\"notice\":\"Get the space info\"},\"mintSpace(string,string,address,string,string)\":{\"notice\":\"Mint a space\"},\"nextTokenId()\":{\"notice\":\"Get the next token id that will be used to mint a space\"},\"setFactory(address)\":{\"notice\":\"Set the factory address that is allowed to mint spaces\"},\"updateSpaceInfo(address,string,string,string,string)\":{\"notice\":\"Update the space info\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/facets/owner/SpaceOwner.sol\":\"SpaceOwner\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/diamond/facets/Facet.sol\":{\"keccak256\":\"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863\",\"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc\"]},\"contracts/src/diamond/facets/governance/votes/Checkpoints.sol\":{\"keccak256\":\"0x4b98db2e67e47ec59caa78fade51e9ec6fa33ee2592e46fed09d9167ebe76c8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72ec6949ee33fb9c137bba362b94af699762fadd66334128d1dd0dbcd4301bc6\",\"dweb:/ipfs/QmQybe6k5K3gss4zzCPqoba6ZBZE5p8KJRoQ2RzkE91JRV\"]},\"contracts/src/diamond/facets/governance/votes/IERC5805.sol\":{\"keccak256\":\"0x8b3b84026610f99bcac6139359305a46c537edf377e44771b904c2bd35719ee3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a8e7af9b47b6bbd794ccb50380b8f9e9b84561d62bcbf16843dde55bab86e6\",\"dweb:/ipfs/QmdBdYxvhwCwtqW9DfPa6Bw5PrYdzhuKQyJv4vcLsttqrV\"]},\"contracts/src/diamond/facets/governance/votes/IERC6372.sol\":{\"keccak256\":\"0xc3fa5c25bdd3db6126e04897496889e68a65749b050ae8fede0ff80e322aca86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcf56ae1474c9a3032f8b15b1bbbeeb50ac21c574047f846673d4aca9bf82db4\",\"dweb:/ipfs/Qmcce1zD6TBWiMLXMDsFF6bUrwtVtharjwvAbtkMmoYRgd\"]},\"contracts/src/diamond/facets/governance/votes/IVotes.sol\":{\"keccak256\":\"0xef9a51a12d9c5a331de719be078e39858739a3d5043ebc20814d1331d8a7d8c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a077058f77857cd2668fc97943dd64fdfd2463b8a0e163ef9973da8bb1f593a\",\"dweb:/ipfs/QmXZavPSRakx4GHD9gDpDBWQDt1SL2hYvbARA62zVeUq2w\"]},\"contracts/src/diamond/facets/governance/votes/Votes.sol\":{\"keccak256\":\"0x583ee53b96d9ead23925281c765624a48e7a385942247c4da1ecc1052193ed67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c8cc50c062867c32ad9e3d0b4ad847f22576809d9f704aa8ee72b7ab617462\",\"dweb:/ipfs/QmSayHRuL6dwMfYNBNe29Sp63oeNDoemZttLWCv1urWCZc\"]},\"contracts/src/diamond/facets/governance/votes/VotesBase.sol\":{\"keccak256\":\"0x41049b5967fcceaf40dab9bb2863a701ba5aa68fa219321773028498c61e6add\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ecb4168e2b2f4819e606bf2b66195b48e42bd5d22a3def701dac016160112\",\"dweb:/ipfs/QmVJxvxjkTE9cH44DRXCwGntEyPRgsVDBiw2AiCT1KNDBC\"]},\"contracts/src/diamond/facets/governance/votes/VotesStorage.sol\":{\"keccak256\":\"0x87a2f9c85f63fcfa8ce2dc14d5a9a6118b33fd7000fb988b300519dec9b89629\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daef1e04a36eb664ec08d4627a2038f3decbeac93b13a2c651b52681ef6f5f5e\",\"dweb:/ipfs/QmbV5SXhZnUW52HLEbhNhKeRXDCyPR6zAJRa98Vh3m9ptF\"]},\"contracts/src/diamond/facets/initializable/Initializable.sol\":{\"keccak256\":\"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552\",\"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC\"]},\"contracts/src/diamond/facets/initializable/InitializableStorage.sol\":{\"keccak256\":\"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4\",\"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg\"]},\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/introspection/IntrospectionBase.sol\":{\"keccak256\":\"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1\",\"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw\"]},\"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol\":{\"keccak256\":\"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91\",\"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM\"]},\"contracts/src/diamond/facets/ownable/IERC173.sol\":{\"keccak256\":\"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b\",\"dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd\"]},\"contracts/src/diamond/facets/ownable/OwnableBase.sol\":{\"keccak256\":\"0x272abaecc104d5f23d77a623cf1548620d24b0f447eb2a12144e27561ff489f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcb8c20ff7346bdc5dba82e6680cc0ea64087460a12153e3b6c3416f6addf875\",\"dweb:/ipfs/QmfEEufJBzudSDekQteQkb3CzmnzUPT3GDhNgVpHNC9xaf\"]},\"contracts/src/diamond/facets/ownable/OwnableStorage.sol\":{\"keccak256\":\"0xda650482ce08c04110366cb01408aaabd01383d9c504b7cacfb2674aae688dcd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://694f42ffb353fccaa1eadf91dee3a3cee7253e3f357bcba2b175fd7be701e27e\",\"dweb:/ipfs/QmPxxVerATSYrNLp7snnSvNVsbLPm1wzHULhBbtR333eik\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721A.sol\":{\"keccak256\":\"0x5662ab29272ecaabdaf5792c368a71693fcad9df24566f9e470ff1ec3510fd8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef719ff8dce040daf5bcfe328f3463261fb3acfe5c41c589365143916748cc3\",\"dweb:/ipfs/QmUm4PHj4y2237H7hnCwnfRyTWbp1DHWpc8GN26M6T4ToC\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol\":{\"keccak256\":\"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba\",\"dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol\":{\"keccak256\":\"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04\",\"dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey\"]},\"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol\":{\"keccak256\":\"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d\",\"dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz\"]},\"contracts/src/diamond/utils/Context.sol\":{\"keccak256\":\"0x4566c941f553d989324d4308c037fe0669062c746d6e5108ce533fcc8ffbcaac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87908ef7e56c826210414cb25a50a3073188e96e6ac2afc2b56d0bba6abb48a7\",\"dweb:/ipfs/QmT41NMs4REQxxeuR48JUcB39UTgcaKdUvizc2XawUF5aq\"]},\"contracts/src/diamond/utils/Nonces.sol\":{\"keccak256\":\"0xba683e7b1dc9bc812c0c33ce7efb8e7505a881ee475b8ef2230af11377418732\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69408950cf9d4fb74bbf79e475d338363ca4f7a492de5827b3f93a02da443732\",\"dweb:/ipfs/QmT6nt6Dpp2stTjCDEzepf6unVE7bcetXdshPnwmJFfXaf\"]},\"contracts/src/diamond/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0xa4854e007ca8e80368e578576d65d47cb4022a7c031bc7abb4d94df5498935eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed66cebd356963dd8bc33459fea266da15cb87bd4f586399dba84b525e0fcd6a\",\"dweb:/ipfs/QmXqgEnTnEusLhXXuycj73PZK1pRrw6ES4BQvEKfvKa2FR\"]},\"contracts/src/diamond/utils/cryptography/IERC5267.sol\":{\"keccak256\":\"0x29135f4d4e9e50c65240a1837a077ba44470aadd8c9bad0f5bb1cb32d50018e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91eb5c894de0b09144d3b1c689f72fb26d638eb2eaa3217396ed86d41610214f\",\"dweb:/ipfs/Qmexr1dtSeFD8sbrbk3U8pp1WUL5Caq3VoeeHy6bwmxMbD\"]},\"contracts/src/spaces/facets/guardian/GuardianBase.sol\":{\"keccak256\":\"0xe76248dbf516fb6a32934062fac4f2b3e19f83ba1a4df04d55b55c15be0265d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2059a7b6b82f2de1654ff8bca374e32fa000e613ffb706197edd09565cb7a70\",\"dweb:/ipfs/QmUFTcFy64pFTwEwtGFrkoL84eZi7zVjAp46k1sWpAfUn5\"]},\"contracts/src/spaces/facets/guardian/GuardianStorage.sol\":{\"keccak256\":\"0xb6d7ae2fe80c40120223e660bf5888612f8e93c0e7dc70d6d2532d3e366f0674\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff77c0e4ad11ae6967a46d67c38422e06e45eb4e06aa7d99d611b8e4672aae5f\",\"dweb:/ipfs/QmfZui9wfZimGa4Q93zudgdit6ZUSgTET2WCKYWB7QkpVD\"]},\"contracts/src/spaces/facets/guardian/IGuardian.sol\":{\"keccak256\":\"0x7490883034a06f610a169e87f2bd15f5c904c87ea1eda80da63d17045b77b5bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44ea9689c8d31f5c31ebb470ac85f2d6be30d7698dbe4730454e19c5f72898f7\",\"dweb:/ipfs/QmUsWEQ4qFif8GghZGT8b7K52WrTbSgfjZPpPGxFzhz2kr\"]},\"contracts/src/spaces/facets/owner/ISpaceOwner.sol\":{\"keccak256\":\"0x75fef729920165a9cc37f7c212da288bc983bb11e39544a59c657cd9fa2e204a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1baac2d168e5ee3269b0b6b59ce7df29e63c38ef3d484850ed05f0a56ab59464\",\"dweb:/ipfs/QmZPxAByZ4PiQFUq45AM8LEJ2YC6n8XxE6nRHgf8Kg7nxZ\"]},\"contracts/src/spaces/facets/owner/SpaceOwner.sol\":{\"keccak256\":\"0x2aca80d58e543ed53cd74703b88bc0984bbc5fe123248ec6fc6ab85f9fd19dab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50f09db550b493adcd6bf5922e5a2202483776a1ce1c561d3f772170d5e53253\",\"dweb:/ipfs/QmUycNN84TbHZuTvXcGYmKizUEvaeEFZfVe98eQRFyiGQU\"]},\"contracts/src/spaces/facets/owner/SpaceOwnerBase.sol\":{\"keccak256\":\"0xa1cb5b0bc9aec89791654a4725f7c42798245a432f3f3a741e4999fd12020f77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720a72562f1f8c129b3b276a4fb67cf403bc628db1534fed04e45a79b7773cb1\",\"dweb:/ipfs/QmNu34EsvFQjbaE8MwdxkAn4iXGDUY4wYq2GVBwUEu1uRh\"]},\"contracts/src/spaces/facets/owner/SpaceOwnerStorage.sol\":{\"keccak256\":\"0xb008bca5ced76250a86fa507a18d1f5e77c2b7bd9fa7df3c11a7c048d148dc5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adccdd8c8b1407dd973b2b1b5cd4be0713d15bd0350ae9b2f7e1b7a9b2ace50\",\"dweb:/ipfs/QmW6Q8XXhXhDqDSqkBBsN9MqmqEidDPySS83YwXfE7Sx5Y\"]},\"contracts/src/spaces/facets/owner/SpaceOwnerUriBase.sol\":{\"keccak256\":\"0x089ce5c4408e752e52a820135620e312a08e361b5580ddcdd8ab8b4254067367\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71b3db0d8d498344f3290f46f356f635c63ec4e60264855b956ee8c566509fcb\",\"dweb:/ipfs/QmXkU1ZfWm5kpL9Q9HzYMvzJvhMkAf4k7mMohQGUQxMe6p\"]},\"contracts/src/utils/Validator.sol\":{\"keccak256\":\"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306\",\"dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt\"]},\"lib/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/base64/base64.sol\":{\"keccak256\":\"0xa73959e6ef0b693e4423a562e612370160b934a75e618361ddd8c9c4b8ddbaaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17c12e16d8d66f3af15d8787920bd41ca6c1e7517a212a6b9cebd4b6d38f36fe\",\"dweb:/ipfs/QmcXMnZUXEz6LRKsm3CSvqdPboAzmezavi8bTg2dRxM2yE\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AlreadyDisabled"},{"inputs":[],"type":"error","name":"AlreadyEnabled"},{"inputs":[],"type":"error","name":"ApprovalCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"ApprovalQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"BalanceQueryForZeroAddress"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[],"type":"error","name":"GuardianEnabled"},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32"}],"type":"error","name":"Initializable_AlreadyInitialized"},{"inputs":[],"type":"error","name":"Initializable_InInitializingState"},{"inputs":[],"type":"error","name":"Initializable_NotInInitializingState"},{"inputs":[],"type":"error","name":"Introspection_AlreadySupported"},{"inputs":[],"type":"error","name":"Introspection_NotSupported"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"MintERC2309QuantityExceedsLimit"},{"inputs":[],"type":"error","name":"MintToZeroAddress"},{"inputs":[],"type":"error","name":"MintZeroQuantity"},{"inputs":[],"type":"error","name":"NotExternalAccount"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"Ownable__NotOwner"},{"inputs":[],"type":"error","name":"Ownable__ZeroAddress"},{"inputs":[],"type":"error","name":"OwnerQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"OwnershipNotInitializedForExtraData"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SpaceOwner__OnlyFactoryAllowed"},{"inputs":[],"type":"error","name":"SpaceOwner__OnlySpaceOwnerAllowed"},{"inputs":[],"type":"error","name":"TransferCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"TransferFromIncorrectOwner"},{"inputs":[],"type":"error","name":"TransferToNonERC721ReceiverImplementer"},{"inputs":[],"type":"error","name":"TransferToZeroAddress"},{"inputs":[],"type":"error","name":"URIQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"Validator__InvalidAddress"},{"inputs":[],"type":"error","name":"Validator__InvalidStringLength"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"toTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"ConsecutiveTransfer","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"fromDelegate","type":"address","indexed":true},{"internalType":"address","name":"toDelegate","type":"address","indexed":true}],"type":"event","name":"DelegateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"delegate","type":"address","indexed":true},{"internalType":"uint256","name":"previousBalance","type":"uint256","indexed":false},{"internalType":"uint256","name":"newBalance","type":"uint256","indexed":false}],"type":"event","name":"DelegateVotesChanged","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bool","name":"enabled","type":"bool","indexed":true},{"internalType":"uint256","name":"cooldown","type":"uint256","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false}],"type":"event","name":"GuardianUpdated","anonymous":false},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceAdded","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"factory","type":"address","indexed":false}],"type":"event","name":"SpaceOwner__SetFactory","anonymous":false},{"inputs":[{"internalType":"address","name":"space","type":"address","indexed":true}],"type":"event","name":"SpaceOwner__UpdateSpace","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"CLOCK_MODE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"__ERC721A_init"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"version","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"__SpaceOwner_init"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"clock","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"delegate"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"delegateBySig"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timepoint","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"space","type":"address"}],"stateMutability":"view","type":"function","name":"getSpaceInfo","outputs":[{"internalType":"struct ISpaceOwnerBase.Space","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"uri","type":"string"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"string","name":"shortDescription","type":"string"},{"internalType":"string","name":"longDescription","type":"string"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"uri","type":"string"},{"internalType":"address","name":"space","type":"address"},{"internalType":"string","name":"shortDescription","type":"string"},{"internalType":"string","name":"longDescription","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintSpace","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"address","name":"factory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFactory"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"space","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"uri","type":"string"},{"internalType":"string","name":"shortDescription","type":"string"},{"internalType":"string","name":"longDescription","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateSpaceInfo"}],"devdoc":{"kind":"dev","methods":{"CLOCK_MODE()":{"details":"Description of the clock"},"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator."},"balanceOf(address)":{"details":"Returns the number of tokens in `owner`'s account."},"clock()":{"details":"Clock used for flagging checkpoints. Can be overridden to implement timestamp based checkpoints (and voting)."},"delegate(address)":{"details":"Delegates votes from the sender to `delegatee`."},"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Delegates votes from signer to `delegatee`."},"delegates(address)":{"details":"Returns the delegate that `account` has chosen."},"eip712Domain()":{"details":"See {EIP-5267}. _Available since v4.9._"},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"getPastTotalSupply(uint256)":{"details":"Returns the total supply of votes available at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block. NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote."},"getPastVotes(address,uint256)":{"details":"Returns the amount of votes that `account` had at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block."},"getSpaceInfo(address)":{"params":{"space":"The address of the space"},"returns":{"_0":"space The space info"}},"getVotes(address)":{"details":"Returns the current amount of votes that `account` has."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}."},"mintSpace(string,string,address,string,string)":{"details":"Only the factory is allowed to mint spaces","params":{"longDescription":"The long description of the space","name":"The name of the space","shortDescription":"The short description of the space","space":"The address of the space","uri":"The URI of the space"},"returns":{"tokenId":"The token id of the minted space"}},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Equivalent to `safeTransferFrom(from, to, tokenId, '')`."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"totalSupply()":{"details":"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."},"updateSpaceInfo(address,string,string,string,string)":{"details":"Only the space owner is allowed to update the space info","params":{"longDescription":"The long description of the space","name":"The name of the space","shortDescription":"The short description of the space","space":"The address of the space","uri":"The URI of the space"}}},"version":1},"userdoc":{"kind":"user","methods":{"getFactory()":{"notice":"Get the factory address"},"getSpaceInfo(address)":{"notice":"Get the space info"},"mintSpace(string,string,address,string,string)":{"notice":"Mint a space"},"nextTokenId()":{"notice":"Get the next token id that will be used to mint a space"},"setFactory(address)":{"notice":"Set the factory address that is allowed to mint spaces"},"updateSpaceInfo(address,string,string,string,string)":{"notice":"Update the space info"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/facets/owner/SpaceOwner.sol":"SpaceOwner"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/diamond/facets/Facet.sol":{"keccak256":"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57","urls":["bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863","dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/Checkpoints.sol":{"keccak256":"0x4b98db2e67e47ec59caa78fade51e9ec6fa33ee2592e46fed09d9167ebe76c8a","urls":["bzz-raw://72ec6949ee33fb9c137bba362b94af699762fadd66334128d1dd0dbcd4301bc6","dweb:/ipfs/QmQybe6k5K3gss4zzCPqoba6ZBZE5p8KJRoQ2RzkE91JRV"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/IERC5805.sol":{"keccak256":"0x8b3b84026610f99bcac6139359305a46c537edf377e44771b904c2bd35719ee3","urls":["bzz-raw://49a8e7af9b47b6bbd794ccb50380b8f9e9b84561d62bcbf16843dde55bab86e6","dweb:/ipfs/QmdBdYxvhwCwtqW9DfPa6Bw5PrYdzhuKQyJv4vcLsttqrV"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/IERC6372.sol":{"keccak256":"0xc3fa5c25bdd3db6126e04897496889e68a65749b050ae8fede0ff80e322aca86","urls":["bzz-raw://bcf56ae1474c9a3032f8b15b1bbbeeb50ac21c574047f846673d4aca9bf82db4","dweb:/ipfs/Qmcce1zD6TBWiMLXMDsFF6bUrwtVtharjwvAbtkMmoYRgd"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/IVotes.sol":{"keccak256":"0xef9a51a12d9c5a331de719be078e39858739a3d5043ebc20814d1331d8a7d8c3","urls":["bzz-raw://8a077058f77857cd2668fc97943dd64fdfd2463b8a0e163ef9973da8bb1f593a","dweb:/ipfs/QmXZavPSRakx4GHD9gDpDBWQDt1SL2hYvbARA62zVeUq2w"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/Votes.sol":{"keccak256":"0x583ee53b96d9ead23925281c765624a48e7a385942247c4da1ecc1052193ed67","urls":["bzz-raw://c5c8cc50c062867c32ad9e3d0b4ad847f22576809d9f704aa8ee72b7ab617462","dweb:/ipfs/QmSayHRuL6dwMfYNBNe29Sp63oeNDoemZttLWCv1urWCZc"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/VotesBase.sol":{"keccak256":"0x41049b5967fcceaf40dab9bb2863a701ba5aa68fa219321773028498c61e6add","urls":["bzz-raw://e63ecb4168e2b2f4819e606bf2b66195b48e42bd5d22a3def701dac016160112","dweb:/ipfs/QmVJxvxjkTE9cH44DRXCwGntEyPRgsVDBiw2AiCT1KNDBC"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/VotesStorage.sol":{"keccak256":"0x87a2f9c85f63fcfa8ce2dc14d5a9a6118b33fd7000fb988b300519dec9b89629","urls":["bzz-raw://daef1e04a36eb664ec08d4627a2038f3decbeac93b13a2c651b52681ef6f5f5e","dweb:/ipfs/QmbV5SXhZnUW52HLEbhNhKeRXDCyPR6zAJRa98Vh3m9ptF"],"license":"MIT"},"contracts/src/diamond/facets/initializable/Initializable.sol":{"keccak256":"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90","urls":["bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552","dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"],"license":"MIT"},"contracts/src/diamond/facets/initializable/InitializableStorage.sol":{"keccak256":"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a","urls":["bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4","dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionBase.sol":{"keccak256":"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f","urls":["bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1","dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol":{"keccak256":"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763","urls":["bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91","dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"],"license":"MIT"},"contracts/src/diamond/facets/ownable/IERC173.sol":{"keccak256":"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303","urls":["bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b","dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd"],"license":"MIT"},"contracts/src/diamond/facets/ownable/OwnableBase.sol":{"keccak256":"0x272abaecc104d5f23d77a623cf1548620d24b0f447eb2a12144e27561ff489f2","urls":["bzz-raw://fcb8c20ff7346bdc5dba82e6680cc0ea64087460a12153e3b6c3416f6addf875","dweb:/ipfs/QmfEEufJBzudSDekQteQkb3CzmnzUPT3GDhNgVpHNC9xaf"],"license":"MIT"},"contracts/src/diamond/facets/ownable/OwnableStorage.sol":{"keccak256":"0xda650482ce08c04110366cb01408aaabd01383d9c504b7cacfb2674aae688dcd","urls":["bzz-raw://694f42ffb353fccaa1eadf91dee3a3cee7253e3f357bcba2b175fd7be701e27e","dweb:/ipfs/QmPxxVerATSYrNLp7snnSvNVsbLPm1wzHULhBbtR333eik"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721A.sol":{"keccak256":"0x5662ab29272ecaabdaf5792c368a71693fcad9df24566f9e470ff1ec3510fd8f","urls":["bzz-raw://2ef719ff8dce040daf5bcfe328f3463261fb3acfe5c41c589365143916748cc3","dweb:/ipfs/QmUm4PHj4y2237H7hnCwnfRyTWbp1DHWpc8GN26M6T4ToC"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol":{"keccak256":"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62","urls":["bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba","dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol":{"keccak256":"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4","urls":["bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04","dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol":{"keccak256":"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782","urls":["bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d","dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz"],"license":"MIT"},"contracts/src/diamond/utils/Context.sol":{"keccak256":"0x4566c941f553d989324d4308c037fe0669062c746d6e5108ce533fcc8ffbcaac","urls":["bzz-raw://87908ef7e56c826210414cb25a50a3073188e96e6ac2afc2b56d0bba6abb48a7","dweb:/ipfs/QmT41NMs4REQxxeuR48JUcB39UTgcaKdUvizc2XawUF5aq"],"license":"MIT"},"contracts/src/diamond/utils/Nonces.sol":{"keccak256":"0xba683e7b1dc9bc812c0c33ce7efb8e7505a881ee475b8ef2230af11377418732","urls":["bzz-raw://69408950cf9d4fb74bbf79e475d338363ca4f7a492de5827b3f93a02da443732","dweb:/ipfs/QmT6nt6Dpp2stTjCDEzepf6unVE7bcetXdshPnwmJFfXaf"],"license":"MIT"},"contracts/src/diamond/utils/cryptography/EIP712.sol":{"keccak256":"0xa4854e007ca8e80368e578576d65d47cb4022a7c031bc7abb4d94df5498935eb","urls":["bzz-raw://ed66cebd356963dd8bc33459fea266da15cb87bd4f586399dba84b525e0fcd6a","dweb:/ipfs/QmXqgEnTnEusLhXXuycj73PZK1pRrw6ES4BQvEKfvKa2FR"],"license":"MIT"},"contracts/src/diamond/utils/cryptography/IERC5267.sol":{"keccak256":"0x29135f4d4e9e50c65240a1837a077ba44470aadd8c9bad0f5bb1cb32d50018e7","urls":["bzz-raw://91eb5c894de0b09144d3b1c689f72fb26d638eb2eaa3217396ed86d41610214f","dweb:/ipfs/Qmexr1dtSeFD8sbrbk3U8pp1WUL5Caq3VoeeHy6bwmxMbD"],"license":"MIT"},"contracts/src/spaces/facets/guardian/GuardianBase.sol":{"keccak256":"0xe76248dbf516fb6a32934062fac4f2b3e19f83ba1a4df04d55b55c15be0265d0","urls":["bzz-raw://a2059a7b6b82f2de1654ff8bca374e32fa000e613ffb706197edd09565cb7a70","dweb:/ipfs/QmUFTcFy64pFTwEwtGFrkoL84eZi7zVjAp46k1sWpAfUn5"],"license":"MIT"},"contracts/src/spaces/facets/guardian/GuardianStorage.sol":{"keccak256":"0xb6d7ae2fe80c40120223e660bf5888612f8e93c0e7dc70d6d2532d3e366f0674","urls":["bzz-raw://ff77c0e4ad11ae6967a46d67c38422e06e45eb4e06aa7d99d611b8e4672aae5f","dweb:/ipfs/QmfZui9wfZimGa4Q93zudgdit6ZUSgTET2WCKYWB7QkpVD"],"license":"MIT"},"contracts/src/spaces/facets/guardian/IGuardian.sol":{"keccak256":"0x7490883034a06f610a169e87f2bd15f5c904c87ea1eda80da63d17045b77b5bd","urls":["bzz-raw://44ea9689c8d31f5c31ebb470ac85f2d6be30d7698dbe4730454e19c5f72898f7","dweb:/ipfs/QmUsWEQ4qFif8GghZGT8b7K52WrTbSgfjZPpPGxFzhz2kr"],"license":"MIT"},"contracts/src/spaces/facets/owner/ISpaceOwner.sol":{"keccak256":"0x75fef729920165a9cc37f7c212da288bc983bb11e39544a59c657cd9fa2e204a","urls":["bzz-raw://1baac2d168e5ee3269b0b6b59ce7df29e63c38ef3d484850ed05f0a56ab59464","dweb:/ipfs/QmZPxAByZ4PiQFUq45AM8LEJ2YC6n8XxE6nRHgf8Kg7nxZ"],"license":"MIT"},"contracts/src/spaces/facets/owner/SpaceOwner.sol":{"keccak256":"0x2aca80d58e543ed53cd74703b88bc0984bbc5fe123248ec6fc6ab85f9fd19dab","urls":["bzz-raw://50f09db550b493adcd6bf5922e5a2202483776a1ce1c561d3f772170d5e53253","dweb:/ipfs/QmUycNN84TbHZuTvXcGYmKizUEvaeEFZfVe98eQRFyiGQU"],"license":"MIT"},"contracts/src/spaces/facets/owner/SpaceOwnerBase.sol":{"keccak256":"0xa1cb5b0bc9aec89791654a4725f7c42798245a432f3f3a741e4999fd12020f77","urls":["bzz-raw://720a72562f1f8c129b3b276a4fb67cf403bc628db1534fed04e45a79b7773cb1","dweb:/ipfs/QmNu34EsvFQjbaE8MwdxkAn4iXGDUY4wYq2GVBwUEu1uRh"],"license":"MIT"},"contracts/src/spaces/facets/owner/SpaceOwnerStorage.sol":{"keccak256":"0xb008bca5ced76250a86fa507a18d1f5e77c2b7bd9fa7df3c11a7c048d148dc5a","urls":["bzz-raw://2adccdd8c8b1407dd973b2b1b5cd4be0713d15bd0350ae9b2f7e1b7a9b2ace50","dweb:/ipfs/QmW6Q8XXhXhDqDSqkBBsN9MqmqEidDPySS83YwXfE7Sx5Y"],"license":"MIT"},"contracts/src/spaces/facets/owner/SpaceOwnerUriBase.sol":{"keccak256":"0x089ce5c4408e752e52a820135620e312a08e361b5580ddcdd8ab8b4254067367","urls":["bzz-raw://71b3db0d8d498344f3290f46f356f635c63ec4e60264855b956ee8c566509fcb","dweb:/ipfs/QmXkU1ZfWm5kpL9Q9HzYMvzJvhMkAf4k7mMohQGUQxMe6p"],"license":"MIT"},"contracts/src/utils/Validator.sol":{"keccak256":"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f","urls":["bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306","dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/base64/base64.sol":{"keccak256":"0xa73959e6ef0b693e4423a562e612370160b934a75e618361ddd8c9c4b8ddbaaf","urls":["bzz-raw://17c12e16d8d66f3af15d8787920bd41ca6c1e7517a212a6b9cebd4b6d38f36fe","dweb:/ipfs/QmcXMnZUXEz6LRKsm3CSvqdPboAzmezavi8bTg2dRxM2yE"],"license":"MIT"}},"version":1},"id":219} \ No newline at end of file +{"abi":[{"type":"function","name":"CLOCK_MODE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"__ERC721A_init","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"__SpaceOwner_init","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"clock","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"delegate","inputs":[{"name":"delegatee","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegateBySig","inputs":[{"name":"delegatee","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expiry","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"delegates","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPastTotalSupply","inputs":[{"name":"timepoint","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPastVotes","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"timepoint","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSpaceInfo","inputs":[{"name":"space","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct ISpaceOwnerBase.Space","components":[{"name":"name","type":"string","internalType":"string"},{"name":"uri","type":"string","internalType":"string"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"shortDescription","type":"string","internalType":"string"},{"name":"longDescription","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getVotes","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mintSpace","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"uri","type":"string","internalType":"string"},{"name":"space","type":"address","internalType":"address"},{"name":"shortDescription","type":"string","internalType":"string"},{"name":"longDescription","type":"string","internalType":"string"}],"outputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nextTokenId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setFactory","inputs":[{"name":"factory","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"updateSpaceInfo","inputs":[{"name":"space","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"},{"name":"uri","type":"string","internalType":"string"},{"name":"shortDescription","type":"string","internalType":"string"},{"name":"longDescription","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ConsecutiveTransfer","inputs":[{"name":"fromTokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"toTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateChanged","inputs":[{"name":"delegator","type":"address","indexed":true,"internalType":"address"},{"name":"fromDelegate","type":"address","indexed":true,"internalType":"address"},{"name":"toDelegate","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DelegateVotesChanged","inputs":[{"name":"delegate","type":"address","indexed":true,"internalType":"address"},{"name":"previousBalance","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"GuardianUpdated","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"enabled","type":"bool","indexed":true,"internalType":"bool"},{"name":"cooldown","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"timestamp","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint32","indexed":false,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"InterfaceAdded","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"InterfaceRemoved","inputs":[{"name":"interfaceId","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SpaceOwner__SetFactory","inputs":[{"name":"factory","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SpaceOwner__UpdateSpace","inputs":[{"name":"space","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AlreadyDisabled","inputs":[]},{"type":"error","name":"AlreadyEnabled","inputs":[]},{"type":"error","name":"ApprovalCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"ApprovalQueryForNonexistentToken","inputs":[]},{"type":"error","name":"BalanceQueryForZeroAddress","inputs":[]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"GuardianEnabled","inputs":[]},{"type":"error","name":"Initializable_AlreadyInitialized","inputs":[{"name":"version","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"Initializable_InInitializingState","inputs":[]},{"type":"error","name":"Initializable_NotInInitializingState","inputs":[]},{"type":"error","name":"Introspection_AlreadySupported","inputs":[]},{"type":"error","name":"Introspection_NotSupported","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"MintERC2309QuantityExceedsLimit","inputs":[]},{"type":"error","name":"MintToZeroAddress","inputs":[]},{"type":"error","name":"MintZeroQuantity","inputs":[]},{"type":"error","name":"NotExternalAccount","inputs":[]},{"type":"error","name":"Ownable__NotOwner","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"Ownable__ZeroAddress","inputs":[]},{"type":"error","name":"OwnerQueryForNonexistentToken","inputs":[]},{"type":"error","name":"OwnershipNotInitializedForExtraData","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SpaceOwner__OnlyFactoryAllowed","inputs":[]},{"type":"error","name":"SpaceOwner__OnlySpaceOwnerAllowed","inputs":[]},{"type":"error","name":"TransferCallerNotOwnerNorApproved","inputs":[]},{"type":"error","name":"TransferFromIncorrectOwner","inputs":[]},{"type":"error","name":"TransferToNonERC721ReceiverImplementer","inputs":[]},{"type":"error","name":"TransferToZeroAddress","inputs":[]},{"type":"error","name":"URIQueryForNonexistentToken","inputs":[]},{"type":"error","name":"Validator__InvalidAddress","inputs":[]},{"type":"error","name":"Validator__InvalidStringLength","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001c62000022565b620000ca565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200006f576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff9081161015620000c757805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b613bd280620000da6000396000f3fe6080604052600436106101e35760003560e01c806375794a3c116101025780639ab24eb011610095578063c87b56dd11610064578063c87b56dd14610546578063d2f01f1914610566578063d7a901d314610586578063e985e9c5146105a657600080fd5b80639ab24eb0146104d3578063a22cb465146104f3578063b88d4fde14610513578063c3cda5201461052657600080fd5b806388cc58e4116100d157806388cc58e41461045d5780638e539e8c1461047257806391ddadf41461049257806395d89b41146104be57600080fd5b806375794a3c146103e05780637ecebe00146103f5578063848806141461041557806384b0196e1461043557600080fd5b806342842e0e1161017a5780635c19a95c116101495780635c19a95c146103535780636352211e146103735780636a9a38e61461039357806370a08231146103c057600080fd5b806342842e0e146102eb5780634bf5d7e9146102fe578063587cde1e146103135780635bb478081461033357600080fd5b806323b872dd116101b657806323b872dd146102835780633644e515146102965780633a46b1a8146102ab5780633bf5b8f4146102cb57600080fd5b806306fdde03146101e8578063081812fc14610213578063095ea7b31461024b57806318160ddd14610260575b600080fd5b3480156101f457600080fd5b506101fd6105d6565b60405161020a919061317e565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004613191565b610671565b6040516001600160a01b03909116815260200161020a565b61025e6102593660046131c6565b610682565b005b34801561026c57600080fd5b506102756106ca565b60405190815260200161020a565b61025e6102913660046131f0565b6106d9565b3480156102a257600080fd5b506102756108e9565b3480156102b757600080fd5b506102756102c63660046131c6565b6108f3565b3480156102d757600080fd5b506102756102e63660046132d8565b610906565b61025e6102f93660046131f0565b610972565b34801561030a57600080fd5b506101fd610992565b34801561031f57600080fd5b5061023361032e366004613396565b61099c565b34801561033f57600080fd5b5061025e61034e366004613396565b6109a7565b34801561035f57600080fd5b5061025e61036e366004613396565b610a04565b34801561037f57600080fd5b5061023361038e366004613191565b610a0e565b34801561039f57600080fd5b506103b36103ae366004613396565b610a19565b60405161020a91906133b1565b3480156103cc57600080fd5b506102756103db366004613396565b610a5b565b3480156103ec57600080fd5b50610275610a66565b34801561040157600080fd5b50610275610410366004613396565b610a70565b34801561042157600080fd5b5061025e610430366004613443565b610aad565b34801561044157600080fd5b5061044a610aca565b60405161020a97969594939291906134af565b34801561046957600080fd5b50610233610b8d565b34801561047e57600080fd5b5061027561048d366004613191565b610bae565b34801561049e57600080fd5b506104a7610bb9565b60405165ffffffffffff909116815260200161020a565b3480156104ca57600080fd5b506101fd610bc3565b3480156104df57600080fd5b506102756104ee366004613396565b610bdb565b3480156104ff57600080fd5b5061025e61050e366004613548565b610be6565b61025e610521366004613584565b610c1f565b34801561053257600080fd5b5061025e610541366004613600565b610c69565b34801561055257600080fd5b506101fd610561366004613191565b610c77565b34801561057257600080fd5b5061025e610581366004613660565b610ca8565b34801561059257600080fd5b5061025e6105a13660046136c4565b610cfb565b3480156105b257600080fd5b506105c66105c136600461374c565b610df7565b604051901515815260200161020a565b60606105e0610e03565b60020180546105ee9061377f565b80601f016020809104026020016040519081016040528092919081815260200182805461061a9061377f565b80156106675780601f1061063c57610100808354040283529160200191610667565b820191906000526020600020905b81548152906001019060200180831161064a57829003601f168201915b5050505050905090565b600061067c82610e27565b92915050565b6001600160a01b0382161580159061069e575061069e33610e74565b156106bc57604051638043dfaf60e01b815260040160405180910390fd5b6106c68282610ef0565b5050565b60006106d4610efc565b905090565b60006106e482610f1b565b9050836001600160a01b0316816001600160a01b0316146107175760405162a1148160e81b815260040160405180910390fd5b60008061072384610fb6565b9150915061074881876107333390565b6001600160a01b039081169116811491141790565b610773576107568633610df7565b61077357604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661079a57604051633a954ecd60e21b815260040160405180910390fd5b6107a78686866001610fde565b80156107b257600082555b6107ba610e03565b6001600160a01b03871660009081526005919091016020526040902080546000190190556107e6610e03565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b1761081d610e03565b60008681526004919091016020526040812091909155600160e11b84169003610893576001840161084c610e03565b6000828152600491909101602052604081205490036108915761086d610e03565b548114610891578361087d610e03565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46108e1868686600161101d565b505050505050565b60006106d4611028565b60006108ff8383611032565b9392505050565b600080600080516020613b3283398151915280549091506001600160a01b031633146109455760405163443e750b60e11b815260040160405180910390fd5b61094d6110d0565b915061095d8787848888886110e0565b610968336001611237565b5095945050505050565b61098d83838360405180602001604052806000815250610c1f565b505050565b60606106d4611387565b600061067c8261141f565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031633146109f8576040516365f4906560e01b81523360048201526024015b60405180910390fd5b610a018161145c565b50565b610a0133826114c6565b600061067c82610f1b565b610a526040518060c001604052806060815260200160608152602001600081526020016000815260200160608152602001606081525090565b61067c82611560565b600061067c8261186b565b60006106d46110d0565b6001600160a01b03811660009081527fda5d6d87446d81938877f0ee239dac391146dd7466ea30567f72becf06773c00602052604081205461067c565b610ab6856118d4565b610ac38585858585611911565b5050505050565b600060608082808083600080516020613b5283398151915254158015610b0f57507f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336d54155b610b535760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016109ef565b610b5b6119fc565b610b63611a12565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60006106d4600080516020613b32833981519152546001600160a01b031690565b600061067c82611a28565b60006106d4611ac1565b6060610bcd610e03565b60030180546105ee9061377f565b600061067c82611acc565b808015610bf75750610bf733610e74565b15610c1557604051638043dfaf60e01b815260040160405180910390fd5b6106c68282611afa565b610c2a8484846106d9565b6001600160a01b0383163b15610c6357610c4684848484611b77565b610c63576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6108e1868686868686611c62565b6060610c8282611d4b565b610c9f57604051630a14c4b560e41b815260040160405180910390fd5b61067c82611d87565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054600160201b900460ff16610cf157604051630ef4733760e31b815260040160405180910390fd5b6106c68282611fb3565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054600160201b900460ff161580610d3757303b1515610d46565b8154600163ffffffff90911610155b15610d6f578154604051630a8ef77f60e31b815263ffffffff90911660048201526024016109ef565b815463ffffffff191660011782558015610d9657815464ff000000001916600160201b1782555b610da08585611fb3565b610daa8584611fdd565b8015610ac357815464ff0000000019168255604051600181527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15050505050565b60006108ff8383612030565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090565b6000610e3282611d4b565b610e4f576040516333d1c03960e21b815260040160405180910390fd5b610e57610e03565b60009283526006016020525060409020546001600160a01b031690565b60007f0c89d3aad1b583c77a2e9f9fffa651b386c9c29e300bf2a8e2f3de1bb0100a006001600160a01b0383163b1580156108ff57506001600160a01b038316600090815260018201602052604090205415806108ff57506001600160a01b038316600090815260018201602052604090205442109392505050565b6106c68282600161206d565b600080610f07610e03565b60010154610f13610e03565b540303919050565b600080610f26610e03565b60008481526004820160205260408120549350909150600160e01b83169003610f9c5781600003610f965780548310610f7257604051636f96cda160e11b815260040160405180910390fd5b5b600019909201600081815260048401602052604090205490929091508115610f73575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b6000806000610fc3610e03565b60009485526006016020525050604090912080549092909150565b6001600160a01b03841615801590610ffa5750610ffa84610e74565b1561101857604051638043dfaf60e01b815260040160405180910390fd5b610c63565b611018848483612122565b60006106d46121c4565b600061103c611ac1565b65ffffffffffff1682106110895760405162461bcd60e51b81526020600482015260146024820152730566f7465733a20667574757265206c6f6f6b75760641b60448201526064016109ef565b6110c061109583612238565b6001600160a01b0385166000908152600080516020613bb2833981519152602052604090209061226d565b6001600160e01b03169392505050565b60006110da610e03565b54919050565b6110eb866002612321565b6110f6856000612321565b6110ff83612345565b60008481527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477016020908152604080832080546001600160a01b0319166001600160a01b03881690811790915581516080810183528a81528084018a90528083018990524260608201529084527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477029092529091208151600080516020613b3283398151915292919081906111b290826137fb565b50602082015160018201906111c790826137fb565b5060408281015160028301556060909201516003918201558151808301835285815260208082018690526001600160a01b038816600090815292850190529190208151819061121690826137fb565b506020820151600182019061122b90826137fb565b50505050505050505050565b6000611241610e03565b54905060008290036112665760405163b562e8dd60e01b815260040160405180910390fd5b6112736000848385610fde565b680100000000000000018202611287610e03565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b17176112c2610e03565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461134c57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101611314565b508160000361136d57604051622e076360e81b815260040160405180910390fd5b80611376610e03565b555061098d9050600084838561101d565b606043611392611ac1565b65ffffffffffff16146113e75760405162461bcd60e51b815260206004820152601860248201527f566f7465733a2062726f6b656e20636c6f636b206d6f6465000000000000000060448201526064016109ef565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6001600160a01b0390811660009081527f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f6560205260409020541690565b61146581612345565b600080516020613b3283398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f64c14256e532eac2ec90ddc4973ed2d3f5623faf7951d90eec38f9b7812f99a79181900360200190a15050565b60006114d18361141f565b6001600160a01b0384811660008181527f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f65602052604080822080546001600160a01b031916888616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461098d818361155b8661236c565b612377565b6115996040518060c001604052806060815260200160608152602001600081526020016000815260200160608152602001606081525090565b6001600160a01b03821660009081527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe5747702602090815260408083207f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe574770390925291829020825160c08101909352815491929091819084906116179061377f565b80601f01602080910402602001604051908101604052809291908181526020018280546116439061377f565b80156116905780601f1061166557610100808354040283529160200191611690565b820191906000526020600020905b81548152906001019060200180831161167357829003601f168201915b505050505081526020018360010180546116a99061377f565b80601f01602080910402602001604051908101604052809291908181526020018280546116d59061377f565b80156117225780601f106116f757610100808354040283529160200191611722565b820191906000526020600020905b81548152906001019060200180831161170557829003601f168201915b50505050508152602001836002015481526020018360030154815260200182600001805461174f9061377f565b80601f016020809104026020016040519081016040528092919081815260200182805461177b9061377f565b80156117c85780601f1061179d576101008083540402835291602001916117c8565b820191906000526020600020905b8154815290600101906020018083116117ab57829003601f168201915b505050505081526020018260010180546117e19061377f565b80601f016020809104026020016040519081016040528092919081815260200182805461180d9061377f565b801561185a5780601f1061182f5761010080835404028352916020019161185a565b820191906000526020600020905b81548152906001019060200180831161183d57829003601f168201915b505050505081525092505050919050565b60006001600160a01b038216611894576040516323d3ad8160e21b815260040160405180910390fd5b67ffffffffffffffff6118a5610e03565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b336118ea6118e183611560565b60400151610a0e565b6001600160a01b031614610a015760405163dbfcf17d60e01b815260040160405180910390fd5b61191c846002612321565b611927836001612321565b6001600160a01b03851660009081527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe574770260205260409020600080516020613b32833981519152908061197987826137fb565b506001810161198886826137fb565b506001600160a01b03871660009081526003830160205260409020806119ae86826137fb565b50600181016119bd85826137fb565b506040516001600160a01b038916907f66da702131703ee5e745ecf2f5b98311caa00729edd55541baad49289fc42ed890600090a25050505050505050565b6060600080516020613b528339815191526105e0565b6060600080516020613b52833981519152610bcd565b6000611a32611ac1565b65ffffffffffff168210611a7f5760405162461bcd60e51b81526020600482015260146024820152730566f7465733a20667574757265206c6f6f6b75760641b60448201526064016109ef565b611ab2611a8b83612238565b7f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f679061226d565b6001600160e01b031692915050565b60006106d4436124f8565b6001600160a01b0381166000908152600080516020613bb283398151915260205260408120611ab29061252b565b80611b03610e03565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290611bac9033908990889088906004016138bb565b6020604051808303816000875af1925050508015611be7575060408051601f3d908101601f19168201909252611be4918101906138f8565b60015b611c45573d808015611c15576040519150601f19603f3d011682016040523d82523d6000602084013e611c1a565b606091505b508051600003611c3d576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b83421115611cb25760405162461bcd60e51b815260206004820152601860248201527f566f7465733a207369676e61747572652065787069726564000000000000000060448201526064016109ef565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090611d2c90611d249060a00160405160208183030381529060405280519060200120612564565b858585612591565b9050611d3881876125bf565b611d4281886114c6565b50505050505050565b6000611d55610e03565b548210801561067c5750600160e01b611d6c610e03565b60008481526004919091016020526040902054161592915050565b60008181527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477016020526040902054606090600080516020613b32833981519152906001600160a01b031680611ded57505060408051602081019091526000815292915050565b6001600160a01b0381166000908152600283016020526040808220815160808101909252805482908290611e209061377f565b80601f0160208091040260200160405190810160405280929190818152602001828054611e4c9061377f565b8015611e995780601f10611e6e57610100808354040283529160200191611e99565b820191906000526020600020905b815481529060010190602001808311611e7c57829003601f168201915b50505050508152602001600182018054611eb29061377f565b80601f0160208091040260200160405190810160405280929190818152602001828054611ede9061377f565b8015611f2b5780601f10611f0057610100808354040283529160200191611f2b565b820191906000526020600020905b815481529060010190602001808311611f0e57829003601f168201915b50505050508152602001600282015481526020016003820154815250509050611f8a81600001518260200151611f648460600151612631565b604051602001611f7693929190613922565b6040516020818303038152906040526126c4565b604051602001611f9a9190613a04565b6040516020818303038152906040529350505050919050565b611fc36380ac58cd60e01b612829565b611fd3635b5e139f60e01b612829565b6106c68282612907565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054600160201b900460ff1661202657604051630ef4733760e31b815260040160405180910390fd5b6106c68282612939565b600061203a610e03565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b600061207883610a0e565b905081156120b757336001600160a01b038216146120b75761209a8133612030565b6120b7576040516367d9dca160e11b815260040160405180910390fd5b836120c0610e03565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b6001600160a01b038316612168576121657f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f676129cb612160846129d7565b612a0b565b50505b6001600160a01b0382166121a9576121a67f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f67612a54612160846129d7565b50505b61098d6121b58461141f565b6121be8461141f565b83612377565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6121ef612a60565b6121f7612ac6565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600063ffffffff821115612269576040516306dfcc6560e41b815260206004820152602481018390526044016109ef565b5090565b8154600090818160058111156122ca57600061228884612b16565b6122929085613a5f565b60008881526020902090915081015463ffffffff90811690871610156122ba578091506122c8565b6122c5816001613a72565b92505b505b60006122d887878585612bfe565b90508015612313576122fd876122ef600184613a5f565b600091825260209091200190565b54600160201b90046001600160e01b0316612316565b60005b979650505050505050565b8151829082111561098d576040516374eb20a760e01b815260040160405180910390fd5b6001600160a01b038116610a01576040516302e47d1560e41b815260040160405180910390fd5b600061067c82610a5b565b816001600160a01b0316836001600160a01b0316141580156123995750600081115b1561098d576001600160a01b03831615612449576001600160a01b0383166000908152600080516020613bb28339815191526020526040812081906123e490612a54612160866129d7565b6001600160e01b031691506001600160e01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161243e929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561098d576001600160a01b0382166000908152600080516020613bb283398151915260205260408120819061248f906129cb612160866129d7565b6001600160e01b031691506001600160e01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516124e9929190918252602082015260400190565b60405180910390a25050505050565b600065ffffffffffff821115612269576040516306dfcc6560e41b815260306004820152602481018390526044016109ef565b8054600090801561255b57612545836122ef600184613a5f565b54600160201b90046001600160e01b03166108ff565b60009392505050565b600061067c612571611028565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000806125a388888888612c5c565b9250925092506125b38282612d2b565b50909695505050505050565b6001600160a01b03821660009081527fda5d6d87446d81938877f0ee239dac391146dd7466ea30567f72becf06773c006020526040902080546001810190915581811461098d576040516301d4b62360e61b81526001600160a01b0384166004820152602481018290526044016109ef565b6060600061263e83612de4565b600101905060008167ffffffffffffffff81111561265e5761265e61322c565b6040519080825280601f01601f191660200182016040528015612688576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461269257509392505050565b606081516000036126e357505060408051602081019091526000815290565b6000604051806060016040528060408152602001613b7260409139905060006003845160026127129190613a72565b61271c9190613a9b565b612727906004613abd565b90506000612736826020613a72565b67ffffffffffffffff81111561274e5761274e61322c565b6040519080825280601f01601f191660200182016040528015612778576020820181803683370190505b509050818152600183018586518101602084015b818310156127e4576003830192508251603f8160121c168501518253600182019150603f81600c1c168501518253600182019150603f8160061c168501518253600182019150603f811685015182535060010161278c565b6003895106600181146127fe576002811461280f5761281b565b613d3d60f01b60011983015261281b565b603d60f81b6000198301525b509398975050505050505050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff1615156001146128b6576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff191660011790556128cf565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b6000612911610e03565b90506002810161292184826137fb565b506003810161293083826137fb565b50600090555050565b7f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336e61296483826137fb565b507f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336f61299082826137fb565b50506000600080516020613b528339815191528190557f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336d5550565b60006108ff8284613ad4565b60006001600160e01b03821115612269576040516306dfcc6560e41b815260e06004820152602481018390526044016109ef565b600080612a47612a29612a1c611ac1565b65ffffffffffff16612238565b612a3f612a358861252b565b868863ffffffff16565b879190612ebc565b915091505b935093915050565b60006108ff8284613afb565b600080612a6b6119fc565b805190915015612a82578051602090910120919050565b600080516020613b52833981519152548015612a9e5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080612ad1611a12565b805190915015612ae8578051602090910120919050565b7f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336d548015612a9e5792915050565b600081600003612b2857506000919050565b60006001612b3584612eca565b901c6001901b90506001818481612b4e57612b4e613a85565b048201901c90506001818481612b6657612b66613a85565b048201901c90506001818481612b7e57612b7e613a85565b048201901c90506001818481612b9657612b96613a85565b048201901c90506001818481612bae57612bae613a85565b048201901c90506001818481612bc657612bc6613a85565b048201901c90506001818481612bde57612bde613a85565b048201901c90506108ff81828581612bf857612bf8613a85565b04612f5e565b60005b81831015612c54576000612c158484612f74565b60008781526020902090915063ffffffff86169082015463ffffffff161115612c4057809250612c4e565b612c4b816001613a72565b93505b50612c01565b509392505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612c975750600091506003905082612d21565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612ceb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612d1757506000925060019150829050612d21565b9250600091508190505b9450945094915050565b6000826003811115612d3f57612d3f613b1b565b03612d48575050565b6001826003811115612d5c57612d5c613b1b565b03612d7a5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612d8e57612d8e613b1b565b03612daf5760405163fce698f760e01b8152600481018290526024016109ef565b6003826003811115612dc357612dc3613b1b565b036106c6576040516335e2f38360e21b8152600481018290526024016109ef565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612e235772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612e4f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612e6d57662386f26fc10000830492506010015b6305f5e1008310612e85576305f5e100830492506008015b6127108310612e9957612710830492506004015b60648310612eab576064830492506002015b600a831061067c5760010192915050565b600080612a47858585612f8f565b600080608083901c15612edf57608092831c92015b604083901c15612ef157604092831c92015b602083901c15612f0357602092831c92015b601083901c15612f1557601092831c92015b600883901c15612f2757600892831c92015b600483901c15612f3957600492831c92015b600283901c15612f4b57600292831c92015b600183901c1561067c5760010192915050565b6000818310612f6d57816108ff565b5090919050565b6000612f836002848418613a9b565b6108ff90848416613a72565b8254600090819080156130d5576000612fad876122ef600185613a5f565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b03166020840152919250908716101561302e5760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b657973000000000060448201526064016109ef565b805163ffffffff808816911603613076578461304f886122ef600186613a5f565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790556130c5565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b602001519250839150612a4c9050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081612a4c565b60005b83811015613149578181015183820152602001613131565b50506000910152565b6000815180845261316a81602086016020860161312e565b601f01601f19169290920160200192915050565b6020815260006108ff6020830184613152565b6000602082840312156131a357600080fd5b5035919050565b80356001600160a01b03811681146131c157600080fd5b919050565b600080604083850312156131d957600080fd5b6131e2836131aa565b946020939093013593505050565b60008060006060848603121561320557600080fd5b61320e846131aa565b925061321c602085016131aa565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561325d5761325d61322c565b604051601f8501601f19908116603f011681019082821181831017156132855761328561322c565b8160405280935085815286868601111561329e57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126132c957600080fd5b6108ff83833560208501613242565b600080600080600060a086880312156132f057600080fd5b853567ffffffffffffffff8082111561330857600080fd5b61331489838a016132b8565b9650602088013591508082111561332a57600080fd5b61333689838a016132b8565b9550613344604089016131aa565b9450606088013591508082111561335a57600080fd5b61336689838a016132b8565b9350608088013591508082111561337c57600080fd5b50613389888289016132b8565b9150509295509295909350565b6000602082840312156133a857600080fd5b6108ff826131aa565b602081526000825160c060208401526133cd60e0840182613152565b90506020840151601f19808584030160408601526133eb8383613152565b9250604086015160608601526060860151608086015260808601519150808584030160a086015261341c8383613152565b925060a08601519150808584030160c08601525061343a8282613152565b95945050505050565b600080600080600060a0868803121561345b57600080fd5b613464866131aa565b9450602086013567ffffffffffffffff8082111561348157600080fd5b61348d89838a016132b8565b955060408801359150808211156134a357600080fd5b61334489838a016132b8565b60ff60f81b881681526000602060e060208401526134d060e084018a613152565b83810360408501526134e2818a613152565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156135365783518352928401929184019160010161351a565b50909c9b505050505050505050505050565b6000806040838503121561355b57600080fd5b613564836131aa565b91506020830135801515811461357957600080fd5b809150509250929050565b6000806000806080858703121561359a57600080fd5b6135a3856131aa565b93506135b1602086016131aa565b925060408501359150606085013567ffffffffffffffff8111156135d457600080fd5b8501601f810187136135e557600080fd5b6135f487823560208401613242565b91505092959194509250565b60008060008060008060c0878903121561361957600080fd5b613622876131aa565b95506020870135945060408701359350606087013560ff8116811461364657600080fd5b9598949750929560808101359460a0909101359350915050565b6000806040838503121561367357600080fd5b823567ffffffffffffffff8082111561368b57600080fd5b613697868387016132b8565b935060208501359150808211156136ad57600080fd5b506136ba858286016132b8565b9150509250929050565b6000806000606084860312156136d957600080fd5b833567ffffffffffffffff808211156136f157600080fd5b6136fd878388016132b8565b9450602086013591508082111561371357600080fd5b61371f878388016132b8565b9350604086013591508082111561373557600080fd5b50613742868287016132b8565b9150509250925092565b6000806040838503121561375f57600080fd5b613768836131aa565b9150613776602084016131aa565b90509250929050565b600181811c9082168061379357607f821691505b602082108103610f9657634e487b7160e01b600052602260045260246000fd5b601f82111561098d576000816000526020600020601f850160051c810160208610156137dc5750805b601f850160051c820191505b818110156108e1578281556001016137e8565b815167ffffffffffffffff8111156138155761381561322c565b61382981613823845461377f565b846137b3565b602080601f83116001811461385e57600084156138465750858301515b600019600386901b1c1916600185901b1785556108e1565b600085815260208120601f198616915b8281101561388d5788860151825594840194600190910190840161386e565b50858210156138ab5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906138ee90830184613152565b9695505050505050565b60006020828403121561390a57600080fd5b81516001600160e01b0319811681146108ff57600080fd5b683d913730b6b2911d1160b91b8152835160009061394781600985016020890161312e565b6a11161134b6b0b3b2911d1160a91b600991840191820152845161397281601484016020890161312e565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a2243601492909101918201527f726561746564222c22646973706c61795f74797065223a202264617465222c20603482015267113b30b63ab2911d60c11b605482015283516139e781605c84016020880161312e565b627d5d7d60e81b605c9290910191820152605f0195945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251613a3c81601d85016020870161312e565b91909101601d0192915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561067c5761067c613a49565b8082018082111561067c5761067c613a49565b634e487b7160e01b600052601260045260246000fd5b600082613ab857634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761067c5761067c613a49565b6001600160e01b03818116838216019080821115613af457613af4613a49565b5092915050565b6001600160e01b03828116828216039080821115613af457613af4613a49565b634e487b7160e01b600052602160045260246000fdfe7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477003a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336c4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f66","sourceMap":"586:4151:251:-:0;;;;;;;;;;;;-1:-1:-1;378:22:87;:20;:22::i;:::-;586:4151:251;;1653:314:102;296:66:103;1779:14:102;;;;;;;1775:62;;;1802:35;;-1:-1:-1;;;1802:35:102;;;;;;;;;;;1775:62;1848:9;;1860:16;1848:9;;;:28;1844:119;;;1886:28;;-1:-1:-1;;1886:28:102;1898:16;1886:28;;;;;1927:29;;158:42:484;;;1927:29:102;;146:2:484;131:18;1927:29:102;;;;;;;1844:119;1694:273;1653:314::o;14:192:484:-;586:4151:251;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101e35760003560e01c806375794a3c116101025780639ab24eb011610095578063c87b56dd11610064578063c87b56dd14610546578063d2f01f1914610566578063d7a901d314610586578063e985e9c5146105a657600080fd5b80639ab24eb0146104d3578063a22cb465146104f3578063b88d4fde14610513578063c3cda5201461052657600080fd5b806388cc58e4116100d157806388cc58e41461045d5780638e539e8c1461047257806391ddadf41461049257806395d89b41146104be57600080fd5b806375794a3c146103e05780637ecebe00146103f5578063848806141461041557806384b0196e1461043557600080fd5b806342842e0e1161017a5780635c19a95c116101495780635c19a95c146103535780636352211e146103735780636a9a38e61461039357806370a08231146103c057600080fd5b806342842e0e146102eb5780634bf5d7e9146102fe578063587cde1e146103135780635bb478081461033357600080fd5b806323b872dd116101b657806323b872dd146102835780633644e515146102965780633a46b1a8146102ab5780633bf5b8f4146102cb57600080fd5b806306fdde03146101e8578063081812fc14610213578063095ea7b31461024b57806318160ddd14610260575b600080fd5b3480156101f457600080fd5b506101fd6105d6565b60405161020a919061317e565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004613191565b610671565b6040516001600160a01b03909116815260200161020a565b61025e6102593660046131c6565b610682565b005b34801561026c57600080fd5b506102756106ca565b60405190815260200161020a565b61025e6102913660046131f0565b6106d9565b3480156102a257600080fd5b506102756108e9565b3480156102b757600080fd5b506102756102c63660046131c6565b6108f3565b3480156102d757600080fd5b506102756102e63660046132d8565b610906565b61025e6102f93660046131f0565b610972565b34801561030a57600080fd5b506101fd610992565b34801561031f57600080fd5b5061023361032e366004613396565b61099c565b34801561033f57600080fd5b5061025e61034e366004613396565b6109a7565b34801561035f57600080fd5b5061025e61036e366004613396565b610a04565b34801561037f57600080fd5b5061023361038e366004613191565b610a0e565b34801561039f57600080fd5b506103b36103ae366004613396565b610a19565b60405161020a91906133b1565b3480156103cc57600080fd5b506102756103db366004613396565b610a5b565b3480156103ec57600080fd5b50610275610a66565b34801561040157600080fd5b50610275610410366004613396565b610a70565b34801561042157600080fd5b5061025e610430366004613443565b610aad565b34801561044157600080fd5b5061044a610aca565b60405161020a97969594939291906134af565b34801561046957600080fd5b50610233610b8d565b34801561047e57600080fd5b5061027561048d366004613191565b610bae565b34801561049e57600080fd5b506104a7610bb9565b60405165ffffffffffff909116815260200161020a565b3480156104ca57600080fd5b506101fd610bc3565b3480156104df57600080fd5b506102756104ee366004613396565b610bdb565b3480156104ff57600080fd5b5061025e61050e366004613548565b610be6565b61025e610521366004613584565b610c1f565b34801561053257600080fd5b5061025e610541366004613600565b610c69565b34801561055257600080fd5b506101fd610561366004613191565b610c77565b34801561057257600080fd5b5061025e610581366004613660565b610ca8565b34801561059257600080fd5b5061025e6105a13660046136c4565b610cfb565b3480156105b257600080fd5b506105c66105c136600461374c565b610df7565b604051901515815260200161020a565b60606105e0610e03565b60020180546105ee9061377f565b80601f016020809104026020016040519081016040528092919081815260200182805461061a9061377f565b80156106675780601f1061063c57610100808354040283529160200191610667565b820191906000526020600020905b81548152906001019060200180831161064a57829003601f168201915b5050505050905090565b600061067c82610e27565b92915050565b6001600160a01b0382161580159061069e575061069e33610e74565b156106bc57604051638043dfaf60e01b815260040160405180910390fd5b6106c68282610ef0565b5050565b60006106d4610efc565b905090565b60006106e482610f1b565b9050836001600160a01b0316816001600160a01b0316146107175760405162a1148160e81b815260040160405180910390fd5b60008061072384610fb6565b9150915061074881876107333390565b6001600160a01b039081169116811491141790565b610773576107568633610df7565b61077357604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661079a57604051633a954ecd60e21b815260040160405180910390fd5b6107a78686866001610fde565b80156107b257600082555b6107ba610e03565b6001600160a01b03871660009081526005919091016020526040902080546000190190556107e6610e03565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b1761081d610e03565b60008681526004919091016020526040812091909155600160e11b84169003610893576001840161084c610e03565b6000828152600491909101602052604081205490036108915761086d610e03565b548114610891578361087d610e03565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46108e1868686600161101d565b505050505050565b60006106d4611028565b60006108ff8383611032565b9392505050565b600080600080516020613b3283398151915280549091506001600160a01b031633146109455760405163443e750b60e11b815260040160405180910390fd5b61094d6110d0565b915061095d8787848888886110e0565b610968336001611237565b5095945050505050565b61098d83838360405180602001604052806000815250610c1f565b505050565b60606106d4611387565b600061067c8261141f565b7f4675fa8241f86f37157864d3d49b85ad4b164352c516da28e1678a90470ae300546001600160a01b031633146109f8576040516365f4906560e01b81523360048201526024015b60405180910390fd5b610a018161145c565b50565b610a0133826114c6565b600061067c82610f1b565b610a526040518060c001604052806060815260200160608152602001600081526020016000815260200160608152602001606081525090565b61067c82611560565b600061067c8261186b565b60006106d46110d0565b6001600160a01b03811660009081527fda5d6d87446d81938877f0ee239dac391146dd7466ea30567f72becf06773c00602052604081205461067c565b610ab6856118d4565b610ac38585858585611911565b5050505050565b600060608082808083600080516020613b5283398151915254158015610b0f57507f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336d54155b610b535760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b60448201526064016109ef565b610b5b6119fc565b610b63611a12565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60006106d4600080516020613b32833981519152546001600160a01b031690565b600061067c82611a28565b60006106d4611ac1565b6060610bcd610e03565b60030180546105ee9061377f565b600061067c82611acc565b808015610bf75750610bf733610e74565b15610c1557604051638043dfaf60e01b815260040160405180910390fd5b6106c68282611afa565b610c2a8484846106d9565b6001600160a01b0383163b15610c6357610c4684848484611b77565b610c63576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6108e1868686868686611c62565b6060610c8282611d4b565b610c9f57604051630a14c4b560e41b815260040160405180910390fd5b61067c82611d87565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054600160201b900460ff16610cf157604051630ef4733760e31b815260040160405180910390fd5b6106c68282611fb3565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054600160201b900460ff161580610d3757303b1515610d46565b8154600163ffffffff90911610155b15610d6f578154604051630a8ef77f60e31b815263ffffffff90911660048201526024016109ef565b815463ffffffff191660011782558015610d9657815464ff000000001916600160201b1782555b610da08585611fb3565b610daa8584611fdd565b8015610ac357815464ff0000000019168255604051600181527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15050505050565b60006108ff8383612030565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090565b6000610e3282611d4b565b610e4f576040516333d1c03960e21b815260040160405180910390fd5b610e57610e03565b60009283526006016020525060409020546001600160a01b031690565b60007f0c89d3aad1b583c77a2e9f9fffa651b386c9c29e300bf2a8e2f3de1bb0100a006001600160a01b0383163b1580156108ff57506001600160a01b038316600090815260018201602052604090205415806108ff57506001600160a01b038316600090815260018201602052604090205442109392505050565b6106c68282600161206d565b600080610f07610e03565b60010154610f13610e03565b540303919050565b600080610f26610e03565b60008481526004820160205260408120549350909150600160e01b83169003610f9c5781600003610f965780548310610f7257604051636f96cda160e11b815260040160405180910390fd5b5b600019909201600081815260048401602052604090205490929091508115610f73575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b6000806000610fc3610e03565b60009485526006016020525050604090912080549092909150565b6001600160a01b03841615801590610ffa5750610ffa84610e74565b1561101857604051638043dfaf60e01b815260040160405180910390fd5b610c63565b611018848483612122565b60006106d46121c4565b600061103c611ac1565b65ffffffffffff1682106110895760405162461bcd60e51b81526020600482015260146024820152730566f7465733a20667574757265206c6f6f6b75760641b60448201526064016109ef565b6110c061109583612238565b6001600160a01b0385166000908152600080516020613bb2833981519152602052604090209061226d565b6001600160e01b03169392505050565b60006110da610e03565b54919050565b6110eb866002612321565b6110f6856000612321565b6110ff83612345565b60008481527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477016020908152604080832080546001600160a01b0319166001600160a01b03881690811790915581516080810183528a81528084018a90528083018990524260608201529084527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477029092529091208151600080516020613b3283398151915292919081906111b290826137fb565b50602082015160018201906111c790826137fb565b5060408281015160028301556060909201516003918201558151808301835285815260208082018690526001600160a01b038816600090815292850190529190208151819061121690826137fb565b506020820151600182019061122b90826137fb565b50505050505050505050565b6000611241610e03565b54905060008290036112665760405163b562e8dd60e01b815260040160405180910390fd5b6112736000848385610fde565b680100000000000000018202611287610e03565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b17176112c2610e03565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461134c57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101611314565b508160000361136d57604051622e076360e81b815260040160405180910390fd5b80611376610e03565b555061098d9050600084838561101d565b606043611392611ac1565b65ffffffffffff16146113e75760405162461bcd60e51b815260206004820152601860248201527f566f7465733a2062726f6b656e20636c6f636b206d6f6465000000000000000060448201526064016109ef565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b6001600160a01b0390811660009081527f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f6560205260409020541690565b61146581612345565b600080516020613b3283398151915280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f64c14256e532eac2ec90ddc4973ed2d3f5623faf7951d90eec38f9b7812f99a79181900360200190a15050565b60006114d18361141f565b6001600160a01b0384811660008181527f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f65602052604080822080546001600160a01b031916888616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a461098d818361155b8661236c565b612377565b6115996040518060c001604052806060815260200160608152602001600081526020016000815260200160608152602001606081525090565b6001600160a01b03821660009081527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe5747702602090815260408083207f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe574770390925291829020825160c08101909352815491929091819084906116179061377f565b80601f01602080910402602001604051908101604052809291908181526020018280546116439061377f565b80156116905780601f1061166557610100808354040283529160200191611690565b820191906000526020600020905b81548152906001019060200180831161167357829003601f168201915b505050505081526020018360010180546116a99061377f565b80601f01602080910402602001604051908101604052809291908181526020018280546116d59061377f565b80156117225780601f106116f757610100808354040283529160200191611722565b820191906000526020600020905b81548152906001019060200180831161170557829003601f168201915b50505050508152602001836002015481526020018360030154815260200182600001805461174f9061377f565b80601f016020809104026020016040519081016040528092919081815260200182805461177b9061377f565b80156117c85780601f1061179d576101008083540402835291602001916117c8565b820191906000526020600020905b8154815290600101906020018083116117ab57829003601f168201915b505050505081526020018260010180546117e19061377f565b80601f016020809104026020016040519081016040528092919081815260200182805461180d9061377f565b801561185a5780601f1061182f5761010080835404028352916020019161185a565b820191906000526020600020905b81548152906001019060200180831161183d57829003601f168201915b505050505081525092505050919050565b60006001600160a01b038216611894576040516323d3ad8160e21b815260040160405180910390fd5b67ffffffffffffffff6118a5610e03565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b336118ea6118e183611560565b60400151610a0e565b6001600160a01b031614610a015760405163dbfcf17d60e01b815260040160405180910390fd5b61191c846002612321565b611927836001612321565b6001600160a01b03851660009081527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe574770260205260409020600080516020613b32833981519152908061197987826137fb565b506001810161198886826137fb565b506001600160a01b03871660009081526003830160205260409020806119ae86826137fb565b50600181016119bd85826137fb565b506040516001600160a01b038916907f66da702131703ee5e745ecf2f5b98311caa00729edd55541baad49289fc42ed890600090a25050505050505050565b6060600080516020613b528339815191526105e0565b6060600080516020613b52833981519152610bcd565b6000611a32611ac1565b65ffffffffffff168210611a7f5760405162461bcd60e51b81526020600482015260146024820152730566f7465733a20667574757265206c6f6f6b75760641b60448201526064016109ef565b611ab2611a8b83612238565b7f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f679061226d565b6001600160e01b031692915050565b60006106d4436124f8565b6001600160a01b0381166000908152600080516020613bb283398151915260205260408120611ab29061252b565b80611b03610e03565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290611bac9033908990889088906004016138bb565b6020604051808303816000875af1925050508015611be7575060408051601f3d908101601f19168201909252611be4918101906138f8565b60015b611c45573d808015611c15576040519150601f19603f3d011682016040523d82523d6000602084013e611c1a565b606091505b508051600003611c3d576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b83421115611cb25760405162461bcd60e51b815260206004820152601860248201527f566f7465733a207369676e61747572652065787069726564000000000000000060448201526064016109ef565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090611d2c90611d249060a00160405160208183030381529060405280519060200120612564565b858585612591565b9050611d3881876125bf565b611d4281886114c6565b50505050505050565b6000611d55610e03565b548210801561067c5750600160e01b611d6c610e03565b60008481526004919091016020526040902054161592915050565b60008181527f7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477016020526040902054606090600080516020613b32833981519152906001600160a01b031680611ded57505060408051602081019091526000815292915050565b6001600160a01b0381166000908152600283016020526040808220815160808101909252805482908290611e209061377f565b80601f0160208091040260200160405190810160405280929190818152602001828054611e4c9061377f565b8015611e995780601f10611e6e57610100808354040283529160200191611e99565b820191906000526020600020905b815481529060010190602001808311611e7c57829003601f168201915b50505050508152602001600182018054611eb29061377f565b80601f0160208091040260200160405190810160405280929190818152602001828054611ede9061377f565b8015611f2b5780601f10611f0057610100808354040283529160200191611f2b565b820191906000526020600020905b815481529060010190602001808311611f0e57829003601f168201915b50505050508152602001600282015481526020016003820154815250509050611f8a81600001518260200151611f648460600151612631565b604051602001611f7693929190613922565b6040516020818303038152906040526126c4565b604051602001611f9a9190613a04565b6040516020818303038152906040529350505050919050565b611fc36380ac58cd60e01b612829565b611fd3635b5e139f60e01b612829565b6106c68282612907565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054600160201b900460ff1661202657604051630ef4733760e31b815260040160405180910390fd5b6106c68282612939565b600061203a610e03565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b600061207883610a0e565b905081156120b757336001600160a01b038216146120b75761209a8133612030565b6120b7576040516367d9dca160e11b815260040160405180910390fd5b836120c0610e03565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b6001600160a01b038316612168576121657f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f676129cb612160846129d7565b612a0b565b50505b6001600160a01b0382166121a9576121a67f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f67612a54612160846129d7565b50505b61098d6121b58461141f565b6121be8461141f565b83612377565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6121ef612a60565b6121f7612ac6565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600063ffffffff821115612269576040516306dfcc6560e41b815260206004820152602481018390526044016109ef565b5090565b8154600090818160058111156122ca57600061228884612b16565b6122929085613a5f565b60008881526020902090915081015463ffffffff90811690871610156122ba578091506122c8565b6122c5816001613a72565b92505b505b60006122d887878585612bfe565b90508015612313576122fd876122ef600184613a5f565b600091825260209091200190565b54600160201b90046001600160e01b0316612316565b60005b979650505050505050565b8151829082111561098d576040516374eb20a760e01b815260040160405180910390fd5b6001600160a01b038116610a01576040516302e47d1560e41b815260040160405180910390fd5b600061067c82610a5b565b816001600160a01b0316836001600160a01b0316141580156123995750600081115b1561098d576001600160a01b03831615612449576001600160a01b0383166000908152600080516020613bb28339815191526020526040812081906123e490612a54612160866129d7565b6001600160e01b031691506001600160e01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161243e929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161561098d576001600160a01b0382166000908152600080516020613bb283398151915260205260408120819061248f906129cb612160866129d7565b6001600160e01b031691506001600160e01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516124e9929190918252602082015260400190565b60405180910390a25050505050565b600065ffffffffffff821115612269576040516306dfcc6560e41b815260306004820152602481018390526044016109ef565b8054600090801561255b57612545836122ef600184613a5f565b54600160201b90046001600160e01b03166108ff565b60009392505050565b600061067c612571611028565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000806125a388888888612c5c565b9250925092506125b38282612d2b565b50909695505050505050565b6001600160a01b03821660009081527fda5d6d87446d81938877f0ee239dac391146dd7466ea30567f72becf06773c006020526040902080546001810190915581811461098d576040516301d4b62360e61b81526001600160a01b0384166004820152602481018290526044016109ef565b6060600061263e83612de4565b600101905060008167ffffffffffffffff81111561265e5761265e61322c565b6040519080825280601f01601f191660200182016040528015612688576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461269257509392505050565b606081516000036126e357505060408051602081019091526000815290565b6000604051806060016040528060408152602001613b7260409139905060006003845160026127129190613a72565b61271c9190613a9b565b612727906004613abd565b90506000612736826020613a72565b67ffffffffffffffff81111561274e5761274e61322c565b6040519080825280601f01601f191660200182016040528015612778576020820181803683370190505b509050818152600183018586518101602084015b818310156127e4576003830192508251603f8160121c168501518253600182019150603f81600c1c168501518253600182019150603f8160061c168501518253600182019150603f811685015182535060010161278c565b6003895106600181146127fe576002811461280f5761281b565b613d3d60f01b60011983015261281b565b603d60f81b6000198301525b509398975050505050505050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff1615156001146128b6576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff191660011790556128cf565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b6000612911610e03565b90506002810161292184826137fb565b506003810161293083826137fb565b50600090555050565b7f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336e61296483826137fb565b507f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336f61299082826137fb565b50506000600080516020613b528339815191528190557f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336d5550565b60006108ff8284613ad4565b60006001600160e01b03821115612269576040516306dfcc6560e41b815260e06004820152602481018390526044016109ef565b600080612a47612a29612a1c611ac1565b65ffffffffffff16612238565b612a3f612a358861252b565b868863ffffffff16565b879190612ebc565b915091505b935093915050565b60006108ff8284613afb565b600080612a6b6119fc565b805190915015612a82578051602090910120919050565b600080516020613b52833981519152548015612a9e5792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b600080612ad1611a12565b805190915015612ae8578051602090910120919050565b7f3a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336d548015612a9e5792915050565b600081600003612b2857506000919050565b60006001612b3584612eca565b901c6001901b90506001818481612b4e57612b4e613a85565b048201901c90506001818481612b6657612b66613a85565b048201901c90506001818481612b7e57612b7e613a85565b048201901c90506001818481612b9657612b96613a85565b048201901c90506001818481612bae57612bae613a85565b048201901c90506001818481612bc657612bc6613a85565b048201901c90506001818481612bde57612bde613a85565b048201901c90506108ff81828581612bf857612bf8613a85565b04612f5e565b60005b81831015612c54576000612c158484612f74565b60008781526020902090915063ffffffff86169082015463ffffffff161115612c4057809250612c4e565b612c4b816001613a72565b93505b50612c01565b509392505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612c975750600091506003905082612d21565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612ceb573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612d1757506000925060019150829050612d21565b9250600091508190505b9450945094915050565b6000826003811115612d3f57612d3f613b1b565b03612d48575050565b6001826003811115612d5c57612d5c613b1b565b03612d7a5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612d8e57612d8e613b1b565b03612daf5760405163fce698f760e01b8152600481018290526024016109ef565b6003826003811115612dc357612dc3613b1b565b036106c6576040516335e2f38360e21b8152600481018290526024016109ef565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612e235772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612e4f576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612e6d57662386f26fc10000830492506010015b6305f5e1008310612e85576305f5e100830492506008015b6127108310612e9957612710830492506004015b60648310612eab576064830492506002015b600a831061067c5760010192915050565b600080612a47858585612f8f565b600080608083901c15612edf57608092831c92015b604083901c15612ef157604092831c92015b602083901c15612f0357602092831c92015b601083901c15612f1557601092831c92015b600883901c15612f2757600892831c92015b600483901c15612f3957600492831c92015b600283901c15612f4b57600292831c92015b600183901c1561067c5760010192915050565b6000818310612f6d57816108ff565b5090919050565b6000612f836002848418613a9b565b6108ff90848416613a72565b8254600090819080156130d5576000612fad876122ef600185613a5f565b60408051808201909152905463ffffffff808216808452600160201b9092046001600160e01b03166020840152919250908716101561302e5760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b657973000000000060448201526064016109ef565b805163ffffffff808816911603613076578461304f886122ef600186613a5f565b80546001600160e01b0392909216600160201b0263ffffffff9092169190911790556130c5565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160201b029216919091179101555b602001519250839150612a4c9050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160201b029190931617920191909155905081612a4c565b60005b83811015613149578181015183820152602001613131565b50506000910152565b6000815180845261316a81602086016020860161312e565b601f01601f19169290920160200192915050565b6020815260006108ff6020830184613152565b6000602082840312156131a357600080fd5b5035919050565b80356001600160a01b03811681146131c157600080fd5b919050565b600080604083850312156131d957600080fd5b6131e2836131aa565b946020939093013593505050565b60008060006060848603121561320557600080fd5b61320e846131aa565b925061321c602085016131aa565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561325d5761325d61322c565b604051601f8501601f19908116603f011681019082821181831017156132855761328561322c565b8160405280935085815286868601111561329e57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126132c957600080fd5b6108ff83833560208501613242565b600080600080600060a086880312156132f057600080fd5b853567ffffffffffffffff8082111561330857600080fd5b61331489838a016132b8565b9650602088013591508082111561332a57600080fd5b61333689838a016132b8565b9550613344604089016131aa565b9450606088013591508082111561335a57600080fd5b61336689838a016132b8565b9350608088013591508082111561337c57600080fd5b50613389888289016132b8565b9150509295509295909350565b6000602082840312156133a857600080fd5b6108ff826131aa565b602081526000825160c060208401526133cd60e0840182613152565b90506020840151601f19808584030160408601526133eb8383613152565b9250604086015160608601526060860151608086015260808601519150808584030160a086015261341c8383613152565b925060a08601519150808584030160c08601525061343a8282613152565b95945050505050565b600080600080600060a0868803121561345b57600080fd5b613464866131aa565b9450602086013567ffffffffffffffff8082111561348157600080fd5b61348d89838a016132b8565b955060408801359150808211156134a357600080fd5b61334489838a016132b8565b60ff60f81b881681526000602060e060208401526134d060e084018a613152565b83810360408501526134e2818a613152565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156135365783518352928401929184019160010161351a565b50909c9b505050505050505050505050565b6000806040838503121561355b57600080fd5b613564836131aa565b91506020830135801515811461357957600080fd5b809150509250929050565b6000806000806080858703121561359a57600080fd5b6135a3856131aa565b93506135b1602086016131aa565b925060408501359150606085013567ffffffffffffffff8111156135d457600080fd5b8501601f810187136135e557600080fd5b6135f487823560208401613242565b91505092959194509250565b60008060008060008060c0878903121561361957600080fd5b613622876131aa565b95506020870135945060408701359350606087013560ff8116811461364657600080fd5b9598949750929560808101359460a0909101359350915050565b6000806040838503121561367357600080fd5b823567ffffffffffffffff8082111561368b57600080fd5b613697868387016132b8565b935060208501359150808211156136ad57600080fd5b506136ba858286016132b8565b9150509250929050565b6000806000606084860312156136d957600080fd5b833567ffffffffffffffff808211156136f157600080fd5b6136fd878388016132b8565b9450602086013591508082111561371357600080fd5b61371f878388016132b8565b9350604086013591508082111561373557600080fd5b50613742868287016132b8565b9150509250925092565b6000806040838503121561375f57600080fd5b613768836131aa565b9150613776602084016131aa565b90509250929050565b600181811c9082168061379357607f821691505b602082108103610f9657634e487b7160e01b600052602260045260246000fd5b601f82111561098d576000816000526020600020601f850160051c810160208610156137dc5750805b601f850160051c820191505b818110156108e1578281556001016137e8565b815167ffffffffffffffff8111156138155761381561322c565b61382981613823845461377f565b846137b3565b602080601f83116001811461385e57600084156138465750858301515b600019600386901b1c1916600185901b1785556108e1565b600085815260208120601f198616915b8281101561388d5788860151825594840194600190910190840161386e565b50858210156138ab5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906138ee90830184613152565b9695505050505050565b60006020828403121561390a57600080fd5b81516001600160e01b0319811681146108ff57600080fd5b683d913730b6b2911d1160b91b8152835160009061394781600985016020890161312e565b6a11161134b6b0b3b2911d1160a91b600991840191820152845161397281601484016020890161312e565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a2243601492909101918201527f726561746564222c22646973706c61795f74797065223a202264617465222c20603482015267113b30b63ab2911d60c11b605482015283516139e781605c84016020880161312e565b627d5d7d60e81b605c9290910191820152605f0195945050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251613a3c81601d85016020870161312e565b91909101601d0192915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561067c5761067c613a49565b8082018082111561067c5761067c613a49565b634e487b7160e01b600052601260045260246000fd5b600082613ab857634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761067c5761067c613a49565b6001600160e01b03818116838216019080821115613af457613af4613a49565b5092915050565b6001600160e01b03828116828216039080821115613af457613af4613a49565b634e487b7160e01b600052602160045260246000fdfe7fc24c9500f4388b797f8975c0991ad4ffd0338c2cbf5335b2bf5b7fe57477003a497e775dc7c283402f0d3c39c5f0ea53870eb15ab2dddfde5a1162a84c336c4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f423fcc3514229d79a30fb79b40a232f70b3fabdf664a75db0859c67848497f66","sourceMap":"586:4151:251:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:116:143;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3498:132;;;;;;;;;;-1:-1:-1;3498:132:143;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1119:32:484;;;1101:51;;1089:2;1074:18;3498:132:143;955:203:484;2870:266:251;;;;;;:::i;:::-;;:::i;:::-;;1503:93:143;;;;;;;;;;;;;:::i;:::-;;;1746:25:484;;;1734:2;1719:18;1503:93:143;1600:177:484;4893:2680:143;;;;;;:::i;:::-;;:::i;2586:105:251:-;;;;;;;;;;;;;:::i;650:159:96:-;;;;;;;;;;-1:-1:-1;650:159:96;;;;;:::i;:::-;;:::i;1670:346:251:-;;;;;;;;;;-1:-1:-1;1670:346:251;;;;;:::i;:::-;;:::i;7656:167:143:-;;;;;;:::i;:::-;;:::i;387:96:96:-;;;;;;;;;;;;;:::i;1008:111::-;;;;;;;;;;-1:-1:-1;1008:111:96;;;;;:::i;:::-;;:::i;1137:87:251:-;;;;;;;;;;-1:-1:-1;1137:87:251;;;;;:::i;:::-;;:::i;1148:95:96:-;;;;;;;;;;-1:-1:-1;1148:95:96;;;;;:::i;:::-;;:::i;2867:152:143:-;;;;;;;;;;-1:-1:-1;2867:152:143;;;;;:::i;:::-;;:::i;2050:108:251:-;;;;;;;;;;-1:-1:-1;2050:108:251;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1673:107:143:-;;;;;;;;;;-1:-1:-1;1673:107:143;;;;;:::i;:::-;;:::i;1549:87:251:-;;;;;;;;;;;;;:::i;2475:107::-;;;;;;;;;;-1:-1:-1;2475:107:251;;;;;:::i;:::-;;:::i;2192:279::-;;;;;;;;;;-1:-1:-1;2192:279:251;;;;;:::i;:::-;;:::i;4514:801:163:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;1258:85:251:-;;;;;;;;;;;;;:::i;838:141:96:-;;;;;;;;;;-1:-1:-1;838:141:96;;;;;:::i;:::-;;:::i;276:80::-;;;;;;;;;;;;;:::i;:::-;;;8018:14:484;8006:27;;;7988:46;;7976:2;7961:18;276:80:96;7844:196:484;2199:120:143;;;;;;;;;;;;;:::i;512:109:96:-;;;;;;;;;;-1:-1:-1;512:109:96;;;;;:::i;:::-;;:::i;3140:281:251:-;;;;;;;;;;-1:-1:-1;3140:281:251;;;;;:::i;:::-;;:::i;8372:348:143:-;;;;;;:::i;:::-;;:::i;1272:214:96:-;;;;;;;;;;-1:-1:-1;1272:214:96;;;;;:::i;:::-;;:::i;3425:196:251:-;;;;;;;;;;-1:-1:-1;3425:196:251;;;;;:::i;:::-;;:::i;869:157:143:-;;;;;;;;;;-1:-1:-1;869:157:143;;;;;:::i;:::-;;:::i;717:212:251:-;;;;;;;;;;-1:-1:-1;717:212:251;;;;;:::i;:::-;;:::i;4340:167:143:-;;;;;;;;;;-1:-1:-1;4340:167:143;;;;;:::i;:::-;;:::i;:::-;;;11418:14:484;;11411:22;11393:41;;11381:2;11366:18;4340:167:143;11253:187:484;2020:116:143;2074:13;2102:23;:21;:23::i;:::-;:29;;2095:36;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:116;:::o;3498:132::-;3582:7;3604:21;3617:7;3604:12;:21::i;:::-;3597:28;3498:132;-1:-1:-1;;3498:132:143:o;2870:266:251:-;-1:-1:-1;;;;;3010:16:251;;;;;;:48;;;3030:28;3047:10;3030:16;:28::i;:::-;3006:93;;;3075:17;;-1:-1:-1;;;3075:17:251;;;;;;;;;;;3006:93;3105:26;3119:2;3123:7;3105:13;:26::i;:::-;2870:266;;:::o;1503:93:143:-;1555:7;1577:14;:12;:14::i;:::-;1570:21;;1503:93;:::o;4893:2680::-;5012:27;5042;5061:7;5042:18;:27::i;:::-;5012:57;;5121:4;-1:-1:-1;;;;;5080:45:143;5096:19;-1:-1:-1;;;;;5080:45:143;;5076:92;;5140:28;;-1:-1:-1;;;5140:28:143;;;;;;;;;;;5076:92;5183:27;5218:23;5250:35;5277:7;5250:26;:35::i;:::-;5175:110;;;;5374:68;5399:15;5416:4;5422:19;29364:10:144;;29282:97;5422:19:143;-1:-1:-1;;;;;11870:32:144;;;11728:28;;11985:20;;12007:30;;11982:56;;11461:587;5374:68:143;5369:181;;5455:43;5472:4;29364:10:144;4340:167:143;:::i;5455:43::-;5450:100;;5515:35;;-1:-1:-1;;;5515:35:143;;;;;;;;;;;5450:100;-1:-1:-1;;;;;5561:16:143;;5557:52;;5586:23;;-1:-1:-1;;;5586:23:143;;;;;;;;;;;5557:52;5616:43;5638:4;5644:2;5648:7;5657:1;5616:21;:43::i;:::-;5734:15;5731:135;;;5856:1;5835:19;5828:30;5731:135;6206:23;:21;:23::i;:::-;-1:-1:-1;;;;;6206:48:143;;;;;;:42;;;;;:48;;;;;6204:50;;-1:-1:-1;;6204:50:143;;;6292:23;:21;:23::i;:::-;-1:-1:-1;;;;;6292:46:143;;;;;;:42;;;;;:46;;;;;;6290:48;;;;;;10229:11:144;10204:23;10200:41;10187:63;-1:-1:-1;;;10187:63:144;6566:23:143;:21;:23::i;:::-;:50;;;;:41;;;;;:50;;;;;:184;;;;-1:-1:-1;;;6855:47:143;;:52;;6851:625;;6951:1;6941:11;;7056:23;:21;:23::i;:::-;:54;;;;:41;;;;;:54;;;;;;:59;;7052:416;;7196:23;:21;:23::i;:::-;:37;7181:52;;7177:281;;7426:19;7341:23;:21;:23::i;:::-;:82;;;;:41;;;;;:82;;;;;:104;7177:281;6909:567;6851:625;7512:7;7508:2;-1:-1:-1;;;;;7493:27:143;7502:4;-1:-1:-1;;;;;7493:27:143;;;;;;;;;;;7526:42;7547:4;7553:2;7557:7;7566:1;7526:20;:42::i;:::-;5006:2567;;;4893:2680;;;:::o;2586:105:251:-;2637:14;2666:20;:18;:20::i;650:159:96:-;749:7;771:33;785:7;794:9;771:13;:33::i;:::-;764:40;650:159;-1:-1:-1;;;650:159:96:o;1670:346:251:-;1860:15;;-1:-1:-1;;;;;;;;;;;618:10:252;;;;-1:-1:-1;;;;;;618:10:252;604;:24;600:84;;645:32;;-1:-1:-1;;;645:32:252;;;;;;;;;;;600:84;1893:14:251::1;:12;:14::i;:::-;1883:24;;1913:72;1924:4;1930:3;1935:7;1944:5;1951:16;1969:15;1913:10;:72::i;:::-;1991:20;1997:10;2009:1;1991:5;:20::i;:::-;524:171:252::0;1670:346:251;;;;;;;:::o;7656:167:143:-;7779:39;7796:4;7802:2;7806:7;7779:39;;;;;;;;;;;;:16;:39::i;:::-;7656:167;;;:::o;387:96:96:-;438:13;466:12;:10;:12::i;1008:111::-;1073:7;1095:19;1106:7;1095:10;:19::i;1137:87:251:-;284:66:116;438:29:114;-1:-1:-1;;;;;438:29:114;279:10;:22;275:79;;318:29;;-1:-1:-1;;;318:29:114;;336:10;318:29;;;1101:51:484;1074:18;;318:29:114;;;;;;;;275:79;1199:20:251::1;1211:7;1199:11;:20::i;:::-;1137:87:::0;:::o;1148:95:96:-;1206:32;1216:10;1228:9;1206;:32::i;2867:152:143:-;2947:7;2985:27;3004:7;2985:18;:27::i;2050:108:251:-;2110:12;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2110:12:251;2137:16;2147:5;2137:9;:16::i;1673:107:143:-;1736:7;1758:17;1769:5;1758:10;:17::i;1549:87:251:-;1595:7;1617:14;:12;:14::i;2475:107::-;-1:-1:-1;;;;;526:37:162;;2529:14:251;526:37:162;;;1554:66;526:37;;;;;;2558:19:251;436:132:162;2192:279:251;2373:22;2389:5;2373:15;:22::i;:::-;2401:65;2414:5;2421:4;2427:3;2432:16;2450:15;2401:12;:65::i;:::-;2192:279;;;;;:::o;4514:801:163:-;4603:13;4624:18;;4603:13;;;4624:18;-1:-1:-1;;;;;;;;;;;5007:34:163;:39;:93;;;;-1:-1:-1;5058:37:163;;:42;5007:93;4992:145;;;;-1:-1:-1;;;4992:145:163;;12032:2:484;4992:145:163;;;12014:21:484;12071:2;12051:18;;;12044:30;-1:-1:-1;;;12090:18:484;;;12083:51;12151:18;;4992:145:163;11830:345:484;4992:145:163;5183:13;:11;:13::i;:::-;5204:16;:14;:16::i;:::-;5288;;;5278:1;5288:16;;;;;;;;;-1:-1:-1;;;5144:166:163;;;-1:-1:-1;5144:166:163;;-1:-1:-1;5228:13:163;;-1:-1:-1;5257:4:163;;-1:-1:-1;5278:1:163;-1:-1:-1;5288:16:163;-1:-1:-1;5144:166:163;-1:-1:-1;4514:801:163:o;1258:85:251:-;1303:7;1325:13;-1:-1:-1;;;;;;;;;;;1069:10:252;-1:-1:-1;;;;;1069:10:252;;931:153;838:141:96;922:7;944:30;964:9;944:19;:30::i;276:80::-;322:6;343:8;:6;:8::i;2199:120:143:-;2255:13;2283:23;:21;:23::i;:::-;:31;;2276:38;;;;;:::i;512:109:96:-;576:7;598:18;608:7;598:9;:18::i;3140:281:251:-;3286:8;:40;;;;;3298:28;3315:10;3298:16;:28::i;:::-;3282:85;;;3343:17;;-1:-1:-1;;;3343:17:251;;;;;;;;;;;3282:85;3373:43;3397:8;3407;3373:23;:43::i;8372:348:143:-;8519:31;8532:4;8538:2;8542:7;8519:12;:31::i;:::-;-1:-1:-1;;;;;8560:14:143;;;:19;8556:160;;8592:56;8623:4;8629:2;8633:7;8642:5;8592:30;:56::i;:::-;8587:129;;8667:40;;-1:-1:-1;;;8667:40:143;;;;;;;;;;;8587:129;8372:348;;;;:::o;1272:214:96:-;1432:49;1447:9;1458:5;1465:6;1473:1;1476;1479;1432:14;:49::i;3425:196:251:-;3506:13;3532:16;3540:7;3532;:16::i;:::-;3527:59;;3557:29;;-1:-1:-1;;;3557:29:251;;;;;;;;;;;3527:59;3600:16;3608:7;3600;:16::i;869:157:143:-;296:66:103;1263:42:102;-1:-1:-1;;;1263:42:102;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:102;;;;;;;;;;;1258:100;981:40:143::1;1006:5;1013:7;981:24;:40::i;717:212:251:-:0;296:66:103;540:14:102;;-1:-1:-1;;;540:14:102;;;;539:15;;564:53;;2049:4;2041:25;:30;;564:53;;;581:9;;594:1;581:9;;;;:14;;564:53;560:124;;;667:9;;634:43;;-1:-1:-1;;;634:43:102;;667:9;;;;634:43;;;12324:42:484;12297:18;;634:43:102;12180:192:484;560:124:102;689:13;;-1:-1:-1;;689:13:102;701:1;689:13;;;708:56;;;;736:21;;-1:-1:-1;;736:21:102;-1:-1:-1;;;736:21:102;;;708:56;852:38:251::1;877:4;883:6;852:24;:38::i;:::-;896:28;910:4;916:7;896:13;:28::i;:::-;780:14:102::0;776:84;;;804:22;;-1:-1:-1;;804:22:102;;;839:14;;-1:-1:-1;12324:42:484;;839:14:102;;12312:2:484;12297:18;839:14:102;;;;;;;435:429;;717:212:251;;;:::o;4340:167:143:-;4449:4;4468:34;4486:5;4493:8;4468:17;:34::i;1689:139:146:-;293:66;;1689:139::o;22504:230:144:-;22582:7;22602:16;22610:7;22602;:16::i;:::-;22597:64;;22627:34;;-1:-1:-1;;;22627:34:144;;;;;;;;;;;22597:64;22675:23;:21;:23::i;:::-;:48;;;;:39;;:48;;-1:-1:-1;22675:48:144;;;:54;-1:-1:-1;;;;;22675:54:144;;22504:230::o;1755:435:233:-;1822:4;280:66:235;-1:-1:-1;;;;;2053:20:233;;;:25;:132;;;;-1:-1:-1;;;;;;2089:30:233;;;;;;:20;;;:30;;;;;;:35;;:95;;-1:-1:-1;;;;;;2154:30:233;;;;;;:20;;;:30;;;;;;2136:15;:48;2040:145;1755:435;-1:-1:-1;;;1755:435:233:o;3236:128:143:-;3332:27;3341:2;3345:7;3354:4;3332:8;:27::i;2978:351:144:-;3025:7;;3256:23;:21;:23::i;:::-;:36;;;3208:23;:21;:23::i;:::-;:37;:84;:110;;2978:351;-1:-1:-1;2978:351:144:o;7829:1501::-;7905:14;7967:32;8002:23;:21;:23::i;:::-;8043:29;;;;:20;;;:29;;;;;;;-1:-1:-1;7967:58:144;;-1:-1:-1;;;;8108:24:144;;:29;;8104:1172;;8229:6;8239:1;8229:11;8225:791;;8269:16;;8258:27;;8254:83;;8306:31;;-1:-1:-1;;;8306:31:144;;;;;;;;;;;8254:83;8824:182;-1:-1:-1;;8903:9:144;;;8882:31;;;;:20;;;:31;;;;;;8903:9;;8882:31;;-1:-1:-1;8941:25:144;;8824:182;8941:25;;8980:13;7829:1501;;;:::o;8104:1172::-;7959:1323;9294:31;;-1:-1:-1;;;9294:31:144;;;;;;;;;;;12148:478;12244:27;12273:23;12306:38;12347:30;:28;:30::i;:::-;:62;;;;:53;;:62;;-1:-1:-1;;12347:62:144;;;;12590:26;;12347:62;;12590:26;;-1:-1:-1;12148:478:144:o;3625:352:251:-;-1:-1:-1;;;;;3770:18:251;;;;;;:44;;;3792:22;3809:4;3792:16;:22::i;:::-;3766:139;;;3881:17;;-1:-1:-1;;;3881:17:251;;;;;;;;;;;3766:139;3911:61;8372:348:143;3981:262:251;4130:41;4151:4;4157:2;4161:9;4130:20;:41::i;3292:103:163:-;3345:7;3367:23;:21;:23::i;3995:301:97:-;4089:7;4124:8;:6;:8::i;:::-;4112:20;;:9;:20;4104:53;;;;-1:-1:-1;;;4104:53:97;;12785:2:484;4104:53:97;;;12767:21:484;12824:2;12804:18;;;12797:30;-1:-1:-1;;;12843:18:484;;;12836:50;12903:18;;4104:53:97;12583:344:484;4104:53:97;4176:115;4255:28;4273:9;4255:17;:28::i;:::-;-1:-1:-1;;;;;4176:51:97;;;;;;-1:-1:-1;;;;;;;;;;;4176:51:97;;;;;;:69;:115::i;:::-;-1:-1:-1;;;;;4163:128:97;;3995:301;-1:-1:-1;;;3995:301:97:o;4035:119:144:-;4090:7;4112:23;:21;:23::i;:::-;:37;;4035:119;-1:-1:-1;4035:119:144:o;1260:723:252:-;1457:30;1479:4;1485:1;1457:21;:30::i;:::-;1493:29;1515:3;1520:1;1493:21;:29::i;:::-;1528;1551:5;1528:22;:29::i;:::-;1564:35;1635:26;;;:17;:26;;;;;;;;:34;;-1:-1:-1;;;;;;1635:34:252;-1:-1:-1;;;;;1635:34:252;;;;;;;;1702:123;;;;;;;;;;;;;;;;;;;;;;1803:15;1702:123;;;;1675:24;;;:17;:24;;;;;;:150;;-1:-1:-1;;;;;;;;;;;284:66:253;1702:123:252;1675:24;;;:150;;:24;:150;:::i;:::-;-1:-1:-1;1675:150:252;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1675:150:252;;;;;;;;;;;;;;;;;;;1857:121;;;;;;;;;;-1:-1:-1;1857:121:252;;;;;;-1:-1:-1;;;;;1831:23:252;;-1:-1:-1;1831:23:252;;;:16;;;:23;;;;;:147;;:23;;:147;;:23;:147;:::i;:::-;-1:-1:-1;1831:147:252;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;1260:723:252:o;15799:2642:144:-;15867:20;15890:23;:21;:23::i;:::-;:37;;-1:-1:-1;15890:37:144;15937:13;;;15933:44;;15959:18;;-1:-1:-1;;;15959:18:144;;;;;;;;;;;15933:44;15984:61;16014:1;16018:2;16022:12;16036:8;15984:21;:61::i;:::-;16474:32;16454:53;;16396:23;:21;:23::i;:::-;-1:-1:-1;;;;;16396:46:144;;;;;;:42;;;;;:46;;;;;;:111;;;;;;;;;10229:11;10204:23;10200:41;-1:-1:-1;10624:15:144;;10598:24;10594:46;10197:52;10187:63;16707:23;:21;:23::i;:::-;:71;;;;:41;;;;;:71;;;;;:188;;;;-1:-1:-1;;;;;17416:25:144;;;16942:23;;;;16758:12;;17416:25;;17602;16707:71;;17488:260;18026:1;18012:12;18008:20;17977:275;18058:3;18049:7;18046:16;17977:275;;18234:7;18224:8;18221:1;18194:25;18191:1;18188;18183:59;18100:1;18087:15;17977:275;;;17981:57;18271:8;18283:1;18271:13;18267:45;;18293:19;;-1:-1:-1;;;18293:19:144;;;;;;;;;;;18267:45;18361:3;18321:23;:21;:23::i;:::-;:43;-1:-1:-1;18376:60:144;;-1:-1:-1;18321:37:144;18409:2;18413:12;18427:8;18376:20;:60::i;3007:221:97:-;3052:13;3138:12;3126:8;:6;:8::i;:::-;:24;;;3118:61;;;;-1:-1:-1;;;3118:61:97;;15329:2:484;3118:61:97;;;15311:21:484;15368:2;15348:18;;;15341:30;15407:26;15387:18;;;15380:54;15451:18;;3118:61:97;15127:348:484;3118:61:97;-1:-1:-1;3185:38:97;;;;;;;;;;;;;;;;;;3007:221::o;5254:129::-;-1:-1:-1;;;;;5336:42:97;;;5314:7;5336:42;;;219:52:98;5336:42:97;;;;;;;;5254:129::o;699:228:252:-;752:31;775:7;752:22;:31::i;:::-;-1:-1:-1;;;;;;;;;;;860:20:252;;-1:-1:-1;;;;;860:20:252;;-1:-1:-1;;;;;;860:20:252;;;;;;;891:31;;;1101:51:484;;;891:31:252;;;;;;1089:2:484;891:31:252;;;746:181;699:228;:::o;6612:401:97:-;6732:19;6754;6765:7;6754:10;:19::i;:::-;-1:-1:-1;;;;;6779:42:97;;;:33;:42;;;219:52:98;6779:42:97;;;;;;:54;;-1:-1:-1;;;;;;6779:54:97;;;;;;;;;;6845:48;;6732:41;;-1:-1:-1;6779:54:97;6845:48;;;;;;6779:33;6845:48;6899:68;6918:11;6931:9;6942:24;6958:7;6942:15;:24::i;:::-;6899:18;:68::i;2658:580:252:-;2715:12;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2715:12:252;-1:-1:-1;;;;;2779:62:252;;2735:41;2779:62;;;:55;:62;;;;;;;;2899:54;:61;;;;;;;2980:253;;;;;;;;;;2779:62;;2899:61;;2980:253;;2779:62;;2980:253;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3031:9;:13;;2980:253;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3063:9;:17;;;2980:253;;;;3101:9;:19;;;2980:253;;;;3148:8;:25;;2980:253;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3200:8;:24;;2980:253;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2967:266;;;;2658:580;;;:::o;3333:242:144:-;3391:7;-1:-1:-1;;;;;3410:19:144;;3406:60;;3438:28;;-1:-1:-1;;;3438:28:144;;;;;;;;;;;3406:60;564:13;3485:23;:21;:23::i;:::-;:42;;:49;3528:5;-1:-1:-1;;;;;3485:49:144;-1:-1:-1;;;;;3485:49:144;;;;;;;;;;;;;:85;3472:98;;3333:242;;;:::o;4560:175:251:-;4662:10;4624:34;4633:16;4643:5;4633:9;:16::i;:::-;:24;;;4624:8;:34::i;:::-;-1:-1:-1;;;;;4624:48:251;;4620:111;;4689:35;;-1:-1:-1;;;4689:35:251;;;;;;;;;;;1987:667:252;2165:30;2187:4;2193:1;2165:21;:30::i;:::-;2201:29;2223:3;2228:1;2201:21;:29::i;:::-;-1:-1:-1;;;;;2352:24:252;;2237:35;2352:24;;;:17;:24;;;;;-1:-1:-1;;;;;;;;;;;284:66:253;2352:24:252;2382:21;2399:4;2352:24;2382:21;:::i;:::-;-1:-1:-1;2409:13:252;;;:19;2425:3;2409:13;:19;:::i;:::-;-1:-1:-1;;;;;;2486:23:252;;2435:48;2486:23;;;:16;;;:23;;;;;;2515:44;2543:16;2486:23;2515:44;:::i;:::-;-1:-1:-1;2565:24:252;;;:42;2592:15;2565:24;:42;:::i;:::-;-1:-1:-1;2619:30:252;;-1:-1:-1;;;;;2619:30:252;;;;;;;;2159:495;;;1987:667;;;;;:::o;5525:115:163:-;5579:13;-1:-1:-1;;;;;;;;;;;5607:22:163;7824:139;5853:121;5910:13;-1:-1:-1;;;;;;;;;;;5938:22:163;7824:139;4906:274:97;4985:7;5020:8;:6;:8::i;:::-;5008:20;;:9;:20;5000:53;;;;-1:-1:-1;;;5000:53:97;;12785:2:484;5000:53:97;;;12767:21:484;12824:2;12804:18;;;12797:30;-1:-1:-1;;;12843:18:484;;;12836:50;12903:18;;5000:53:97;12583:344:484;5000:53:97;5072:103;5139:28;5157:9;5139:17;:28::i;:::-;5072:39;;:57;:103::i;:::-;-1:-1:-1;;;;;5059:116:97;;4906:274;-1:-1:-1;;4906:274:97:o;2764:98::-;2805:6;2826:31;2844:12;2826:17;:31::i;3482:146::-;-1:-1:-1;;;;;3563:51:97;;3541:7;3563:51;;;-1:-1:-1;;;;;;;;;;;3563:51:97;;;;;:60;;:58;:60::i;3933:269:143:-;4123:8;4035:23;:21;:23::i;:::-;29364:10:144;4035:63:143;;;;:42;;;;;:63;;;;;;;;-1:-1:-1;;;;;4035:85:143;;;;;;;;;;;;:96;;-1:-1:-1;;4035:96:143;;;;;;;;;;;4142:55;;11418:14:484;;11411:22;11393:41;;4035:85:143;;29364:10:144;;4142:55:143;;11366:18:484;4142:55:143;;;;;;;3933:269;;:::o;14707:674:144:-;14870:139;;-1:-1:-1;;;14870:139:144;;14848:4;;-1:-1:-1;;;;;14870:56:144;;;;;:139;;29364:10;;14965:4;;14979:7;;14996:5;;14870:139;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14870:139:144;;;;;;;;-1:-1:-1;;14870:139:144;;;;;;;;;;;;:::i;:::-;;;14860:517;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15192:6;:13;15209:1;15192:18;15188:183;;15229:40;;-1:-1:-1;;;15229:40:144;;;;;;;;;;;15188:183;15345:6;15339:13;15330:6;15326:2;15322:15;15315:38;14860:517;-1:-1:-1;;;;;;15061:83:144;-1:-1:-1;;;15061:83:144;;-1:-1:-1;14707:674:144;;;;;;:::o;5453:467:97:-;5628:6;5609:15;:25;;5601:62;;;;-1:-1:-1;;;5601:62:97;;16471:2:484;5601:62:97;;;16453:21:484;16510:2;16490:18;;;16483:30;16549:26;16529:18;;;16522:54;16593:18;;5601:62:97;16269:348:484;5601:62:97;5743:58;;;2310:71;5743:58;;;16853:25:484;-1:-1:-1;;;;;16914:32:484;;16894:18;;;16887:60;;;;16963:18;;;16956:34;;;17006:18;;;16999:34;;;5669:14:97;;5686:157;;5707:103;;16825:19:484;;5743:58:97;;;;;;;;;;;;5733:69;;;;;;5707:16;:103::i;:::-;5818:1;5827;5836;5686:13;:157::i;:::-;5669:174;;5850:31;5867:6;5875:5;5850:16;:31::i;:::-;5887:28;5897:6;5905:9;5887;:28::i;:::-;5595:325;5453:467;;;;;;:::o;11064:301:144:-;11129:4;11200:23;:21;:23::i;:::-;:37;11190:47;;11154:187;;;;;-1:-1:-1;;;11268:23:144;:21;:23::i;:::-;:50;;;;:41;;;;;:50;;;;;;:68;:73;11141:200;11064:301;-1:-1:-1;;11064:301:144:o;443:804:254:-;537:35;630:26;;;:17;:26;;;;;;516:13;;-1:-1:-1;;;;;;;;;;;284:66:253;-1:-1:-1;;;;;630:26:254;;663:41;;-1:-1:-1;;695:9:254;;;;;;;;;-1:-1:-1;695:9:254;;;443:804;-1:-1:-1;;443:804:254:o;663:41::-;-1:-1:-1;;;;;750:31:254;;711:36;750:31;;;:17;;;:31;;;;;;711:70;;;;;;;;;;;;750:31;;711:70;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;888:336;974:5;:10;;;1029:5;:9;;;1144:33;1161:5;:15;;;1144:16;:33::i;:::-;915:297;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;888:13;:336::i;:::-;817:417;;;;;;;;:::i;:::-;;;;;;;;;;;;;788:454;;;;;443:804;;;:::o;1030:282:143:-;1135:25;-1:-1:-1;;;1135:13:143;:25::i;:::-;1200;-1:-1:-1;;;1200:13:143;:25::i;:::-;1273:34;1292:5;1299:7;1273:18;:34::i;2725:153:163:-;296:66:103;1263:42:102;-1:-1:-1;;;1263:42:102;;;;1258:100;;1320:38;;-1:-1:-1;;;1320:38:102;;;;;;;;;;;1258:100;2835:38:163::1;2859:4;2865:7;2835:23;:38::i;22314:186:144:-:0;22417:4;22436:23;:21;:23::i;:::-;-1:-1:-1;;;;;22436:49:144;;;;;;;:42;;;;;:49;;;;;;;;:59;;;;;;;;;;-1:-1:-1;22436:59:144;;;;;22314:186::o;23284:439::-;23390:13;23406:17;23415:7;23406:8;:17::i;:::-;23390:33;;23434:13;23430:184;;;29364:10;-1:-1:-1;;;;;23459:28:144;;;23455:159;;23502:45;23520:5;29364:10;23502:17;:45::i;:::-;23497:117;;23568:35;;-1:-1:-1;;;23568:35:144;;;;;;;;;;;23497:117;23677:2;23620:23;:21;:23::i;:::-;:48;;;;:39;;;;;:48;;;;;;:59;;-1:-1:-1;;;;;;23620:59:144;-1:-1:-1;;;;;23620:59:144;;;;;;23690:28;23620:48;;23690:28;;;;;;;;;;23620:48;23690:28;23384:339;23284:439;;;:::o;7237:491:97:-;-1:-1:-1;;;;;7352:18:97;;7348:151;;7380:112;7395:39;7444:4;7458:26;7477:6;7458:18;:26::i;:::-;7380:5;:112::i;:::-;;;7348:151;-1:-1:-1;;;;;7508:16:97;;7504:154;;7534:117;7549:39;7598:9;7617:26;7636:6;7617:18;:26::i;7534:117::-;;;7504:154;7663:60;7682:16;7693:4;7682:10;:16::i;:::-;7700:14;7711:2;7700:10;:14::i;:::-;7716:6;7663:18;:60::i;3399:268:163:-;3454:7;2073:107;3545:17;:15;:17::i;:::-;3574:20;:18;:20::i;:::-;3501:153;;;;;;19319:25:484;;;;19360:18;;19353:34;;;;19403:18;;;19396:34;3606:13:163;19446:18:484;;;19439:34;3639:4:163;19489:19:484;;;19482:61;19291:19;;3501:153:163;;;;;;;;;;;;3482:180;;;;;;3469:193;;3399:268;:::o;15291:213:414:-;15347:6;15377:16;15369:24;;15365:103;;;15416:41;;-1:-1:-1;;;15416:41:414;;15447:2;15416:41;;;19735:36:484;19787:18;;;19780:34;;;19708:18;;15416:41:414;19554:266:484;15365:103:414;-1:-1:-1;15491:5:414;15291:213::o;8964:548:92:-;9090:24;;9061:7;;;9090:24;9177:1;9171:7;;9167:190;;;9188:11;9208:14;9218:3;9208:9;:14::i;:::-;9202:20;;:3;:20;:::i;:::-;13062:28;13115:20;;;13174:4;13161:18;;9188:34;;-1:-1:-1;13157:28:92;;9240:42;;;;;9234:48;;;;9230:121;;;9301:3;9294:10;;9230:121;;;9335:7;:3;9341:1;9335:7;:::i;:::-;9329:13;;9230:121;9180:177;9167:190;9363:11;9377:53;9396:4;9415:3;9420;9425:4;9377:18;:53::i;:::-;9363:67;-1:-1:-1;9444:8:92;;:63;;9459:41;9473:4;9492:7;9498:1;9492:3;:7;:::i;:::-;13062:28;13115:20;;;13174:4;13161:18;;;13157:28;;12962:233;9459:41;:48;-1:-1:-1;;;9459:48:92;;-1:-1:-1;;;;;9459:48:92;9444:63;;;9455:1;9444:63;9437:70;8964:548;-1:-1:-1;;;;;;;8964:548:92:o;418:183:288:-;534:15;;519:4;;534:21;-1:-1:-1;530:66:288;;;564:32;;-1:-1:-1;;;564:32:288;;;;;;;;;;;737:119;-1:-1:-1;;;;;797:18:288;;793:58;;824:27;;-1:-1:-1;;;824:27:288;;;;;;;;;;;4247:135:251;4337:7;4359:18;4369:7;4359:9;:18::i;7806:698:97:-;7918:2;-1:-1:-1;;;;;7910:10:97;:4;-1:-1:-1;;;;;7910:10:97;;;:24;;;;;7933:1;7924:6;:10;7910:24;7906:594;;;-1:-1:-1;;;;;7948:18:97;;;7944:277;;-1:-1:-1;;;;;8034:48:97;;7979:16;8034:48;;;-1:-1:-1;;;;;;;;;;;8034:48:97;;;;;7979:16;;8017:134;;8094:9;8115:26;8134:6;8115:18;:26::i;8017:134::-;-1:-1:-1;;;;;7978:173:97;;;-1:-1:-1;;;;;7978:173:97;;;8187:4;-1:-1:-1;;;;;8166:46:97;;8193:8;8203;8166:46;;;;;;20394:25:484;;;20450:2;20435:18;;20428:34;20382:2;20367:18;;20220:248;8166:46:97;;;;;;;;7968:253;;7944:277;-1:-1:-1;;;;;8232:16:97;;;8228:266;;-1:-1:-1;;;;;8316:46:97;;8261:16;8316:46;;;-1:-1:-1;;;;;;;;;;;8316:46:97;;;;;8261:16;;8299:127;;8374:4;8390:26;8409:6;8390:18;:26::i;8299:127::-;-1:-1:-1;;;;;8260:166:97;;;-1:-1:-1;;;;;8260:166:97;;;8462:2;-1:-1:-1;;;;;8441:44:97;;8466:8;8476;8441:44;;;;;;20394:25:484;;;20450:2;20435:18;;20428:34;20382:2;20367:18;;20220:248;8441:44:97;;;;;;;;8250:244;;7806:698;;;:::o;14291:213:414:-;14347:6;14377:16;14369:24;;14365:103;;;14416:41;;-1:-1:-1;;;14416:41:414;;14447:2;14416:41;;;19735:36:484;19787:18;;;19780:34;;;19708:18;;14416:41:414;19554:266:484;9624:196:92;9715:24;;9686:7;;9752:8;;:63;;9767:41;9781:4;9800:7;9806:1;9800:3;:7;:::i;9767:41::-;:48;-1:-1:-1;;;9767:48:92;;-1:-1:-1;;;;;9767:48:92;9752:63;;;9763:1;9745:70;9624:196;-1:-1:-1;;;9624:196:92:o;4260:178:163:-;4345:7;4367:66;4400:20;:18;:20::i;:::-;4422:10;3555:4:410;3549:11;-1:-1:-1;;;3573:23:410;;3625:4;3616:14;;3609:39;;;;3677:4;3668:14;;3661:34;3733:4;3718:20;;;3353:401;6803:260:407;6888:7;6908:17;6927:18;6947:16;6967:25;6978:4;6984:1;6987;6990;6967:10;:25::i;:::-;6907:85;;;;;;7002:28;7014:5;7021:8;7002:11;:28::i;:::-;-1:-1:-1;7047:9:407;;6803:260;-1:-1:-1;;;;;;6803:260:407:o;1161:202:162:-;-1:-1:-1;;;;;1008:37:162;;1240:15;1008:37;;;1554:66;1008:37;;;;;:39;;;;;;;;1284:16;;;1280:79;;1317:35;;-1:-1:-1;;;1317:35:162;;-1:-1:-1;;;;;20936:32:484;;1317:35:162;;;20918:51:484;20985:18;;;20978:34;;;20891:18;;1317:35:162;20744:274:484;637:698:406;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:406;-1:-1:-1;794:41:406;-1:-1:-1;955:28:406;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:406;-1:-1:-1;;;1175:2:406;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:406;1010:282;1256:21;-1:-1:-1;1312:6:406;637:698;-1:-1:-1;;;637:698:406:o;777:1861:462:-;835:13;864:4;:11;879:1;864:16;860:31;;-1:-1:-1;;882:9:462;;;;;;;;;-1:-1:-1;882:9:462;;;777:1861::o;860:31::-;940:19;962:12;;;;;;;;;;;;;;;;;940:34;;1023:18;1069:1;1050:4;:11;1064:1;1050:15;;;;:::i;:::-;1049:21;;;;:::i;:::-;1044:27;;:1;:27;:::i;:::-;1023:48;-1:-1:-1;1151:20:462;1185:15;1023:48;1198:2;1185:15;:::i;:::-;1174:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1174:27:462;;1151:50;;1294:10;1286:6;1279:26;1386:1;1379:5;1375:13;1442:4;1492;1486:11;1477:7;1473:25;1585:2;1577:6;1573:15;1655:739;1674:6;1665:7;1662:19;1655:739;;;1771:1;1762:7;1758:15;1747:26;;1809:7;1803:14;1932:4;1924:5;1920:2;1916:14;1912:25;1902:8;1898:40;1892:47;1881:9;1873:67;1985:1;1974:9;1970:17;1957:30;;2063:4;2055:5;2051:2;2047:14;2043:25;2033:8;2029:40;2023:47;2012:9;2004:67;2116:1;2105:9;2101:17;2088:30;;2194:4;2186:5;2183:1;2178:14;2174:25;2164:8;2160:40;2154:47;2143:9;2135:67;2247:1;2236:9;2232:17;2219:30;;2325:4;2317:5;2305:25;2295:8;2291:40;2285:47;2274:9;2266:67;-1:-1:-1;2378:1:462;2363:17;1655:739;;;2464:1;2457:4;2451:11;2447:19;2484:1;2479:54;;;;2551:1;2546:52;;;;2440:158;;2479:54;-1:-1:-1;;;;;2495:17:462;;2488:43;2479:54;;2546:52;-1:-1:-1;;;;;2562:17:462;;2555:41;2440:158;-1:-1:-1;2625:6:462;;777:1861;-1:-1:-1;;;;;;;;777:1861:462:o;445:282:105:-;-1:-1:-1;;;;;;1114:62:105;;1089:4;1114:62;;;296:66:107;1114:62:105;;;;;;;;:70;;:62;:70;503:182;;-1:-1:-1;;;;;;549:62:105;;:49;:62;;;296:66:107;549:62:105;;;;;:69;;-1:-1:-1;;549:69:105;614:4;549:69;;;503:182;;;646:32;;-1:-1:-1;;;646:32:105;;;;;;;;;;;503:182;695:27;;-1:-1:-1;;;;;;695:27:105;;;;;;;;445:282;:::o;2553:247:144:-;2650:32;2685:23;:21;:23::i;:::-;2650:58;-1:-1:-1;2715:8:144;;;:15;2726:4;2715:8;:15;:::i;:::-;-1:-1:-1;2736:10:144;;;:19;2749:6;2736:10;:19;:::i;:::-;-1:-1:-1;3941:7:144;2761:34;;-1:-1:-1;;2553:247:144:o;2882:332:163:-;2985:28;:35;3016:4;2985:28;:35;:::i;:::-;-1:-1:-1;3026:31:163;:41;3060:7;3026:31;:41;:::i;:::-;-1:-1:-1;;3161:1:163;-1:-1:-1;;;;;;;;;;;3124:38:163;;;3168:37;:41;-1:-1:-1;2882:332:163:o;8767:90:97:-;8825:7;8847:5;8851:1;8847;:5;:::i;3151:218:414:-;3208:7;-1:-1:-1;;;;;3231:25:414;;3227:105;;;3279:42;;-1:-1:-1;;;3279:42:414;;3310:3;3279:42;;;19735:36:484;19787:18;;;19780:34;;;19708:18;;3279:42:414;19554:266:484;8508:255:97;8661:7;8670;8692:66;8703:27;8721:8;:6;:8::i;:::-;8703:27;;:17;:27::i;:::-;8732:25;8735:14;:5;:12;:14::i;:::-;8751:5;8732:2;:25;;:::i;:::-;8692:5;;:66;:10;:66::i;:::-;8685:73;;;;8508:255;;;;;;;:::o;8861:95::-;8924:7;8946:5;8950:1;8946;:5;:::i;6177:577:163:-;6227:7;6242:18;6263:13;:11;:13::i;:::-;6286:18;;6242:34;;-1:-1:-1;6286:22:163;6282:468;;6325:22;;;;;;;;6177:577;-1:-1:-1;6177:577:163:o;6282:468::-;-1:-1:-1;;;;;;;;;;;6600:34:163;6646:15;;6642:102;;6680:10;6177:577;-1:-1:-1;;6177:577:163:o;6642:102::-;6722:13;6715:20;;;;6177:577;:::o;6963:613::-;7016:7;7031:21;7055:16;:14;:16::i;:::-;7081:21;;7031:40;;-1:-1:-1;7081:25:163;7077:495;;7123:25;;;;;;;;6963:613;-1:-1:-1;6963:613:163:o;7077:495::-;7413:37;;7462:18;;7458:108;;7499:13;6963:613;-1:-1:-1;;6963:613:163:o;8587:1642:413:-;8635:7;8658:1;8663;8658:6;8654:45;;-1:-1:-1;8687:1:413;;8587:1642;-1:-1:-1;8587:1642:413:o;8654:45::-;9378:14;9412:1;9401:7;9406:1;9401:4;:7::i;:::-;:12;;9395:1;:19;;9378:36;;9873:1;9862:6;9858:1;:10;;;;;:::i;:::-;;9849:6;:19;9848:26;;9839:35;;9922:1;9911:6;9907:1;:10;;;;;:::i;:::-;;9898:6;:19;9897:26;;9888:35;;9971:1;9960:6;9956:1;:10;;;;;:::i;:::-;;9947:6;:19;9946:26;;9937:35;;10020:1;10009:6;10005:1;:10;;;;;:::i;:::-;;9996:6;:19;9995:26;;9986:35;;10069:1;10058:6;10054:1;:10;;;;;:::i;:::-;;10045:6;:19;10044:26;;10035:35;;10118:1;10107:6;10103:1;:10;;;;;:::i;:::-;;10094:6;:19;10093:26;;10084:35;;10167:1;10156:6;10152:1;:10;;;;;:::i;:::-;;10143:6;:19;10142:26;;10133:35;;10189:23;10193:6;10205;10201:1;:10;;;;;:::i;:::-;;10189:3;:23::i;11772:361:92:-;11911:7;11926:186;11939:4;11933:3;:10;11926:186;;;11953:11;11967:23;11980:3;11985:4;11967:12;:23::i;:::-;13062:28;13115:20;;;13174:4;13161:18;;11953:37;;-1:-1:-1;12002:35:92;;;;13157:28;;12002:29;;;:35;11998:108;;;12056:3;12049:10;;11998:108;;;12090:7;:3;12096:1;12090:7;:::i;:::-;12084:13;;11998:108;11945:167;11926:186;;;-1:-1:-1;12124:4:92;11772:361;-1:-1:-1;;;11772:361:92:o;5140:1530:407:-;5266:7;;;6199:66;6186:79;;6182:164;;;-1:-1:-1;6297:1:407;;-1:-1:-1;6301:30:407;;-1:-1:-1;6333:1:407;6281:54;;6182:164;6457:24;;;6440:14;6457:24;;;;;;;;;22426:25:484;;;22499:4;22487:17;;22467:18;;;22460:45;;;;22521:18;;;22514:34;;;22564:18;;;22557:34;;;6457:24:407;;22398:19:484;;6457:24:407;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6457:24:407;;-1:-1:-1;;6457:24:407;;;-1:-1:-1;;;;;;;6495:20:407;;6491:113;;-1:-1:-1;6547:1:407;;-1:-1:-1;6551:29:407;;-1:-1:-1;6547:1:407;;-1:-1:-1;6531:62:407;;6491:113;6622:6;-1:-1:-1;6630:20:407;;-1:-1:-1;6630:20:407;;-1:-1:-1;5140:1530:407;;;;;;;;;:::o;7196:532::-;7291:20;7282:5;:29;;;;;;;;:::i;:::-;;7278:444;;7196:532;;:::o;7278:444::-;7387:29;7378:5;:38;;;;;;;;:::i;:::-;;7374:348;;7439:23;;-1:-1:-1;;;7439:23:407;;;;;;;;;;;7374:348;7492:35;7483:5;:44;;;;;;;;:::i;:::-;;7479:243;;7550:46;;-1:-1:-1;;;7550:46:407;;;;;1746:25:484;;;1719:18;;7550:46:407;1600:177:484;7479:243:407;7626:30;7617:5;:39;;;;;;;;:::i;:::-;;7613:109;;7679:32;;-1:-1:-1;;;7679:32:407;;;;;1746:25:484;;;1719:18;;7679:32:407;1600:177:484;12214:916:413;12267:7;;-1:-1:-1;;;12342:17:413;;12338:103;;-1:-1:-1;;;12379:17:413;;;-1:-1:-1;12424:2:413;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:413;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:413;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:413;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:413;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:413;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:413:o;7623:172:92:-;7721:7;;7752:38;7760:4;7779:3;7784:5;7752:7;:38::i;10699:983:413:-;10751:7;;10835:3;10826:12;;;:16;10822:99;;10872:3;10862:13;;;;10893;10822:99;10947:2;10938:11;;;:15;10934:96;;10983:2;10973:12;;;;11003;10934:96;11056:2;11047:11;;;:15;11043:96;;11092:2;11082:12;;;;11112;11043:96;11165:2;11156:11;;;:15;11152:96;;11201:2;11191:12;;;;11221;11152:96;11274:1;11265:10;;;:14;11261:93;;11309:1;11299:11;;;;11328;11261:93;11380:1;11371:10;;;:14;11367:93;;11415:1;11405:11;;;;11434;11367:93;11486:1;11477:10;;;:14;11473:93;;11521:1;11511:11;;;;11540;11473:93;11592:1;11583:10;;;:14;11579:64;;11627:1;11617:11;11669:6;10699:983;-1:-1:-1;;10699:983:413:o;2557:104::-;2615:7;2645:1;2641;:5;:13;;2653:1;2641:13;;;-1:-1:-1;2649:1:413;;2557:104;-1:-1:-1;2557:104:413:o;2774:153::-;2836:7;2909:11;2919:1;2910:5;;;2909:11;:::i;:::-;2899:21;;2900:5;;;2899:21;:::i;10688:752:92:-;10833:11;;10795:7;;;;10855;;10851:585;;10918:25;10946:28;10960:4;10966:7;10972:1;10966:3;:7;:::i;10946:28::-;10918:56;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10918:56:92;;;-1:-1:-1;;;;;10918:56:92;;;;;;;-1:-1:-1;11040:16:92;;;-1:-1:-1;11040:16:92;11032:56;;;;-1:-1:-1;;;11032:56:92;;22936:2:484;11032:56:92;;;22918:21:484;22975:2;22955:18;;;22948:30;23014:29;22994:18;;;22987:57;23061:18;;11032:56:92;22734:351:484;11032:56:92;11140:9;;:16;;;;;;;11136:161;;11206:5;11168:28;11182:4;11188:7;11194:1;11188:3;:7;:::i;11168:28::-;:43;;-1:-1:-1;;;;;11168:43:92;;;;-1:-1:-1;;;11168:43:92;;;;;;;;;;;11136:161;;;11246:41;;;;;;;;;;;;;;;-1:-1:-1;;;;;11246:41:92;;;;;;;;;;11236:52;;;;;;;-1:-1:-1;11236:52:92;;;;;;;;;;;;;;-1:-1:-1;;;11236:52:92;;;;;;;;;;11136:161;11312:11;;;;-1:-1:-1;11325:5:92;;-1:-1:-1;11304:27:92;;-1:-1:-1;11304:27:92;10851:585;-1:-1:-1;;11362:41:92;;;;;;;;;;;;;;;-1:-1:-1;;;;;11362:41:92;;;;;;;;;;11352:52;;;;;;;-1:-1:-1;11352:52:92;;;;;;;;;;;;;-1:-1:-1;;;11352:52:92;;;;;;;;;;;;-1:-1:-1;;11396:5:92;11412:17;;14:250:484;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:484;238:16;;231:27;14:250::o;269:271::-;311:3;349:5;343:12;376:6;371:3;364:19;392:76;461:6;454:4;449:3;445:14;438:4;431:5;427:16;392:76;:::i;:::-;522:2;501:15;-1:-1:-1;;497:29:484;488:39;;;;529:4;484:50;;269:271;-1:-1:-1;;269:271:484:o;545:220::-;694:2;683:9;676:21;657:4;714:45;755:2;744:9;740:18;732:6;714:45;:::i;770:180::-;829:6;882:2;870:9;861:7;857:23;853:32;850:52;;;898:1;895;888:12;850:52;-1:-1:-1;921:23:484;;770:180;-1:-1:-1;770:180:484:o;1163:173::-;1231:20;;-1:-1:-1;;;;;1280:31:484;;1270:42;;1260:70;;1326:1;1323;1316:12;1260:70;1163:173;;;:::o;1341:254::-;1409:6;1417;1470:2;1458:9;1449:7;1445:23;1441:32;1438:52;;;1486:1;1483;1476:12;1438:52;1509:29;1528:9;1509:29;:::i;:::-;1499:39;1585:2;1570:18;;;;1557:32;;-1:-1:-1;;;1341:254:484:o;1782:328::-;1859:6;1867;1875;1928:2;1916:9;1907:7;1903:23;1899:32;1896:52;;;1944:1;1941;1934:12;1896:52;1967:29;1986:9;1967:29;:::i;:::-;1957:39;;2015:38;2049:2;2038:9;2034:18;2015:38;:::i;:::-;2005:48;;2100:2;2089:9;2085:18;2072:32;2062:42;;1782:328;;;;;:::o;2297:127::-;2358:10;2353:3;2349:20;2346:1;2339:31;2389:4;2386:1;2379:15;2413:4;2410:1;2403:15;2429:632;2494:5;2524:18;2565:2;2557:6;2554:14;2551:40;;;2571:18;;:::i;:::-;2646:2;2640:9;2614:2;2700:15;;-1:-1:-1;;2696:24:484;;;2722:2;2692:33;2688:42;2676:55;;;2746:18;;;2766:22;;;2743:46;2740:72;;;2792:18;;:::i;:::-;2832:10;2828:2;2821:22;2861:6;2852:15;;2891:6;2883;2876:22;2931:3;2922:6;2917:3;2913:16;2910:25;2907:45;;;2948:1;2945;2938:12;2907:45;2998:6;2993:3;2986:4;2978:6;2974:17;2961:44;3053:1;3046:4;3037:6;3029;3025:19;3021:30;3014:41;;;;2429:632;;;;;:::o;3066:222::-;3109:5;3162:3;3155:4;3147:6;3143:17;3139:27;3129:55;;3180:1;3177;3170:12;3129:55;3202:80;3278:3;3269:6;3256:20;3249:4;3241:6;3237:17;3202:80;:::i;3293:1019::-;3428:6;3436;3444;3452;3460;3513:3;3501:9;3492:7;3488:23;3484:33;3481:53;;;3530:1;3527;3520:12;3481:53;3570:9;3557:23;3599:18;3640:2;3632:6;3629:14;3626:34;;;3656:1;3653;3646:12;3626:34;3679:50;3721:7;3712:6;3701:9;3697:22;3679:50;:::i;:::-;3669:60;;3782:2;3771:9;3767:18;3754:32;3738:48;;3811:2;3801:8;3798:16;3795:36;;;3827:1;3824;3817:12;3795:36;3850:52;3894:7;3883:8;3872:9;3868:24;3850:52;:::i;:::-;3840:62;;3921:38;3955:2;3944:9;3940:18;3921:38;:::i;:::-;3911:48;;4012:2;4001:9;3997:18;3984:32;3968:48;;4041:2;4031:8;4028:16;4025:36;;;4057:1;4054;4047:12;4025:36;4080:52;4124:7;4113:8;4102:9;4098:24;4080:52;:::i;:::-;4070:62;;4185:3;4174:9;4170:19;4157:33;4141:49;;4215:2;4205:8;4202:16;4199:36;;;4231:1;4228;4221:12;4199:36;;4254:52;4298:7;4287:8;4276:9;4272:24;4254:52;:::i;:::-;4244:62;;;3293:1019;;;;;;;;:::o;4317:186::-;4376:6;4429:2;4417:9;4408:7;4404:23;4400:32;4397:52;;;4445:1;4442;4435:12;4397:52;4468:29;4487:9;4468:29;:::i;4508:1043::-;4685:2;4674:9;4667:21;4648:4;4723:6;4717:13;4766:4;4761:2;4750:9;4746:18;4739:32;4794:52;4841:3;4830:9;4826:19;4812:12;4794:52;:::i;:::-;4780:66;;4895:2;4887:6;4883:15;4877:22;4922:2;4918:7;4989:2;4977:9;4969:6;4965:22;4961:31;4956:2;4945:9;4941:18;4934:59;5016:41;5050:6;5034:14;5016:41;:::i;:::-;5002:55;;5111:2;5103:6;5099:15;5093:22;5088:2;5077:9;5073:18;5066:50;5171:2;5163:6;5159:15;5153:22;5147:3;5136:9;5132:19;5125:51;5225:3;5217:6;5213:16;5207:23;5185:45;;5295:2;5283:9;5275:6;5271:22;5267:31;5261:3;5250:9;5246:19;5239:60;5322:41;5356:6;5340:14;5322:41;:::i;:::-;5308:55;;5412:3;5404:6;5400:16;5394:23;5372:45;;5483:2;5471:9;5463:6;5459:22;5455:31;5448:4;5437:9;5433:20;5426:61;;5504:41;5538:6;5522:14;5504:41;:::i;:::-;5496:49;4508:1043;-1:-1:-1;;;;;4508:1043:484:o;5556:1019::-;5691:6;5699;5707;5715;5723;5776:3;5764:9;5755:7;5751:23;5747:33;5744:53;;;5793:1;5790;5783:12;5744:53;5816:29;5835:9;5816:29;:::i;:::-;5806:39;;5896:2;5885:9;5881:18;5868:32;5919:18;5960:2;5952:6;5949:14;5946:34;;;5976:1;5973;5966:12;5946:34;5999:50;6041:7;6032:6;6021:9;6017:22;5999:50;:::i;:::-;5989:60;;6102:2;6091:9;6087:18;6074:32;6058:48;;6131:2;6121:8;6118:16;6115:36;;;6147:1;6144;6137:12;6115:36;6170:52;6214:7;6203:8;6192:9;6188:24;6170:52;:::i;6580:1259::-;6986:3;6981;6977:13;6969:6;6965:26;6954:9;6947:45;6928:4;7011:2;7049:3;7044:2;7033:9;7029:18;7022:31;7076:46;7117:3;7106:9;7102:19;7094:6;7076:46;:::i;:::-;7170:9;7162:6;7158:22;7153:2;7142:9;7138:18;7131:50;7204:33;7230:6;7222;7204:33;:::i;:::-;7268:2;7253:18;;7246:34;;;-1:-1:-1;;;;;7317:32:484;;7311:3;7296:19;;7289:61;7337:3;7366:19;;7359:35;;;7431:22;;;7425:3;7410:19;;7403:51;7503:13;;7525:22;;;7575:2;7601:15;;;;-1:-1:-1;7563:15:484;;;;-1:-1:-1;7644:169:484;7658:6;7655:1;7652:13;7644:169;;;7719:13;;7707:26;;7788:15;;;;7753:12;;;;7680:1;7673:9;7644:169;;;-1:-1:-1;7830:3:484;;6580:1259;-1:-1:-1;;;;;;;;;;;;6580:1259:484:o;8045:347::-;8110:6;8118;8171:2;8159:9;8150:7;8146:23;8142:32;8139:52;;;8187:1;8184;8177:12;8139:52;8210:29;8229:9;8210:29;:::i;:::-;8200:39;;8289:2;8278:9;8274:18;8261:32;8336:5;8329:13;8322:21;8315:5;8312:32;8302:60;;8358:1;8355;8348:12;8302:60;8381:5;8371:15;;;8045:347;;;;;:::o;8397:667::-;8492:6;8500;8508;8516;8569:3;8557:9;8548:7;8544:23;8540:33;8537:53;;;8586:1;8583;8576:12;8537:53;8609:29;8628:9;8609:29;:::i;:::-;8599:39;;8657:38;8691:2;8680:9;8676:18;8657:38;:::i;:::-;8647:48;;8742:2;8731:9;8727:18;8714:32;8704:42;;8797:2;8786:9;8782:18;8769:32;8824:18;8816:6;8813:30;8810:50;;;8856:1;8853;8846:12;8810:50;8879:22;;8932:4;8924:13;;8920:27;-1:-1:-1;8910:55:484;;8961:1;8958;8951:12;8910:55;8984:74;9050:7;9045:2;9032:16;9027:2;9023;9019:11;8984:74;:::i;:::-;8974:84;;;8397:667;;;;;;;:::o;9069:618::-;9171:6;9179;9187;9195;9203;9211;9264:3;9252:9;9243:7;9239:23;9235:33;9232:53;;;9281:1;9278;9271:12;9232:53;9304:29;9323:9;9304:29;:::i;:::-;9294:39;;9380:2;9369:9;9365:18;9352:32;9342:42;;9431:2;9420:9;9416:18;9403:32;9393:42;;9485:2;9474:9;9470:18;9457:32;9529:4;9522:5;9518:16;9511:5;9508:27;9498:55;;9549:1;9546;9539:12;9498:55;9069:618;;;;-1:-1:-1;9069:618:484;;9624:3;9609:19;;9596:33;;9676:3;9661:19;;;9648:33;;-1:-1:-1;9069:618:484;-1:-1:-1;;9069:618:484:o;9692:543::-;9780:6;9788;9841:2;9829:9;9820:7;9816:23;9812:32;9809:52;;;9857:1;9854;9847:12;9809:52;9897:9;9884:23;9926:18;9967:2;9959:6;9956:14;9953:34;;;9983:1;9980;9973:12;9953:34;10006:50;10048:7;10039:6;10028:9;10024:22;10006:50;:::i;:::-;9996:60;;10109:2;10098:9;10094:18;10081:32;10065:48;;10138:2;10128:8;10125:16;10122:36;;;10154:1;10151;10144:12;10122:36;;10177:52;10221:7;10210:8;10199:9;10195:24;10177:52;:::i;:::-;10167:62;;;9692:543;;;;;:::o;10240:743::-;10347:6;10355;10363;10416:2;10404:9;10395:7;10391:23;10387:32;10384:52;;;10432:1;10429;10422:12;10384:52;10472:9;10459:23;10501:18;10542:2;10534:6;10531:14;10528:34;;;10558:1;10555;10548:12;10528:34;10581:50;10623:7;10614:6;10603:9;10599:22;10581:50;:::i;:::-;10571:60;;10684:2;10673:9;10669:18;10656:32;10640:48;;10713:2;10703:8;10700:16;10697:36;;;10729:1;10726;10719:12;10697:36;10752:52;10796:7;10785:8;10774:9;10770:24;10752:52;:::i;:::-;10742:62;;10857:2;10846:9;10842:18;10829:32;10813:48;;10886:2;10876:8;10873:16;10870:36;;;10902:1;10899;10892:12;10870:36;;10925:52;10969:7;10958:8;10947:9;10943:24;10925:52;:::i;:::-;10915:62;;;10240:743;;;;;:::o;10988:260::-;11056:6;11064;11117:2;11105:9;11096:7;11092:23;11088:32;11085:52;;;11133:1;11130;11123:12;11085:52;11156:29;11175:9;11156:29;:::i;:::-;11146:39;;11204:38;11238:2;11227:9;11223:18;11204:38;:::i;:::-;11194:48;;10988:260;;;;;:::o;11445:380::-;11524:1;11520:12;;;;11567;;;11588:61;;11642:4;11634:6;11630:17;11620:27;;11588:61;11695:2;11687:6;11684:14;11664:18;11661:38;11658:161;;11741:10;11736:3;11732:20;11729:1;11722:31;11776:4;11773:1;11766:15;11804:4;11801:1;11794:15;13058:543;13160:2;13155:3;13152:11;13149:446;;;13196:1;13220:5;13217:1;13210:16;13264:4;13261:1;13251:18;13334:2;13322:10;13318:19;13315:1;13311:27;13305:4;13301:38;13370:4;13358:10;13355:20;13352:47;;;-1:-1:-1;13393:4:484;13352:47;13448:2;13443:3;13439:12;13436:1;13432:20;13426:4;13422:31;13412:41;;13503:82;13521:2;13514:5;13511:13;13503:82;;;13566:17;;;13547:1;13536:13;13503:82;;13777:1345;13903:3;13897:10;13930:18;13922:6;13919:30;13916:56;;;13952:18;;:::i;:::-;13981:97;14071:6;14031:38;14063:4;14057:11;14031:38;:::i;:::-;14025:4;13981:97;:::i;:::-;14133:4;;14190:2;14179:14;;14207:1;14202:663;;;;14909:1;14926:6;14923:89;;;-1:-1:-1;14978:19:484;;;14972:26;14923:89;-1:-1:-1;;13734:1:484;13730:11;;;13726:24;13722:29;13712:40;13758:1;13754:11;;;13709:57;15025:81;;14172:944;;14202:663;13005:1;12998:14;;;13042:4;13029:18;;-1:-1:-1;;14238:20:484;;;14356:236;14370:7;14367:1;14364:14;14356:236;;;14459:19;;;14453:26;14438:42;;14551:27;;;;14519:1;14507:14;;;;14386:19;;14356:236;;;14360:3;14620:6;14611:7;14608:19;14605:201;;;14681:19;;;14675:26;-1:-1:-1;;14764:1:484;14760:14;;;14776:3;14756:24;14752:37;14748:42;14733:58;14718:74;;14605:201;-1:-1:-1;;;;;14852:1:484;14836:14;;;14832:22;14819:36;;-1:-1:-1;13777:1345:484:o;15480:489::-;-1:-1:-1;;;;;15749:15:484;;;15731:34;;15801:15;;15796:2;15781:18;;15774:43;15848:2;15833:18;;15826:34;;;15896:3;15891:2;15876:18;;15869:31;;;15674:4;;15917:46;;15943:19;;15935:6;15917:46;:::i;:::-;15909:54;15480:489;-1:-1:-1;;;;;;15480:489:484:o;15974:290::-;16043:6;16096:2;16084:9;16075:7;16071:23;16067:32;16064:52;;;16112:1;16109;16102:12;16064:52;16138:16;;-1:-1:-1;;;;;;16183:32:484;;16173:43;;16163:71;;16230:1;16227;16220:12;17044:1545;-1:-1:-1;;;17693:43:484;;17759:13;;17675:3;;17781:74;17759:13;17844:1;17835:11;;17828:4;17816:17;;17781:74;:::i;:::-;-1:-1:-1;;;17914:1:484;17874:16;;;17906:10;;;17899:54;17978:13;;18000:76;17978:13;18062:2;18054:11;;18047:4;18035:17;;18000:76;:::i;:::-;18141:66;18136:2;18095:17;;;;18128:11;;;18121:87;18237:66;18232:2;18224:11;;18217:87;-1:-1:-1;;;18328:2:484;18320:11;;18313:49;18387:13;;18409:76;18387:13;18471:2;18463:11;;18456:4;18444:17;;18409:76;:::i;:::-;-1:-1:-1;;;18545:2:484;18504:17;;;;18537:11;;;18530:26;18580:2;18572:11;;17044:1545;-1:-1:-1;;;;;17044:1545:484:o;18594:461::-;18856:31;18851:3;18844:44;18826:3;18917:6;18911:13;18933:75;19001:6;18996:2;18991:3;18987:12;18980:4;18972:6;18968:17;18933:75;:::i;:::-;19028:16;;;;19046:2;19024:25;;18594:461;-1:-1:-1;;18594:461:484:o;19825:127::-;19886:10;19881:3;19877:20;19874:1;19867:31;19917:4;19914:1;19907:15;19941:4;19938:1;19931:15;19957:128;20024:9;;;20045:11;;;20042:37;;;20059:18;;:::i;20090:125::-;20155:9;;;20176:10;;;20173:36;;;20189:18;;:::i;21023:127::-;21084:10;21079:3;21075:20;21072:1;21065:31;21115:4;21112:1;21105:15;21139:4;21136:1;21129:15;21155:217;21195:1;21221;21211:132;;21265:10;21260:3;21256:20;21253:1;21246:31;21300:4;21297:1;21290:15;21328:4;21325:1;21318:15;21211:132;-1:-1:-1;21357:9:484;;21155:217::o;21377:168::-;21450:9;;;21481;;21498:15;;;21492:22;;21478:37;21468:71;;21519:18;;:::i;21550:182::-;-1:-1:-1;;;;;21657:10:484;;;21669;;;21653:27;;21692:11;;;21689:37;;;21706:18;;:::i;:::-;21689:37;21550:182;;;;:::o;22009:185::-;-1:-1:-1;;;;;22130:10:484;;;22118;;;22114:27;;22153:12;;;22150:38;;;22168:18;;:::i;22602:127::-;22663:10;22658:3;22654:20;22651:1;22644:31;22694:4;22691:1;22684:15;22718:4;22715:1;22708:15","linkReferences":{}},"methodIdentifiers":{"CLOCK_MODE()":"4bf5d7e9","DOMAIN_SEPARATOR()":"3644e515","__ERC721A_init(string,string)":"d2f01f19","__SpaceOwner_init(string,string,string)":"d7a901d3","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","clock()":"91ddadf4","delegate(address)":"5c19a95c","delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":"c3cda520","delegates(address)":"587cde1e","eip712Domain()":"84b0196e","getApproved(uint256)":"081812fc","getFactory()":"88cc58e4","getPastTotalSupply(uint256)":"8e539e8c","getPastVotes(address,uint256)":"3a46b1a8","getSpaceInfo(address)":"6a9a38e6","getVotes(address)":"9ab24eb0","isApprovedForAll(address,address)":"e985e9c5","mintSpace(string,string,address,string,string)":"3bf5b8f4","name()":"06fdde03","nextTokenId()":"75794a3c","nonces(address)":"7ecebe00","ownerOf(uint256)":"6352211e","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setFactory(address)":"5bb47808","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","updateSpaceInfo(address,string,string,string,string)":"84880614"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AlreadyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApprovalQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BalanceQueryForZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GuardianEnabled\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initializable_AlreadyInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_InInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Initializable_NotInInitializingState\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_AlreadySupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Introspection_NotSupported\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintERC2309QuantityExceedsLimit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MintZeroQuantity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotExternalAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Ownable__NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Ownable__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnerQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OwnershipNotInitializedForExtraData\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SpaceOwner__OnlyFactoryAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SpaceOwner__OnlySpaceOwnerAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferCallerNotOwnerNorApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromIncorrectOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToNonERC721ReceiverImplementer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferToZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"URIQueryForNonexistentToken\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Validator__InvalidAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Validator__InvalidStringLength\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"toTokenId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"ConsecutiveTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromDelegate\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toDelegate\",\"type\":\"address\"}],\"name\":\"DelegateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"delegate\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"previousBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"DelegateVotesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cooldown\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"GuardianUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"version\",\"type\":\"uint32\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"InterfaceRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"SpaceOwner__SetFactory\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"}],\"name\":\"SpaceOwner__UpdateSpace\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CLOCK_MODE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"name\":\"__ERC721A_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"}],\"name\":\"__SpaceOwner_init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"clock\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"}],\"name\":\"delegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"delegatee\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"delegateBySig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"delegates\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"}],\"name\":\"getPastTotalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timepoint\",\"type\":\"uint256\"}],\"name\":\"getPastVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"}],\"name\":\"getSpaceInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"shortDescription\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"longDescription\",\"type\":\"string\"}],\"internalType\":\"struct ISpaceOwnerBase.Space\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getVotes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"shortDescription\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"longDescription\",\"type\":\"string\"}],\"name\":\"mintSpace\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextTokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"setFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"space\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"shortDescription\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"longDescription\",\"type\":\"string\"}],\"name\":\"updateSpaceInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"ConsecutiveTransfer(uint256,uint256,address,address)\":{\"details\":\"Emitted when tokens in `fromTokenId` to `toTokenId` (inclusive) is transferred from `from` to `to`, as defined in the [ERC2309](https://eips.ethereum.org/EIPS/eip-2309) standard. See {_mintERC2309} for more details.\"},\"DelegateChanged(address,address,address)\":{\"details\":\"Emitted when an account changes their delegate.\"},\"DelegateVotesChanged(address,uint256,uint256)\":{\"details\":\"Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"This emits when ownership of a contract changes.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"CLOCK_MODE()\":{\"details\":\"Description of the clock\"},\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in `owner`'s account.\"},\"clock()\":{\"details\":\"Clock used for flagging checkpoints. Can be overridden to implement timestamp based checkpoints (and voting).\"},\"delegate(address)\":{\"details\":\"Delegates votes from the sender to `delegatee`.\"},\"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Delegates votes from signer to `delegatee`.\"},\"delegates(address)\":{\"details\":\"Returns the delegate that `account` has chosen.\"},\"eip712Domain()\":{\"details\":\"See {EIP-5267}. _Available since v4.9._\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"getPastTotalSupply(uint256)\":{\"details\":\"Returns the total supply of votes available at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block. NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote.\"},\"getPastVotes(address,uint256)\":{\"details\":\"Returns the amount of votes that `account` had at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block.\"},\"getSpaceInfo(address)\":{\"params\":{\"space\":\"The address of the space\"},\"returns\":{\"_0\":\"space The space info\"}},\"getVotes(address)\":{\"details\":\"Returns the current amount of votes that `account` has.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}.\"},\"mintSpace(string,string,address,string,string)\":{\"details\":\"Only the factory is allowed to mint spaces\",\"params\":{\"longDescription\":\"The long description of the space\",\"name\":\"The name of the space\",\"shortDescription\":\"The short description of the space\",\"space\":\"The address of the space\",\"uri\":\"The URI of the space\"},\"returns\":{\"tokenId\":\"The token id of the minted space\"}},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Equivalent to `safeTransferFrom(from, to, tokenId, '')`.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"totalSupply()\":{\"details\":\"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"},\"updateSpaceInfo(address,string,string,string,string)\":{\"details\":\"Only the space owner is allowed to update the space info\",\"params\":{\"longDescription\":\"The long description of the space\",\"name\":\"The name of the space\",\"shortDescription\":\"The short description of the space\",\"space\":\"The address of the space\",\"uri\":\"The URI of the space\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"ApprovalCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"ApprovalQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"BalanceQueryForZeroAddress()\":[{\"notice\":\"Cannot query the balance for the zero address.\"}],\"MintERC2309QuantityExceedsLimit()\":[{\"notice\":\"The `quantity` minted with ERC2309 exceeds the safety limit.\"}],\"MintToZeroAddress()\":[{\"notice\":\"Cannot mint to the zero address.\"}],\"MintZeroQuantity()\":[{\"notice\":\"The quantity of tokens minted must be more than zero.\"}],\"OwnerQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}],\"OwnershipNotInitializedForExtraData()\":[{\"notice\":\"The `extraData` cannot be set on an unintialized ownership slot.\"}],\"TransferCallerNotOwnerNorApproved()\":[{\"notice\":\"The caller must own the token or be an approved operator.\"}],\"TransferFromIncorrectOwner()\":[{\"notice\":\"The token must be owned by `from`.\"}],\"TransferToNonERC721ReceiverImplementer()\":[{\"notice\":\"Cannot safely transfer to a contract that does not implement the ERC721Receiver interface.\"}],\"TransferToZeroAddress()\":[{\"notice\":\"Cannot transfer to the zero address.\"}],\"URIQueryForNonexistentToken()\":[{\"notice\":\"The token does not exist.\"}]},\"events\":{\"InterfaceAdded(bytes4)\":{\"notice\":\"Emitted when an interface is added to the contract via `_addInterface`.\"},\"InterfaceRemoved(bytes4)\":{\"notice\":\"Emitted when an interface is removed from the contract via `_removeInterface`.\"}},\"kind\":\"user\",\"methods\":{\"getFactory()\":{\"notice\":\"Get the factory address\"},\"getSpaceInfo(address)\":{\"notice\":\"Get the space info\"},\"mintSpace(string,string,address,string,string)\":{\"notice\":\"Mint a space\"},\"nextTokenId()\":{\"notice\":\"Get the next token id that will be used to mint a space\"},\"setFactory(address)\":{\"notice\":\"Set the factory address that is allowed to mint spaces\"},\"updateSpaceInfo(address,string,string,string,string)\":{\"notice\":\"Update the space info\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/spaces/facets/owner/SpaceOwner.sol\":\"SpaceOwner\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/diamond/facets/Facet.sol\":{\"keccak256\":\"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863\",\"dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc\"]},\"contracts/src/diamond/facets/governance/votes/Checkpoints.sol\":{\"keccak256\":\"0x4b98db2e67e47ec59caa78fade51e9ec6fa33ee2592e46fed09d9167ebe76c8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72ec6949ee33fb9c137bba362b94af699762fadd66334128d1dd0dbcd4301bc6\",\"dweb:/ipfs/QmQybe6k5K3gss4zzCPqoba6ZBZE5p8KJRoQ2RzkE91JRV\"]},\"contracts/src/diamond/facets/governance/votes/IERC5805.sol\":{\"keccak256\":\"0x8b3b84026610f99bcac6139359305a46c537edf377e44771b904c2bd35719ee3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a8e7af9b47b6bbd794ccb50380b8f9e9b84561d62bcbf16843dde55bab86e6\",\"dweb:/ipfs/QmdBdYxvhwCwtqW9DfPa6Bw5PrYdzhuKQyJv4vcLsttqrV\"]},\"contracts/src/diamond/facets/governance/votes/IERC6372.sol\":{\"keccak256\":\"0xc3fa5c25bdd3db6126e04897496889e68a65749b050ae8fede0ff80e322aca86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bcf56ae1474c9a3032f8b15b1bbbeeb50ac21c574047f846673d4aca9bf82db4\",\"dweb:/ipfs/Qmcce1zD6TBWiMLXMDsFF6bUrwtVtharjwvAbtkMmoYRgd\"]},\"contracts/src/diamond/facets/governance/votes/IVotes.sol\":{\"keccak256\":\"0xef9a51a12d9c5a331de719be078e39858739a3d5043ebc20814d1331d8a7d8c3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a077058f77857cd2668fc97943dd64fdfd2463b8a0e163ef9973da8bb1f593a\",\"dweb:/ipfs/QmXZavPSRakx4GHD9gDpDBWQDt1SL2hYvbARA62zVeUq2w\"]},\"contracts/src/diamond/facets/governance/votes/Votes.sol\":{\"keccak256\":\"0x583ee53b96d9ead23925281c765624a48e7a385942247c4da1ecc1052193ed67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c8cc50c062867c32ad9e3d0b4ad847f22576809d9f704aa8ee72b7ab617462\",\"dweb:/ipfs/QmSayHRuL6dwMfYNBNe29Sp63oeNDoemZttLWCv1urWCZc\"]},\"contracts/src/diamond/facets/governance/votes/VotesBase.sol\":{\"keccak256\":\"0x41049b5967fcceaf40dab9bb2863a701ba5aa68fa219321773028498c61e6add\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e63ecb4168e2b2f4819e606bf2b66195b48e42bd5d22a3def701dac016160112\",\"dweb:/ipfs/QmVJxvxjkTE9cH44DRXCwGntEyPRgsVDBiw2AiCT1KNDBC\"]},\"contracts/src/diamond/facets/governance/votes/VotesStorage.sol\":{\"keccak256\":\"0x87a2f9c85f63fcfa8ce2dc14d5a9a6118b33fd7000fb988b300519dec9b89629\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daef1e04a36eb664ec08d4627a2038f3decbeac93b13a2c651b52681ef6f5f5e\",\"dweb:/ipfs/QmbV5SXhZnUW52HLEbhNhKeRXDCyPR6zAJRa98Vh3m9ptF\"]},\"contracts/src/diamond/facets/initializable/Initializable.sol\":{\"keccak256\":\"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552\",\"dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC\"]},\"contracts/src/diamond/facets/initializable/InitializableStorage.sol\":{\"keccak256\":\"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4\",\"dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg\"]},\"contracts/src/diamond/facets/introspection/IERC165.sol\":{\"keccak256\":\"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0\",\"dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq\"]},\"contracts/src/diamond/facets/introspection/IntrospectionBase.sol\":{\"keccak256\":\"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1\",\"dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw\"]},\"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol\":{\"keccak256\":\"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91\",\"dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM\"]},\"contracts/src/diamond/facets/ownable/IERC173.sol\":{\"keccak256\":\"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b\",\"dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd\"]},\"contracts/src/diamond/facets/ownable/OwnableBase.sol\":{\"keccak256\":\"0x272abaecc104d5f23d77a623cf1548620d24b0f447eb2a12144e27561ff489f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fcb8c20ff7346bdc5dba82e6680cc0ea64087460a12153e3b6c3416f6addf875\",\"dweb:/ipfs/QmfEEufJBzudSDekQteQkb3CzmnzUPT3GDhNgVpHNC9xaf\"]},\"contracts/src/diamond/facets/ownable/OwnableStorage.sol\":{\"keccak256\":\"0xda650482ce08c04110366cb01408aaabd01383d9c504b7cacfb2674aae688dcd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://694f42ffb353fccaa1eadf91dee3a3cee7253e3f357bcba2b175fd7be701e27e\",\"dweb:/ipfs/QmPxxVerATSYrNLp7snnSvNVsbLPm1wzHULhBbtR333eik\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721A.sol\":{\"keccak256\":\"0x5662ab29272ecaabdaf5792c368a71693fcad9df24566f9e470ff1ec3510fd8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef719ff8dce040daf5bcfe328f3463261fb3acfe5c41c589365143916748cc3\",\"dweb:/ipfs/QmUm4PHj4y2237H7hnCwnfRyTWbp1DHWpc8GN26M6T4ToC\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol\":{\"keccak256\":\"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba\",\"dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE\"]},\"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol\":{\"keccak256\":\"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04\",\"dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey\"]},\"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol\":{\"keccak256\":\"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d\",\"dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz\"]},\"contracts/src/diamond/utils/Context.sol\":{\"keccak256\":\"0x4566c941f553d989324d4308c037fe0669062c746d6e5108ce533fcc8ffbcaac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87908ef7e56c826210414cb25a50a3073188e96e6ac2afc2b56d0bba6abb48a7\",\"dweb:/ipfs/QmT41NMs4REQxxeuR48JUcB39UTgcaKdUvizc2XawUF5aq\"]},\"contracts/src/diamond/utils/Nonces.sol\":{\"keccak256\":\"0xba683e7b1dc9bc812c0c33ce7efb8e7505a881ee475b8ef2230af11377418732\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://69408950cf9d4fb74bbf79e475d338363ca4f7a492de5827b3f93a02da443732\",\"dweb:/ipfs/QmT6nt6Dpp2stTjCDEzepf6unVE7bcetXdshPnwmJFfXaf\"]},\"contracts/src/diamond/utils/cryptography/EIP712.sol\":{\"keccak256\":\"0xa4854e007ca8e80368e578576d65d47cb4022a7c031bc7abb4d94df5498935eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed66cebd356963dd8bc33459fea266da15cb87bd4f586399dba84b525e0fcd6a\",\"dweb:/ipfs/QmXqgEnTnEusLhXXuycj73PZK1pRrw6ES4BQvEKfvKa2FR\"]},\"contracts/src/diamond/utils/cryptography/IERC5267.sol\":{\"keccak256\":\"0x29135f4d4e9e50c65240a1837a077ba44470aadd8c9bad0f5bb1cb32d50018e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91eb5c894de0b09144d3b1c689f72fb26d638eb2eaa3217396ed86d41610214f\",\"dweb:/ipfs/Qmexr1dtSeFD8sbrbk3U8pp1WUL5Caq3VoeeHy6bwmxMbD\"]},\"contracts/src/spaces/facets/guardian/GuardianBase.sol\":{\"keccak256\":\"0xe76248dbf516fb6a32934062fac4f2b3e19f83ba1a4df04d55b55c15be0265d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2059a7b6b82f2de1654ff8bca374e32fa000e613ffb706197edd09565cb7a70\",\"dweb:/ipfs/QmUFTcFy64pFTwEwtGFrkoL84eZi7zVjAp46k1sWpAfUn5\"]},\"contracts/src/spaces/facets/guardian/GuardianStorage.sol\":{\"keccak256\":\"0xb6d7ae2fe80c40120223e660bf5888612f8e93c0e7dc70d6d2532d3e366f0674\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff77c0e4ad11ae6967a46d67c38422e06e45eb4e06aa7d99d611b8e4672aae5f\",\"dweb:/ipfs/QmfZui9wfZimGa4Q93zudgdit6ZUSgTET2WCKYWB7QkpVD\"]},\"contracts/src/spaces/facets/guardian/IGuardian.sol\":{\"keccak256\":\"0x7490883034a06f610a169e87f2bd15f5c904c87ea1eda80da63d17045b77b5bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44ea9689c8d31f5c31ebb470ac85f2d6be30d7698dbe4730454e19c5f72898f7\",\"dweb:/ipfs/QmUsWEQ4qFif8GghZGT8b7K52WrTbSgfjZPpPGxFzhz2kr\"]},\"contracts/src/spaces/facets/owner/ISpaceOwner.sol\":{\"keccak256\":\"0x75fef729920165a9cc37f7c212da288bc983bb11e39544a59c657cd9fa2e204a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1baac2d168e5ee3269b0b6b59ce7df29e63c38ef3d484850ed05f0a56ab59464\",\"dweb:/ipfs/QmZPxAByZ4PiQFUq45AM8LEJ2YC6n8XxE6nRHgf8Kg7nxZ\"]},\"contracts/src/spaces/facets/owner/SpaceOwner.sol\":{\"keccak256\":\"0x2aca80d58e543ed53cd74703b88bc0984bbc5fe123248ec6fc6ab85f9fd19dab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50f09db550b493adcd6bf5922e5a2202483776a1ce1c561d3f772170d5e53253\",\"dweb:/ipfs/QmUycNN84TbHZuTvXcGYmKizUEvaeEFZfVe98eQRFyiGQU\"]},\"contracts/src/spaces/facets/owner/SpaceOwnerBase.sol\":{\"keccak256\":\"0xa1cb5b0bc9aec89791654a4725f7c42798245a432f3f3a741e4999fd12020f77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720a72562f1f8c129b3b276a4fb67cf403bc628db1534fed04e45a79b7773cb1\",\"dweb:/ipfs/QmNu34EsvFQjbaE8MwdxkAn4iXGDUY4wYq2GVBwUEu1uRh\"]},\"contracts/src/spaces/facets/owner/SpaceOwnerStorage.sol\":{\"keccak256\":\"0xb008bca5ced76250a86fa507a18d1f5e77c2b7bd9fa7df3c11a7c048d148dc5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adccdd8c8b1407dd973b2b1b5cd4be0713d15bd0350ae9b2f7e1b7a9b2ace50\",\"dweb:/ipfs/QmW6Q8XXhXhDqDSqkBBsN9MqmqEidDPySS83YwXfE7Sx5Y\"]},\"contracts/src/spaces/facets/owner/SpaceOwnerUriBase.sol\":{\"keccak256\":\"0x089ce5c4408e752e52a820135620e312a08e361b5580ddcdd8ab8b4254067367\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71b3db0d8d498344f3290f46f356f635c63ec4e60264855b956ee8c566509fcb\",\"dweb:/ipfs/QmXkU1ZfWm5kpL9Q9HzYMvzJvhMkAf4k7mMohQGUQxMe6p\"]},\"contracts/src/utils/Validator.sol\":{\"keccak256\":\"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306\",\"dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt\"]},\"lib/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"lib/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c\",\"dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj\"]},\"lib/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"lib/base64/base64.sol\":{\"keccak256\":\"0xa73959e6ef0b693e4423a562e612370160b934a75e618361ddd8c9c4b8ddbaaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17c12e16d8d66f3af15d8787920bd41ca6c1e7517a212a6b9cebd4b6d38f36fe\",\"dweb:/ipfs/QmcXMnZUXEz6LRKsm3CSvqdPboAzmezavi8bTg2dRxM2yE\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AlreadyDisabled"},{"inputs":[],"type":"error","name":"AlreadyEnabled"},{"inputs":[],"type":"error","name":"ApprovalCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"ApprovalQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"BalanceQueryForZeroAddress"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[],"type":"error","name":"GuardianEnabled"},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32"}],"type":"error","name":"Initializable_AlreadyInitialized"},{"inputs":[],"type":"error","name":"Initializable_InInitializingState"},{"inputs":[],"type":"error","name":"Initializable_NotInInitializingState"},{"inputs":[],"type":"error","name":"Introspection_AlreadySupported"},{"inputs":[],"type":"error","name":"Introspection_NotSupported"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"MintERC2309QuantityExceedsLimit"},{"inputs":[],"type":"error","name":"MintToZeroAddress"},{"inputs":[],"type":"error","name":"MintZeroQuantity"},{"inputs":[],"type":"error","name":"NotExternalAccount"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"Ownable__NotOwner"},{"inputs":[],"type":"error","name":"Ownable__ZeroAddress"},{"inputs":[],"type":"error","name":"OwnerQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"OwnershipNotInitializedForExtraData"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SpaceOwner__OnlyFactoryAllowed"},{"inputs":[],"type":"error","name":"SpaceOwner__OnlySpaceOwnerAllowed"},{"inputs":[],"type":"error","name":"TransferCallerNotOwnerNorApproved"},{"inputs":[],"type":"error","name":"TransferFromIncorrectOwner"},{"inputs":[],"type":"error","name":"TransferToNonERC721ReceiverImplementer"},{"inputs":[],"type":"error","name":"TransferToZeroAddress"},{"inputs":[],"type":"error","name":"URIQueryForNonexistentToken"},{"inputs":[],"type":"error","name":"Validator__InvalidAddress"},{"inputs":[],"type":"error","name":"Validator__InvalidStringLength"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"uint256","name":"fromTokenId","type":"uint256","indexed":true},{"internalType":"uint256","name":"toTokenId","type":"uint256","indexed":false},{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true}],"type":"event","name":"ConsecutiveTransfer","anonymous":false},{"inputs":[{"internalType":"address","name":"delegator","type":"address","indexed":true},{"internalType":"address","name":"fromDelegate","type":"address","indexed":true},{"internalType":"address","name":"toDelegate","type":"address","indexed":true}],"type":"event","name":"DelegateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"delegate","type":"address","indexed":true},{"internalType":"uint256","name":"previousBalance","type":"uint256","indexed":false},{"internalType":"uint256","name":"newBalance","type":"uint256","indexed":false}],"type":"event","name":"DelegateVotesChanged","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"caller","type":"address","indexed":true},{"internalType":"bool","name":"enabled","type":"bool","indexed":true},{"internalType":"uint256","name":"cooldown","type":"uint256","indexed":false},{"internalType":"uint256","name":"timestamp","type":"uint256","indexed":false}],"type":"event","name":"GuardianUpdated","anonymous":false},{"inputs":[{"internalType":"uint32","name":"version","type":"uint32","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceAdded","anonymous":false},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4","indexed":true}],"type":"event","name":"InterfaceRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"factory","type":"address","indexed":false}],"type":"event","name":"SpaceOwner__SetFactory","anonymous":false},{"inputs":[{"internalType":"address","name":"space","type":"address","indexed":true}],"type":"event","name":"SpaceOwner__UpdateSpace","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"CLOCK_MODE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"__ERC721A_init"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"version","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"__SpaceOwner_init"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"clock","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"delegate"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"delegateBySig"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timepoint","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"space","type":"address"}],"stateMutability":"view","type":"function","name":"getSpaceInfo","outputs":[{"internalType":"struct ISpaceOwnerBase.Space","name":"","type":"tuple","components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"uri","type":"string"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"string","name":"shortDescription","type":"string"},{"internalType":"string","name":"longDescription","type":"string"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"uri","type":"string"},{"internalType":"address","name":"space","type":"address"},{"internalType":"string","name":"shortDescription","type":"string"},{"internalType":"string","name":"longDescription","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"mintSpace","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nextTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"address","name":"factory","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setFactory"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"payable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"space","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"uri","type":"string"},{"internalType":"string","name":"shortDescription","type":"string"},{"internalType":"string","name":"longDescription","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateSpaceInfo"}],"devdoc":{"kind":"dev","methods":{"CLOCK_MODE()":{"details":"Description of the clock"},"approve(address,uint256)":{"details":"Gives permission to `to` to transfer `tokenId` token to another account. See {ERC721A-_approve}. Requirements: - The caller must own the token or be an approved operator."},"balanceOf(address)":{"details":"Returns the number of tokens in `owner`'s account."},"clock()":{"details":"Clock used for flagging checkpoints. Can be overridden to implement timestamp based checkpoints (and voting)."},"delegate(address)":{"details":"Delegates votes from the sender to `delegatee`."},"delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Delegates votes from signer to `delegatee`."},"delegates(address)":{"details":"Returns the delegate that `account` has chosen."},"eip712Domain()":{"details":"See {EIP-5267}. _Available since v4.9._"},"getApproved(uint256)":{"details":"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist."},"getPastTotalSupply(uint256)":{"details":"Returns the total supply of votes available at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block. NOTE: This value is the sum of all available votes, which is not necessarily the sum of all delegated votes. Votes that have not been delegated are still part of total supply, even though they would not participate in a vote."},"getPastVotes(address,uint256)":{"details":"Returns the amount of votes that `account` had at a specific moment in the past. If the `clock()` is configured to use block numbers, this will return the value at the end of the corresponding block."},"getSpaceInfo(address)":{"params":{"space":"The address of the space"},"returns":{"_0":"space The space info"}},"getVotes(address)":{"details":"Returns the current amount of votes that `account` has."},"isApprovedForAll(address,address)":{"details":"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}."},"mintSpace(string,string,address,string,string)":{"details":"Only the factory is allowed to mint spaces","params":{"longDescription":"The long description of the space","name":"The name of the space","shortDescription":"The short description of the space","space":"The address of the space","uri":"The URI of the space"},"returns":{"tokenId":"The token id of the minted space"}},"name()":{"details":"Returns the token collection name."},"ownerOf(uint256)":{"details":"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist."},"safeTransferFrom(address,address,uint256)":{"details":"Equivalent to `safeTransferFrom(from, to, tokenId, '')`."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event."},"setApprovalForAll(address,bool)":{"details":"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event."},"symbol()":{"details":"Returns the token collection symbol."},"tokenURI(uint256)":{"details":"Returns the Uniform Resource Identifier (URI) for `tokenId` token."},"totalSupply()":{"details":"Returns the total number of tokens in existence. Burned tokens will reduce the count. To get the total number of tokens minted, please see {_totalMinted}."},"transferFrom(address,address,uint256)":{"details":"Transfers `tokenId` from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event."},"updateSpaceInfo(address,string,string,string,string)":{"details":"Only the space owner is allowed to update the space info","params":{"longDescription":"The long description of the space","name":"The name of the space","shortDescription":"The short description of the space","space":"The address of the space","uri":"The URI of the space"}}},"version":1},"userdoc":{"kind":"user","methods":{"getFactory()":{"notice":"Get the factory address"},"getSpaceInfo(address)":{"notice":"Get the space info"},"mintSpace(string,string,address,string,string)":{"notice":"Mint a space"},"nextTokenId()":{"notice":"Get the next token id that will be used to mint a space"},"setFactory(address)":{"notice":"Set the factory address that is allowed to mint spaces"},"updateSpaceInfo(address,string,string,string,string)":{"notice":"Update the space info"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/spaces/facets/owner/SpaceOwner.sol":"SpaceOwner"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/diamond/facets/Facet.sol":{"keccak256":"0x931702541a5e4a2756665e53baf1b04aa0418d5a9c635e519058905e21ae0c57","urls":["bzz-raw://b785043acac69be2d2545bc4492b2c08b6e931a53737f8508baf3f98c8743863","dweb:/ipfs/QmeLzqURWDmXHJftmMXRsywdJw96CNDB9DQmgTpG1woYvc"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/Checkpoints.sol":{"keccak256":"0x4b98db2e67e47ec59caa78fade51e9ec6fa33ee2592e46fed09d9167ebe76c8a","urls":["bzz-raw://72ec6949ee33fb9c137bba362b94af699762fadd66334128d1dd0dbcd4301bc6","dweb:/ipfs/QmQybe6k5K3gss4zzCPqoba6ZBZE5p8KJRoQ2RzkE91JRV"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/IERC5805.sol":{"keccak256":"0x8b3b84026610f99bcac6139359305a46c537edf377e44771b904c2bd35719ee3","urls":["bzz-raw://49a8e7af9b47b6bbd794ccb50380b8f9e9b84561d62bcbf16843dde55bab86e6","dweb:/ipfs/QmdBdYxvhwCwtqW9DfPa6Bw5PrYdzhuKQyJv4vcLsttqrV"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/IERC6372.sol":{"keccak256":"0xc3fa5c25bdd3db6126e04897496889e68a65749b050ae8fede0ff80e322aca86","urls":["bzz-raw://bcf56ae1474c9a3032f8b15b1bbbeeb50ac21c574047f846673d4aca9bf82db4","dweb:/ipfs/Qmcce1zD6TBWiMLXMDsFF6bUrwtVtharjwvAbtkMmoYRgd"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/IVotes.sol":{"keccak256":"0xef9a51a12d9c5a331de719be078e39858739a3d5043ebc20814d1331d8a7d8c3","urls":["bzz-raw://8a077058f77857cd2668fc97943dd64fdfd2463b8a0e163ef9973da8bb1f593a","dweb:/ipfs/QmXZavPSRakx4GHD9gDpDBWQDt1SL2hYvbARA62zVeUq2w"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/Votes.sol":{"keccak256":"0x583ee53b96d9ead23925281c765624a48e7a385942247c4da1ecc1052193ed67","urls":["bzz-raw://c5c8cc50c062867c32ad9e3d0b4ad847f22576809d9f704aa8ee72b7ab617462","dweb:/ipfs/QmSayHRuL6dwMfYNBNe29Sp63oeNDoemZttLWCv1urWCZc"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/VotesBase.sol":{"keccak256":"0x41049b5967fcceaf40dab9bb2863a701ba5aa68fa219321773028498c61e6add","urls":["bzz-raw://e63ecb4168e2b2f4819e606bf2b66195b48e42bd5d22a3def701dac016160112","dweb:/ipfs/QmVJxvxjkTE9cH44DRXCwGntEyPRgsVDBiw2AiCT1KNDBC"],"license":"MIT"},"contracts/src/diamond/facets/governance/votes/VotesStorage.sol":{"keccak256":"0x87a2f9c85f63fcfa8ce2dc14d5a9a6118b33fd7000fb988b300519dec9b89629","urls":["bzz-raw://daef1e04a36eb664ec08d4627a2038f3decbeac93b13a2c651b52681ef6f5f5e","dweb:/ipfs/QmbV5SXhZnUW52HLEbhNhKeRXDCyPR6zAJRa98Vh3m9ptF"],"license":"MIT"},"contracts/src/diamond/facets/initializable/Initializable.sol":{"keccak256":"0xe02e99665b5acb22d5c508c3bda97c35acd2597ce0a58569a19cc12f0010da90","urls":["bzz-raw://b586a51dbe63e8763ae0b2b3dadd5c8559f47bc8cbaa0e9fe52aaec4c3677552","dweb:/ipfs/QmRtaVikg6YDwzUAtY7WV793taZgT1ZxyMB4PLAEqGBeCC"],"license":"MIT"},"contracts/src/diamond/facets/initializable/InitializableStorage.sol":{"keccak256":"0xf8170e6977d685c218f65185478fbb9916e64f63aab1dcd195056438466f458a","urls":["bzz-raw://83ea3cf77f012eef93d10593e3beded36b449611063fd8dfbdb44e4346f87eb4","dweb:/ipfs/QmVasL7QnxXEmiUsLJzpfig8717zLUhZfyQxiBbFGDEVVg"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IERC165.sol":{"keccak256":"0x486758ee326820b0dd468c6a7a90fda8d67d48d3114792c587cee0e8417b366b","urls":["bzz-raw://b695090abcec8c2d487d73961265030fa4f64ecd84f6d80b85c6c7d4d9142ea0","dweb:/ipfs/QmQTKuV2WEoy6vTCRxL39zEqubLUf9NhoC2BGB19CiYqRq"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionBase.sol":{"keccak256":"0x93ac0d2f738615e69dbcfd5fa6ac5840ec48329ac92094605638bcf2abd6708f","urls":["bzz-raw://fbcb2cd0e47b6ef39bec6cbdeedf6e292e8849d4e25f4bb6c72ee574446b02f1","dweb:/ipfs/QmcDwxFALaQBLbsGsjdttkQkE48PdKWq43XY7f34MxqZSw"],"license":"MIT"},"contracts/src/diamond/facets/introspection/IntrospectionStorage.sol":{"keccak256":"0x306f41ef86bc5050a28c1dbf855d3f6f623be4aebc0a0f96474dae85979f7763","urls":["bzz-raw://dbad6f8e6685690ae75f6c9066972a45400b45307245feab8990af18a4c38e91","dweb:/ipfs/QmcTUqiSL1z2nwokpNNsXQkjVTaFdFJiM2exguZpPDDXEM"],"license":"MIT"},"contracts/src/diamond/facets/ownable/IERC173.sol":{"keccak256":"0x677cebaa56ee33950d04ba5baef02188da026beb7cf669bdf580410cb1f1c303","urls":["bzz-raw://d5be56219a4ab8d9709db7ffb74c73ee1be268b8f77308ef7a72d8f2820fb30b","dweb:/ipfs/QmeTuAZMwRf3uRHMtHEd7M7LvGyRAEmoCikF4Pb6dCAKXd"],"license":"MIT"},"contracts/src/diamond/facets/ownable/OwnableBase.sol":{"keccak256":"0x272abaecc104d5f23d77a623cf1548620d24b0f447eb2a12144e27561ff489f2","urls":["bzz-raw://fcb8c20ff7346bdc5dba82e6680cc0ea64087460a12153e3b6c3416f6addf875","dweb:/ipfs/QmfEEufJBzudSDekQteQkb3CzmnzUPT3GDhNgVpHNC9xaf"],"license":"MIT"},"contracts/src/diamond/facets/ownable/OwnableStorage.sol":{"keccak256":"0xda650482ce08c04110366cb01408aaabd01383d9c504b7cacfb2674aae688dcd","urls":["bzz-raw://694f42ffb353fccaa1eadf91dee3a3cee7253e3f357bcba2b175fd7be701e27e","dweb:/ipfs/QmPxxVerATSYrNLp7snnSvNVsbLPm1wzHULhBbtR333eik"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721A.sol":{"keccak256":"0x5662ab29272ecaabdaf5792c368a71693fcad9df24566f9e470ff1ec3510fd8f","urls":["bzz-raw://2ef719ff8dce040daf5bcfe328f3463261fb3acfe5c41c589365143916748cc3","dweb:/ipfs/QmUm4PHj4y2237H7hnCwnfRyTWbp1DHWpc8GN26M6T4ToC"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721ABase.sol":{"keccak256":"0x27b65225578e0cd90b90ab4ce91c4dfe621b43a58df227d3fdb0494c8f317d62","urls":["bzz-raw://70db26d8735dd6b7e7a847712603f793728521ebd05ad8640d6068b395dce3ba","dweb:/ipfs/QmYeC1EM3XQWgHjQKpT41TksDFcCzr4Sz8JPRdagFms7mE"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/ERC721AStorage.sol":{"keccak256":"0x1f85619c07524883b96fd2f3ca92ea3e2343466c0832cc03f6eb1cbb828896f4","urls":["bzz-raw://06adf57b874d40a123eb3e7bf89cd7f49d29a93c142b26336263529ccd692e04","dweb:/ipfs/QmQAhsfGRBPuBcSE1mqocTvutK9c4NfJPsbN4XQXtbsLey"],"license":"MIT"},"contracts/src/diamond/facets/token/ERC721A/IERC721A.sol":{"keccak256":"0xb57dee608d37c98c32ac38fa3c84e77f5962cf39a0697815ad209edf55593782","urls":["bzz-raw://092750f101ae80c5bace9fd53ae87547a0aac6109cd58290609acd2ef489ce9d","dweb:/ipfs/QmREM18vUEQmcmnTSyR4XxHB9Ykqomc9RuCFZcWNiovgbz"],"license":"MIT"},"contracts/src/diamond/utils/Context.sol":{"keccak256":"0x4566c941f553d989324d4308c037fe0669062c746d6e5108ce533fcc8ffbcaac","urls":["bzz-raw://87908ef7e56c826210414cb25a50a3073188e96e6ac2afc2b56d0bba6abb48a7","dweb:/ipfs/QmT41NMs4REQxxeuR48JUcB39UTgcaKdUvizc2XawUF5aq"],"license":"MIT"},"contracts/src/diamond/utils/Nonces.sol":{"keccak256":"0xba683e7b1dc9bc812c0c33ce7efb8e7505a881ee475b8ef2230af11377418732","urls":["bzz-raw://69408950cf9d4fb74bbf79e475d338363ca4f7a492de5827b3f93a02da443732","dweb:/ipfs/QmT6nt6Dpp2stTjCDEzepf6unVE7bcetXdshPnwmJFfXaf"],"license":"MIT"},"contracts/src/diamond/utils/cryptography/EIP712.sol":{"keccak256":"0xa4854e007ca8e80368e578576d65d47cb4022a7c031bc7abb4d94df5498935eb","urls":["bzz-raw://ed66cebd356963dd8bc33459fea266da15cb87bd4f586399dba84b525e0fcd6a","dweb:/ipfs/QmXqgEnTnEusLhXXuycj73PZK1pRrw6ES4BQvEKfvKa2FR"],"license":"MIT"},"contracts/src/diamond/utils/cryptography/IERC5267.sol":{"keccak256":"0x29135f4d4e9e50c65240a1837a077ba44470aadd8c9bad0f5bb1cb32d50018e7","urls":["bzz-raw://91eb5c894de0b09144d3b1c689f72fb26d638eb2eaa3217396ed86d41610214f","dweb:/ipfs/Qmexr1dtSeFD8sbrbk3U8pp1WUL5Caq3VoeeHy6bwmxMbD"],"license":"MIT"},"contracts/src/spaces/facets/guardian/GuardianBase.sol":{"keccak256":"0xe76248dbf516fb6a32934062fac4f2b3e19f83ba1a4df04d55b55c15be0265d0","urls":["bzz-raw://a2059a7b6b82f2de1654ff8bca374e32fa000e613ffb706197edd09565cb7a70","dweb:/ipfs/QmUFTcFy64pFTwEwtGFrkoL84eZi7zVjAp46k1sWpAfUn5"],"license":"MIT"},"contracts/src/spaces/facets/guardian/GuardianStorage.sol":{"keccak256":"0xb6d7ae2fe80c40120223e660bf5888612f8e93c0e7dc70d6d2532d3e366f0674","urls":["bzz-raw://ff77c0e4ad11ae6967a46d67c38422e06e45eb4e06aa7d99d611b8e4672aae5f","dweb:/ipfs/QmfZui9wfZimGa4Q93zudgdit6ZUSgTET2WCKYWB7QkpVD"],"license":"MIT"},"contracts/src/spaces/facets/guardian/IGuardian.sol":{"keccak256":"0x7490883034a06f610a169e87f2bd15f5c904c87ea1eda80da63d17045b77b5bd","urls":["bzz-raw://44ea9689c8d31f5c31ebb470ac85f2d6be30d7698dbe4730454e19c5f72898f7","dweb:/ipfs/QmUsWEQ4qFif8GghZGT8b7K52WrTbSgfjZPpPGxFzhz2kr"],"license":"MIT"},"contracts/src/spaces/facets/owner/ISpaceOwner.sol":{"keccak256":"0x75fef729920165a9cc37f7c212da288bc983bb11e39544a59c657cd9fa2e204a","urls":["bzz-raw://1baac2d168e5ee3269b0b6b59ce7df29e63c38ef3d484850ed05f0a56ab59464","dweb:/ipfs/QmZPxAByZ4PiQFUq45AM8LEJ2YC6n8XxE6nRHgf8Kg7nxZ"],"license":"MIT"},"contracts/src/spaces/facets/owner/SpaceOwner.sol":{"keccak256":"0x2aca80d58e543ed53cd74703b88bc0984bbc5fe123248ec6fc6ab85f9fd19dab","urls":["bzz-raw://50f09db550b493adcd6bf5922e5a2202483776a1ce1c561d3f772170d5e53253","dweb:/ipfs/QmUycNN84TbHZuTvXcGYmKizUEvaeEFZfVe98eQRFyiGQU"],"license":"MIT"},"contracts/src/spaces/facets/owner/SpaceOwnerBase.sol":{"keccak256":"0xa1cb5b0bc9aec89791654a4725f7c42798245a432f3f3a741e4999fd12020f77","urls":["bzz-raw://720a72562f1f8c129b3b276a4fb67cf403bc628db1534fed04e45a79b7773cb1","dweb:/ipfs/QmNu34EsvFQjbaE8MwdxkAn4iXGDUY4wYq2GVBwUEu1uRh"],"license":"MIT"},"contracts/src/spaces/facets/owner/SpaceOwnerStorage.sol":{"keccak256":"0xb008bca5ced76250a86fa507a18d1f5e77c2b7bd9fa7df3c11a7c048d148dc5a","urls":["bzz-raw://2adccdd8c8b1407dd973b2b1b5cd4be0713d15bd0350ae9b2f7e1b7a9b2ace50","dweb:/ipfs/QmW6Q8XXhXhDqDSqkBBsN9MqmqEidDPySS83YwXfE7Sx5Y"],"license":"MIT"},"contracts/src/spaces/facets/owner/SpaceOwnerUriBase.sol":{"keccak256":"0x089ce5c4408e752e52a820135620e312a08e361b5580ddcdd8ab8b4254067367","urls":["bzz-raw://71b3db0d8d498344f3290f46f356f635c63ec4e60264855b956ee8c566509fcb","dweb:/ipfs/QmXkU1ZfWm5kpL9Q9HzYMvzJvhMkAf4k7mMohQGUQxMe6p"],"license":"MIT"},"contracts/src/utils/Validator.sol":{"keccak256":"0x4f469950ab5fb75049aec2b55f9f78ade4bbc3a35e072acaadb2fbe9eab6fb5f","urls":["bzz-raw://5689fa29f227bdedd2f085799b197a3c807e08a6520b7bcc953bd4f0c286c306","dweb:/ipfs/QmeVULCHP8i43FGhkMs6Y8zxJDiN59f3Pw3bRPc3QdcLCt"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf","urls":["bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c","dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435","urls":["bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c","dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0xe19a4d5f31d2861e7344e8e535e2feafb913d806d3e2b5fe7782741a2a7094fe","urls":["bzz-raw://4aed79c0fa6f0546ed02f2f683e8f77f0fd2ed7eb34d8bbf3d373c9a6d95b13c","dweb:/ipfs/QmWqVz6UAVqmnWU5pqYPt1o6iDEZyPaBraAA3rKfTTSfYj"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"lib/base64/base64.sol":{"keccak256":"0xa73959e6ef0b693e4423a562e612370160b934a75e618361ddd8c9c4b8ddbaaf","urls":["bzz-raw://17c12e16d8d66f3af15d8787920bd41ca6c1e7517a212a6b9cebd4b6d38f36fe","dweb:/ipfs/QmcXMnZUXEz6LRKsm3CSvqdPboAzmezavi8bTg2dRxM2yE"],"license":"MIT"}},"version":1},"id":251} \ No newline at end of file diff --git a/packages/generated/dev/abis/StreamFlags.json b/packages/generated/dev/abis/StreamFlags.json index d8b46e224..366f3edcb 100644 --- a/packages/generated/dev/abis/StreamFlags.json +++ b/packages/generated/dev/abis/StreamFlags.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60206037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fd","sourceMap":"543:53:48:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;543:53:48;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fd","sourceMap":"543:53:48:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/river/registry/facets/stream/StreamRegistry.sol\":\"StreamFlags\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/river/registry/facets/stream/IStreamRegistry.sol\":{\"keccak256\":\"0x1f4373bfa9cdbaa460a8c8870ae059226e1c4c2b03055d92994d582f8affbf4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2eee44be95c48eba75a2283aef37771861cc5c00c32b7bbba55f4408352cf79\",\"dweb:/ipfs/QmVgv1dk5uTNcmagVUH1L1h4aHKpUhSvJPzzuQbSVAn1eT\"]},\"contracts/src/river/registry/facets/stream/StreamRegistry.sol\":{\"keccak256\":\"0x3ee1ae880161a90c74e384b58b1a8f317f1e95342b28cf71db47f01337db7dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://048bf90faa715f9c532a91d74aeab44a1c20183d04de9a80b7d1ce542325a5d5\",\"dweb:/ipfs/QmW2eXQZWiRYC5cPX1UKVNTb9S3RngAUamCD9qpfiuyibs\"]},\"contracts/src/river/registry/libraries/RegistryErrors.sol\":{\"keccak256\":\"0x411bd2bca08451c59880f46aa3ce0ac6b20a1cfa8a8836e4ce035fad57bce497\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d8b0fff68a90994db10dd30f26f4f399027295152060b65fadaab76768f6501\",\"dweb:/ipfs/QmdJsGe2utFn1ju8YKkZpshVGNgUbfkkZP77LprQ43BcPP\"]},\"contracts/src/river/registry/libraries/RegistryStorage.sol\":{\"keccak256\":\"0xd45a126f3a7ce156824b019adf5c2832236421da770a02c38a1fa5e789411201\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6edc5efd37e99112a4f1ed8ca56d9f4034c36540bfbe3854b098b5b03cb5c9c4\",\"dweb:/ipfs/QmZKR5pkUVUzxizh6YdDFXenssUfKnJCD15RMgh1T74AcH\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/river/registry/facets/stream/StreamRegistry.sol":"StreamFlags"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/river/registry/facets/stream/IStreamRegistry.sol":{"keccak256":"0x1f4373bfa9cdbaa460a8c8870ae059226e1c4c2b03055d92994d582f8affbf4f","urls":["bzz-raw://a2eee44be95c48eba75a2283aef37771861cc5c00c32b7bbba55f4408352cf79","dweb:/ipfs/QmVgv1dk5uTNcmagVUH1L1h4aHKpUhSvJPzzuQbSVAn1eT"],"license":"MIT"},"contracts/src/river/registry/facets/stream/StreamRegistry.sol":{"keccak256":"0x3ee1ae880161a90c74e384b58b1a8f317f1e95342b28cf71db47f01337db7dfb","urls":["bzz-raw://048bf90faa715f9c532a91d74aeab44a1c20183d04de9a80b7d1ce542325a5d5","dweb:/ipfs/QmW2eXQZWiRYC5cPX1UKVNTb9S3RngAUamCD9qpfiuyibs"],"license":"MIT"},"contracts/src/river/registry/libraries/RegistryErrors.sol":{"keccak256":"0x411bd2bca08451c59880f46aa3ce0ac6b20a1cfa8a8836e4ce035fad57bce497","urls":["bzz-raw://7d8b0fff68a90994db10dd30f26f4f399027295152060b65fadaab76768f6501","dweb:/ipfs/QmdJsGe2utFn1ju8YKkZpshVGNgUbfkkZP77LprQ43BcPP"],"license":"MIT"},"contracts/src/river/registry/libraries/RegistryStorage.sol":{"keccak256":"0xd45a126f3a7ce156824b019adf5c2832236421da770a02c38a1fa5e789411201","urls":["bzz-raw://6edc5efd37e99112a4f1ed8ca56d9f4034c36540bfbe3854b098b5b03cb5c9c4","dweb:/ipfs/QmZKR5pkUVUzxizh6YdDFXenssUfKnJCD15RMgh1T74AcH"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":48} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60206037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fd","sourceMap":"543:53:197:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;543:53:197;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fd","sourceMap":"543:53:197:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/river/registry/facets/stream/StreamRegistry.sol\":\"StreamFlags\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/river/registry/facets/stream/IStreamRegistry.sol\":{\"keccak256\":\"0x1f4373bfa9cdbaa460a8c8870ae059226e1c4c2b03055d92994d582f8affbf4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2eee44be95c48eba75a2283aef37771861cc5c00c32b7bbba55f4408352cf79\",\"dweb:/ipfs/QmVgv1dk5uTNcmagVUH1L1h4aHKpUhSvJPzzuQbSVAn1eT\"]},\"contracts/src/river/registry/facets/stream/StreamRegistry.sol\":{\"keccak256\":\"0xc2c64bcda69bf4b9e5f7f2be8df0bad10b2bc4f609d668c7bb70fc54f31ab637\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb08c863dbdad3bf2a20680fd5433f5d6d3e81aabd54b7082baaff80b422f587\",\"dweb:/ipfs/QmTAGyX3vd6WneeacZwqWi17JyQdG9kuC2CUTBu4EYiT7D\"]},\"contracts/src/river/registry/libraries/RegistryErrors.sol\":{\"keccak256\":\"0x411bd2bca08451c59880f46aa3ce0ac6b20a1cfa8a8836e4ce035fad57bce497\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d8b0fff68a90994db10dd30f26f4f399027295152060b65fadaab76768f6501\",\"dweb:/ipfs/QmdJsGe2utFn1ju8YKkZpshVGNgUbfkkZP77LprQ43BcPP\"]},\"contracts/src/river/registry/libraries/RegistryStorage.sol\":{\"keccak256\":\"0xd45a126f3a7ce156824b019adf5c2832236421da770a02c38a1fa5e789411201\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6edc5efd37e99112a4f1ed8ca56d9f4034c36540bfbe3854b098b5b03cb5c9c4\",\"dweb:/ipfs/QmZKR5pkUVUzxizh6YdDFXenssUfKnJCD15RMgh1T74AcH\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/river/registry/facets/stream/StreamRegistry.sol":"StreamFlags"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/river/registry/facets/stream/IStreamRegistry.sol":{"keccak256":"0x1f4373bfa9cdbaa460a8c8870ae059226e1c4c2b03055d92994d582f8affbf4f","urls":["bzz-raw://a2eee44be95c48eba75a2283aef37771861cc5c00c32b7bbba55f4408352cf79","dweb:/ipfs/QmVgv1dk5uTNcmagVUH1L1h4aHKpUhSvJPzzuQbSVAn1eT"],"license":"MIT"},"contracts/src/river/registry/facets/stream/StreamRegistry.sol":{"keccak256":"0xc2c64bcda69bf4b9e5f7f2be8df0bad10b2bc4f609d668c7bb70fc54f31ab637","urls":["bzz-raw://eb08c863dbdad3bf2a20680fd5433f5d6d3e81aabd54b7082baaff80b422f587","dweb:/ipfs/QmTAGyX3vd6WneeacZwqWi17JyQdG9kuC2CUTBu4EYiT7D"],"license":"MIT"},"contracts/src/river/registry/libraries/RegistryErrors.sol":{"keccak256":"0x411bd2bca08451c59880f46aa3ce0ac6b20a1cfa8a8836e4ce035fad57bce497","urls":["bzz-raw://7d8b0fff68a90994db10dd30f26f4f399027295152060b65fadaab76768f6501","dweb:/ipfs/QmdJsGe2utFn1ju8YKkZpshVGNgUbfkkZP77LprQ43BcPP"],"license":"MIT"},"contracts/src/river/registry/libraries/RegistryStorage.sol":{"keccak256":"0xd45a126f3a7ce156824b019adf5c2832236421da770a02c38a1fa5e789411201","urls":["bzz-raw://6edc5efd37e99112a4f1ed8ca56d9f4034c36540bfbe3854b098b5b03cb5c9c4","dweb:/ipfs/QmZKR5pkUVUzxizh6YdDFXenssUfKnJCD15RMgh1T74AcH"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":197} \ No newline at end of file diff --git a/packages/generated/dev/abis/StreamFlags.metadata.json b/packages/generated/dev/abis/StreamFlags.metadata.json index cc28bcef2..5da45c575 100644 --- a/packages/generated/dev/abis/StreamFlags.metadata.json +++ b/packages/generated/dev/abis/StreamFlags.metadata.json @@ -51,10 +51,10 @@ "license": "MIT" }, "contracts/src/river/registry/facets/stream/StreamRegistry.sol": { - "keccak256": "0x3ee1ae880161a90c74e384b58b1a8f317f1e95342b28cf71db47f01337db7dfb", + "keccak256": "0xc2c64bcda69bf4b9e5f7f2be8df0bad10b2bc4f609d668c7bb70fc54f31ab637", "urls": [ - "bzz-raw://048bf90faa715f9c532a91d74aeab44a1c20183d04de9a80b7d1ce542325a5d5", - "dweb:/ipfs/QmW2eXQZWiRYC5cPX1UKVNTb9S3RngAUamCD9qpfiuyibs" + "bzz-raw://eb08c863dbdad3bf2a20680fd5433f5d6d3e81aabd54b7082baaff80b422f587", + "dweb:/ipfs/QmTAGyX3vd6WneeacZwqWi17JyQdG9kuC2CUTBu4EYiT7D" ], "license": "MIT" }, diff --git a/packages/generated/dev/abis/StreamRegistry.bin b/packages/generated/dev/abis/StreamRegistry.bin index 878c5a7fe..0a0b7ebd7 100644 --- a/packages/generated/dev/abis/StreamRegistry.bin +++ b/packages/generated/dev/abis/StreamRegistry.bin @@ -1 +1 @@ -608060405234801561001057600080fd5b5061220f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639ee86d381161008c578063ca78c41a11610066578063ca78c41a146101e8578063d7a3158a14610209578063ee885b121461021c578063ff3a14ab1461022f57600080fd5b80639ee86d38146101ac578063c0f22084146101bf578063c87d1324146101d557600080fd5b80633c2544d1116100c85780633c2544d11461014057806368b454df146101625780636b883c391461018257806386789fc61461019757600080fd5b80631290abe8146100ef57806332705ac4146101185780633bd84c0c14610138575b600080fd5b6101026100fd3660046119ee565b610242565b60405161010f9190611a98565b60405180910390f35b61012b610126366004611ac7565b61036d565b60405161010f9190611b63565b61012b61061d565b61015361014e3660046119ee565b61078e565b60405161010f93929190611bbc565b6101756101703660046119ee565b61095f565b60405161010f9190611bf1565b610195610190366004611cb9565b610a86565b005b61019f610ceb565b60405161010f9190611d9c565b6101956101ba366004611de0565b610cfc565b6101c7610eb9565b60405190815260200161010f565b6101c76101e3366004611ac7565b610ec4565b6101fb6101f6366004611e0c565b610f6c565b60405161010f929190611e2e565b610195610217366004611e79565b611165565b61019561022a366004611de0565b6112f0565b61019561023d366004611ec9565b61153c565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061027690836117a3565b6102ba5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b60405180910390fd5b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561035d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161033f575b5050505050815250509050919050565b6060600061037a816117c0565b6001600160401b0381111561039157610391611c04565b6040519080825280602002602001820160405280156103ba578160200160208202803683370190505b5090506000805b6103cb60006117c0565b8110156104805760006103de81836117ca565b60008181526002602052604081209192505b600282015481101561047257876001600160a01b031682600201828154811061041b5761041b611f50565b6000918252602090912001546001600160a01b03160361046a5782868661044181611f7c565b975063ffffffff168151811061045957610459611f50565b602002602001018181525050610472565b6001016103f0565b5050508060010190506103c1565b5060008163ffffffff166001600160401b038111156104a1576104a1611c04565b6040519080825280602002602001820160405280156104da57816020015b6104c76118ed565b8152602001906001900390816104bf5790505b50905060005b8263ffffffff1681101561061457604051806040016040528085838151811061050b5761050b611f50565b602002602001015181526020016000600201600087858151811061053157610531611f50565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b9091041660608201526002820180548451818702810187019095528085529194929360808601939092908301828280156105e357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105c5575b50505050508152505081525082828151811061060157610601611f50565b60209081029190910101526001016104e0565b50949350505050565b6060600061062a816117c0565b6001600160401b0381111561064157610641611c04565b60405190808252806020026020018201604052801561067a57816020015b6106676118ed565b81526020019060019003908161065f5790505b50905060005b61068a60006117c0565b81101561078857600061069d81836117ca565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b909104166060820152918101805486518186028101860190975280875296975093958387019592949193608086019392919083018282801561075657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610738575b50505050508152505081525083838151811061077457610774611f50565b602090810291909101015250600101610680565b50919050565b6040805160a0810182526000808252602082018190529181018290526060808201839052608082018190529091906107c682856117a3565b6108015760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b909104166060820152948201805484518187028101870190955280855292969591949193879360808601939192918301828280156108bb57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161089d575b50505050508152505092508080546108d290611f9f565b80601f01602080910402602001604051908101604052809291908181526020018280546108fe90611f9f565b801561094b5780601f106109205761010080835404028352916020019161094b565b820191906000526020600020905b81548152906001019060200180831161092e57829003601f168201915b505050505090509250925092509193909250565b6109676118ed565b61097160006117c0565b82106109ae5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b60006109ba81846117ca565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610a7357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a55575b5050509190925250505090529392505050565b336000818152600760205260409020600201546001600160a01b0316610ae257604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b610aed6000866117a3565b15610b2e57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526102b19190600401611f3d565b60005b8451811015610bb257610b6a858281518110610b4f57610b4f611f50565b602002602001015160006005016117d690919063ffffffff16565b610baa57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600101610b31565b506040805160a081018252848152600060208201819052918101829052606081018290526080810186905290610be890876117f8565b5060008681526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff19909916919094161796909617959095161790935560808401518051859493610c7893908501920190611937565b5050506000868152600360205260409020610c938482612024565b5060008681526004602052604090819020859055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb90610cdb9088908890889088906120e3565b60405180910390a1505050505050565b6060610cf76000611804565b905090565b81610d086000826117a3565b610d435760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b6001600160a01b03808316600090815260076020526040902060020154839116610da357604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b6000848152600260205260408120905b6002820154811015610e3c57846001600160a01b0316826002018281548110610dde57610dde611f50565b6000918252602090912001546001600160a01b031603610e3457604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600101610db3565b5060028101805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b03881690811790915560408051898152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600160405180910390a15050505050565b6000610cf7816117c0565b600080805b610ed360006117c0565b811015610f65576000610ee681836117ca565b60008181526002602052604081209192505b6002820154811015610f5757866001600160a01b0316826002018281548110610f2357610f23611f50565b6000918252602090912001546001600160a01b031603610f4f5784610f4781612156565b955050610f57565b600101610ef8565b505050806001019050610ec9565b5092915050565b60606000828410604051806040016040528060078152602001664241445f41524760c81b81525090610fb15760405162461bcd60e51b81526004016102b19190611f3d565b506000610fbe858561216f565b6001600160401b03811115610fd557610fd5611c04565b60405190808252806020026020018201604052801561100e57816020015b610ffb6118ed565b815260200190600190039081610ff35790505b50905060005b61101e60006117c0565b6110288288612182565b10801561103d57508461103b8288612182565b105b1561114d5760006110596110518389612182565b6000906117ca565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b909104166060820152918101805486518186028101860190975280875296975093958387019592949193608086019392919083018282801561111257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110f4575b50505050508152505081525083838151811061113057611130611f50565b6020026020010181905250508061114690612156565b9050611014565b508061115960006117c0565b90969410159450505050565b336000818152600760205260409020600201546001600160a01b03166111c157604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b6111cc6000876117a3565b6112075760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b038616179055821561126f576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b03166001036112975760008781526003602052604081206112979161199c565b60408051888152602081018790526001600160401b03861681830152841515606082015290517fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b9181900360800190a150505050505050565b816112fc6000826117a3565b6113375760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b6001600160a01b0380831660009081526007602052604090206002015483911661139757604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600084815260026020526040812090805b60028301548110156114b157856001600160a01b03168360020182815481106113d3576113d3611f50565b6000918252602090912001546001600160a01b0316036114a9576002830180546113ff9060019061216f565b8154811061140f5761140f611f50565b6000918252602090912001546002840180546001600160a01b03909216918390811061143d5761143d611f50565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508260020180548061147e5761147e612195565b600082815260209020810160001990810180546001600160a01b0319169055019055600191506114b1565b6001016113a8565b50806114f357604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b604080518781526001600160a01b03871660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f90606001610cdb565b336000818152600760205260409020600201546001600160a01b031661159857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b60005b8281101561179d57368484838181106115b6576115b6611f50565b60a0029190910191506115cd9050600082356117a3565b611645577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561160960808501606086016121ab565b60408051808201825260098152681393d517d193d5539160ba1b6020820152905161163794939291906121c6565b60405180910390a150611795565b80356000908152600260205260409081902090820135815561166d60808301606084016121ab565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556116a060a08301608084016121f4565b156116d8576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b6116e860808301606084016121ab565b6001600160401b031660010361171157813560009081526003602052604081206117119161199c565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561174960808601606087016121ab565b61175960a08701608088016121f4565b60405161178a949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b60010161159b565b50505050565b600081815260018301602052604081205415155b90505b92915050565b60006117ba825490565b60006117b78383611818565b6001600160a01b038116600090815260018301602052604081205415156117b7565b60006117b78383611842565b6060600061181183611891565b9392505050565b600082600001828154811061182f5761182f611f50565b9060005260206000200154905092915050565b6000818152600183016020526040812054611889575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556117ba565b5060006117ba565b6060816000018054806020026020016040519081016040528092919081815260200182805480156118e157602002820191906000526020600020905b8154815260200190600101908083116118cd575b50505050509050919050565b6040805180820190915260008152602081016119326040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b82805482825590600052602060002090810192821561198c579160200282015b8281111561198c57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611957565b506119989291506119d9565b5090565b5080546119a890611f9f565b6000825580601f106119b8575050565b601f0160209004906000526020600020908101906119d691906119d9565b50565b5b8082111561199857600081556001016119da565b600060208284031215611a0057600080fd5b5035919050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015611a8d5784516001600160a01b03168252938301936001929092019190830190611a64565b509695505050505050565b6020815260006117b76020830184611a07565b80356001600160a01b0381168114611ac257600080fd5b919050565b600060208284031215611ad957600080fd5b6117b782611aab565b805182526000602082015160406020850152611b016040850182611a07565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015611b5657601f19868403018952611b44838351611ae2565b98840198925090830190600101611b28565b5090979650505050505050565b6020815260006117b76020830184611b09565b6000815180845260005b81811015611b9c57602081850181015186830182015201611b80565b506000602082860101526020601f19601f83011685010191505092915050565b606081526000611bcf6060830186611a07565b8460208401528281036040840152611be78185611b76565b9695505050505050565b6020815260006117b76020830184611ae2565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c4257611c42611c04565b604052919050565b600082601f830112611c5b57600080fd5b81356001600160401b03811115611c7457611c74611c04565b611c87601f8201601f1916602001611c1a565b818152846020838601011115611c9c57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611ccf57600080fd5b843593506020808601356001600160401b0380821115611cee57600080fd5b818801915088601f830112611d0257600080fd5b813581811115611d1457611d14611c04565b8060051b611d23858201611c1a565b918252838101850191858101908c841115611d3d57600080fd5b948601945b83861015611d6257611d5386611aab565b82529486019490860190611d42565b9850505050604088013594506060880135925080831115611d8257600080fd5b5050611d9087828801611c4a565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015611dd457835183529284019291840191600101611db8565b50909695505050505050565b60008060408385031215611df357600080fd5b82359150611e0360208401611aab565b90509250929050565b60008060408385031215611e1f57600080fd5b50508035926020909101359150565b604081526000611e416040830185611b09565b905082151560208301529392505050565b80356001600160401b0381168114611ac257600080fd5b80358015158114611ac257600080fd5b600080600080600060a08688031215611e9157600080fd5b853594506020860135935060408601359250611eaf60608701611e52565b9150611ebd60808701611e69565b90509295509295909350565b60008060208385031215611edc57600080fd5b82356001600160401b0380821115611ef357600080fd5b818501915085601f830112611f0757600080fd5b813581811115611f1657600080fd5b86602060a083028501011115611f2b57600080fd5b60209290920196919550909350505050565b6020815260006117b76020830184611b76565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff808316818103611f9557611f95611f66565b6001019392505050565b600181811c90821680611fb357607f821691505b60208210810361078857634e487b7160e01b600052602260045260246000fd5b601f82111561201f576000816000526020600020601f850160051c81016020861015611ffc5750805b601f850160051c820191505b8181101561201b57828155600101612008565b5050505b505050565b81516001600160401b0381111561203d5761203d611c04565b6120518161204b8454611f9f565b84611fd3565b602080601f831160018114612086576000841561206e5750858301515b600019600386901b1c1916600185901b17855561201b565b600085815260208120601f198616915b828110156120b557888601518255948401946001909101908401612096565b50858210156120d35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006080820186835260206080602085015281875180845260a08601915060208901935060005b8181101561212f5784516001600160a01b03168352938301939183019160010161210a565b505086604086015284810360608601526121498187611b76565b9998505050505050505050565b60006001820161216857612168611f66565b5060010190565b818103818111156117ba576117ba611f66565b808201808211156117ba576117ba611f66565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156121bd57600080fd5b6117b782611e52565b8481528360208201526001600160401b0383166040820152608060608201526000611be76080830184611b76565b60006020828403121561220657600080fd5b6117b782611e6956 \ No newline at end of file +608060405234801561001057600080fd5b50612218806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639ee86d381161008c578063ca78c41a11610066578063ca78c41a146101e8578063d7a3158a14610209578063ee885b121461021c578063ff3a14ab1461022f57600080fd5b80639ee86d38146101ac578063c0f22084146101bf578063c87d1324146101d557600080fd5b80633c2544d1116100c85780633c2544d11461014057806368b454df146101625780636b883c391461018257806386789fc61461019757600080fd5b80631290abe8146100ef57806332705ac4146101185780633bd84c0c14610138575b600080fd5b6101026100fd3660046119f1565b610242565b60405161010f9190611a9b565b60405180910390f35b61012b610126366004611aca565b61036d565b60405161010f9190611b66565b61012b61061f565b61015361014e3660046119f1565b61078d565b60405161010f93929190611bbf565b6101756101703660046119f1565b61095e565b60405161010f9190611bf4565b610195610190366004611cbc565b610a8a565b005b61019f610cf1565b60405161010f9190611d9f565b6101956101ba366004611de3565b610d02565b6101c7610ec3565b60405190815260200161010f565b6101c76101e3366004611aca565b610ece565b6101fb6101f6366004611e0f565b610f7c565b60405161010f929190611e31565b610195610217366004611e7c565b61116d565b61019561022a366004611de3565b6112f0565b61019561023d366004611ecc565b61153d565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061027690836117a6565b6102ba5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b60405180910390fd5b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561035d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161033f575b5050505050815250509050919050565b6060600061037a816117c3565b90506000816001600160401b0381111561039657610396611c07565b6040519080825280602002602001820160405280156103bf578160200160208202803683370190505b5090506000805b838110156104815760006103da81836117cd565b600081815260026020819052604082209081015492935091905b8181101561047257896001600160a01b031683600201828154811061041b5761041b611f53565b6000918252602090912001546001600160a01b03160361046a5783878761044181611f7f565b985063ffffffff168151811061045957610459611f53565b602002602001018181525050610472565b6001016103f4565b505050508060010190506103c6565b5060008163ffffffff166001600160401b038111156104a2576104a2611c07565b6040519080825280602002602001820160405280156104db57816020015b6104c86118f0565b8152602001906001900390816104c05790505b50905060005b8263ffffffff1681101561061557604051806040016040528085838151811061050c5761050c611f53565b602002602001015181526020016000600201600087858151811061053257610532611f53565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b9091041660608201526002820180548451818702810187019095528085529194929360808601939092908301828280156105e457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105c6575b50505050508152505081525082828151811061060257610602611f53565b60209081029190910101526001016104e1565b5095945050505050565b6060600061062c816117c3565b90506000816001600160401b0381111561064857610648611c07565b60405190808252806020026020018201604052801561068157816020015b61066e6118f0565b8152602001906001900390816106665790505b50905060005b8281101561078657600061069b81836117cd565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b909104166060820152918101805486518186028101860190975280875296975093958387019592949193608086019392919083018282801561075457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610736575b50505050508152505081525083838151811061077257610772611f53565b602090810291909101015250600101610687565b5092915050565b6040805160a0810182526000808252602082018190529181018290526060808201839052608082018190529091906107c582856117a6565b6108005760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b909104166060820152948201805484518187028101870190955280855292969591949193879360808601939192918301828280156108ba57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161089c575b50505050508152505092508080546108d190611fa2565b80601f01602080910402602001604051908101604052809291908181526020018280546108fd90611fa2565b801561094a5780601f1061091f5761010080835404028352916020019161094a565b820191906000526020600020905b81548152906001019060200180831161092d57829003601f168201915b505050505090509250925092509193909250565b6109666118f0565b6000610971816117c3565b90508083106109b15760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b60006109bd81856117cd565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610a7657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a58575b505050919092525050509052949350505050565b336000818152600760205260409020600201546001600160a01b0316610ae657604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b610af16000866117a6565b15610b3257604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526102b19190600401611f40565b835160005b81811015610bb757610b6f868281518110610b5457610b54611f53565b602002602001015160006005016117d990919063ffffffff16565b610baf57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b600101610b37565b506040805160a081018252858152600060208201819052918101829052606081018290526080810187905290610bed90886117fb565b5060008781526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff19909916919094161796909617959095161790935560808401518051859493610c7d9390850192019061193a565b5050506000878152600360205260409020610c98858261202d565b5060008781526004602052604090819020869055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb90610ce09089908990899089906120ec565b60405180910390a150505050505050565b6060610cfd6000611807565b905090565b81610d0e6000826117a6565b610d495760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b6001600160a01b03808316600090815260076020526040902060020154839116610da957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b600084815260026020819052604082209081015490915b81811015610e4557856001600160a01b0316836002018281548110610de757610de7611f53565b6000918252602090912001546001600160a01b031603610e3d57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526102b19190600401611f40565b600101610dc0565b5060028201805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b038916908117909155604080518a8152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600160405180910390a1505050505050565b6000610cfd816117c3565b60008080610edb816117c3565b905060005b81811015610f73576000610ef481836117cd565b60008181526002602052604081209192505b6002820154811015610f6557876001600160a01b0316826002018281548110610f3157610f31611f53565b6000918252602090912001546001600160a01b031603610f5d5785610f558161215f565b965050610f65565b600101610f06565b505050806001019050610ee0565b50909392505050565b60606000828410604051806040016040528060078152602001664241445f41524760c81b81525090610fc15760405162461bcd60e51b81526004016102b19190611f40565b506000610fce8585612178565b6001600160401b03811115610fe557610fe5611c07565b60405190808252806020026020018201604052801561101e57816020015b61100b6118f0565b8152602001906001900390816110035790505b509050600061102c816117c3565b905060005b8161103c828961218b565b10801561105157508561104f828961218b565b105b1561116157600061106d611065838a61218b565b6000906117cd565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b909104166060820152918101805486518186028101860190975280875296975093958387019592949193608086019392919083018282801561112657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611108575b50505050508152505081525084838151811061114457611144611f53565b6020026020010181905250508061115a9061215f565b9050611031565b50909593101593505050565b336000818152600760205260409020600201546001600160a01b03166111c957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b6111d46000876117a6565b61120f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b0386161790558215611277576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b031660010361129f57600087815260036020526040812061129f9161199f565b60408051888152602081018790526001600160401b0386169181019190915283151560608201527fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b90608001610ce0565b816112fc6000826117a6565b6113375760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b6001600160a01b0380831660009081526007602052604090206002015483911661139757604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b6000848152600260208190526040822090810154909190815b818110156114b257866001600160a01b03168460020182815481106113d7576113d7611f53565b6000918252602090912001546001600160a01b0316036114aa5760028401611400600184612178565b8154811061141057611410611f53565b6000918252602090912001546002850180546001600160a01b03909216918390811061143e5761143e611f53565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508360020180548061147f5761147f61219e565b600082815260209020810160001990810180546001600160a01b0319169055019055600192506114b2565b6001016113b0565b50816114f457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b604080518881526001600160a01b03881660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f90606001610ce0565b336000818152600760205260409020600201546001600160a01b031661159957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b8160005b8181101561179f57368585838181106115b8576115b8611f53565b60a0029190910191506115cf9050600082356117a6565b611647577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561160b60808501606086016121b4565b60408051808201825260098152681393d517d193d5539160ba1b6020820152905161163994939291906121cf565b60405180910390a150611797565b80356000908152600260205260409081902090820135815561166f60808301606084016121b4565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556116a260a08301608084016121fd565b156116da576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b6116ea60808301606084016121b4565b6001600160401b031660010361171357813560009081526003602052604081206117139161199f565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561174b60808601606087016121b4565b61175b60a08701608088016121fd565b60405161178c949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b60010161159d565b5050505050565b600081815260018301602052604081205415155b90505b92915050565b60006117bd825490565b60006117ba838361181b565b6001600160a01b038116600090815260018301602052604081205415156117ba565b60006117ba8383611845565b6060600061181483611894565b9392505050565b600082600001828154811061183257611832611f53565b9060005260206000200154905092915050565b600081815260018301602052604081205461188c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556117bd565b5060006117bd565b6060816000018054806020026020016040519081016040528092919081815260200182805480156118e457602002820191906000526020600020905b8154815260200190600101908083116118d0575b50505050509050919050565b6040805180820190915260008152602081016119356040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b82805482825590600052602060002090810192821561198f579160200282015b8281111561198f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061195a565b5061199b9291506119dc565b5090565b5080546119ab90611fa2565b6000825580601f106119bb575050565b601f0160209004906000526020600020908101906119d991906119dc565b50565b5b8082111561199b57600081556001016119dd565b600060208284031215611a0357600080fd5b5035919050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015611a905784516001600160a01b03168252938301936001929092019190830190611a67565b509695505050505050565b6020815260006117ba6020830184611a0a565b80356001600160a01b0381168114611ac557600080fd5b919050565b600060208284031215611adc57600080fd5b6117ba82611aae565b805182526000602082015160406020850152611b046040850182611a0a565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015611b5957601f19868403018952611b47838351611ae5565b98840198925090830190600101611b2b565b5090979650505050505050565b6020815260006117ba6020830184611b0c565b6000815180845260005b81811015611b9f57602081850181015186830182015201611b83565b506000602082860101526020601f19601f83011685010191505092915050565b606081526000611bd26060830186611a0a565b8460208401528281036040840152611bea8185611b79565b9695505050505050565b6020815260006117ba6020830184611ae5565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c4557611c45611c07565b604052919050565b600082601f830112611c5e57600080fd5b81356001600160401b03811115611c7757611c77611c07565b611c8a601f8201601f1916602001611c1d565b818152846020838601011115611c9f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611cd257600080fd5b843593506020808601356001600160401b0380821115611cf157600080fd5b818801915088601f830112611d0557600080fd5b813581811115611d1757611d17611c07565b8060051b611d26858201611c1d565b918252838101850191858101908c841115611d4057600080fd5b948601945b83861015611d6557611d5686611aae565b82529486019490860190611d45565b9850505050604088013594506060880135925080831115611d8557600080fd5b5050611d9387828801611c4d565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015611dd757835183529284019291840191600101611dbb565b50909695505050505050565b60008060408385031215611df657600080fd5b82359150611e0660208401611aae565b90509250929050565b60008060408385031215611e2257600080fd5b50508035926020909101359150565b604081526000611e446040830185611b0c565b905082151560208301529392505050565b80356001600160401b0381168114611ac557600080fd5b80358015158114611ac557600080fd5b600080600080600060a08688031215611e9457600080fd5b853594506020860135935060408601359250611eb260608701611e55565b9150611ec060808701611e6c565b90509295509295909350565b60008060208385031215611edf57600080fd5b82356001600160401b0380821115611ef657600080fd5b818501915085601f830112611f0a57600080fd5b813581811115611f1957600080fd5b86602060a083028501011115611f2e57600080fd5b60209290920196919550909350505050565b6020815260006117ba6020830184611b79565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff808316818103611f9857611f98611f69565b6001019392505050565b600181811c90821680611fb657607f821691505b602082108103611fd657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115612028576000816000526020600020601f850160051c810160208610156120055750805b601f850160051c820191505b8181101561202457828155600101612011565b5050505b505050565b81516001600160401b0381111561204657612046611c07565b61205a816120548454611fa2565b84611fdc565b602080601f83116001811461208f57600084156120775750858301515b600019600386901b1c1916600185901b178555612024565b600085815260208120601f198616915b828110156120be5788860151825594840194600190910190840161209f565b50858210156120dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006080820186835260206080602085015281875180845260a08601915060208901935060005b818110156121385784516001600160a01b031683529383019391830191600101612113565b505086604086015284810360608601526121528187611b79565b9998505050505050505050565b60006001820161217157612171611f69565b5060010190565b818103818111156117bd576117bd611f69565b808201808211156117bd576117bd611f69565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156121c657600080fd5b6117ba82611e55565b8481528360208201526001600160401b0383166040820152608060608201526000611bea6080830184611b79565b60006020828403121561220f57600080fd5b6117ba82611e6c56 \ No newline at end of file diff --git a/packages/generated/dev/abis/StreamRegistry.json b/packages/generated/dev/abis/StreamRegistry.json index 4f6d8ff59..60fc4a54f 100644 --- a/packages/generated/dev/abis/StreamRegistry.json +++ b/packages/generated/dev/abis/StreamRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"allocateStream","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"nodes","type":"address[]","internalType":"address[]"},{"name":"genesisMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"genesisMiniblock","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAllStreamIds","inputs":[],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getAllStreams","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct StreamWithId[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getPaginatedStreams","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"stop","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct StreamWithId[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]},{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getStream","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getStreamByIndex","inputs":[{"name":"i","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StreamWithId","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getStreamCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getStreamCountOnNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getStreamWithGenesis","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]},{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStreamsOnNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct StreamWithId[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"placeStreamOnNode","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeStreamFromNode","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStreamLastMiniblock","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"isSealed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStreamLastMiniblockBatch","inputs":[{"name":"miniblocks","type":"tuple[]","internalType":"struct SetMiniblock[]","components":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"prevMiniBlockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"isSealed","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"StreamAllocated","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"nodes","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"genesisMiniblockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"genesisMiniblock","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"StreamLastMiniblockUpdateFailed","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"StreamLastMiniblockUpdated","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"isSealed","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"StreamPlacementUpdated","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"nodeAddress","type":"address","indexed":false,"internalType":"address"},{"name":"isAdded","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5061220f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639ee86d381161008c578063ca78c41a11610066578063ca78c41a146101e8578063d7a3158a14610209578063ee885b121461021c578063ff3a14ab1461022f57600080fd5b80639ee86d38146101ac578063c0f22084146101bf578063c87d1324146101d557600080fd5b80633c2544d1116100c85780633c2544d11461014057806368b454df146101625780636b883c391461018257806386789fc61461019757600080fd5b80631290abe8146100ef57806332705ac4146101185780633bd84c0c14610138575b600080fd5b6101026100fd3660046119ee565b610242565b60405161010f9190611a98565b60405180910390f35b61012b610126366004611ac7565b61036d565b60405161010f9190611b63565b61012b61061d565b61015361014e3660046119ee565b61078e565b60405161010f93929190611bbc565b6101756101703660046119ee565b61095f565b60405161010f9190611bf1565b610195610190366004611cb9565b610a86565b005b61019f610ceb565b60405161010f9190611d9c565b6101956101ba366004611de0565b610cfc565b6101c7610eb9565b60405190815260200161010f565b6101c76101e3366004611ac7565b610ec4565b6101fb6101f6366004611e0c565b610f6c565b60405161010f929190611e2e565b610195610217366004611e79565b611165565b61019561022a366004611de0565b6112f0565b61019561023d366004611ec9565b61153c565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061027690836117a3565b6102ba5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b60405180910390fd5b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561035d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161033f575b5050505050815250509050919050565b6060600061037a816117c0565b6001600160401b0381111561039157610391611c04565b6040519080825280602002602001820160405280156103ba578160200160208202803683370190505b5090506000805b6103cb60006117c0565b8110156104805760006103de81836117ca565b60008181526002602052604081209192505b600282015481101561047257876001600160a01b031682600201828154811061041b5761041b611f50565b6000918252602090912001546001600160a01b03160361046a5782868661044181611f7c565b975063ffffffff168151811061045957610459611f50565b602002602001018181525050610472565b6001016103f0565b5050508060010190506103c1565b5060008163ffffffff166001600160401b038111156104a1576104a1611c04565b6040519080825280602002602001820160405280156104da57816020015b6104c76118ed565b8152602001906001900390816104bf5790505b50905060005b8263ffffffff1681101561061457604051806040016040528085838151811061050b5761050b611f50565b602002602001015181526020016000600201600087858151811061053157610531611f50565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b9091041660608201526002820180548451818702810187019095528085529194929360808601939092908301828280156105e357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105c5575b50505050508152505081525082828151811061060157610601611f50565b60209081029190910101526001016104e0565b50949350505050565b6060600061062a816117c0565b6001600160401b0381111561064157610641611c04565b60405190808252806020026020018201604052801561067a57816020015b6106676118ed565b81526020019060019003908161065f5790505b50905060005b61068a60006117c0565b81101561078857600061069d81836117ca565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b909104166060820152918101805486518186028101860190975280875296975093958387019592949193608086019392919083018282801561075657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610738575b50505050508152505081525083838151811061077457610774611f50565b602090810291909101015250600101610680565b50919050565b6040805160a0810182526000808252602082018190529181018290526060808201839052608082018190529091906107c682856117a3565b6108015760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b909104166060820152948201805484518187028101870190955280855292969591949193879360808601939192918301828280156108bb57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161089d575b50505050508152505092508080546108d290611f9f565b80601f01602080910402602001604051908101604052809291908181526020018280546108fe90611f9f565b801561094b5780601f106109205761010080835404028352916020019161094b565b820191906000526020600020905b81548152906001019060200180831161092e57829003601f168201915b505050505090509250925092509193909250565b6109676118ed565b61097160006117c0565b82106109ae5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b60006109ba81846117ca565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610a7357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a55575b5050509190925250505090529392505050565b336000818152600760205260409020600201546001600160a01b0316610ae257604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b610aed6000866117a3565b15610b2e57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526102b19190600401611f3d565b60005b8451811015610bb257610b6a858281518110610b4f57610b4f611f50565b602002602001015160006005016117d690919063ffffffff16565b610baa57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600101610b31565b506040805160a081018252848152600060208201819052918101829052606081018290526080810186905290610be890876117f8565b5060008681526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff19909916919094161796909617959095161790935560808401518051859493610c7893908501920190611937565b5050506000868152600360205260409020610c938482612024565b5060008681526004602052604090819020859055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb90610cdb9088908890889088906120e3565b60405180910390a1505050505050565b6060610cf76000611804565b905090565b81610d086000826117a3565b610d435760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b6001600160a01b03808316600090815260076020526040902060020154839116610da357604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b6000848152600260205260408120905b6002820154811015610e3c57846001600160a01b0316826002018281548110610dde57610dde611f50565b6000918252602090912001546001600160a01b031603610e3457604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600101610db3565b5060028101805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b03881690811790915560408051898152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600160405180910390a15050505050565b6000610cf7816117c0565b600080805b610ed360006117c0565b811015610f65576000610ee681836117ca565b60008181526002602052604081209192505b6002820154811015610f5757866001600160a01b0316826002018281548110610f2357610f23611f50565b6000918252602090912001546001600160a01b031603610f4f5784610f4781612156565b955050610f57565b600101610ef8565b505050806001019050610ec9565b5092915050565b60606000828410604051806040016040528060078152602001664241445f41524760c81b81525090610fb15760405162461bcd60e51b81526004016102b19190611f3d565b506000610fbe858561216f565b6001600160401b03811115610fd557610fd5611c04565b60405190808252806020026020018201604052801561100e57816020015b610ffb6118ed565b815260200190600190039081610ff35790505b50905060005b61101e60006117c0565b6110288288612182565b10801561103d57508461103b8288612182565b105b1561114d5760006110596110518389612182565b6000906117ca565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b909104166060820152918101805486518186028101860190975280875296975093958387019592949193608086019392919083018282801561111257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110f4575b50505050508152505081525083838151811061113057611130611f50565b6020026020010181905250508061114690612156565b9050611014565b508061115960006117c0565b90969410159450505050565b336000818152600760205260409020600201546001600160a01b03166111c157604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b6111cc6000876117a3565b6112075760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b038616179055821561126f576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b03166001036112975760008781526003602052604081206112979161199c565b60408051888152602081018790526001600160401b03861681830152841515606082015290517fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b9181900360800190a150505050505050565b816112fc6000826117a3565b6113375760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b6001600160a01b0380831660009081526007602052604090206002015483911661139757604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600084815260026020526040812090805b60028301548110156114b157856001600160a01b03168360020182815481106113d3576113d3611f50565b6000918252602090912001546001600160a01b0316036114a9576002830180546113ff9060019061216f565b8154811061140f5761140f611f50565b6000918252602090912001546002840180546001600160a01b03909216918390811061143d5761143d611f50565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508260020180548061147e5761147e612195565b600082815260209020810160001990810180546001600160a01b0319169055019055600191506114b1565b6001016113a8565b50806114f357604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b604080518781526001600160a01b03871660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f90606001610cdb565b336000818152600760205260409020600201546001600160a01b031661159857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b60005b8281101561179d57368484838181106115b6576115b6611f50565b60a0029190910191506115cd9050600082356117a3565b611645577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561160960808501606086016121ab565b60408051808201825260098152681393d517d193d5539160ba1b6020820152905161163794939291906121c6565b60405180910390a150611795565b80356000908152600260205260409081902090820135815561166d60808301606084016121ab565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556116a060a08301608084016121f4565b156116d8576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b6116e860808301606084016121ab565b6001600160401b031660010361171157813560009081526003602052604081206117119161199c565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561174960808601606087016121ab565b61175960a08701608088016121f4565b60405161178a949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b60010161159b565b50505050565b600081815260018301602052604081205415155b90505b92915050565b60006117ba825490565b60006117b78383611818565b6001600160a01b038116600090815260018301602052604081205415156117b7565b60006117b78383611842565b6060600061181183611891565b9392505050565b600082600001828154811061182f5761182f611f50565b9060005260206000200154905092915050565b6000818152600183016020526040812054611889575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556117ba565b5060006117ba565b6060816000018054806020026020016040519081016040528092919081815260200182805480156118e157602002820191906000526020600020905b8154815260200190600101908083116118cd575b50505050509050919050565b6040805180820190915260008152602081016119326040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b82805482825590600052602060002090810192821561198c579160200282015b8281111561198c57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611957565b506119989291506119d9565b5090565b5080546119a890611f9f565b6000825580601f106119b8575050565b601f0160209004906000526020600020908101906119d691906119d9565b50565b5b8082111561199857600081556001016119da565b600060208284031215611a0057600080fd5b5035919050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015611a8d5784516001600160a01b03168252938301936001929092019190830190611a64565b509695505050505050565b6020815260006117b76020830184611a07565b80356001600160a01b0381168114611ac257600080fd5b919050565b600060208284031215611ad957600080fd5b6117b782611aab565b805182526000602082015160406020850152611b016040850182611a07565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015611b5657601f19868403018952611b44838351611ae2565b98840198925090830190600101611b28565b5090979650505050505050565b6020815260006117b76020830184611b09565b6000815180845260005b81811015611b9c57602081850181015186830182015201611b80565b506000602082860101526020601f19601f83011685010191505092915050565b606081526000611bcf6060830186611a07565b8460208401528281036040840152611be78185611b76565b9695505050505050565b6020815260006117b76020830184611ae2565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c4257611c42611c04565b604052919050565b600082601f830112611c5b57600080fd5b81356001600160401b03811115611c7457611c74611c04565b611c87601f8201601f1916602001611c1a565b818152846020838601011115611c9c57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611ccf57600080fd5b843593506020808601356001600160401b0380821115611cee57600080fd5b818801915088601f830112611d0257600080fd5b813581811115611d1457611d14611c04565b8060051b611d23858201611c1a565b918252838101850191858101908c841115611d3d57600080fd5b948601945b83861015611d6257611d5386611aab565b82529486019490860190611d42565b9850505050604088013594506060880135925080831115611d8257600080fd5b5050611d9087828801611c4a565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015611dd457835183529284019291840191600101611db8565b50909695505050505050565b60008060408385031215611df357600080fd5b82359150611e0360208401611aab565b90509250929050565b60008060408385031215611e1f57600080fd5b50508035926020909101359150565b604081526000611e416040830185611b09565b905082151560208301529392505050565b80356001600160401b0381168114611ac257600080fd5b80358015158114611ac257600080fd5b600080600080600060a08688031215611e9157600080fd5b853594506020860135935060408601359250611eaf60608701611e52565b9150611ebd60808701611e69565b90509295509295909350565b60008060208385031215611edc57600080fd5b82356001600160401b0380821115611ef357600080fd5b818501915085601f830112611f0757600080fd5b813581811115611f1657600080fd5b86602060a083028501011115611f2b57600080fd5b60209290920196919550909350505050565b6020815260006117b76020830184611b76565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff808316818103611f9557611f95611f66565b6001019392505050565b600181811c90821680611fb357607f821691505b60208210810361078857634e487b7160e01b600052602260045260246000fd5b601f82111561201f576000816000526020600020601f850160051c81016020861015611ffc5750805b601f850160051c820191505b8181101561201b57828155600101612008565b5050505b505050565b81516001600160401b0381111561203d5761203d611c04565b6120518161204b8454611f9f565b84611fd3565b602080601f831160018114612086576000841561206e5750858301515b600019600386901b1c1916600185901b17855561201b565b600085815260208120601f198616915b828110156120b557888601518255948401946001909101908401612096565b50858210156120d35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006080820186835260206080602085015281875180845260a08601915060208901935060005b8181101561212f5784516001600160a01b03168352938301939183019160010161210a565b505086604086015284810360608601526121498187611b76565b9998505050505050505050565b60006001820161216857612168611f66565b5060010190565b818103818111156117ba576117ba611f66565b808201808211156117ba576117ba611f66565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156121bd57600080fd5b6117b782611e52565b8481528360208201526001600160401b0383166040820152608060608201526000611be76080830184611b76565b60006020828403121561220657600080fd5b6117b782611e6956","sourceMap":"598:9833:48:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639ee86d381161008c578063ca78c41a11610066578063ca78c41a146101e8578063d7a3158a14610209578063ee885b121461021c578063ff3a14ab1461022f57600080fd5b80639ee86d38146101ac578063c0f22084146101bf578063c87d1324146101d557600080fd5b80633c2544d1116100c85780633c2544d11461014057806368b454df146101625780636b883c391461018257806386789fc61461019757600080fd5b80631290abe8146100ef57806332705ac4146101185780633bd84c0c14610138575b600080fd5b6101026100fd3660046119ee565b610242565b60405161010f9190611a98565b60405180910390f35b61012b610126366004611ac7565b61036d565b60405161010f9190611b63565b61012b61061d565b61015361014e3660046119ee565b61078e565b60405161010f93929190611bbc565b6101756101703660046119ee565b61095f565b60405161010f9190611bf1565b610195610190366004611cb9565b610a86565b005b61019f610ceb565b60405161010f9190611d9c565b6101956101ba366004611de0565b610cfc565b6101c7610eb9565b60405190815260200161010f565b6101c76101e3366004611ac7565b610ec4565b6101fb6101f6366004611e0c565b610f6c565b60405161010f929190611e2e565b610195610217366004611e79565b611165565b61019561022a366004611de0565b6112f0565b61019561023d366004611ec9565b61153c565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061027690836117a3565b6102ba5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b60405180910390fd5b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561035d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161033f575b5050505050815250509050919050565b6060600061037a816117c0565b6001600160401b0381111561039157610391611c04565b6040519080825280602002602001820160405280156103ba578160200160208202803683370190505b5090506000805b6103cb60006117c0565b8110156104805760006103de81836117ca565b60008181526002602052604081209192505b600282015481101561047257876001600160a01b031682600201828154811061041b5761041b611f50565b6000918252602090912001546001600160a01b03160361046a5782868661044181611f7c565b975063ffffffff168151811061045957610459611f50565b602002602001018181525050610472565b6001016103f0565b5050508060010190506103c1565b5060008163ffffffff166001600160401b038111156104a1576104a1611c04565b6040519080825280602002602001820160405280156104da57816020015b6104c76118ed565b8152602001906001900390816104bf5790505b50905060005b8263ffffffff1681101561061457604051806040016040528085838151811061050b5761050b611f50565b602002602001015181526020016000600201600087858151811061053157610531611f50565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b9091041660608201526002820180548451818702810187019095528085529194929360808601939092908301828280156105e357602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105c5575b50505050508152505081525082828151811061060157610601611f50565b60209081029190910101526001016104e0565b50949350505050565b6060600061062a816117c0565b6001600160401b0381111561064157610641611c04565b60405190808252806020026020018201604052801561067a57816020015b6106676118ed565b81526020019060019003908161065f5790505b50905060005b61068a60006117c0565b81101561078857600061069d81836117ca565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b909104166060820152918101805486518186028101860190975280875296975093958387019592949193608086019392919083018282801561075657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610738575b50505050508152505081525083838151811061077457610774611f50565b602090810291909101015250600101610680565b50919050565b6040805160a0810182526000808252602082018190529181018290526060808201839052608082018190529091906107c682856117a3565b6108015760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b909104166060820152948201805484518187028101870190955280855292969591949193879360808601939192918301828280156108bb57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161089d575b50505050508152505092508080546108d290611f9f565b80601f01602080910402602001604051908101604052809291908181526020018280546108fe90611f9f565b801561094b5780601f106109205761010080835404028352916020019161094b565b820191906000526020600020905b81548152906001019060200180831161092e57829003601f168201915b505050505090509250925092509193909250565b6109676118ed565b61097160006117c0565b82106109ae5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b60006109ba81846117ca565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610a7357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a55575b5050509190925250505090529392505050565b336000818152600760205260409020600201546001600160a01b0316610ae257604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b610aed6000866117a3565b15610b2e57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526102b19190600401611f3d565b60005b8451811015610bb257610b6a858281518110610b4f57610b4f611f50565b602002602001015160006005016117d690919063ffffffff16565b610baa57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600101610b31565b506040805160a081018252848152600060208201819052918101829052606081018290526080810186905290610be890876117f8565b5060008681526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff19909916919094161796909617959095161790935560808401518051859493610c7893908501920190611937565b5050506000868152600360205260409020610c938482612024565b5060008681526004602052604090819020859055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb90610cdb9088908890889088906120e3565b60405180910390a1505050505050565b6060610cf76000611804565b905090565b81610d086000826117a3565b610d435760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b6001600160a01b03808316600090815260076020526040902060020154839116610da357604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b6000848152600260205260408120905b6002820154811015610e3c57846001600160a01b0316826002018281548110610dde57610dde611f50565b6000918252602090912001546001600160a01b031603610e3457604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600101610db3565b5060028101805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b03881690811790915560408051898152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600160405180910390a15050505050565b6000610cf7816117c0565b600080805b610ed360006117c0565b811015610f65576000610ee681836117ca565b60008181526002602052604081209192505b6002820154811015610f5757866001600160a01b0316826002018281548110610f2357610f23611f50565b6000918252602090912001546001600160a01b031603610f4f5784610f4781612156565b955050610f57565b600101610ef8565b505050806001019050610ec9565b5092915050565b60606000828410604051806040016040528060078152602001664241445f41524760c81b81525090610fb15760405162461bcd60e51b81526004016102b19190611f3d565b506000610fbe858561216f565b6001600160401b03811115610fd557610fd5611c04565b60405190808252806020026020018201604052801561100e57816020015b610ffb6118ed565b815260200190600190039081610ff35790505b50905060005b61101e60006117c0565b6110288288612182565b10801561103d57508461103b8288612182565b105b1561114d5760006110596110518389612182565b6000906117ca565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b909104166060820152918101805486518186028101860190975280875296975093958387019592949193608086019392919083018282801561111257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110f4575b50505050508152505081525083838151811061113057611130611f50565b6020026020010181905250508061114690612156565b9050611014565b508061115960006117c0565b90969410159450505050565b336000818152600760205260409020600201546001600160a01b03166111c157604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b6111cc6000876117a3565b6112075760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b038616179055821561126f576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b03166001036112975760008781526003602052604081206112979161199c565b60408051888152602081018790526001600160401b03861681830152841515606082015290517fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b9181900360800190a150505050505050565b816112fc6000826117a3565b6113375760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f3d565b6001600160a01b0380831660009081526007602052604090206002015483911661139757604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b600084815260026020526040812090805b60028301548110156114b157856001600160a01b03168360020182815481106113d3576113d3611f50565b6000918252602090912001546001600160a01b0316036114a9576002830180546113ff9060019061216f565b8154811061140f5761140f611f50565b6000918252602090912001546002840180546001600160a01b03909216918390811061143d5761143d611f50565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508260020180548061147e5761147e612195565b600082815260209020810160001990810180546001600160a01b0319169055019055600191506114b1565b6001016113a8565b50806114f357604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b604080518781526001600160a01b03871660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f90606001610cdb565b336000818152600760205260409020600201546001600160a01b031661159857604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f3d565b60005b8281101561179d57368484838181106115b6576115b6611f50565b60a0029190910191506115cd9050600082356117a3565b611645577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561160960808501606086016121ab565b60408051808201825260098152681393d517d193d5539160ba1b6020820152905161163794939291906121c6565b60405180910390a150611795565b80356000908152600260205260409081902090820135815561166d60808301606084016121ab565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556116a060a08301608084016121f4565b156116d8576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b6116e860808301606084016121ab565b6001600160401b031660010361171157813560009081526003602052604081206117119161199c565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561174960808601606087016121ab565b61175960a08701608088016121f4565b60405161178a949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b60010161159b565b50505050565b600081815260018301602052604081205415155b90505b92915050565b60006117ba825490565b60006117b78383611818565b6001600160a01b038116600090815260018301602052604081205415156117b7565b60006117b78383611842565b6060600061181183611891565b9392505050565b600082600001828154811061182f5761182f611f50565b9060005260206000200154905092915050565b6000818152600183016020526040812054611889575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556117ba565b5060006117ba565b6060816000018054806020026020016040519081016040528092919081815260200182805480156118e157602002820191906000526020600020905b8154815260200190600101908083116118cd575b50505050509050919050565b6040805180820190915260008152602081016119326040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b82805482825590600052602060002090810192821561198c579160200282015b8281111561198c57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611957565b506119989291506119d9565b5090565b5080546119a890611f9f565b6000825580601f106119b8575050565b601f0160209004906000526020600020908101906119d691906119d9565b50565b5b8082111561199857600081556001016119da565b600060208284031215611a0057600080fd5b5035919050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015611a8d5784516001600160a01b03168252938301936001929092019190830190611a64565b509695505050505050565b6020815260006117b76020830184611a07565b80356001600160a01b0381168114611ac257600080fd5b919050565b600060208284031215611ad957600080fd5b6117b782611aab565b805182526000602082015160406020850152611b016040850182611a07565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015611b5657601f19868403018952611b44838351611ae2565b98840198925090830190600101611b28565b5090979650505050505050565b6020815260006117b76020830184611b09565b6000815180845260005b81811015611b9c57602081850181015186830182015201611b80565b506000602082860101526020601f19601f83011685010191505092915050565b606081526000611bcf6060830186611a07565b8460208401528281036040840152611be78185611b76565b9695505050505050565b6020815260006117b76020830184611ae2565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c4257611c42611c04565b604052919050565b600082601f830112611c5b57600080fd5b81356001600160401b03811115611c7457611c74611c04565b611c87601f8201601f1916602001611c1a565b818152846020838601011115611c9c57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611ccf57600080fd5b843593506020808601356001600160401b0380821115611cee57600080fd5b818801915088601f830112611d0257600080fd5b813581811115611d1457611d14611c04565b8060051b611d23858201611c1a565b918252838101850191858101908c841115611d3d57600080fd5b948601945b83861015611d6257611d5386611aab565b82529486019490860190611d42565b9850505050604088013594506060880135925080831115611d8257600080fd5b5050611d9087828801611c4a565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015611dd457835183529284019291840191600101611db8565b50909695505050505050565b60008060408385031215611df357600080fd5b82359150611e0360208401611aab565b90509250929050565b60008060408385031215611e1f57600080fd5b50508035926020909101359150565b604081526000611e416040830185611b09565b905082151560208301529392505050565b80356001600160401b0381168114611ac257600080fd5b80358015158114611ac257600080fd5b600080600080600060a08688031215611e9157600080fd5b853594506020860135935060408601359250611eaf60608701611e52565b9150611ebd60808701611e69565b90509295509295909350565b60008060208385031215611edc57600080fd5b82356001600160401b0380821115611ef357600080fd5b818501915085601f830112611f0757600080fd5b813581811115611f1657600080fd5b86602060a083028501011115611f2b57600080fd5b60209290920196919550909350505050565b6020815260006117b76020830184611b76565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff808316818103611f9557611f95611f66565b6001019392505050565b600181811c90821680611fb357607f821691505b60208210810361078857634e487b7160e01b600052602260045260246000fd5b601f82111561201f576000816000526020600020601f850160051c81016020861015611ffc5750805b601f850160051c820191505b8181101561201b57828155600101612008565b5050505b505050565b81516001600160401b0381111561203d5761203d611c04565b6120518161204b8454611f9f565b84611fd3565b602080601f831160018114612086576000841561206e5750858301515b600019600386901b1c1916600185901b17855561201b565b600085815260208120601f198616915b828110156120b557888601518255948401946001909101908401612096565b50858210156120d35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006080820186835260206080602085015281875180845260a08601915060208901935060005b8181101561212f5784516001600160a01b03168352938301939183019160010161210a565b505086604086015284810360608601526121498187611b76565b9998505050505050505050565b60006001820161216857612168611f66565b5060010190565b818103818111156117ba576117ba611f66565b808201808211156117ba576117ba611f66565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156121bd57600080fd5b6117b782611e52565b8481528360208201526001600160401b0383166040820152608060608201526000611be76080830184611b76565b60006020828403121561220657600080fd5b6117b782611e6956","sourceMap":"598:9833:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1855:196;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9126:855;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8230:344::-;;;:::i;2416:350::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;2055:296::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;769:1082::-;;;;;;:::i;:::-;;:::i;:::-;;8121:105;;;:::i;:::-;;;;;;;:::i;6926:504::-;;;;;;:::i;:::-;;:::i;8022:95::-;;;:::i;:::-;;;7678:25:85;;;7666:2;7651:18;8022:95:48;7532:177:85;9985:444:48;;;;;;:::i;:::-;;:::i;8578:544::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2770:1696::-;;;;;;:::i;:::-;;:::i;7434:584::-;;;;;;:::i;:::-;;:::i;4470:2452::-;;;;;;:::i;:::-;;:::i;1855:196::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1941:29:48;;1961:8;1941:19;:29::i;:::-;1936:73;;1979:29;;;;;;;;;;;-1:-1:-1;;;1979:29:48;;;;1972:37;;-1:-1:-1;;;1972:37:48;;;;1979:29;1972:37;;;:::i;:::-;;;;;;;;1936:73;2023:2;:23;;;:13;:23;;;;;;;;;2016:30;;;;;;;;;;;;;;;-1:-1:-1;;;;;2016:30:48;;;;;;;-1:-1:-1;;;2016:30:48;;;;;;;;-1:-1:-1;;;2016:30:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2023:23;;2016:30;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2016:30:48;;;;;;;;;;;;;;;;;;;;;;;;;;;1855:196;;;:::o;9126:855::-;9204:21;9290:29;9336:19;9290:29;9336:17;:19::i;:::-;-1:-1:-1;;;;;9322:34:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9322:34:48;-1:-1:-1;9290:66:48;-1:-1:-1;9362:18:48;;9386:326;9410:19;:2;:17;:19::i;:::-;9406:1;:23;9386:326;;;9444:10;9457:16;9444:10;9471:1;9457:13;:16::i;:::-;9481:21;9505:17;;;:13;:17;;;;;9444:29;;-1:-1:-1;9530:176:48;9554:12;;;:19;9550:23;;9530:176;;;9613:11;-1:-1:-1;;;;;9594:30:48;:6;:12;;9607:1;9594:15;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;9594:15:48;:30;9590:108;;9668:2;9638:12;9651:13;;;;:::i;:::-;;;9638:27;;;;;;;;;;:::i;:::-;;;;;;:32;;;;;9682:5;;9590:108;9575:3;;9530:176;;;;9436:276;;9431:3;;;;;9386:326;;;;9718:29;9769:11;9750:31;;-1:-1:-1;;;;;9750:31:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;9718:63;;9792:9;9787:169;9811:11;9807:15;;:1;:15;9787:169;;;9850:99;;;;;;;;9877:12;9890:1;9877:15;;;;;;;;:::i;:::-;;;;;;;9850:99;;;;9910:2;:13;;:30;9924:12;9937:1;9924:15;;;;;;;;:::i;:::-;;;;;;;;;;;;9910:30;;;;;;;;;;;;;-1:-1:-1;9910:30:48;9850:99;;;;;;;;;;;;;;;-1:-1:-1;;;;;9850:99:48;;;;;;;-1:-1:-1;;;9850:99:48;;;;;;;;-1:-1:-1;;;9850:99:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9910:30;;9850:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9850:99:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;9837:7;9845:1;9837:10;;;;;;;;:::i;:::-;;;;;;;;;;:112;9824:3;;9787:169;;;-1:-1:-1;9969:7:48;9126:855;-1:-1:-1;;;;9126:855:48:o;8230:344::-;8278:21;8307:29;8358:19;8307:29;8358:17;:19::i;:::-;-1:-1:-1;;;;;8339:39:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;8307:71;;8390:9;8385:164;8409:19;:2;:17;:19::i;:::-;8405:1;:23;8385:164;;;8443:10;8456:16;8443:10;8470:1;8456:13;:16::i;:::-;8493:49;;;;;;;;;;;-1:-1:-1;8523:17:48;;;:13;8493:49;8523:17;;;;;;;8493:49;;;;;;;;;;;;;;;-1:-1:-1;;;;;8493:49:48;;;;;;;-1:-1:-1;;;8493:49:48;;;;;;;;-1:-1:-1;;;8493:49:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;8443:29;;-1:-1:-1;8493:49:48;;;;;;;;8523:17;;8493:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8493:49:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;8480:7;8488:1;8480:10;;;;;;;;:::i;:::-;;;;;;;;;;:62;-1:-1:-1;8430:3:48;;8385:164;;;-1:-1:-1;8562:7:48;8230:344;-1:-1:-1;8230:344:48:o;2416:350::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2544:29:48;-1:-1:-1;2564:8:48;2544:19;:29::i;:::-;2539:73;;2582:29;;;;;;;;;;;-1:-1:-1;;;2582:29:48;;;;2575:37;;-1:-1:-1;;;2575:37:48;;;;2582:29;2575:37;;;:::i;2539:73::-;2634:2;:23;;;:13;:23;;;;;;;;2665:33;:43;;;;;;2716:29;:39;;;;;;2619:142;;;;;;;;;;;;;;;-1:-1:-1;;;;;2619:142:48;;;;;;;-1:-1:-1;;;2619:142:48;;;;;;;;-1:-1:-1;;;2619:142:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;2634:23;;2665:43;2716:39;;2619:142;;2634:23;;2619:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2619:142:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2416:350;;;;;:::o;2055:296::-;2123:19;;:::i;:::-;2159;:2;:17;:19::i;:::-;2154:1;:24;2150:82;;2195:29;;;;;;;;;;;-1:-1:-1;;;2195:29:48;;;;2188:37;;-1:-1:-1;;;2188:37:48;;;;2195:29;2188:37;;;:::i;2150:82::-;2237:16;2256;2237;2270:1;2256:13;:16::i;:::-;2285:61;;;;;;;;;;;-1:-1:-1;2321:23:48;;;:13;2285:61;2321:23;;;;;;;2285:61;;;;;;;;;;;;;;;-1:-1:-1;;;;;2285:61:48;;;;;;;-1:-1:-1;;;2285:61:48;;;;;;;;-1:-1:-1;;;2285:61:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;2237:35;;-1:-1:-1;2285:61:48;;;;;;;;2321:23;;2285:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2285:61:48;;;;;;;;;;;;;;;;-1:-1:-1;;;2285:61:48;;;;-1:-1:-1;;;2285:61:48;;2278:68;2055:296;-1:-1:-1;;;2055:296:48:o;769:1082::-;934:10;3085:1:50;3039:22;;;:16;:22;;;;;:34;;;-1:-1:-1;;;;;3039:34:50;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:50;;;;3095:42;;-1:-1:-1;;;3095:42:50;;;;3102:34;3095:42;;;:::i;3035:102::-;1019:29:48::1;:2;1039:8:::0;1019:19:::1;:29::i;:::-;1015:83;;;1063:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1063:34:48::1;::::0;::::1;::::0;1056:42;;-1:-1:-1;;;1056:42:48;;::::1;::::0;1063:34;1056:42:::1;;;:::i;1015:83::-;1179:9;1174:142;1198:5;:12;1194:1;:16;1174:142;;;1230:27;1248:5;1254:1;1248:8;;;;;;;;:::i;:::-;;;;;;;1230:2;:8;;:17;;:27;;;;:::i;:::-;1225:84;;1274:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1274:34:48::1;::::0;::::1;::::0;1267:42;;-1:-1:-1;;;1267:42:48;;::::1;::::0;1274:34;1267:42:::1;;;:::i;1225:84::-;1212:3;;1174:142;;;-1:-1:-1::0;1383:144:48::1;::::0;;::::1;::::0;::::1;::::0;;;;;1360:20:::1;1383:144;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;1534:24:::1;::::0;1549:8;1534:14:::1;:24::i;:::-;-1:-1:-1::0;1564:2:48::1;:23:::0;;;:13:::1;:23;::::0;;;;;;;;:32;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;1564:32:48;;::::1;-1:-1:-1::0;;;1564:32:48::1;-1:-1:-1::0;;;;1564:32:48;;::::1;-1:-1:-1::0;;;1564:32:48::1;-1:-1:-1::0;;1564:32:48;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;::::1;::::0;;;1590:6;;1564:23;:32:::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;1602:2:48::1;:39:::0;;;:29:::1;:39;::::0;;;;:58:::1;1644:16:::0;1602:39;:58:::1;:::i;:::-;-1:-1:-1::0;1666:2:48::1;:43:::0;;;:33:::1;:43;::::0;;;;;;:66;;;1744:102;::::1;::::0;::::1;::::0;1700:8;;1783:5;;1712:20;;1824:16;;1744:102:::1;:::i;:::-;;;;;;;;946:905;769:1082:::0;;;;;:::o;8121:105::-;8171:16;8202:19;:2;:17;:19::i;:::-;8195:26;;8121:105;:::o;6926:504::-;7024:8;3338:29:50;:2;7024:8:48;3338:19:50;:29::i;:::-;3333:73;;3376:29;;;;;;;;;;;-1:-1:-1;;;3376:29:50;;;;3369:37;;-1:-1:-1;;;3369:37:50;;;;3376:29;3369:37;;;:::i;3333:73::-;-1:-1:-1;;;;;3039:22:50;;::::1;3085:1;3039:22:::0;;;:16:::1;:22;::::0;;;;:34:::1;;::::0;7043:11:48;;3039:34:50::1;3035:102;;3102:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3102:34:50::1;::::0;::::1;::::0;3095:42;;-1:-1:-1;;;3095:42:50;;::::1;::::0;3102:34;3095:42:::1;;;:::i;3035:102::-;7062:21:48::2;7086:23:::0;;;:13:::2;:23;::::0;;;;;7175:151:::2;7199:12;::::0;::::2;:19:::0;7195:23;::::2;7175:151;;;7256:11;-1:-1:-1::0;;;;;7237:30:48::2;:6;:12;;7250:1;7237:15;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;-1:-1:-1;;;;;7237:15:48::2;:30:::0;7233:86:::2;;7284:34;::::0;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;7284:34:48::2;::::0;::::2;::::0;7277:42;;-1:-1:-1;;;7277:42:48;;::::2;::::0;7284:34;7277:42:::2;;;:::i;7233:86::-;7220:3;;7175:151;;;-1:-1:-1::0;7332:12:48::2;::::0;::::2;:30:::0;;::::2;::::0;;::::2;::::0;;-1:-1:-1;7332:30:48;;;::::2;::::0;;;;;;::::2;::::0;;-1:-1:-1;;;;;;7332:30:48::2;-1:-1:-1::0;;;;;7332:30:48;::::2;::::0;;::::2;::::0;;;7374:51:::2;::::0;;14245:25:85;;;14286:18;;;14279:60;;;;14355:18;;14348:50;7374:51:48::2;::::0;14233:2:85;14218:18;7374:51:48::2;;;;;;;7056:374;3412:1:50::1;6926:504:48::0;;;:::o;8022:95::-;8071:7;8093:19;8071:7;8093:17;:19::i;9985:444::-;10067:7;;;10105:301;10129:19;:2;:17;:19::i;:::-;10125:1;:23;10105:301;;;10163:10;10176:16;10163:10;10190:1;10176:13;:16::i;:::-;10200:21;10224:17;;;:13;:17;;;;;10163:29;;-1:-1:-1;10249:151:48;10273:12;;;:19;10269:23;;10249:151;;;10332:11;-1:-1:-1;;;;;10313:30:48;:6;:12;;10326:1;10313:15;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;10313:15:48;:30;10309:83;;10357:7;;;;:::i;:::-;;;;10376:5;;10309:83;10294:3;;10249:151;;;;10155:251;;10150:3;;;;;10105:301;;;-1:-1:-1;10419:5:48;9985:444;-1:-1:-1;;9985:444:48:o;8578:544::-;8671:21;8694:4;8722;8714:5;:12;8728:27;;;;;;;;;;;;;-1:-1:-1;;;8728:27:48;;;8706:50;;;;;-1:-1:-1;;;8706:50:48;;;;;;;;:::i;:::-;-1:-1:-1;8763:29:48;8814:12;8821:5;8814:4;:12;:::i;:::-;-1:-1:-1;;;;;8795:32:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;8763:64;;8846:9;8834:232;8882:19;:2;:17;:19::i;:::-;8869:9;8877:1;8869:5;:9;:::i;:::-;8868:33;8867:59;;;;-1:-1:-1;8921:4:48;8908:9;8916:1;8908:5;:9;:::i;:::-;8907:18;8867:59;8834:232;;;8952:10;8965:24;8979:9;8987:1;8979:5;:9;:::i;:::-;8965:2;;:13;:24::i;:::-;9010:49;;;;;;;;;;;-1:-1:-1;9040:17:48;;;:13;9010:49;9040:17;;;;;;;9010:49;;;;;;;;;;;;;;;-1:-1:-1;;;;;9010:49:48;;;;;;;-1:-1:-1;;;9010:49:48;;;;;;;;-1:-1:-1;;;9010:49:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;8952:37;;-1:-1:-1;9010:49:48;;;;;;;;9040:17;;9010:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9010:49:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;8997:7;9005:1;8997:10;;;;;;;;:::i;:::-;;;;;;:62;;;;8944:122;8934:3;;;;:::i;:::-;;;8834:232;;;-1:-1:-1;9080:7:48;9097:19;:2;:17;:19::i;:::-;9072:45;;9089:27;;;;-1:-1:-1;;;;8578:544:48:o;2770:1696::-;2960:10;3085:1:50;3039:22;;;:16;:22;;;;;:34;;;-1:-1:-1;;;;;3039:34:50;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:50;;;;3095:42;;-1:-1:-1;;;3095:42:50;;;;3102:34;3095:42;;;:::i;3035:102::-;3036:29:48::1;:2;3056:8:::0;3036:19:::1;:29::i;:::-;3031:88;;3082:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3082:29:48::1;::::0;::::1;::::0;3075:37;;-1:-1:-1;;;3075:37:48;;::::1;::::0;3082:29;3075:37:::1;;;:::i;3031:88::-;3125:21;3149:23:::0;;;:13:::1;:23;::::0;;;;3964:44;;;4014:23:::1;::::0;::::1;:42:::0;;-1:-1:-1;;4014:42:48::1;-1:-1:-1::0;;;;;4014:42:48;::::1;;::::0;;4103:63;::::1;;;592:1;4125:12:::0;;::::1;:34:::0;;-1:-1:-1;;;;4125:34:48;::::1;-1:-1:-1::0;;;4125:34:48;;;::::1;-1:-1:-1::0;;;;;4125:34:48::1;::::0;;::::1;;::::0;;;::::1;::::0;;4103:63:::1;4253:16;-1:-1:-1::0;;;;;4253:21:48::1;4273:1;4253:21:::0;4249:88:::1;;4291:2;:39:::0;;;:29:::1;:39;::::0;;;;4284:46:::1;::::0;::::1;:::i;:::-;4348:113;::::0;;15035:25:85;;;15091:2;15076:18;;15069:34;;;-1:-1:-1;;;;;15139:31:85;;15119:18;;;15112:59;15214:14;;15207:22;15202:2;15187:18;;15180:50;4348:113:48;;::::1;::::0;;;;15022:3:85;4348:113:48;;::::1;2972:1494;2770:1696:::0;;;;;;:::o;7434:584::-;7535:8;3338:29:50;:2;7535:8:48;3338:19:50;:29::i;:::-;3333:73;;3376:29;;;;;;;;;;;-1:-1:-1;;;3376:29:50;;;;3369:37;;-1:-1:-1;;;3369:37:50;;;;3376:29;3369:37;;;:::i;3333:73::-;-1:-1:-1;;;;;3039:22:50;;::::1;3085:1;3039:22:::0;;;:16:::1;:22;::::0;;;;:34:::1;;::::0;7554:11:48;;3039:34:50::1;3035:102;;3102:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3102:34:50::1;::::0;::::1;::::0;3095:42;;-1:-1:-1;;;3095:42:50;;::::1;::::0;3102:34;3095:42:::1;;;:::i;3035:102::-;7573:21:48::2;7597:23:::0;;;:13:::2;:23;::::0;;;;;7573:21;7651:239:::2;7675:12;::::0;::::2;:19:::0;7671:23;::::2;7651:239;;;7732:11;-1:-1:-1::0;;;;;7713:30:48::2;:6;:12;;7726:1;7713:15;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;-1:-1:-1;;;;;7713:15:48::2;:30:::0;7709:175:::2;;7773:12;::::0;::::2;7786:19:::0;;:23:::2;::::0;7808:1:::2;::::0;7786:23:::2;:::i;:::-;7773:37;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;7755:12:::2;::::0;::::2;:15:::0;;-1:-1:-1;;;;;7773:37:48;;::::2;::::0;7768:1;;7755:15;::::2;;;;;:::i;:::-;;;;;;;;;:55;;;;;-1:-1:-1::0;;;;;7755:55:48::2;;;;;-1:-1:-1::0;;;;;7755:55:48::2;;;;;;7820:6;:12;;:18;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;-1:-1:-1;;7820:18:48;;;;;-1:-1:-1;;;;;;7820:18:48::2;::::0;;;;;::::2;::::0;-1:-1:-1;7870:5:48::2;;7709:175;7696:3;;7651:239;;;;7900:5;7895:54;;7914:34;::::0;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;7914:34:48::2;::::0;::::2;::::0;7907:42;;-1:-1:-1;;;7907:42:48;;::::2;::::0;7914:34;7907:42:::2;;;:::i;7895:54::-;7961:52;::::0;;14245:25:85;;;-1:-1:-1;;;;;14306:32:85;;14301:2;14286:18;;14279:60;8007:5:48::2;14355:18:85::0;;;14348:50;;;;7961:52:48::2;::::0;14233:2:85;14218:18;7961:52:48::2;14049:355:85::0;4470:2452:48;4569:10;3085:1:50;3039:22;;;:16;:22;;;;;:34;;;-1:-1:-1;;;;;3039:34:50;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:50;;;;3095:42;;-1:-1:-1;;;3095:42:50;;;;3102:34;3095:42;;;:::i;3035:102::-;4592:9:48::1;4587:2331;4607:21:::0;;::::1;4587:2331;;;4643:31;4677:10;;4688:1;4677:13;;;;;;;:::i;:::-;;;::::0;;;::::1;::::0;-1:-1:-1;4704:39:48::1;::::0;-1:-1:-1;4724:18:48::1;::::0;::::1;4704:19;:39::i;:::-;4699:277;;4760:189;4803:18:::0;::::1;4833:27;::::0;::::1;;4872:26;::::0;;;::::1;::::0;::::1;;:::i;:::-;4910:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4910:29:48::1;::::0;::::1;::::0;4760:189;;::::1;::::0;;;;4910:29;4760:189:::1;:::i;:::-;;;;;;;;4959:8;;;4699:277;5022:18:::0;::::1;4984:21;5008:33:::0;;;:13:::1;:33;::::0;;;;;;6321:27;;::::1;;6294:54:::0;;6382:26:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;6356:23;::::0;::::1;:52:::0;;-1:-1:-1;;6356:52:48::1;-1:-1:-1::0;;;;;6356:52:48;;;::::1;::::0;;;::::1;::::0;;6463:18:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;6459:77;;;592:1;6493:12:::0;;::::1;:34:::0;;-1:-1:-1;;;;6493:34:48;::::1;-1:-1:-1::0;;;6493:34:48;;;::::1;-1:-1:-1::0;;;;;6493:34:48::1;::::0;;::::1;;::::0;;;::::1;::::0;;6459:77:::1;6627:26;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;6627:31:48::1;6657:1;6627:31:::0;6623:112:::1;;6707:18:::0;::::1;6677:2;:49:::0;;;:29:::1;:49;::::0;;;;6670:56:::1;::::0;::::1;:::i;:::-;6748:163;6784:18:::0;::::1;6812:27;::::0;::::1;;6849:26;::::0;;;::::1;::::0;::::1;;:::i;:::-;6885:18;::::0;;;::::1;::::0;::::1;;:::i;:::-;6748:163;;;;;;;;15035:25:85::0;;;15091:2;15076:18;;15069:34;;;;-1:-1:-1;;;;;15139:31:85;15134:2;15119:18;;15112:59;15214:14;15207:22;15202:2;15187:18;;15180:50;15022:3;15007:19;;14812:424;6748:163:48::1;;;;;;;;4635:2283;;4587:2331;4630:3;;4587:2331;;;;4470:2452:::0;;;:::o;6431:138:62:-;6511:4;4360:21;;;:14;;;:21;;;;;;:26;;6534:28;6527:35;;6431:138;;;;;:::o;6650:115::-;6713:7;6739:19;6747:3;4556:18;;4474:107;7107:129;7181:7;7207:22;7211:3;7223:5;7207:3;:22::i;8871:165::-;-1:-1:-1;;;;;9004:23:62;;8951:4;4360:21;;;:14;;;:21;;;;;;:26;;8974:55;4264:129;5930:123;6000:4;6023:23;6028:3;6040:5;6023:4;:23::i;7776:300::-;7839:16;7867:22;7892:19;7900:3;7892:7;:19::i;:::-;7867:44;7776:300;-1:-1:-1;;;7776:300:62:o;4923:118::-;4990:7;5016:3;:11;;5028:5;5016:18;;;;;;;;:::i;:::-;;;;;;;;;5009:25;;4923:118;;;;:::o;2241:406::-;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:62;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;2320:321;-1:-1:-1;2625:5:62;2618:12;;5581:109;5637:16;5672:3;:11;;5665:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:109;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:180:85;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:85;;14:180;-1:-1:-1;14:180:85:o;199:948::-;248:3;287:4;282:3;278:14;319:5;313:12;308:3;301:25;345:4;395;388:5;384:16;378:23;-1:-1:-1;;;;;488:2:85;474:12;470:21;463:4;458:3;454:14;447:45;553:2;545:4;538:5;534:16;528:23;524:32;517:4;512:3;508:14;501:56;618:2;610:4;603:5;599:16;593:23;589:32;582:4;577:3;573:14;566:56;;;670:4;663:5;659:16;653:23;708:4;701;696:3;692:14;685:28;735:4;768:14;762:21;805:6;799:4;792:20;839:3;834;830:13;821:22;;886:4;870:14;866:25;852:39;;909:1;900:10;;919:201;933:6;930:1;927:13;919:201;;;1000:13;;-1:-1:-1;;;;;996:39:85;982:54;;1095:15;;;;1032:1;948:9;;;;;1058:14;;;;919:201;;;-1:-1:-1;1136:5:85;199:948;-1:-1:-1;;;;;;199:948:85:o;1152:255::-;1329:2;1318:9;1311:21;1292:4;1349:52;1397:2;1386:9;1382:18;1374:6;1349:52;:::i;1412:173::-;1480:20;;-1:-1:-1;;;;;1529:31:85;;1519:42;;1509:70;;1575:1;1572;1565:12;1509:70;1412:173;;;:::o;1590:186::-;1649:6;1702:2;1690:9;1681:7;1677:23;1673:32;1670:52;;;1718:1;1715;1708:12;1670:52;1741:29;1760:9;1741:29;:::i;1781:263::-;1872:5;1866:12;1861:3;1854:25;1836:3;1925:4;1918:5;1914:16;1908:23;1963:4;1956;1951:3;1947:14;1940:28;1984:54;2032:4;2027:3;2023:14;2009:12;1984:54;:::i;:::-;1977:61;1781:263;-1:-1:-1;;;;1781:263:85:o;2049:624::-;2114:3;2145;2177:5;2171:12;2204:6;2199:3;2192:19;2230:4;2259;2254:3;2250:14;2243:21;;2317:4;2307:6;2304:1;2300:14;2293:5;2289:26;2285:37;2356:4;2349:5;2345:16;2379:1;2389:258;2403:6;2400:1;2397:13;2389:258;;;2490:2;2486:7;2478:5;2472:4;2468:16;2464:30;2459:3;2452:43;2516:51;2562:4;2553:6;2547:13;2516:51;:::i;:::-;2625:12;;;;2508:59;-1:-1:-1;2590:15:85;;;;2425:1;2418:9;2389:258;;;-1:-1:-1;2663:4:85;;2049:624;-1:-1:-1;;;;;;;2049:624:85:o;2678:333::-;2917:2;2906:9;2899:21;2880:4;2937:68;3001:2;2990:9;2986:18;2978:6;2937:68;:::i;3016:422::-;3057:3;3095:5;3089:12;3122:6;3117:3;3110:19;3147:1;3157:162;3171:6;3168:1;3165:13;3157:162;;;3233:4;3289:13;;;3285:22;;3279:29;3261:11;;;3257:20;;3250:59;3186:12;3157:162;;;3161:3;3364:1;3357:4;3348:6;3343:3;3339:16;3335:27;3328:38;3427:4;3420:2;3416:7;3411:2;3403:6;3399:15;3395:29;3390:3;3386:39;3382:50;3375:57;;;3016:422;;;;:::o;3443:486::-;3694:2;3683:9;3676:21;3657:4;3720:52;3768:2;3757:9;3753:18;3745:6;3720:52;:::i;:::-;3808:6;3803:2;3792:9;3788:18;3781:34;3863:9;3855:6;3851:22;3846:2;3835:9;3831:18;3824:50;3891:32;3916:6;3908;3891:32;:::i;:::-;3883:40;3443:486;-1:-1:-1;;;;;;3443:486:85:o;4119:273::-;4308:2;4297:9;4290:21;4271:4;4328:58;4382:2;4371:9;4367:18;4359:6;4328:58;:::i;4397:127::-;4458:10;4453:3;4449:20;4446:1;4439:31;4489:4;4486:1;4479:15;4513:4;4510:1;4503:15;4529:275;4600:2;4594:9;4665:2;4646:13;;-1:-1:-1;;4642:27:85;4630:40;;-1:-1:-1;;;;;4685:34:85;;4721:22;;;4682:62;4679:88;;;4747:18;;:::i;:::-;4783:2;4776:22;4529:275;;-1:-1:-1;4529:275:85:o;4809:530::-;4851:5;4904:3;4897:4;4889:6;4885:17;4881:27;4871:55;;4922:1;4919;4912:12;4871:55;4958:6;4945:20;-1:-1:-1;;;;;4980:2:85;4977:26;4974:52;;;5006:18;;:::i;:::-;5050:55;5093:2;5074:13;;-1:-1:-1;;5070:27:85;5099:4;5066:38;5050:55;:::i;:::-;5130:2;5121:7;5114:19;5176:3;5169:4;5164:2;5156:6;5152:15;5148:26;5145:35;5142:55;;;5193:1;5190;5183:12;5142:55;5258:2;5251:4;5243:6;5239:17;5232:4;5223:7;5219:18;5206:55;5306:1;5281:16;;;5299:4;5277:27;5270:38;;;;5285:7;4809:530;-1:-1:-1;;;4809:530:85:o;5344:1287::-;5464:6;5472;5480;5488;5541:3;5529:9;5520:7;5516:23;5512:33;5509:53;;;5558:1;5555;5548:12;5509:53;5594:9;5581:23;5571:33;;5623:2;5676;5665:9;5661:18;5648:32;-1:-1:-1;;;;;5740:2:85;5732:6;5729:14;5726:34;;;5756:1;5753;5746:12;5726:34;5794:6;5783:9;5779:22;5769:32;;5839:7;5832:4;5828:2;5824:13;5820:27;5810:55;;5861:1;5858;5851:12;5810:55;5897:2;5884:16;5919:2;5915;5912:10;5909:36;;;5925:18;;:::i;:::-;5971:2;5968:1;5964:10;5994:28;6018:2;6014;6010:11;5994:28;:::i;:::-;6056:15;;;6126:11;;;6122:20;;;6087:12;;;;6154:19;;;6151:39;;;6186:1;6183;6176:12;6151:39;6210:11;;;;6230:148;6246:6;6241:3;6238:15;6230:148;;;6312:23;6331:3;6312:23;:::i;:::-;6300:36;;6263:12;;;;6356;;;;6230:148;;;6397:5;-1:-1:-1;;;;6449:2:85;6434:18;;6421:32;;-1:-1:-1;6506:2:85;6491:18;;6478:32;;-1:-1:-1;6522:16:85;;;6519:36;;;6551:1;6548;6541:12;6519:36;;;6574:51;6617:7;6606:8;6595:9;6591:24;6574:51;:::i;:::-;6564:61;;;5344:1287;;;;;;;:::o;6636:632::-;6807:2;6859:21;;;6929:13;;6832:18;;;6951:22;;;6778:4;;6807:2;7030:15;;;;7004:2;6989:18;;;6778:4;7073:169;7087:6;7084:1;7081:13;7073:169;;;7148:13;;7136:26;;7217:15;;;;7182:12;;;;7109:1;7102:9;7073:169;;;-1:-1:-1;7259:3:85;;6636:632;-1:-1:-1;;;;;;6636:632:85:o;7273:254::-;7341:6;7349;7402:2;7390:9;7381:7;7377:23;7373:32;7370:52;;;7418:1;7415;7408:12;7370:52;7454:9;7441:23;7431:33;;7483:38;7517:2;7506:9;7502:18;7483:38;:::i;:::-;7473:48;;7273:254;;;;;:::o;7714:248::-;7782:6;7790;7843:2;7831:9;7822:7;7818:23;7814:32;7811:52;;;7859:1;7856;7849:12;7811:52;-1:-1:-1;;7882:23:85;;;7952:2;7937:18;;;7924:32;;-1:-1:-1;7714:248:85:o;7967:414::-;8228:2;8217:9;8210:21;8191:4;8248:68;8312:2;8301:9;8297:18;8289:6;8248:68;:::i;:::-;8240:76;;8366:6;8359:14;8352:22;8347:2;8336:9;8332:18;8325:50;7967:414;;;;;:::o;8386:171::-;8453:20;;-1:-1:-1;;;;;8502:30:85;;8492:41;;8482:69;;8547:1;8544;8537:12;8562:160;8627:20;;8683:13;;8676:21;8666:32;;8656:60;;8712:1;8709;8702:12;8727:458;8818:6;8826;8834;8842;8850;8903:3;8891:9;8882:7;8878:23;8874:33;8871:53;;;8920:1;8917;8910:12;8871:53;8956:9;8943:23;8933:33;;9013:2;9002:9;8998:18;8985:32;8975:42;;9064:2;9053:9;9049:18;9036:32;9026:42;;9087:37;9120:2;9109:9;9105:18;9087:37;:::i;:::-;9077:47;;9143:36;9174:3;9163:9;9159:19;9143:36;:::i;:::-;9133:46;;8727:458;;;;;;;;:::o;9190:650::-;9308:6;9316;9369:2;9357:9;9348:7;9344:23;9340:32;9337:52;;;9385:1;9382;9375:12;9337:52;9425:9;9412:23;-1:-1:-1;;;;;9495:2:85;9487:6;9484:14;9481:34;;;9511:1;9508;9501:12;9481:34;9549:6;9538:9;9534:22;9524:32;;9594:7;9587:4;9583:2;9579:13;9575:27;9565:55;;9616:1;9613;9606:12;9565:55;9656:2;9643:16;9682:2;9674:6;9671:14;9668:34;;;9698:1;9695;9688:12;9668:34;9754:7;9749:2;9741:4;9733:6;9729:17;9725:2;9721:26;9717:35;9714:48;9711:68;;;9775:1;9772;9765:12;9711:68;9806:2;9798:11;;;;;9828:6;;-1:-1:-1;9190:650:85;;-1:-1:-1;;;;9190:650:85:o;9845:219::-;9994:2;9983:9;9976:21;9957:4;10014:44;10054:2;10043:9;10039:18;10031:6;10014:44;:::i;10069:127::-;10130:10;10125:3;10121:20;10118:1;10111:31;10161:4;10158:1;10151:15;10185:4;10182:1;10175:15;10201:127;10262:10;10257:3;10253:20;10250:1;10243:31;10293:4;10290:1;10283:15;10317:4;10314:1;10307:15;10333:201;10371:3;10399:10;10444:2;10437:5;10433:14;10471:2;10462:7;10459:15;10456:41;;10477:18;;:::i;:::-;10526:1;10513:15;;10333:201;-1:-1:-1;;;10333:201:85:o;10539:380::-;10618:1;10614:12;;;;10661;;;10682:61;;10736:4;10728:6;10724:17;10714:27;;10682:61;10789:2;10781:6;10778:14;10758:18;10755:38;10752:161;;10835:10;10830:3;10826:20;10823:1;10816:31;10870:4;10867:1;10860:15;10898:4;10895:1;10888:15;11049:542;11150:2;11145:3;11142:11;11139:446;;;11186:1;11210:5;11207:1;11200:16;11254:4;11251:1;11241:18;11324:2;11312:10;11308:19;11305:1;11301:27;11295:4;11291:38;11360:4;11348:10;11345:20;11342:47;;;-1:-1:-1;11383:4:85;11342:47;11438:2;11433:3;11429:12;11426:1;11422:20;11416:4;11412:31;11402:41;;11493:82;11511:2;11504:5;11501:13;11493:82;;;11556:17;;;11537:1;11526:13;11493:82;;;11497:3;;;11139:446;11049:542;;;:::o;11767:1341::-;11891:3;11885:10;-1:-1:-1;;;;;11910:6:85;11907:30;11904:56;;;11940:18;;:::i;:::-;11969:96;12058:6;12018:38;12050:4;12044:11;12018:38;:::i;:::-;12012:4;11969:96;:::i;:::-;12120:4;;12177:2;12166:14;;12194:1;12189:662;;;;12895:1;12912:6;12909:89;;;-1:-1:-1;12964:19:85;;;12958:26;12909:89;-1:-1:-1;;11724:1:85;11720:11;;;11716:24;11712:29;11702:40;11748:1;11744:11;;;11699:57;13011:81;;12159:943;;12189:662;10996:1;10989:14;;;11033:4;11020:18;;-1:-1:-1;;12225:20:85;;;12342:236;12356:7;12353:1;12350:14;12342:236;;;12445:19;;;12439:26;12424:42;;12537:27;;;;12505:1;12493:14;;;;12372:19;;12342:236;;;12346:3;12606:6;12597:7;12594:19;12591:201;;;12667:19;;;12661:26;-1:-1:-1;;12750:1:85;12746:14;;;12762:3;12742:24;12738:37;12734:42;12719:58;12704:74;;12591:201;-1:-1:-1;;;;;12838:1:85;12822:14;;;12818:22;12805:36;;-1:-1:-1;11767:1341:85:o;13113:931::-;13357:4;13405:3;13394:9;13390:19;13436:6;13425:9;13418:25;13462:2;13500:3;13495:2;13484:9;13480:18;13473:31;13524:6;13559;13553:13;13590:6;13582;13575:22;13628:3;13617:9;13613:19;13606:26;;13667:2;13659:6;13655:15;13641:29;;13688:1;13698:195;13712:6;13709:1;13706:13;13698:195;;;13777:13;;-1:-1:-1;;;;;13773:39:85;13761:52;;13868:15;;;;13833:12;;;;13809:1;13727:9;13698:195;;;13702:3;;13929:6;13924:2;13913:9;13909:18;13902:34;13981:9;13976:3;13972:19;13967:2;13956:9;13952:18;13945:47;14009:29;14034:3;14026:6;14009:29;:::i;:::-;14001:37;13113:931;-1:-1:-1;;;;;;;;;13113:931:85:o;14409:135::-;14448:3;14469:17;;;14466:43;;14489:18;;:::i;:::-;-1:-1:-1;14536:1:85;14525:13;;14409:135::o;14549:128::-;14616:9;;;14637:11;;;14634:37;;;14651:18;;:::i;14682:125::-;14747:9;;;14768:10;;;14765:36;;;14781:18;;:::i;15241:127::-;15302:10;15297:3;15293:20;15290:1;15283:31;15333:4;15330:1;15323:15;15357:4;15354:1;15347:15;15373:184;15431:6;15484:2;15472:9;15463:7;15459:23;15455:32;15452:52;;;15500:1;15497;15490:12;15452:52;15523:28;15541:9;15523:28;:::i;15562:457::-;15793:6;15782:9;15775:25;15836:6;15831:2;15820:9;15816:18;15809:34;-1:-1:-1;;;;;15883:6:85;15879:31;15874:2;15863:9;15859:18;15852:59;15947:3;15942:2;15931:9;15927:18;15920:31;15756:4;15968:45;16008:3;15997:9;15993:19;15985:6;15968:45;:::i;16024:180::-;16080:6;16133:2;16121:9;16112:7;16108:23;16104:32;16101:52;;;16149:1;16146;16139:12;16101:52;16172:26;16188:9;16172:26;:::i","linkReferences":{}},"methodIdentifiers":{"allocateStream(bytes32,address[],bytes32,bytes)":"6b883c39","getAllStreamIds()":"86789fc6","getAllStreams()":"3bd84c0c","getPaginatedStreams(uint256,uint256)":"ca78c41a","getStream(bytes32)":"1290abe8","getStreamByIndex(uint256)":"68b454df","getStreamCount()":"c0f22084","getStreamCountOnNode(address)":"c87d1324","getStreamWithGenesis(bytes32)":"3c2544d1","getStreamsOnNode(address)":"32705ac4","placeStreamOnNode(bytes32,address)":"9ee86d38","removeStreamFromNode(bytes32,address)":"ee885b12","setStreamLastMiniblock(bytes32,bytes32,bytes32,uint64,bool)":"d7a3158a","setStreamLastMiniblockBatch((bytes32,bytes32,bytes32,uint64,bool)[])":"ff3a14ab"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"genesisMiniblockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"genesisMiniblock\",\"type\":\"bytes\"}],\"name\":\"StreamAllocated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"StreamLastMiniblockUpdateFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSealed\",\"type\":\"bool\"}],\"name\":\"StreamLastMiniblockUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAdded\",\"type\":\"bool\"}],\"name\":\"StreamPlacementUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"genesisMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"genesisMiniblock\",\"type\":\"bytes\"}],\"name\":\"allocateStream\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllStreamIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllStreams\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stop\",\"type\":\"uint256\"}],\"name\":\"getPaginatedStreams\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"}],\"name\":\"getStream\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"getStreamByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStreamCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getStreamCountOnNode\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"}],\"name\":\"getStreamWithGenesis\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getStreamsOnNode\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"placeStreamOnNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"removeStreamFromNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isSealed\",\"type\":\"bool\"}],\"name\":\"setStreamLastMiniblock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"prevMiniBlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isSealed\",\"type\":\"bool\"}],\"internalType\":\"struct SetMiniblock[]\",\"name\":\"miniblocks\",\"type\":\"tuple[]\"}],\"name\":\"setStreamLastMiniblockBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getAllStreamIds()\":{\"details\":\"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getAllStreams()\":{\"details\":\"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getPaginatedStreams(uint256,uint256)\":{\"details\":\"Recommended range is 5000 streams, returns true if on the last page.\"},\"getStreamWithGenesis(bytes32)\":{\"returns\":{\"_0\":\"stream, genesisMiniblockHash, genesisMiniblock\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAllStreamIds()\":{\"notice\":\"Return array containing all stream ids\"},\"getAllStreams()\":{\"notice\":\"Return array containing all streams\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/river/registry/facets/stream/StreamRegistry.sol\":\"StreamRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/river/registry/facets/stream/IStreamRegistry.sol\":{\"keccak256\":\"0x1f4373bfa9cdbaa460a8c8870ae059226e1c4c2b03055d92994d582f8affbf4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2eee44be95c48eba75a2283aef37771861cc5c00c32b7bbba55f4408352cf79\",\"dweb:/ipfs/QmVgv1dk5uTNcmagVUH1L1h4aHKpUhSvJPzzuQbSVAn1eT\"]},\"contracts/src/river/registry/facets/stream/StreamRegistry.sol\":{\"keccak256\":\"0x3ee1ae880161a90c74e384b58b1a8f317f1e95342b28cf71db47f01337db7dfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://048bf90faa715f9c532a91d74aeab44a1c20183d04de9a80b7d1ce542325a5d5\",\"dweb:/ipfs/QmW2eXQZWiRYC5cPX1UKVNTb9S3RngAUamCD9qpfiuyibs\"]},\"contracts/src/river/registry/libraries/RegistryErrors.sol\":{\"keccak256\":\"0x411bd2bca08451c59880f46aa3ce0ac6b20a1cfa8a8836e4ce035fad57bce497\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d8b0fff68a90994db10dd30f26f4f399027295152060b65fadaab76768f6501\",\"dweb:/ipfs/QmdJsGe2utFn1ju8YKkZpshVGNgUbfkkZP77LprQ43BcPP\"]},\"contracts/src/river/registry/libraries/RegistryStorage.sol\":{\"keccak256\":\"0xd45a126f3a7ce156824b019adf5c2832236421da770a02c38a1fa5e789411201\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6edc5efd37e99112a4f1ed8ca56d9f4034c36540bfbe3854b098b5b03cb5c9c4\",\"dweb:/ipfs/QmZKR5pkUVUzxizh6YdDFXenssUfKnJCD15RMgh1T74AcH\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"address[]","name":"nodes","type":"address[]","indexed":false},{"internalType":"bytes32","name":"genesisMiniblockHash","type":"bytes32","indexed":false},{"internalType":"bytes","name":"genesisMiniblock","type":"bytes","indexed":false}],"type":"event","name":"StreamAllocated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32","indexed":false},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64","indexed":false},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"StreamLastMiniblockUpdateFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32","indexed":false},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64","indexed":false},{"internalType":"bool","name":"isSealed","type":"bool","indexed":false}],"type":"event","name":"StreamLastMiniblockUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"address","name":"nodeAddress","type":"address","indexed":false},{"internalType":"bool","name":"isAdded","type":"bool","indexed":false}],"type":"event","name":"StreamPlacementUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"address[]","name":"nodes","type":"address[]"},{"internalType":"bytes32","name":"genesisMiniblockHash","type":"bytes32"},{"internalType":"bytes","name":"genesisMiniblock","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"allocateStream"},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllStreamIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllStreams","outputs":[{"internalType":"struct StreamWithId[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]}]},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"stop","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPaginatedStreams","outputs":[{"internalType":"struct StreamWithId[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]},{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStream","outputs":[{"internalType":"struct Stream","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStreamByIndex","outputs":[{"internalType":"struct StreamWithId","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStreamCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getStreamCountOnNode","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStreamWithGenesis","outputs":[{"internalType":"struct Stream","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getStreamsOnNode","outputs":[{"internalType":"struct StreamWithId[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]}]},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"placeStreamOnNode"},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeStreamFromNode"},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"bool","name":"isSealed","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setStreamLastMiniblock"},{"inputs":[{"internalType":"struct SetMiniblock[]","name":"miniblocks","type":"tuple[]","components":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"bytes32","name":"prevMiniBlockHash","type":"bytes32"},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"bool","name":"isSealed","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"setStreamLastMiniblockBatch"}],"devdoc":{"kind":"dev","methods":{"getAllStreamIds()":{"details":"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block."},"getAllStreams()":{"details":"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block."},"getPaginatedStreams(uint256,uint256)":{"details":"Recommended range is 5000 streams, returns true if on the last page."},"getStreamWithGenesis(bytes32)":{"returns":{"_0":"stream, genesisMiniblockHash, genesisMiniblock"}}},"version":1},"userdoc":{"kind":"user","methods":{"getAllStreamIds()":{"notice":"Return array containing all stream ids"},"getAllStreams()":{"notice":"Return array containing all streams"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/river/registry/facets/stream/StreamRegistry.sol":"StreamRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/river/registry/facets/stream/IStreamRegistry.sol":{"keccak256":"0x1f4373bfa9cdbaa460a8c8870ae059226e1c4c2b03055d92994d582f8affbf4f","urls":["bzz-raw://a2eee44be95c48eba75a2283aef37771861cc5c00c32b7bbba55f4408352cf79","dweb:/ipfs/QmVgv1dk5uTNcmagVUH1L1h4aHKpUhSvJPzzuQbSVAn1eT"],"license":"MIT"},"contracts/src/river/registry/facets/stream/StreamRegistry.sol":{"keccak256":"0x3ee1ae880161a90c74e384b58b1a8f317f1e95342b28cf71db47f01337db7dfb","urls":["bzz-raw://048bf90faa715f9c532a91d74aeab44a1c20183d04de9a80b7d1ce542325a5d5","dweb:/ipfs/QmW2eXQZWiRYC5cPX1UKVNTb9S3RngAUamCD9qpfiuyibs"],"license":"MIT"},"contracts/src/river/registry/libraries/RegistryErrors.sol":{"keccak256":"0x411bd2bca08451c59880f46aa3ce0ac6b20a1cfa8a8836e4ce035fad57bce497","urls":["bzz-raw://7d8b0fff68a90994db10dd30f26f4f399027295152060b65fadaab76768f6501","dweb:/ipfs/QmdJsGe2utFn1ju8YKkZpshVGNgUbfkkZP77LprQ43BcPP"],"license":"MIT"},"contracts/src/river/registry/libraries/RegistryStorage.sol":{"keccak256":"0xd45a126f3a7ce156824b019adf5c2832236421da770a02c38a1fa5e789411201","urls":["bzz-raw://6edc5efd37e99112a4f1ed8ca56d9f4034c36540bfbe3854b098b5b03cb5c9c4","dweb:/ipfs/QmZKR5pkUVUzxizh6YdDFXenssUfKnJCD15RMgh1T74AcH"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":48} \ No newline at end of file +{"abi":[{"type":"function","name":"allocateStream","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"nodes","type":"address[]","internalType":"address[]"},{"name":"genesisMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"genesisMiniblock","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAllStreamIds","inputs":[],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"getAllStreams","inputs":[],"outputs":[{"name":"","type":"tuple[]","internalType":"struct StreamWithId[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getPaginatedStreams","inputs":[{"name":"start","type":"uint256","internalType":"uint256"},{"name":"stop","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct StreamWithId[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]},{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getStream","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}],"stateMutability":"view"},{"type":"function","name":"getStreamByIndex","inputs":[{"name":"i","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StreamWithId","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"getStreamCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getStreamCountOnNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getStreamWithGenesis","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]},{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStreamsOnNode","inputs":[{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct StreamWithId[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"stream","type":"tuple","internalType":"struct Stream","components":[{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"reserved0","type":"uint64","internalType":"uint64"},{"name":"flags","type":"uint64","internalType":"uint64"},{"name":"nodes","type":"address[]","internalType":"address[]"}]}]}],"stateMutability":"view"},{"type":"function","name":"placeStreamOnNode","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeStreamFromNode","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"nodeAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStreamLastMiniblock","inputs":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"isSealed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStreamLastMiniblockBatch","inputs":[{"name":"miniblocks","type":"tuple[]","internalType":"struct SetMiniblock[]","components":[{"name":"streamId","type":"bytes32","internalType":"bytes32"},{"name":"prevMiniBlockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","internalType":"uint64"},{"name":"isSealed","type":"bool","internalType":"bool"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"StreamAllocated","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"nodes","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"genesisMiniblockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"genesisMiniblock","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"StreamLastMiniblockUpdateFailed","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"reason","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"StreamLastMiniblockUpdated","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"lastMiniblockNum","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"isSealed","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"StreamPlacementUpdated","inputs":[{"name":"streamId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"nodeAddress","type":"address","indexed":false,"internalType":"address"},{"name":"isAdded","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50612218806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639ee86d381161008c578063ca78c41a11610066578063ca78c41a146101e8578063d7a3158a14610209578063ee885b121461021c578063ff3a14ab1461022f57600080fd5b80639ee86d38146101ac578063c0f22084146101bf578063c87d1324146101d557600080fd5b80633c2544d1116100c85780633c2544d11461014057806368b454df146101625780636b883c391461018257806386789fc61461019757600080fd5b80631290abe8146100ef57806332705ac4146101185780633bd84c0c14610138575b600080fd5b6101026100fd3660046119f1565b610242565b60405161010f9190611a9b565b60405180910390f35b61012b610126366004611aca565b61036d565b60405161010f9190611b66565b61012b61061f565b61015361014e3660046119f1565b61078d565b60405161010f93929190611bbf565b6101756101703660046119f1565b61095e565b60405161010f9190611bf4565b610195610190366004611cbc565b610a8a565b005b61019f610cf1565b60405161010f9190611d9f565b6101956101ba366004611de3565b610d02565b6101c7610ec3565b60405190815260200161010f565b6101c76101e3366004611aca565b610ece565b6101fb6101f6366004611e0f565b610f7c565b60405161010f929190611e31565b610195610217366004611e7c565b61116d565b61019561022a366004611de3565b6112f0565b61019561023d366004611ecc565b61153d565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061027690836117a6565b6102ba5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b60405180910390fd5b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561035d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161033f575b5050505050815250509050919050565b6060600061037a816117c3565b90506000816001600160401b0381111561039657610396611c07565b6040519080825280602002602001820160405280156103bf578160200160208202803683370190505b5090506000805b838110156104815760006103da81836117cd565b600081815260026020819052604082209081015492935091905b8181101561047257896001600160a01b031683600201828154811061041b5761041b611f53565b6000918252602090912001546001600160a01b03160361046a5783878761044181611f7f565b985063ffffffff168151811061045957610459611f53565b602002602001018181525050610472565b6001016103f4565b505050508060010190506103c6565b5060008163ffffffff166001600160401b038111156104a2576104a2611c07565b6040519080825280602002602001820160405280156104db57816020015b6104c86118f0565b8152602001906001900390816104c05790505b50905060005b8263ffffffff1681101561061557604051806040016040528085838151811061050c5761050c611f53565b602002602001015181526020016000600201600087858151811061053257610532611f53565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b9091041660608201526002820180548451818702810187019095528085529194929360808601939092908301828280156105e457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105c6575b50505050508152505081525082828151811061060257610602611f53565b60209081029190910101526001016104e1565b5095945050505050565b6060600061062c816117c3565b90506000816001600160401b0381111561064857610648611c07565b60405190808252806020026020018201604052801561068157816020015b61066e6118f0565b8152602001906001900390816106665790505b50905060005b8281101561078657600061069b81836117cd565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b909104166060820152918101805486518186028101860190975280875296975093958387019592949193608086019392919083018282801561075457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610736575b50505050508152505081525083838151811061077257610772611f53565b602090810291909101015250600101610687565b5092915050565b6040805160a0810182526000808252602082018190529181018290526060808201839052608082018190529091906107c582856117a6565b6108005760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b909104166060820152948201805484518187028101870190955280855292969591949193879360808601939192918301828280156108ba57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161089c575b50505050508152505092508080546108d190611fa2565b80601f01602080910402602001604051908101604052809291908181526020018280546108fd90611fa2565b801561094a5780601f1061091f5761010080835404028352916020019161094a565b820191906000526020600020905b81548152906001019060200180831161092d57829003601f168201915b505050505090509250925092509193909250565b6109666118f0565b6000610971816117c3565b90508083106109b15760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b60006109bd81856117cd565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610a7657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a58575b505050919092525050509052949350505050565b336000818152600760205260409020600201546001600160a01b0316610ae657604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b610af16000866117a6565b15610b3257604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526102b19190600401611f40565b835160005b81811015610bb757610b6f868281518110610b5457610b54611f53565b602002602001015160006005016117d990919063ffffffff16565b610baf57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b600101610b37565b506040805160a081018252858152600060208201819052918101829052606081018290526080810187905290610bed90886117fb565b5060008781526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff19909916919094161796909617959095161790935560808401518051859493610c7d9390850192019061193a565b5050506000878152600360205260409020610c98858261202d565b5060008781526004602052604090819020869055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb90610ce09089908990899089906120ec565b60405180910390a150505050505050565b6060610cfd6000611807565b905090565b81610d0e6000826117a6565b610d495760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b6001600160a01b03808316600090815260076020526040902060020154839116610da957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b600084815260026020819052604082209081015490915b81811015610e4557856001600160a01b0316836002018281548110610de757610de7611f53565b6000918252602090912001546001600160a01b031603610e3d57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526102b19190600401611f40565b600101610dc0565b5060028201805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b038916908117909155604080518a8152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600160405180910390a1505050505050565b6000610cfd816117c3565b60008080610edb816117c3565b905060005b81811015610f73576000610ef481836117cd565b60008181526002602052604081209192505b6002820154811015610f6557876001600160a01b0316826002018281548110610f3157610f31611f53565b6000918252602090912001546001600160a01b031603610f5d5785610f558161215f565b965050610f65565b600101610f06565b505050806001019050610ee0565b50909392505050565b60606000828410604051806040016040528060078152602001664241445f41524760c81b81525090610fc15760405162461bcd60e51b81526004016102b19190611f40565b506000610fce8585612178565b6001600160401b03811115610fe557610fe5611c07565b60405190808252806020026020018201604052801561101e57816020015b61100b6118f0565b8152602001906001900390816110035790505b509050600061102c816117c3565b905060005b8161103c828961218b565b10801561105157508561104f828961218b565b105b1561116157600061106d611065838a61218b565b6000906117cd565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b909104166060820152918101805486518186028101860190975280875296975093958387019592949193608086019392919083018282801561112657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611108575b50505050508152505081525084838151811061114457611144611f53565b6020026020010181905250508061115a9061215f565b9050611031565b50909593101593505050565b336000818152600760205260409020600201546001600160a01b03166111c957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b6111d46000876117a6565b61120f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b0386161790558215611277576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b031660010361129f57600087815260036020526040812061129f9161199f565b60408051888152602081018790526001600160401b0386169181019190915283151560608201527fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b90608001610ce0565b816112fc6000826117a6565b6113375760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b6001600160a01b0380831660009081526007602052604090206002015483911661139757604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b6000848152600260208190526040822090810154909190815b818110156114b257866001600160a01b03168460020182815481106113d7576113d7611f53565b6000918252602090912001546001600160a01b0316036114aa5760028401611400600184612178565b8154811061141057611410611f53565b6000918252602090912001546002850180546001600160a01b03909216918390811061143e5761143e611f53565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508360020180548061147f5761147f61219e565b600082815260209020810160001990810180546001600160a01b0319169055019055600192506114b2565b6001016113b0565b50816114f457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b604080518881526001600160a01b03881660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f90606001610ce0565b336000818152600760205260409020600201546001600160a01b031661159957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b8160005b8181101561179f57368585838181106115b8576115b8611f53565b60a0029190910191506115cf9050600082356117a6565b611647577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561160b60808501606086016121b4565b60408051808201825260098152681393d517d193d5539160ba1b6020820152905161163994939291906121cf565b60405180910390a150611797565b80356000908152600260205260409081902090820135815561166f60808301606084016121b4565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556116a260a08301608084016121fd565b156116da576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b6116ea60808301606084016121b4565b6001600160401b031660010361171357813560009081526003602052604081206117139161199f565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561174b60808601606087016121b4565b61175b60a08701608088016121fd565b60405161178c949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b60010161159d565b5050505050565b600081815260018301602052604081205415155b90505b92915050565b60006117bd825490565b60006117ba838361181b565b6001600160a01b038116600090815260018301602052604081205415156117ba565b60006117ba8383611845565b6060600061181483611894565b9392505050565b600082600001828154811061183257611832611f53565b9060005260206000200154905092915050565b600081815260018301602052604081205461188c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556117bd565b5060006117bd565b6060816000018054806020026020016040519081016040528092919081815260200182805480156118e457602002820191906000526020600020905b8154815260200190600101908083116118d0575b50505050509050919050565b6040805180820190915260008152602081016119356040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b82805482825590600052602060002090810192821561198f579160200282015b8281111561198f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061195a565b5061199b9291506119dc565b5090565b5080546119ab90611fa2565b6000825580601f106119bb575050565b601f0160209004906000526020600020908101906119d991906119dc565b50565b5b8082111561199b57600081556001016119dd565b600060208284031215611a0357600080fd5b5035919050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015611a905784516001600160a01b03168252938301936001929092019190830190611a67565b509695505050505050565b6020815260006117ba6020830184611a0a565b80356001600160a01b0381168114611ac557600080fd5b919050565b600060208284031215611adc57600080fd5b6117ba82611aae565b805182526000602082015160406020850152611b046040850182611a0a565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015611b5957601f19868403018952611b47838351611ae5565b98840198925090830190600101611b2b565b5090979650505050505050565b6020815260006117ba6020830184611b0c565b6000815180845260005b81811015611b9f57602081850181015186830182015201611b83565b506000602082860101526020601f19601f83011685010191505092915050565b606081526000611bd26060830186611a0a565b8460208401528281036040840152611bea8185611b79565b9695505050505050565b6020815260006117ba6020830184611ae5565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c4557611c45611c07565b604052919050565b600082601f830112611c5e57600080fd5b81356001600160401b03811115611c7757611c77611c07565b611c8a601f8201601f1916602001611c1d565b818152846020838601011115611c9f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611cd257600080fd5b843593506020808601356001600160401b0380821115611cf157600080fd5b818801915088601f830112611d0557600080fd5b813581811115611d1757611d17611c07565b8060051b611d26858201611c1d565b918252838101850191858101908c841115611d4057600080fd5b948601945b83861015611d6557611d5686611aae565b82529486019490860190611d45565b9850505050604088013594506060880135925080831115611d8557600080fd5b5050611d9387828801611c4d565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015611dd757835183529284019291840191600101611dbb565b50909695505050505050565b60008060408385031215611df657600080fd5b82359150611e0660208401611aae565b90509250929050565b60008060408385031215611e2257600080fd5b50508035926020909101359150565b604081526000611e446040830185611b0c565b905082151560208301529392505050565b80356001600160401b0381168114611ac557600080fd5b80358015158114611ac557600080fd5b600080600080600060a08688031215611e9457600080fd5b853594506020860135935060408601359250611eb260608701611e55565b9150611ec060808701611e6c565b90509295509295909350565b60008060208385031215611edf57600080fd5b82356001600160401b0380821115611ef657600080fd5b818501915085601f830112611f0a57600080fd5b813581811115611f1957600080fd5b86602060a083028501011115611f2e57600080fd5b60209290920196919550909350505050565b6020815260006117ba6020830184611b79565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff808316818103611f9857611f98611f69565b6001019392505050565b600181811c90821680611fb657607f821691505b602082108103611fd657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115612028576000816000526020600020601f850160051c810160208610156120055750805b601f850160051c820191505b8181101561202457828155600101612011565b5050505b505050565b81516001600160401b0381111561204657612046611c07565b61205a816120548454611fa2565b84611fdc565b602080601f83116001811461208f57600084156120775750858301515b600019600386901b1c1916600185901b178555612024565b600085815260208120601f198616915b828110156120be5788860151825594840194600190910190840161209f565b50858210156120dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006080820186835260206080602085015281875180845260a08601915060208901935060005b818110156121385784516001600160a01b031683529383019391830191600101612113565b505086604086015284810360608601526121528187611b79565b9998505050505050505050565b60006001820161217157612171611f69565b5060010190565b818103818111156117bd576117bd611f69565b808201808211156117bd576117bd611f69565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156121c657600080fd5b6117ba82611e55565b8481528360208201526001600160401b0383166040820152608060608201526000611bea6080830184611b79565b60006020828403121561220f57600080fd5b6117ba82611e6c56","sourceMap":"598:8241:197:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639ee86d381161008c578063ca78c41a11610066578063ca78c41a146101e8578063d7a3158a14610209578063ee885b121461021c578063ff3a14ab1461022f57600080fd5b80639ee86d38146101ac578063c0f22084146101bf578063c87d1324146101d557600080fd5b80633c2544d1116100c85780633c2544d11461014057806368b454df146101625780636b883c391461018257806386789fc61461019757600080fd5b80631290abe8146100ef57806332705ac4146101185780633bd84c0c14610138575b600080fd5b6101026100fd3660046119f1565b610242565b60405161010f9190611a9b565b60405180910390f35b61012b610126366004611aca565b61036d565b60405161010f9190611b66565b61012b61061f565b61015361014e3660046119f1565b61078d565b60405161010f93929190611bbf565b6101756101703660046119f1565b61095e565b60405161010f9190611bf4565b610195610190366004611cbc565b610a8a565b005b61019f610cf1565b60405161010f9190611d9f565b6101956101ba366004611de3565b610d02565b6101c7610ec3565b60405190815260200161010f565b6101c76101e3366004611aca565b610ece565b6101fb6101f6366004611e0f565b610f7c565b60405161010f929190611e31565b610195610217366004611e7c565b61116d565b61019561022a366004611de3565b6112f0565b61019561023d366004611ecc565b61153d565b6040805160a081018252600080825260208201819052918101829052606080820183905260808201529061027690836117a6565b6102ba5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b60405180910390fd5b600082815260026020818152604092839020835160a0810185528154815260018201546001600160401b0380821683860152600160401b8204811683880152600160801b909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561035d57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161033f575b5050505050815250509050919050565b6060600061037a816117c3565b90506000816001600160401b0381111561039657610396611c07565b6040519080825280602002602001820160405280156103bf578160200160208202803683370190505b5090506000805b838110156104815760006103da81836117cd565b600081815260026020819052604082209081015492935091905b8181101561047257896001600160a01b031683600201828154811061041b5761041b611f53565b6000918252602090912001546001600160a01b03160361046a5783878761044181611f7f565b985063ffffffff168151811061045957610459611f53565b602002602001018181525050610472565b6001016103f4565b505050508060010190506103c6565b5060008163ffffffff166001600160401b038111156104a2576104a2611c07565b6040519080825280602002602001820160405280156104db57816020015b6104c86118f0565b8152602001906001900390816104c05790505b50905060005b8263ffffffff1681101561061557604051806040016040528085838151811061050c5761050c611f53565b602002602001015181526020016000600201600087858151811061053257610532611f53565b6020908102919091018101518252818101929092526040908101600020815160a0810183528154815260018201546001600160401b0380821683870152600160401b8204811683860152600160801b9091041660608201526002820180548451818702810187019095528085529194929360808601939092908301828280156105e457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116105c6575b50505050508152505081525082828151811061060257610602611f53565b60209081029190910101526001016104e1565b5095945050505050565b6060600061062c816117c3565b90506000816001600160401b0381111561064857610648611c07565b60405190808252806020026020018201604052801561068157816020015b61066e6118f0565b8152602001906001900390816106665790505b50905060005b8281101561078657600061069b81836117cd565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b909104166060820152918101805486518186028101860190975280875296975093958387019592949193608086019392919083018282801561075457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610736575b50505050508152505081525083838151811061077257610772611f53565b602090810291909101015250600101610687565b5092915050565b6040805160a0810182526000808252602082018190529181018290526060808201839052608082018190529091906107c582856117a6565b6108005760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b600084815260026020818152604080842060048352818520546003845294829020825160a0810184528254815260018301546001600160401b0380821683880152600160401b8204811683870152600160801b909104166060820152948201805484518187028101870190955280855292969591949193879360808601939192918301828280156108ba57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161089c575b50505050508152505092508080546108d190611fa2565b80601f01602080910402602001604051908101604052809291908181526020018280546108fd90611fa2565b801561094a5780601f1061091f5761010080835404028352916020019161094a565b820191906000526020600020905b81548152906001019060200180831161092d57829003601f168201915b505050505090509250925092509193909250565b6109666118f0565b6000610971816117c3565b90508083106109b15760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b60006109bd81856117cd565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b9091041660608201529181018054865181860281018601909752808752969750939583870195929491936080860193929190830182828015610a7657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a58575b505050919092525050509052949350505050565b336000818152600760205260409020600201546001600160a01b0316610ae657604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b610af16000866117a6565b15610b3257604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526102b19190600401611f40565b835160005b81811015610bb757610b6f868281518110610b5457610b54611f53565b602002602001015160006005016117d990919063ffffffff16565b610baf57604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b600101610b37565b506040805160a081018252858152600060208201819052918101829052606081018290526080810187905290610bed90886117fb565b5060008781526002602081815260409283902084518155818501516001820180549587015160608801516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026fffffffffffffffffffffffffffffffff19909916919094161796909617959095161790935560808401518051859493610c7d9390850192019061193a565b5050506000878152600360205260409020610c98858261202d565b5060008781526004602052604090819020869055517f55ef7efc60ef99743e54209752c9a8e047e013917ec91572db75875069dd65bb90610ce09089908990899089906120ec565b60405180910390a150505050505050565b6060610cfd6000611807565b905090565b81610d0e6000826117a6565b610d495760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b6001600160a01b03808316600090815260076020526040902060020154839116610da957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b600084815260026020819052604082209081015490915b81811015610e4557856001600160a01b0316836002018281548110610de757610de7611f53565b6000918252602090912001546001600160a01b031603610e3d57604080518082018252600e81526d414c52454144595f45584953545360901b6020820152905162461bcd60e51b81526102b19190600401611f40565b600101610dc0565b5060028201805460018082018355600092835260209283902090910180546001600160a01b0319166001600160a01b038916908117909155604080518a8152938401919091528201527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f9060600160405180910390a1505050505050565b6000610cfd816117c3565b60008080610edb816117c3565b905060005b81811015610f73576000610ef481836117cd565b60008181526002602052604081209192505b6002820154811015610f6557876001600160a01b0316826002018281548110610f3157610f31611f53565b6000918252602090912001546001600160a01b031603610f5d5785610f558161215f565b965050610f65565b600101610f06565b505050806001019050610ee0565b50909392505050565b60606000828410604051806040016040528060078152602001664241445f41524760c81b81525090610fc15760405162461bcd60e51b81526004016102b19190611f40565b506000610fce8585612178565b6001600160401b03811115610fe557610fe5611c07565b60405190808252806020026020018201604052801561101e57816020015b61100b6118f0565b8152602001906001900390816110035790505b509050600061102c816117c3565b905060005b8161103c828961218b565b10801561105157508561104f828961218b565b105b1561116157600061106d611065838a61218b565b6000906117cd565b60408051808201825282815260008381526002602081815291849020845160a0810186528154815260018201546001600160401b0380821683870152600160401b8204811683890152600160801b909104166060820152918101805486518186028101860190975280875296975093958387019592949193608086019392919083018282801561112657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611108575b50505050508152505081525084838151811061114457611144611f53565b6020026020010181905250508061115a9061215f565b9050611031565b50909593101593505050565b336000818152600760205260409020600201546001600160a01b03166111c957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b6111d46000876117a6565b61120f5760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b600086815260026020526040902084815560018101805467ffffffffffffffff19166001600160401b0386161790558215611277576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b836001600160401b031660010361129f57600087815260036020526040812061129f9161199f565b60408051888152602081018790526001600160401b0386169181019190915283151560608201527fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b90608001610ce0565b816112fc6000826117a6565b6113375760408051808201825260098152681393d517d193d5539160ba1b6020820152905162461bcd60e51b81526102b19190600401611f40565b6001600160a01b0380831660009081526007602052604090206002015483911661139757604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b6000848152600260208190526040822090810154909190815b818110156114b257866001600160a01b03168460020182815481106113d7576113d7611f53565b6000918252602090912001546001600160a01b0316036114aa5760028401611400600184612178565b8154811061141057611410611f53565b6000918252602090912001546002850180546001600160a01b03909216918390811061143e5761143e611f53565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508360020180548061147f5761147f61219e565b600082815260209020810160001990810180546001600160a01b0319169055019055600192506114b2565b6001016113b0565b50816114f457604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b604080518881526001600160a01b03881660208201526000918101919091527faaa473c28a5fe04b6a7ecd795826e462f9d0c23f00ef9f51ec02fa6ea418806f90606001610ce0565b336000818152600760205260409020600201546001600160a01b031661159957604080518082018252600e81526d1393d11157d393d517d193d5539160921b6020820152905162461bcd60e51b81526102b19190600401611f40565b8160005b8181101561179f57368585838181106115b8576115b8611f53565b60a0029190910191506115cf9050600082356117a6565b611647577f75460fe319331413a18a82d99b07735cec53fa0c4061ada38c2141e331082afa8135604083013561160b60808501606086016121b4565b60408051808201825260098152681393d517d193d5539160ba1b6020820152905161163994939291906121cf565b60405180910390a150611797565b80356000908152600260205260409081902090820135815561166f60808301606084016121b4565b60018201805467ffffffffffffffff19166001600160401b03929092169190911790556116a260a08301608084016121fd565b156116da576001818101805467ffffffffffffffff60801b198116600160801b918290046001600160401b0316909317029190911790555b6116ea60808301606084016121b4565b6001600160401b031660010361171357813560009081526003602052604081206117139161199f565b7fccc26bbb6dd655ea0bb8a40a3c30e35c6bdf42f8faf0d71bbea897af768cda8b8235604084013561174b60808601606087016121b4565b61175b60a08701608088016121fd565b60405161178c949392919093845260208401929092526001600160401b031660408301521515606082015260800190565b60405180910390a150505b60010161159d565b5050505050565b600081815260018301602052604081205415155b90505b92915050565b60006117bd825490565b60006117ba838361181b565b6001600160a01b038116600090815260018301602052604081205415156117ba565b60006117ba8383611845565b6060600061181483611894565b9392505050565b600082600001828154811061183257611832611f53565b9060005260206000200154905092915050565b600081815260018301602052604081205461188c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556117bd565b5060006117bd565b6060816000018054806020026020016040519081016040528092919081815260200182805480156118e457602002820191906000526020600020905b8154815260200190600101908083116118d0575b50505050509050919050565b6040805180820190915260008152602081016119356040805160a081018252600080825260208201819052918101829052606080820192909252608081019190915290565b905290565b82805482825590600052602060002090810192821561198f579160200282015b8281111561198f57825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061195a565b5061199b9291506119dc565b5090565b5080546119ab90611fa2565b6000825580601f106119bb575050565b601f0160209004906000526020600020908101906119d991906119dc565b50565b5b8082111561199b57600081556001016119dd565b600060208284031215611a0357600080fd5b5035919050565b600060a08301825184526020808401516001600160401b0380821660208801528060408701511660408801528060608701511660608801525050608084015160a0608087015282815180855260c088019150602083019450600092505b80831015611a905784516001600160a01b03168252938301936001929092019190830190611a67565b509695505050505050565b6020815260006117ba6020830184611a0a565b80356001600160a01b0381168114611ac557600080fd5b919050565b600060208284031215611adc57600080fd5b6117ba82611aae565b805182526000602082015160406020850152611b046040850182611a0a565b949350505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015611b5957601f19868403018952611b47838351611ae5565b98840198925090830190600101611b2b565b5090979650505050505050565b6020815260006117ba6020830184611b0c565b6000815180845260005b81811015611b9f57602081850181015186830182015201611b83565b506000602082860101526020601f19601f83011685010191505092915050565b606081526000611bd26060830186611a0a565b8460208401528281036040840152611bea8185611b79565b9695505050505050565b6020815260006117ba6020830184611ae5565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c4557611c45611c07565b604052919050565b600082601f830112611c5e57600080fd5b81356001600160401b03811115611c7757611c77611c07565b611c8a601f8201601f1916602001611c1d565b818152846020838601011115611c9f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611cd257600080fd5b843593506020808601356001600160401b0380821115611cf157600080fd5b818801915088601f830112611d0557600080fd5b813581811115611d1757611d17611c07565b8060051b611d26858201611c1d565b918252838101850191858101908c841115611d4057600080fd5b948601945b83861015611d6557611d5686611aae565b82529486019490860190611d45565b9850505050604088013594506060880135925080831115611d8557600080fd5b5050611d9387828801611c4d565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b81811015611dd757835183529284019291840191600101611dbb565b50909695505050505050565b60008060408385031215611df657600080fd5b82359150611e0660208401611aae565b90509250929050565b60008060408385031215611e2257600080fd5b50508035926020909101359150565b604081526000611e446040830185611b0c565b905082151560208301529392505050565b80356001600160401b0381168114611ac557600080fd5b80358015158114611ac557600080fd5b600080600080600060a08688031215611e9457600080fd5b853594506020860135935060408601359250611eb260608701611e55565b9150611ec060808701611e6c565b90509295509295909350565b60008060208385031215611edf57600080fd5b82356001600160401b0380821115611ef657600080fd5b818501915085601f830112611f0a57600080fd5b813581811115611f1957600080fd5b86602060a083028501011115611f2e57600080fd5b60209290920196919550909350505050565b6020815260006117ba6020830184611b79565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff808316818103611f9857611f98611f69565b6001019392505050565b600181811c90821680611fb657607f821691505b602082108103611fd657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115612028576000816000526020600020601f850160051c810160208610156120055750805b601f850160051c820191505b8181101561202457828155600101612011565b5050505b505050565b81516001600160401b0381111561204657612046611c07565b61205a816120548454611fa2565b84611fdc565b602080601f83116001811461208f57600084156120775750858301515b600019600386901b1c1916600185901b178555612024565b600085815260208120601f198616915b828110156120be5788860151825594840194600190910190840161209f565b50858210156120dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006080820186835260206080602085015281875180845260a08601915060208901935060005b818110156121385784516001600160a01b031683529383019391830191600101612113565b505086604086015284810360608601526121528187611b79565b9998505050505050505050565b60006001820161217157612171611f69565b5060010190565b818103818111156117bd576117bd611f69565b808201808211156117bd576117bd611f69565b634e487b7160e01b600052603160045260246000fd5b6000602082840312156121c657600080fd5b6117ba82611e55565b8481528360208201526001600160401b0383166040820152608060608201526000611bea6080830184611b79565b60006020828403121561220f57600080fd5b6117ba82611e6c56","sourceMap":"598:8241:197:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:195;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7419:929;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6460:375::-;;;:::i;2491:350::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;2089:337::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;769:1117::-;;;;;;:::i;:::-;;:::i;:::-;;6351:105;;;:::i;:::-;;;;;;;:::i;5094:540::-;;;;;;:::i;:::-;;:::i;6252:95::-;;;:::i;:::-;;;7686:25:484;;;7674:2;7659:18;6252:95:197;7540:177:484;8352:485:197;;;;;;:::i;:::-;;:::i;6839:576::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2845:948::-;;;;;;:::i;:::-;;:::i;5638:610::-;;;;;;:::i;:::-;;:::i;3797:1293::-;;;;;;:::i;:::-;;:::i;1890:195::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1976:29:197;;1996:8;1976:19;:29::i;:::-;1971:73;;2014:29;;;;;;;;;;;-1:-1:-1;;;2014:29:197;;;;2007:37;;-1:-1:-1;;;2007:37:197;;;;2014:29;2007:37;;;:::i;:::-;;;;;;;;1971:73;2057:2;:23;;;:13;:23;;;;;;;;;2050:30;;;;;;;;;;;;;;;-1:-1:-1;;;;;2050:30:197;;;;;;;-1:-1:-1;;;2050:30:197;;;;;;;;-1:-1:-1;;;2050:30:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2057:23;;2050:30;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2050:30:197;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:195;;;:::o;7419:929::-;7497:21;7583:20;7606:19;7583:20;7606:17;:19::i;:::-;7583:42;;7632:29;7678:12;-1:-1:-1;;;;;7664:27:197;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7664:27:197;-1:-1:-1;7632:59:197;-1:-1:-1;7697:18:197;;7722:357;7746:12;7742:1;:16;7722:357;;;7773:10;7786:16;7773:10;7800:1;7786:13;:16::i;:::-;7810:21;7834:17;;;:13;:17;;;;;;;7879:12;;;:19;7773:29;;-1:-1:-1;7834:17:197;7879:19;7907:166;7931:9;7927:1;:13;7907:166;;;7980:11;-1:-1:-1;;;;;7961:30:197;:6;:12;;7974:1;7961:15;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;7961:15:197;:30;7957:108;;8035:2;8005:12;8018:13;;;;:::i;:::-;;;8005:27;;;;;;;;;;:::i;:::-;;;;;;:32;;;;;8049:5;;7957:108;7942:3;;7907:166;;;;7765:314;;;7760:3;;;;;7722:357;;;;8085:29;8136:11;8117:31;;-1:-1:-1;;;;;8117:31:197;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;8085:63;;8159:9;8154:169;8178:11;8174:15;;:1;:15;8154:169;;;8217:99;;;;;;;;8244:12;8257:1;8244:15;;;;;;;;:::i;:::-;;;;;;;8217:99;;;;8277:2;:13;;:30;8291:12;8304:1;8291:15;;;;;;;;:::i;:::-;;;;;;;;;;;;8277:30;;;;;;;;;;;;;-1:-1:-1;8277:30:197;8217:99;;;;;;;;;;;;;;;-1:-1:-1;;;;;8217:99:197;;;;;;;-1:-1:-1;;;8217:99:197;;;;;;;;-1:-1:-1;;;8217:99:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8277:30;;8217:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8217:99:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;8204:7;8212:1;8204:10;;;;;;;;:::i;:::-;;;;;;;;;;:112;8191:3;;8154:169;;;-1:-1:-1;8336:7:197;7419:929;-1:-1:-1;;;;;7419:929:197:o;6460:375::-;6508:21;6537:19;6559;6537;6559:17;:19::i;:::-;6537:41;;6584:29;6635:11;-1:-1:-1;;;;;6616:31:197;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;6584:63;;6659:9;6654:156;6678:11;6674:1;:15;6654:156;;;6704:10;6717:16;6704:10;6731:1;6717:13;:16::i;:::-;6754:49;;;;;;;;;;;-1:-1:-1;6784:17:197;;;:13;6754:49;6784:17;;;;;;;6754:49;;;;;;;;;;;;;;;-1:-1:-1;;;;;6754:49:197;;;;;;;-1:-1:-1;;;6754:49:197;;;;;;;;-1:-1:-1;;;6754:49:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;6704:29;;-1:-1:-1;6754:49:197;;;;;;;;6784:17;;6754:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6754:49:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;6741:7;6749:1;6741:10;;;;;;;;:::i;:::-;;;;;;;;;;:62;-1:-1:-1;6691:3:197;;6654:156;;;-1:-1:-1;6823:7:197;6460:375;-1:-1:-1;;6460:375:197:o;2491:350::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2619:29:197;-1:-1:-1;2639:8:197;2619:19;:29::i;:::-;2614:73;;2657:29;;;;;;;;;;;-1:-1:-1;;;2657:29:197;;;;2650:37;;-1:-1:-1;;;2650:37:197;;;;2657:29;2650:37;;;:::i;2614:73::-;2709:2;:23;;;:13;:23;;;;;;;;2740:33;:43;;;;;;2791:29;:39;;;;;;2694:142;;;;;;;;;;;;;;;-1:-1:-1;;;;;2694:142:197;;;;;;;-1:-1:-1;;;2694:142:197;;;;;;;;-1:-1:-1;;;2694:142:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;2709:23;;2740:43;2791:39;;2694:142;;2709:23;;2694:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2694:142:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2491:350;;;;;:::o;2089:337::-;2157:19;;:::i;:::-;2184;2206;2184;2206:17;:19::i;:::-;2184:41;;2241:11;2236:1;:16;2232:74;;2269:29;;;;;;;;;;;-1:-1:-1;;;2269:29:197;;;;2262:37;;-1:-1:-1;;;2262:37:197;;;;2269:29;2262:37;;;:::i;2232:74::-;2312:16;2331;2312;2345:1;2331:13;:16::i;:::-;2360:61;;;;;;;;;;;-1:-1:-1;2396:23:197;;;:13;2360:61;2396:23;;;;;;;2360:61;;;;;;;;;;;;;;;-1:-1:-1;;;;;2360:61:197;;;;;;;-1:-1:-1;;;2360:61:197;;;;;;;;-1:-1:-1;;;2360:61:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;2312:35;;-1:-1:-1;2360:61:197;;;;;;;;2396:23;;2360:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2360:61:197;;;;;;;;;;;;;;;;-1:-1:-1;;;2360:61:197;;;;-1:-1:-1;;;2360:61:197;;2353:68;2089:337;-1:-1:-1;;;;2089:337:197:o;769:1117::-;934:10;3085:1:199;3039:22;;;:16;:22;;;;;:34;;;-1:-1:-1;;;;;3039:34:199;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:199;;;;3095:42;;-1:-1:-1;;;3095:42:199;;;;3102:34;3095:42;;;:::i;3035:102::-;1019:29:197::1;:2;1039:8:::0;1019:19:::1;:29::i;:::-;1015:83;;;1063:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1063:34:197::1;::::0;::::1;::::0;1056:42;;-1:-1:-1;;;1056:42:197;;::::1;::::0;1063:34;1056:42:::1;;;:::i;1015:83::-;1194:12:::0;;1174:17:::1;1212:139;1236:9;1232:1;:13;1212:139;;;1265:27;1283:5;1289:1;1283:8;;;;;;;;:::i;:::-;;;;;;;1265:2;:8;;:17;;:27;;;;:::i;:::-;1260:84;;1309:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;1309:34:197::1;::::0;::::1;::::0;1302:42;;-1:-1:-1;;;1302:42:197;;::::1;::::0;1309:34;1302:42:::1;;;:::i;1260:84::-;1247:3;;1212:139;;;-1:-1:-1::0;1418:144:197::1;::::0;;::::1;::::0;::::1;::::0;;;;;1395:20:::1;1418:144;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;1569:24:::1;::::0;1584:8;1569:14:::1;:24::i;:::-;-1:-1:-1::0;1599:2:197::1;:23:::0;;;:13:::1;:23;::::0;;;;;;;;:32;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;1599:32:197;;::::1;-1:-1:-1::0;;;1599:32:197::1;-1:-1:-1::0;;;;1599:32:197;;::::1;-1:-1:-1::0;;;1599:32:197::1;-1:-1:-1::0;;1599:32:197;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;::::1;::::0;;;1625:6;;1599:23;:32:::1;::::0;;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;1637:2:197::1;:39:::0;;;:29:::1;:39;::::0;;;;:58:::1;1679:16:::0;1637:39;:58:::1;:::i;:::-;-1:-1:-1::0;1701:2:197::1;:43:::0;;;:33:::1;:43;::::0;;;;;;:66;;;1779:102;::::1;::::0;::::1;::::0;1735:8;;1818:5;;1747:20;;1859:16;;1779:102:::1;:::i;:::-;;;;;;;;946:940;;769:1117:::0;;;;;:::o;6351:105::-;6401:16;6432:19;:2;:17;:19::i;:::-;6425:26;;6351:105;:::o;5094:540::-;5192:8;3338:29:199;:2;5192:8:197;3338:19:199;:29::i;:::-;3333:73;;3376:29;;;;;;;;;;;-1:-1:-1;;;3376:29:199;;;;3369:37;;-1:-1:-1;;;3369:37:199;;;;3376:29;3369:37;;;:::i;3333:73::-;-1:-1:-1;;;;;3039:22:199;;::::1;3085:1;3039:22:::0;;;:16:::1;:22;::::0;;;;:34:::1;;::::0;5211:11:197;;3039:34:199::1;3035:102;;3102:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3102:34:199::1;::::0;::::1;::::0;3095:42;;-1:-1:-1;;;3095:42:199;;::::1;::::0;3102:34;3095:42:::1;;;:::i;3035:102::-;5230:21:197::2;5254:23:::0;;;:13:::2;:23;::::0;;;;;;5363:12;;::::2;:19:::0;5254:23;;5389:141:::2;5413:9;5409:1;:13;5389:141;;;5460:11;-1:-1:-1::0;;;;;5441:30:197::2;:6;:12;;5454:1;5441:15;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;-1:-1:-1;;;;;5441:15:197::2;:30:::0;5437:86:::2;;5488:34;::::0;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;5488:34:197::2;::::0;::::2;::::0;5481:42;;-1:-1:-1;;;5481:42:197;;::::2;::::0;5488:34;5481:42:::2;;;:::i;5437:86::-;5424:3;;5389:141;;;-1:-1:-1::0;5536:12:197::2;::::0;::::2;:30:::0;;::::2;::::0;;::::2;::::0;;-1:-1:-1;5536:30:197;;;::::2;::::0;;;;;;::::2;::::0;;-1:-1:-1;;;;;;5536:30:197::2;-1:-1:-1::0;;;;;5536:30:197;::::2;::::0;;::::2;::::0;;;5578:51:::2;::::0;;14256:25:484;;;14297:18;;;14290:60;;;;14366:18;;14359:50;5578:51:197::2;::::0;14244:2:484;14229:18;5578:51:197::2;;;;;;;5224:410;;3412:1:199::1;5094:540:197::0;;;:::o;6252:95::-;6301:7;6323:19;6301:7;6323:17;:19::i;8352:485::-;8434:7;;;8495:19;8434:7;8495:17;:19::i;:::-;8472:42;;8525:9;8520:294;8544:12;8540:1;:16;8520:294;;;8571:10;8584:16;8571:10;8598:1;8584:13;:16::i;:::-;8608:21;8632:17;;;:13;:17;;;;;8571:29;;-1:-1:-1;8657:151:197;8681:12;;;:19;8677:23;;8657:151;;;8740:11;-1:-1:-1;;;;;8721:30:197;:6;:12;;8734:1;8721:15;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;8721:15:197;:30;8717:83;;8765:7;;;;:::i;:::-;;;;8784:5;;8717:83;8702:3;;8657:151;;;;8563:251;;8558:3;;;;;8520:294;;;-1:-1:-1;8827:5:197;;8352:485;-1:-1:-1;;;8352:485:197:o;6839:576::-;6932:21;6955:4;6983;6975:5;:12;6989:27;;;;;;;;;;;;;-1:-1:-1;;;6989:27:197;;;6967:50;;;;;-1:-1:-1;;;6967:50:197;;;;;;;;:::i;:::-;-1:-1:-1;7024:29:197;7075:12;7082:5;7075:4;:12;:::i;:::-;-1:-1:-1;;;;;7056:32:197;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;7024:64:197;-1:-1:-1;7095:19:197;7117;7095;7117:17;:19::i;:::-;7095:41;;7155:9;7143:224;7191:11;7178:9;7186:1;7178:5;:9;:::i;:::-;7177:25;7176:51;;;;-1:-1:-1;7222:4:197;7209:9;7217:1;7209:5;:9;:::i;:::-;7208:18;7176:51;7143:224;;;7253:10;7266:24;7280:9;7288:1;7280:5;:9;:::i;:::-;7266:2;;:13;:24::i;:::-;7311:49;;;;;;;;;;;-1:-1:-1;7341:17:197;;;:13;7311:49;7341:17;;;;;;;7311:49;;;;;;;;;;;;;;;-1:-1:-1;;;;;7311:49:197;;;;;;;-1:-1:-1;;;7311:49:197;;;;;;;;-1:-1:-1;;;7311:49:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;7253:37;;-1:-1:-1;7311:49:197;;;;;;;;7341:17;;7311:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7311:49:197;;;;;;;;;;;;;;;;;;;;;;;;;;;;7298:7;7306:1;7298:10;;;;;;;;:::i;:::-;;;;;;:62;;;;7245:122;7235:3;;;;:::i;:::-;;;7143:224;;;-1:-1:-1;7381:7:197;;7390:19;;;;-1:-1:-1;;;6839:576:197:o;2845:948::-;3035:10;3085:1:199;3039:22;;;:16;:22;;;;;:34;;;-1:-1:-1;;;;;3039:34:199;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:199;;;;3095:42;;-1:-1:-1;;;3095:42:199;;;;3102:34;3095:42;;;:::i;3035:102::-;3111:29:197::1;:2;3131:8:::0;3111:19:::1;:29::i;:::-;3106:88;;3157:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3157:29:197::1;::::0;::::1;::::0;3150:37;;-1:-1:-1;;;3150:37:197;;::::1;::::0;3157:29;3150:37:::1;;;:::i;3106:88::-;3200:21;3224:23:::0;;;:13:::1;:23;::::0;;;;3291:44;;;3341:23:::1;::::0;::::1;:42:::0;;-1:-1:-1;;3341:42:197::1;-1:-1:-1::0;;;;;3341:42:197;::::1;;::::0;;3430:63;::::1;;;592:1;3452:12:::0;;::::1;:34:::0;;-1:-1:-1;;;;3452:34:197;::::1;-1:-1:-1::0;;;3452:34:197;;;::::1;-1:-1:-1::0;;;;;3452:34:197::1;::::0;;::::1;;::::0;;;::::1;::::0;;3430:63:::1;3580:16;-1:-1:-1::0;;;;;3580:21:197::1;3600:1;3580:21:::0;3576:88:::1;;3618:2;:39:::0;;;:29:::1;:39;::::0;;;;3611:46:::1;::::0;::::1;:::i;:::-;3675:113;::::0;;15046:25:484;;;15102:2;15087:18;;15080:34;;;-1:-1:-1;;;;;15150:31:484;;15130:18;;;15123:59;;;;15225:14;;15218:22;15213:2;15198:18;;15191:50;3675:113:197::1;::::0;15033:3:484;15018:19;3675:113:197::1;14823:424:484::0;5638:610:197;5739:8;3338:29:199;:2;5739:8:197;3338:19:199;:29::i;:::-;3333:73;;3376:29;;;;;;;;;;;-1:-1:-1;;;3376:29:199;;;;3369:37;;-1:-1:-1;;;3369:37:199;;;;3376:29;3369:37;;;:::i;3333:73::-;-1:-1:-1;;;;;3039:22:199;;::::1;3085:1;3039:22:::0;;;:16:::1;:22;::::0;;;;:34:::1;;::::0;5758:11:197;;3039:34:199::1;3035:102;;3102:34;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;3102:34:199::1;::::0;::::1;::::0;3095:42;;-1:-1:-1;;;3095:42:199;;::::1;::::0;3102:34;3095:42:::1;;;:::i;3035:102::-;5777:21:197::2;5801:23:::0;;;:13:::2;:23;::::0;;;;;;5875:12;;::::2;:19:::0;5801:23;;5777:21;;5901:219:::2;5925:9;5921:1;:13;5901:219;;;5972:11;-1:-1:-1::0;;;;;5953:30:197::2;:6;:12;;5966:1;5953:15;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;-1:-1:-1;;;;;5953:15:197::2;:30:::0;5949:165:::2;;6013:12;::::0;::::2;6026:13;6038:1;6026:9:::0;:13:::2;:::i;:::-;6013:27;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;5995:12:::2;::::0;::::2;:15:::0;;-1:-1:-1;;;;;6013:27:197;;::::2;::::0;6008:1;;5995:15;::::2;;;;;:::i;:::-;;;;;;;;;:45;;;;;-1:-1:-1::0;;;;;5995:45:197::2;;;;;-1:-1:-1::0;;;;;5995:45:197::2;;;;;;6050:6;:12;;:18;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;-1:-1:-1;;6050:18:197;;;;;-1:-1:-1;;;;;;6050:18:197::2;::::0;;;;;::::2;::::0;-1:-1:-1;6100:5:197::2;;5949:165;5936:3;;5901:219;;;;6130:5;6125:54;;6144:34;::::0;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;6144:34:197::2;::::0;::::2;::::0;6137:42;;-1:-1:-1;;;6137:42:197;;::::2;::::0;6144:34;6137:42:::2;;;:::i;6125:54::-;6191:52;::::0;;14256:25:484;;;-1:-1:-1;;;;;14317:32:484;;14312:2;14297:18;;14290:60;6237:5:197::2;14366:18:484::0;;;14359:50;;;;6191:52:197::2;::::0;14244:2:484;14229:18;6191:52:197::2;14060:355:484::0;3797:1293:197;3896:10;3085:1:199;3039:22;;;:16;:22;;;;;:34;;;-1:-1:-1;;;;;3039:34:199;3035:102;;3102:34;;;;;;;;;;;-1:-1:-1;;;3102:34:199;;;;3095:42;;-1:-1:-1;;;3095:42:199;;;;3102:34;3095:42;;;:::i;3035:102::-;3939:10:197;3914:22:::1;3963:1123;3987:14;3983:1;:18;3963:1123;;;4016:31;4050:10;;4061:1;4050:13;;;;;;;:::i;:::-;;;::::0;;;::::1;::::0;-1:-1:-1;4077:39:197::1;::::0;-1:-1:-1;4097:18:197::1;::::0;::::1;4077:19;:39::i;:::-;4072:277;;4133:189;4176:18:::0;::::1;4206:27;::::0;::::1;;4245:26;::::0;;;::::1;::::0;::::1;;:::i;:::-;4283:29;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;4283:29:197::1;::::0;::::1;::::0;4133:189;;::::1;::::0;;;;4283:29;4133:189:::1;:::i;:::-;;;;;;;;4332:8;;;4072:277;4395:18:::0;::::1;4357:21;4381:33:::0;;;:13:::1;:33;::::0;;;;;;4489:27;;::::1;;4462:54:::0;;4550:26:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;4524:23;::::0;::::1;:52:::0;;-1:-1:-1;;4524:52:197::1;-1:-1:-1::0;;;;;4524:52:197;;;::::1;::::0;;;::::1;::::0;;4631:18:::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;4627:77;;;592:1;4661:12:::0;;::::1;:34:::0;;-1:-1:-1;;;;4661:34:197;::::1;-1:-1:-1::0;;;4661:34:197;;;::::1;-1:-1:-1::0;;;;;4661:34:197::1;::::0;;::::1;;::::0;;;::::1;::::0;;4627:77:::1;4795:26;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;4795:31:197::1;4825:1;4795:31:::0;4791:112:::1;;4875:18:::0;::::1;4845:2;:49:::0;;;:29:::1;:49;::::0;;;;4838:56:::1;::::0;::::1;:::i;:::-;4916:163;4952:18:::0;::::1;4980:27;::::0;::::1;;5017:26;::::0;;;::::1;::::0;::::1;;:::i;:::-;5053:18;::::0;;;::::1;::::0;::::1;;:::i;:::-;4916:163;;;;;;;;15046:25:484::0;;;15102:2;15087:18;;15080:34;;;;-1:-1:-1;;;;;15150:31:484;15145:2;15130:18;;15123:59;15225:14;15218:22;15213:2;15198:18;;15191:50;15033:3;15018:19;;14823:424;4916:163:197::1;;;;;;;;4008:1078;;3963:1123;4003:3;;3963:1123;;;;3908:1182;3797:1293:::0;;;:::o;6431:138:417:-;6511:4;4360:21;;;:14;;;:21;;;;;;:26;;6534:28;6527:35;;6431:138;;;;;:::o;6650:115::-;6713:7;6739:19;6747:3;4556:18;;4474:107;7107:129;7181:7;7207:22;7211:3;7223:5;7207:3;:22::i;8871:165::-;-1:-1:-1;;;;;9004:23:417;;8951:4;4360:21;;;:14;;;:21;;;;;;:26;;8974:55;4264:129;5930:123;6000:4;6023:23;6028:3;6040:5;6023:4;:23::i;7776:300::-;7839:16;7867:22;7892:19;7900:3;7892:7;:19::i;:::-;7867:44;7776:300;-1:-1:-1;;;7776:300:417:o;4923:118::-;4990:7;5016:3;:11;;5028:5;5016:18;;;;;;;;:::i;:::-;;;;;;;;;5009:25;;4923:118;;;;:::o;2241:406::-;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:417;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;2320:321;-1:-1:-1;2625:5:417;2618:12;;5581:109;5637:16;5672:3;:11;;5665:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:109;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:180:484;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:484;;14:180;-1:-1:-1;14:180:484:o;199:948::-;248:3;287:4;282:3;278:14;319:5;313:12;308:3;301:25;345:4;395;388:5;384:16;378:23;-1:-1:-1;;;;;488:2:484;474:12;470:21;463:4;458:3;454:14;447:45;553:2;545:4;538:5;534:16;528:23;524:32;517:4;512:3;508:14;501:56;618:2;610:4;603:5;599:16;593:23;589:32;582:4;577:3;573:14;566:56;;;670:4;663:5;659:16;653:23;708:4;701;696:3;692:14;685:28;735:4;768:14;762:21;805:6;799:4;792:20;839:3;834;830:13;821:22;;886:4;870:14;866:25;852:39;;909:1;900:10;;919:201;933:6;930:1;927:13;919:201;;;1000:13;;-1:-1:-1;;;;;996:39:484;982:54;;1095:15;;;;1032:1;948:9;;;;;1058:14;;;;919:201;;;-1:-1:-1;1136:5:484;199:948;-1:-1:-1;;;;;;199:948:484:o;1152:257::-;1331:2;1320:9;1313:21;1294:4;1351:52;1399:2;1388:9;1384:18;1376:6;1351:52;:::i;1414:173::-;1482:20;;-1:-1:-1;;;;;1531:31:484;;1521:42;;1511:70;;1577:1;1574;1567:12;1511:70;1414:173;;;:::o;1592:186::-;1651:6;1704:2;1692:9;1683:7;1679:23;1675:32;1672:52;;;1720:1;1717;1710:12;1672:52;1743:29;1762:9;1743:29;:::i;1783:263::-;1874:5;1868:12;1863:3;1856:25;1838:3;1927:4;1920:5;1916:16;1910:23;1965:4;1958;1953:3;1949:14;1942:28;1986:54;2034:4;2029:3;2025:14;2011:12;1986:54;:::i;:::-;1979:61;1783:263;-1:-1:-1;;;;1783:263:484:o;2051:624::-;2116:3;2147;2179:5;2173:12;2206:6;2201:3;2194:19;2232:4;2261;2256:3;2252:14;2245:21;;2319:4;2309:6;2306:1;2302:14;2295:5;2291:26;2287:37;2358:4;2351:5;2347:16;2381:1;2391:258;2405:6;2402:1;2399:13;2391:258;;;2492:2;2488:7;2480:5;2474:4;2470:16;2466:30;2461:3;2454:43;2518:51;2564:4;2555:6;2549:13;2518:51;:::i;:::-;2627:12;;;;2510:59;-1:-1:-1;2592:15:484;;;;2427:1;2420:9;2391:258;;;-1:-1:-1;2665:4:484;;2051:624;-1:-1:-1;;;;;;;2051:624:484:o;2680:335::-;2921:2;2910:9;2903:21;2884:4;2941:68;3005:2;2994:9;2990:18;2982:6;2941:68;:::i;3020:422::-;3061:3;3099:5;3093:12;3126:6;3121:3;3114:19;3151:1;3161:162;3175:6;3172:1;3169:13;3161:162;;;3237:4;3293:13;;;3289:22;;3283:29;3265:11;;;3261:20;;3254:59;3190:12;3161:162;;;3165:3;3368:1;3361:4;3352:6;3347:3;3343:16;3339:27;3332:38;3431:4;3424:2;3420:7;3415:2;3407:6;3403:15;3399:29;3394:3;3390:39;3386:50;3379:57;;;3020:422;;;;:::o;3447:488::-;3700:2;3689:9;3682:21;3663:4;3726:52;3774:2;3763:9;3759:18;3751:6;3726:52;:::i;:::-;3814:6;3809:2;3798:9;3794:18;3787:34;3869:9;3861:6;3857:22;3852:2;3841:9;3837:18;3830:50;3897:32;3922:6;3914;3897:32;:::i;:::-;3889:40;3447:488;-1:-1:-1;;;;;;3447:488:484:o;4125:275::-;4316:2;4305:9;4298:21;4279:4;4336:58;4390:2;4379:9;4375:18;4367:6;4336:58;:::i;4405:127::-;4466:10;4461:3;4457:20;4454:1;4447:31;4497:4;4494:1;4487:15;4521:4;4518:1;4511:15;4537:275;4608:2;4602:9;4673:2;4654:13;;-1:-1:-1;;4650:27:484;4638:40;;-1:-1:-1;;;;;4693:34:484;;4729:22;;;4690:62;4687:88;;;4755:18;;:::i;:::-;4791:2;4784:22;4537:275;;-1:-1:-1;4537:275:484:o;4817:530::-;4859:5;4912:3;4905:4;4897:6;4893:17;4889:27;4879:55;;4930:1;4927;4920:12;4879:55;4966:6;4953:20;-1:-1:-1;;;;;4988:2:484;4985:26;4982:52;;;5014:18;;:::i;:::-;5058:55;5101:2;5082:13;;-1:-1:-1;;5078:27:484;5107:4;5074:38;5058:55;:::i;:::-;5138:2;5129:7;5122:19;5184:3;5177:4;5172:2;5164:6;5160:15;5156:26;5153:35;5150:55;;;5201:1;5198;5191:12;5150:55;5266:2;5259:4;5251:6;5247:17;5240:4;5231:7;5227:18;5214:55;5314:1;5289:16;;;5307:4;5285:27;5278:38;;;;5293:7;4817:530;-1:-1:-1;;;4817:530:484:o;5352:1287::-;5472:6;5480;5488;5496;5549:3;5537:9;5528:7;5524:23;5520:33;5517:53;;;5566:1;5563;5556:12;5517:53;5602:9;5589:23;5579:33;;5631:2;5684;5673:9;5669:18;5656:32;-1:-1:-1;;;;;5748:2:484;5740:6;5737:14;5734:34;;;5764:1;5761;5754:12;5734:34;5802:6;5791:9;5787:22;5777:32;;5847:7;5840:4;5836:2;5832:13;5828:27;5818:55;;5869:1;5866;5859:12;5818:55;5905:2;5892:16;5927:2;5923;5920:10;5917:36;;;5933:18;;:::i;:::-;5979:2;5976:1;5972:10;6002:28;6026:2;6022;6018:11;6002:28;:::i;:::-;6064:15;;;6134:11;;;6130:20;;;6095:12;;;;6162:19;;;6159:39;;;6194:1;6191;6184:12;6159:39;6218:11;;;;6238:148;6254:6;6249:3;6246:15;6238:148;;;6320:23;6339:3;6320:23;:::i;:::-;6308:36;;6271:12;;;;6364;;;;6238:148;;;6405:5;-1:-1:-1;;;;6457:2:484;6442:18;;6429:32;;-1:-1:-1;6514:2:484;6499:18;;6486:32;;-1:-1:-1;6530:16:484;;;6527:36;;;6559:1;6556;6549:12;6527:36;;;6582:51;6625:7;6614:8;6603:9;6599:24;6582:51;:::i;:::-;6572:61;;;5352:1287;;;;;;;:::o;6644:632::-;6815:2;6867:21;;;6937:13;;6840:18;;;6959:22;;;6786:4;;6815:2;7038:15;;;;7012:2;6997:18;;;6786:4;7081:169;7095:6;7092:1;7089:13;7081:169;;;7156:13;;7144:26;;7225:15;;;;7190:12;;;;7117:1;7110:9;7081:169;;;-1:-1:-1;7267:3:484;;6644:632;-1:-1:-1;;;;;;6644:632:484:o;7281:254::-;7349:6;7357;7410:2;7398:9;7389:7;7385:23;7381:32;7378:52;;;7426:1;7423;7416:12;7378:52;7462:9;7449:23;7439:33;;7491:38;7525:2;7514:9;7510:18;7491:38;:::i;:::-;7481:48;;7281:254;;;;;:::o;7722:248::-;7790:6;7798;7851:2;7839:9;7830:7;7826:23;7822:32;7819:52;;;7867:1;7864;7857:12;7819:52;-1:-1:-1;;7890:23:484;;;7960:2;7945:18;;;7932:32;;-1:-1:-1;7722:248:484:o;7975:416::-;8238:2;8227:9;8220:21;8201:4;8258:68;8322:2;8311:9;8307:18;8299:6;8258:68;:::i;:::-;8250:76;;8376:6;8369:14;8362:22;8357:2;8346:9;8342:18;8335:50;7975:416;;;;;:::o;8396:171::-;8463:20;;-1:-1:-1;;;;;8512:30:484;;8502:41;;8492:69;;8557:1;8554;8547:12;8572:160;8637:20;;8693:13;;8686:21;8676:32;;8666:60;;8722:1;8719;8712:12;8737:458;8828:6;8836;8844;8852;8860;8913:3;8901:9;8892:7;8888:23;8884:33;8881:53;;;8930:1;8927;8920:12;8881:53;8966:9;8953:23;8943:33;;9023:2;9012:9;9008:18;8995:32;8985:42;;9074:2;9063:9;9059:18;9046:32;9036:42;;9097:37;9130:2;9119:9;9115:18;9097:37;:::i;:::-;9087:47;;9153:36;9184:3;9173:9;9169:19;9153:36;:::i;:::-;9143:46;;8737:458;;;;;;;;:::o;9200:651::-;9319:6;9327;9380:2;9368:9;9359:7;9355:23;9351:32;9348:52;;;9396:1;9393;9386:12;9348:52;9436:9;9423:23;-1:-1:-1;;;;;9506:2:484;9498:6;9495:14;9492:34;;;9522:1;9519;9512:12;9492:34;9560:6;9549:9;9545:22;9535:32;;9605:7;9598:4;9594:2;9590:13;9586:27;9576:55;;9627:1;9624;9617:12;9576:55;9667:2;9654:16;9693:2;9685:6;9682:14;9679:34;;;9709:1;9706;9699:12;9679:34;9765:7;9760:2;9752:4;9744:6;9740:17;9736:2;9732:26;9728:35;9725:48;9722:68;;;9786:1;9783;9776:12;9722:68;9817:2;9809:11;;;;;9839:6;;-1:-1:-1;9200:651:484;;-1:-1:-1;;;;9200:651:484:o;9856:219::-;10005:2;9994:9;9987:21;9968:4;10025:44;10065:2;10054:9;10050:18;10042:6;10025:44;:::i;10080:127::-;10141:10;10136:3;10132:20;10129:1;10122:31;10172:4;10169:1;10162:15;10196:4;10193:1;10186:15;10212:127;10273:10;10268:3;10264:20;10261:1;10254:31;10304:4;10301:1;10294:15;10328:4;10325:1;10318:15;10344:201;10382:3;10410:10;10455:2;10448:5;10444:14;10482:2;10473:7;10470:15;10467:41;;10488:18;;:::i;:::-;10537:1;10524:15;;10344:201;-1:-1:-1;;;10344:201:484:o;10550:380::-;10629:1;10625:12;;;;10672;;;10693:61;;10747:4;10739:6;10735:17;10725:27;;10693:61;10800:2;10792:6;10789:14;10769:18;10766:38;10763:161;;10846:10;10841:3;10837:20;10834:1;10827:31;10881:4;10878:1;10871:15;10909:4;10906:1;10899:15;10763:161;;10550:380;;;:::o;11060:542::-;11161:2;11156:3;11153:11;11150:446;;;11197:1;11221:5;11218:1;11211:16;11265:4;11262:1;11252:18;11335:2;11323:10;11319:19;11316:1;11312:27;11306:4;11302:38;11371:4;11359:10;11356:20;11353:47;;;-1:-1:-1;11394:4:484;11353:47;11449:2;11444:3;11440:12;11437:1;11433:20;11427:4;11423:31;11413:41;;11504:82;11522:2;11515:5;11512:13;11504:82;;;11567:17;;;11548:1;11537:13;11504:82;;;11508:3;;;11150:446;11060:542;;;:::o;11778:1341::-;11902:3;11896:10;-1:-1:-1;;;;;11921:6:484;11918:30;11915:56;;;11951:18;;:::i;:::-;11980:96;12069:6;12029:38;12061:4;12055:11;12029:38;:::i;:::-;12023:4;11980:96;:::i;:::-;12131:4;;12188:2;12177:14;;12205:1;12200:662;;;;12906:1;12923:6;12920:89;;;-1:-1:-1;12975:19:484;;;12969:26;12920:89;-1:-1:-1;;11735:1:484;11731:11;;;11727:24;11723:29;11713:40;11759:1;11755:11;;;11710:57;13022:81;;12170:943;;12200:662;11007:1;11000:14;;;11044:4;11031:18;;-1:-1:-1;;12236:20:484;;;12353:236;12367:7;12364:1;12361:14;12353:236;;;12456:19;;;12450:26;12435:42;;12548:27;;;;12516:1;12504:14;;;;12383:19;;12353:236;;;12357:3;12617:6;12608:7;12605:19;12602:201;;;12678:19;;;12672:26;-1:-1:-1;;12761:1:484;12757:14;;;12773:3;12753:24;12749:37;12745:42;12730:58;12715:74;;12602:201;-1:-1:-1;;;;;12849:1:484;12833:14;;;12829:22;12816:36;;-1:-1:-1;11778:1341:484:o;13124:931::-;13368:4;13416:3;13405:9;13401:19;13447:6;13436:9;13429:25;13473:2;13511:3;13506:2;13495:9;13491:18;13484:31;13535:6;13570;13564:13;13601:6;13593;13586:22;13639:3;13628:9;13624:19;13617:26;;13678:2;13670:6;13666:15;13652:29;;13699:1;13709:195;13723:6;13720:1;13717:13;13709:195;;;13788:13;;-1:-1:-1;;;;;13784:39:484;13772:52;;13879:15;;;;13844:12;;;;13820:1;13738:9;13709:195;;;13713:3;;13940:6;13935:2;13924:9;13920:18;13913:34;13992:9;13987:3;13983:19;13978:2;13967:9;13963:18;13956:47;14020:29;14045:3;14037:6;14020:29;:::i;:::-;14012:37;13124:931;-1:-1:-1;;;;;;;;;13124:931:484:o;14420:135::-;14459:3;14480:17;;;14477:43;;14500:18;;:::i;:::-;-1:-1:-1;14547:1:484;14536:13;;14420:135::o;14560:128::-;14627:9;;;14648:11;;;14645:37;;;14662:18;;:::i;14693:125::-;14758:9;;;14779:10;;;14776:36;;;14792:18;;:::i;15252:127::-;15313:10;15308:3;15304:20;15301:1;15294:31;15344:4;15341:1;15334:15;15368:4;15365:1;15358:15;15384:184;15442:6;15495:2;15483:9;15474:7;15470:23;15466:32;15463:52;;;15511:1;15508;15501:12;15463:52;15534:28;15552:9;15534:28;:::i;15573:457::-;15804:6;15793:9;15786:25;15847:6;15842:2;15831:9;15827:18;15820:34;-1:-1:-1;;;;;15894:6:484;15890:31;15885:2;15874:9;15870:18;15863:59;15958:3;15953:2;15942:9;15938:18;15931:31;15767:4;15979:45;16019:3;16008:9;16004:19;15996:6;15979:45;:::i;16035:180::-;16091:6;16144:2;16132:9;16123:7;16119:23;16115:32;16112:52;;;16160:1;16157;16150:12;16112:52;16183:26;16199:9;16183:26;:::i","linkReferences":{}},"methodIdentifiers":{"allocateStream(bytes32,address[],bytes32,bytes)":"6b883c39","getAllStreamIds()":"86789fc6","getAllStreams()":"3bd84c0c","getPaginatedStreams(uint256,uint256)":"ca78c41a","getStream(bytes32)":"1290abe8","getStreamByIndex(uint256)":"68b454df","getStreamCount()":"c0f22084","getStreamCountOnNode(address)":"c87d1324","getStreamWithGenesis(bytes32)":"3c2544d1","getStreamsOnNode(address)":"32705ac4","placeStreamOnNode(bytes32,address)":"9ee86d38","removeStreamFromNode(bytes32,address)":"ee885b12","setStreamLastMiniblock(bytes32,bytes32,bytes32,uint64,bool)":"d7a3158a","setStreamLastMiniblockBatch((bytes32,bytes32,bytes32,uint64,bool)[])":"ff3a14ab"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"genesisMiniblockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"genesisMiniblock\",\"type\":\"bytes\"}],\"name\":\"StreamAllocated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"StreamLastMiniblockUpdateFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isSealed\",\"type\":\"bool\"}],\"name\":\"StreamLastMiniblockUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isAdded\",\"type\":\"bool\"}],\"name\":\"StreamPlacementUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"},{\"internalType\":\"bytes32\",\"name\":\"genesisMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"genesisMiniblock\",\"type\":\"bytes\"}],\"name\":\"allocateStream\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllStreamIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllStreams\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stop\",\"type\":\"uint256\"}],\"name\":\"getPaginatedStreams\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"}],\"name\":\"getStream\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"getStreamByIndex\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStreamCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getStreamCountOnNode\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"}],\"name\":\"getStreamWithGenesis\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"getStreamsOnNode\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reserved0\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"flags\",\"type\":\"uint64\"},{\"internalType\":\"address[]\",\"name\":\"nodes\",\"type\":\"address[]\"}],\"internalType\":\"struct Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"internalType\":\"struct StreamWithId[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"placeStreamOnNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"nodeAddress\",\"type\":\"address\"}],\"name\":\"removeStreamFromNode\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isSealed\",\"type\":\"bool\"}],\"name\":\"setStreamLastMiniblock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"streamId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"prevMiniBlockHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastMiniblockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"lastMiniblockNum\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isSealed\",\"type\":\"bool\"}],\"internalType\":\"struct SetMiniblock[]\",\"name\":\"miniblocks\",\"type\":\"tuple[]\"}],\"name\":\"setStreamLastMiniblockBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getAllStreamIds()\":{\"details\":\"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getAllStreams()\":{\"details\":\"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block.\"},\"getPaginatedStreams(uint256,uint256)\":{\"details\":\"Recommended range is 5000 streams, returns true if on the last page.\"},\"getStreamWithGenesis(bytes32)\":{\"returns\":{\"_0\":\"stream, genesisMiniblockHash, genesisMiniblock\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAllStreamIds()\":{\"notice\":\"Return array containing all stream ids\"},\"getAllStreams()\":{\"notice\":\"Return array containing all streams\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/src/river/registry/facets/stream/StreamRegistry.sol\":\"StreamRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/@openzeppelin/\",\":@prb/math/=lib/@prb/math/src/\",\":@prb/test/=lib/@prb/test/src/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":base64/=lib/base64/\",\":ds-test/=lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=lib/hardhat-deploy/\"]},\"sources\":{\"contracts/src/river/registry/facets/stream/IStreamRegistry.sol\":{\"keccak256\":\"0x1f4373bfa9cdbaa460a8c8870ae059226e1c4c2b03055d92994d582f8affbf4f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2eee44be95c48eba75a2283aef37771861cc5c00c32b7bbba55f4408352cf79\",\"dweb:/ipfs/QmVgv1dk5uTNcmagVUH1L1h4aHKpUhSvJPzzuQbSVAn1eT\"]},\"contracts/src/river/registry/facets/stream/StreamRegistry.sol\":{\"keccak256\":\"0xc2c64bcda69bf4b9e5f7f2be8df0bad10b2bc4f609d668c7bb70fc54f31ab637\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb08c863dbdad3bf2a20680fd5433f5d6d3e81aabd54b7082baaff80b422f587\",\"dweb:/ipfs/QmTAGyX3vd6WneeacZwqWi17JyQdG9kuC2CUTBu4EYiT7D\"]},\"contracts/src/river/registry/libraries/RegistryErrors.sol\":{\"keccak256\":\"0x411bd2bca08451c59880f46aa3ce0ac6b20a1cfa8a8836e4ce035fad57bce497\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d8b0fff68a90994db10dd30f26f4f399027295152060b65fadaab76768f6501\",\"dweb:/ipfs/QmdJsGe2utFn1ju8YKkZpshVGNgUbfkkZP77LprQ43BcPP\"]},\"contracts/src/river/registry/libraries/RegistryStorage.sol\":{\"keccak256\":\"0xd45a126f3a7ce156824b019adf5c2832236421da770a02c38a1fa5e789411201\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6edc5efd37e99112a4f1ed8ca56d9f4034c36540bfbe3854b098b5b03cb5c9c4\",\"dweb:/ipfs/QmZKR5pkUVUzxizh6YdDFXenssUfKnJCD15RMgh1T74AcH\"]},\"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"address[]","name":"nodes","type":"address[]","indexed":false},{"internalType":"bytes32","name":"genesisMiniblockHash","type":"bytes32","indexed":false},{"internalType":"bytes","name":"genesisMiniblock","type":"bytes","indexed":false}],"type":"event","name":"StreamAllocated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32","indexed":false},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64","indexed":false},{"internalType":"string","name":"reason","type":"string","indexed":false}],"type":"event","name":"StreamLastMiniblockUpdateFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32","indexed":false},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64","indexed":false},{"internalType":"bool","name":"isSealed","type":"bool","indexed":false}],"type":"event","name":"StreamLastMiniblockUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32","indexed":false},{"internalType":"address","name":"nodeAddress","type":"address","indexed":false},{"internalType":"bool","name":"isAdded","type":"bool","indexed":false}],"type":"event","name":"StreamPlacementUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"address[]","name":"nodes","type":"address[]"},{"internalType":"bytes32","name":"genesisMiniblockHash","type":"bytes32"},{"internalType":"bytes","name":"genesisMiniblock","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"allocateStream"},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllStreamIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllStreams","outputs":[{"internalType":"struct StreamWithId[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]}]},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"stop","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPaginatedStreams","outputs":[{"internalType":"struct StreamWithId[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]},{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStream","outputs":[{"internalType":"struct Stream","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStreamByIndex","outputs":[{"internalType":"struct StreamWithId","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStreamCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getStreamCountOnNode","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getStreamWithGenesis","outputs":[{"internalType":"struct Stream","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getStreamsOnNode","outputs":[{"internalType":"struct StreamWithId[]","name":"","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"struct Stream","name":"stream","type":"tuple","components":[{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"uint64","name":"reserved0","type":"uint64"},{"internalType":"uint64","name":"flags","type":"uint64"},{"internalType":"address[]","name":"nodes","type":"address[]"}]}]}]},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"placeStreamOnNode"},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"address","name":"nodeAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeStreamFromNode"},{"inputs":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"bool","name":"isSealed","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setStreamLastMiniblock"},{"inputs":[{"internalType":"struct SetMiniblock[]","name":"miniblocks","type":"tuple[]","components":[{"internalType":"bytes32","name":"streamId","type":"bytes32"},{"internalType":"bytes32","name":"prevMiniBlockHash","type":"bytes32"},{"internalType":"bytes32","name":"lastMiniblockHash","type":"bytes32"},{"internalType":"uint64","name":"lastMiniblockNum","type":"uint64"},{"internalType":"bool","name":"isSealed","type":"bool"}]}],"stateMutability":"nonpayable","type":"function","name":"setStreamLastMiniblockBatch"}],"devdoc":{"kind":"dev","methods":{"getAllStreamIds()":{"details":"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block."},"getAllStreams()":{"details":"WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that this function has an unbounded cost, and using it as part of a state-changing function may render the function uncallable if the map grows to a point where copying to memory consumes too much gas to fit in a block."},"getPaginatedStreams(uint256,uint256)":{"details":"Recommended range is 5000 streams, returns true if on the last page."},"getStreamWithGenesis(bytes32)":{"returns":{"_0":"stream, genesisMiniblockHash, genesisMiniblock"}}},"version":1},"userdoc":{"kind":"user","methods":{"getAllStreamIds()":{"notice":"Return array containing all stream ids"},"getAllStreams()":{"notice":"Return array containing all streams"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/@openzeppelin/","@prb/math/=lib/@prb/math/src/","@prb/test/=lib/@prb/test/src/","account-abstraction/=lib/account-abstraction/contracts/","base64/=lib/base64/","ds-test/=lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat-deploy/=lib/hardhat-deploy/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"contracts/src/river/registry/facets/stream/StreamRegistry.sol":"StreamRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"contracts/src/river/registry/facets/stream/IStreamRegistry.sol":{"keccak256":"0x1f4373bfa9cdbaa460a8c8870ae059226e1c4c2b03055d92994d582f8affbf4f","urls":["bzz-raw://a2eee44be95c48eba75a2283aef37771861cc5c00c32b7bbba55f4408352cf79","dweb:/ipfs/QmVgv1dk5uTNcmagVUH1L1h4aHKpUhSvJPzzuQbSVAn1eT"],"license":"MIT"},"contracts/src/river/registry/facets/stream/StreamRegistry.sol":{"keccak256":"0xc2c64bcda69bf4b9e5f7f2be8df0bad10b2bc4f609d668c7bb70fc54f31ab637","urls":["bzz-raw://eb08c863dbdad3bf2a20680fd5433f5d6d3e81aabd54b7082baaff80b422f587","dweb:/ipfs/QmTAGyX3vd6WneeacZwqWi17JyQdG9kuC2CUTBu4EYiT7D"],"license":"MIT"},"contracts/src/river/registry/libraries/RegistryErrors.sol":{"keccak256":"0x411bd2bca08451c59880f46aa3ce0ac6b20a1cfa8a8836e4ce035fad57bce497","urls":["bzz-raw://7d8b0fff68a90994db10dd30f26f4f399027295152060b65fadaab76768f6501","dweb:/ipfs/QmdJsGe2utFn1ju8YKkZpshVGNgUbfkkZP77LprQ43BcPP"],"license":"MIT"},"contracts/src/river/registry/libraries/RegistryStorage.sol":{"keccak256":"0xd45a126f3a7ce156824b019adf5c2832236421da770a02c38a1fa5e789411201","urls":["bzz-raw://6edc5efd37e99112a4f1ed8ca56d9f4034c36540bfbe3854b098b5b03cb5c9c4","dweb:/ipfs/QmZKR5pkUVUzxizh6YdDFXenssUfKnJCD15RMgh1T74AcH"],"license":"MIT"},"lib/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa","urls":["bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1","dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA"],"license":"MIT"}},"version":1},"id":197} \ No newline at end of file diff --git a/packages/generated/dev/abis/StreamRegistry.metadata.json b/packages/generated/dev/abis/StreamRegistry.metadata.json index e70b373e0..4b5065953 100644 --- a/packages/generated/dev/abis/StreamRegistry.metadata.json +++ b/packages/generated/dev/abis/StreamRegistry.metadata.json @@ -707,10 +707,10 @@ "license": "MIT" }, "contracts/src/river/registry/facets/stream/StreamRegistry.sol": { - "keccak256": "0x3ee1ae880161a90c74e384b58b1a8f317f1e95342b28cf71db47f01337db7dfb", + "keccak256": "0xc2c64bcda69bf4b9e5f7f2be8df0bad10b2bc4f609d668c7bb70fc54f31ab637", "urls": [ - "bzz-raw://048bf90faa715f9c532a91d74aeab44a1c20183d04de9a80b7d1ce542325a5d5", - "dweb:/ipfs/QmW2eXQZWiRYC5cPX1UKVNTb9S3RngAUamCD9qpfiuyibs" + "bzz-raw://eb08c863dbdad3bf2a20680fd5433f5d6d3e81aabd54b7082baaff80b422f587", + "dweb:/ipfs/QmTAGyX3vd6WneeacZwqWi17JyQdG9kuC2CUTBu4EYiT7D" ], "license": "MIT" }, diff --git a/packages/generated/dev/typings/IArchitect.ts b/packages/generated/dev/typings/IArchitect.ts index ec2c7a8d6..832422d56 100644 --- a/packages/generated/dev/typings/IArchitect.ts +++ b/packages/generated/dev/typings/IArchitect.ts @@ -63,7 +63,7 @@ export declare namespace IMembershipBase { }; } -export declare namespace IRuleEntitlement { +export declare namespace IRuleEntitlementBase { export type OperationStruct = { opType: PromiseOrValue; index: PromiseOrValue; @@ -106,19 +106,19 @@ export declare namespace IRuleEntitlement { }; export type RuleDataStruct = { - operations: IRuleEntitlement.OperationStruct[]; - checkOperations: IRuleEntitlement.CheckOperationStruct[]; - logicalOperations: IRuleEntitlement.LogicalOperationStruct[]; + operations: IRuleEntitlementBase.OperationStruct[]; + checkOperations: IRuleEntitlementBase.CheckOperationStruct[]; + logicalOperations: IRuleEntitlementBase.LogicalOperationStruct[]; }; export type RuleDataStructOutput = [ - IRuleEntitlement.OperationStructOutput[], - IRuleEntitlement.CheckOperationStructOutput[], - IRuleEntitlement.LogicalOperationStructOutput[] + IRuleEntitlementBase.OperationStructOutput[], + IRuleEntitlementBase.CheckOperationStructOutput[], + IRuleEntitlementBase.LogicalOperationStructOutput[] ] & { - operations: IRuleEntitlement.OperationStructOutput[]; - checkOperations: IRuleEntitlement.CheckOperationStructOutput[]; - logicalOperations: IRuleEntitlement.LogicalOperationStructOutput[]; + operations: IRuleEntitlementBase.OperationStructOutput[]; + checkOperations: IRuleEntitlementBase.CheckOperationStructOutput[]; + logicalOperations: IRuleEntitlementBase.LogicalOperationStructOutput[]; }; } @@ -126,17 +126,17 @@ export declare namespace IArchitectBase { export type MembershipRequirementsStruct = { everyone: PromiseOrValue; users: PromiseOrValue[]; - ruleData: IRuleEntitlement.RuleDataStruct; + ruleData: IRuleEntitlementBase.RuleDataStruct; }; export type MembershipRequirementsStructOutput = [ boolean, string[], - IRuleEntitlement.RuleDataStructOutput + IRuleEntitlementBase.RuleDataStructOutput ] & { everyone: boolean; users: string[]; - ruleData: IRuleEntitlement.RuleDataStructOutput; + ruleData: IRuleEntitlementBase.RuleDataStructOutput; }; export type MembershipStruct = { diff --git a/packages/generated/dev/typings/IEntitlementDataQueryable.ts b/packages/generated/dev/typings/IEntitlementDataQueryable.ts index a24382896..a6d984d0d 100644 --- a/packages/generated/dev/typings/IEntitlementDataQueryable.ts +++ b/packages/generated/dev/typings/IEntitlementDataQueryable.ts @@ -4,6 +4,7 @@ import type { BaseContract, BigNumber, + BigNumberish, BytesLike, CallOverrides, PopulatedTransaction, @@ -35,12 +36,14 @@ export declare namespace IEntitlementDataQueryableBase { export interface IEntitlementDataQueryableInterface extends utils.Interface { functions: { "getChannelEntitlementDataByPermission(bytes32,string)": FunctionFragment; + "getCrossChainEntitlementData(bytes32,uint256)": FunctionFragment; "getEntitlementDataByPermission(string)": FunctionFragment; }; getFunction( nameOrSignatureOrTopic: | "getChannelEntitlementDataByPermission" + | "getCrossChainEntitlementData" | "getEntitlementDataByPermission" ): FunctionFragment; @@ -48,6 +51,10 @@ export interface IEntitlementDataQueryableInterface extends utils.Interface { functionFragment: "getChannelEntitlementDataByPermission", values: [PromiseOrValue, PromiseOrValue] ): string; + encodeFunctionData( + functionFragment: "getCrossChainEntitlementData", + values: [PromiseOrValue, PromiseOrValue] + ): string; encodeFunctionData( functionFragment: "getEntitlementDataByPermission", values: [PromiseOrValue] @@ -57,6 +64,10 @@ export interface IEntitlementDataQueryableInterface extends utils.Interface { functionFragment: "getChannelEntitlementDataByPermission", data: BytesLike ): Result; + decodeFunctionResult( + functionFragment: "getCrossChainEntitlementData", + data: BytesLike + ): Result; decodeFunctionResult( functionFragment: "getEntitlementDataByPermission", data: BytesLike @@ -98,6 +109,12 @@ export interface IEntitlementDataQueryable extends BaseContract { overrides?: CallOverrides ): Promise<[IEntitlementDataQueryableBase.EntitlementDataStructOutput[]]>; + getCrossChainEntitlementData( + transactionId: PromiseOrValue, + roleId: PromiseOrValue, + overrides?: CallOverrides + ): Promise<[IEntitlementDataQueryableBase.EntitlementDataStructOutput]>; + getEntitlementDataByPermission( permission: PromiseOrValue, overrides?: CallOverrides @@ -110,6 +127,12 @@ export interface IEntitlementDataQueryable extends BaseContract { overrides?: CallOverrides ): Promise; + getCrossChainEntitlementData( + transactionId: PromiseOrValue, + roleId: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + getEntitlementDataByPermission( permission: PromiseOrValue, overrides?: CallOverrides @@ -122,6 +145,12 @@ export interface IEntitlementDataQueryable extends BaseContract { overrides?: CallOverrides ): Promise; + getCrossChainEntitlementData( + transactionId: PromiseOrValue, + roleId: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + getEntitlementDataByPermission( permission: PromiseOrValue, overrides?: CallOverrides @@ -137,6 +166,12 @@ export interface IEntitlementDataQueryable extends BaseContract { overrides?: CallOverrides ): Promise; + getCrossChainEntitlementData( + transactionId: PromiseOrValue, + roleId: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + getEntitlementDataByPermission( permission: PromiseOrValue, overrides?: CallOverrides @@ -150,6 +185,12 @@ export interface IEntitlementDataQueryable extends BaseContract { overrides?: CallOverrides ): Promise; + getCrossChainEntitlementData( + transactionId: PromiseOrValue, + roleId: PromiseOrValue, + overrides?: CallOverrides + ): Promise; + getEntitlementDataByPermission( permission: PromiseOrValue, overrides?: CallOverrides diff --git a/packages/generated/dev/typings/IRuleEntitlement.ts b/packages/generated/dev/typings/IRuleEntitlement.ts index ef99d6807..6ee893ffd 100644 --- a/packages/generated/dev/typings/IRuleEntitlement.ts +++ b/packages/generated/dev/typings/IRuleEntitlement.ts @@ -23,7 +23,7 @@ import type { PromiseOrValue, } from "./common"; -export declare namespace IRuleEntitlement { +export declare namespace IRuleEntitlementBase { export type OperationStruct = { opType: PromiseOrValue; index: PromiseOrValue; @@ -66,19 +66,19 @@ export declare namespace IRuleEntitlement { }; export type RuleDataStruct = { - operations: IRuleEntitlement.OperationStruct[]; - checkOperations: IRuleEntitlement.CheckOperationStruct[]; - logicalOperations: IRuleEntitlement.LogicalOperationStruct[]; + operations: IRuleEntitlementBase.OperationStruct[]; + checkOperations: IRuleEntitlementBase.CheckOperationStruct[]; + logicalOperations: IRuleEntitlementBase.LogicalOperationStruct[]; }; export type RuleDataStructOutput = [ - IRuleEntitlement.OperationStructOutput[], - IRuleEntitlement.CheckOperationStructOutput[], - IRuleEntitlement.LogicalOperationStructOutput[] + IRuleEntitlementBase.OperationStructOutput[], + IRuleEntitlementBase.CheckOperationStructOutput[], + IRuleEntitlementBase.LogicalOperationStructOutput[] ] & { - operations: IRuleEntitlement.OperationStructOutput[]; - checkOperations: IRuleEntitlement.CheckOperationStructOutput[]; - logicalOperations: IRuleEntitlement.LogicalOperationStructOutput[]; + operations: IRuleEntitlementBase.OperationStructOutput[]; + checkOperations: IRuleEntitlementBase.CheckOperationStructOutput[]; + logicalOperations: IRuleEntitlementBase.LogicalOperationStructOutput[]; }; } @@ -118,7 +118,7 @@ export interface IRuleEntitlementInterface extends utils.Interface { ): string; encodeFunctionData( functionFragment: "encodeRuleData", - values: [IRuleEntitlement.RuleDataStruct] + values: [IRuleEntitlementBase.RuleDataStruct] ): string; encodeFunctionData( functionFragment: "getEntitlementDataByRoleId", @@ -224,7 +224,7 @@ export interface IRuleEntitlement extends BaseContract { description(overrides?: CallOverrides): Promise<[string]>; encodeRuleData( - data: IRuleEntitlement.RuleDataStruct, + data: IRuleEntitlementBase.RuleDataStruct, overrides?: CallOverrides ): Promise<[string]>; @@ -237,8 +237,8 @@ export interface IRuleEntitlement extends BaseContract { roleId: PromiseOrValue, overrides?: CallOverrides ): Promise< - [IRuleEntitlement.RuleDataStructOutput] & { - data: IRuleEntitlement.RuleDataStructOutput; + [IRuleEntitlementBase.RuleDataStructOutput] & { + data: IRuleEntitlementBase.RuleDataStructOutput; } >; @@ -275,7 +275,7 @@ export interface IRuleEntitlement extends BaseContract { description(overrides?: CallOverrides): Promise; encodeRuleData( - data: IRuleEntitlement.RuleDataStruct, + data: IRuleEntitlementBase.RuleDataStruct, overrides?: CallOverrides ): Promise; @@ -287,7 +287,7 @@ export interface IRuleEntitlement extends BaseContract { getRuleData( roleId: PromiseOrValue, overrides?: CallOverrides - ): Promise; + ): Promise; initialize( space: PromiseOrValue, @@ -322,7 +322,7 @@ export interface IRuleEntitlement extends BaseContract { description(overrides?: CallOverrides): Promise; encodeRuleData( - data: IRuleEntitlement.RuleDataStruct, + data: IRuleEntitlementBase.RuleDataStruct, overrides?: CallOverrides ): Promise; @@ -334,7 +334,7 @@ export interface IRuleEntitlement extends BaseContract { getRuleData( roleId: PromiseOrValue, overrides?: CallOverrides - ): Promise; + ): Promise; initialize( space: PromiseOrValue, @@ -372,7 +372,7 @@ export interface IRuleEntitlement extends BaseContract { description(overrides?: CallOverrides): Promise; encodeRuleData( - data: IRuleEntitlement.RuleDataStruct, + data: IRuleEntitlementBase.RuleDataStruct, overrides?: CallOverrides ): Promise; @@ -420,7 +420,7 @@ export interface IRuleEntitlement extends BaseContract { description(overrides?: CallOverrides): Promise; encodeRuleData( - data: IRuleEntitlement.RuleDataStruct, + data: IRuleEntitlementBase.RuleDataStruct, overrides?: CallOverrides ): Promise; diff --git a/packages/generated/dev/typings/MembershipFacet.ts b/packages/generated/dev/typings/MembershipFacet.ts index 8266884e1..053cbf879 100644 --- a/packages/generated/dev/typings/MembershipFacet.ts +++ b/packages/generated/dev/typings/MembershipFacet.ts @@ -64,7 +64,7 @@ export declare namespace IMembershipBase { }; } -export declare namespace IRuleEntitlement { +export declare namespace IRuleEntitlementBase { export type OperationStruct = { opType: PromiseOrValue; index: PromiseOrValue; @@ -107,19 +107,19 @@ export declare namespace IRuleEntitlement { }; export type RuleDataStruct = { - operations: IRuleEntitlement.OperationStruct[]; - checkOperations: IRuleEntitlement.CheckOperationStruct[]; - logicalOperations: IRuleEntitlement.LogicalOperationStruct[]; + operations: IRuleEntitlementBase.OperationStruct[]; + checkOperations: IRuleEntitlementBase.CheckOperationStruct[]; + logicalOperations: IRuleEntitlementBase.LogicalOperationStruct[]; }; export type RuleDataStructOutput = [ - IRuleEntitlement.OperationStructOutput[], - IRuleEntitlement.CheckOperationStructOutput[], - IRuleEntitlement.LogicalOperationStructOutput[] + IRuleEntitlementBase.OperationStructOutput[], + IRuleEntitlementBase.CheckOperationStructOutput[], + IRuleEntitlementBase.LogicalOperationStructOutput[] ] & { - operations: IRuleEntitlement.OperationStructOutput[]; - checkOperations: IRuleEntitlement.CheckOperationStructOutput[]; - logicalOperations: IRuleEntitlement.LogicalOperationStructOutput[]; + operations: IRuleEntitlementBase.OperationStructOutput[]; + checkOperations: IRuleEntitlementBase.CheckOperationStructOutput[]; + logicalOperations: IRuleEntitlementBase.LogicalOperationStructOutput[]; }; } @@ -910,7 +910,7 @@ export interface MembershipFacet extends BaseContract { transactionId: PromiseOrValue, roleId: PromiseOrValue, overrides?: CallOverrides - ): Promise<[IRuleEntitlement.RuleDataStructOutput]>; + ): Promise<[IRuleEntitlementBase.RuleDataStructOutput]>; getSpaceFactory(overrides?: CallOverrides): Promise<[string]>; @@ -1073,7 +1073,7 @@ export interface MembershipFacet extends BaseContract { transactionId: PromiseOrValue, roleId: PromiseOrValue, overrides?: CallOverrides - ): Promise; + ): Promise; getSpaceFactory(overrides?: CallOverrides): Promise; @@ -1236,7 +1236,7 @@ export interface MembershipFacet extends BaseContract { transactionId: PromiseOrValue, roleId: PromiseOrValue, overrides?: CallOverrides - ): Promise; + ): Promise; getSpaceFactory(overrides?: CallOverrides): Promise; diff --git a/packages/generated/dev/typings/MockEntitlementGated.ts b/packages/generated/dev/typings/MockEntitlementGated.ts index 88063bf5c..d67e49cf9 100644 --- a/packages/generated/dev/typings/MockEntitlementGated.ts +++ b/packages/generated/dev/typings/MockEntitlementGated.ts @@ -27,7 +27,7 @@ import type { PromiseOrValue, } from "./common"; -export declare namespace IRuleEntitlement { +export declare namespace IRuleEntitlementBase { export type OperationStruct = { opType: PromiseOrValue; index: PromiseOrValue; @@ -70,19 +70,19 @@ export declare namespace IRuleEntitlement { }; export type RuleDataStruct = { - operations: IRuleEntitlement.OperationStruct[]; - checkOperations: IRuleEntitlement.CheckOperationStruct[]; - logicalOperations: IRuleEntitlement.LogicalOperationStruct[]; + operations: IRuleEntitlementBase.OperationStruct[]; + checkOperations: IRuleEntitlementBase.CheckOperationStruct[]; + logicalOperations: IRuleEntitlementBase.LogicalOperationStruct[]; }; export type RuleDataStructOutput = [ - IRuleEntitlement.OperationStructOutput[], - IRuleEntitlement.CheckOperationStructOutput[], - IRuleEntitlement.LogicalOperationStructOutput[] + IRuleEntitlementBase.OperationStructOutput[], + IRuleEntitlementBase.CheckOperationStructOutput[], + IRuleEntitlementBase.LogicalOperationStructOutput[] ] & { - operations: IRuleEntitlement.OperationStructOutput[]; - checkOperations: IRuleEntitlement.CheckOperationStructOutput[]; - logicalOperations: IRuleEntitlement.LogicalOperationStructOutput[]; + operations: IRuleEntitlementBase.OperationStructOutput[]; + checkOperations: IRuleEntitlementBase.CheckOperationStructOutput[]; + logicalOperations: IRuleEntitlementBase.LogicalOperationStructOutput[]; }; } @@ -126,7 +126,7 @@ export interface MockEntitlementGatedInterface extends utils.Interface { ): string; encodeFunctionData( functionFragment: "requestEntitlementCheck", - values: [PromiseOrValue, IRuleEntitlement.RuleDataStruct] + values: [PromiseOrValue, IRuleEntitlementBase.RuleDataStruct] ): string; decodeFunctionResult( @@ -240,13 +240,13 @@ export interface MockEntitlementGated extends BaseContract { "getRuleData(uint256)"( roleId: PromiseOrValue, overrides?: CallOverrides - ): Promise<[IRuleEntitlement.RuleDataStructOutput]>; + ): Promise<[IRuleEntitlementBase.RuleDataStructOutput]>; "getRuleData(bytes32,uint256)"( transactionId: PromiseOrValue, roleId: PromiseOrValue, overrides?: CallOverrides - ): Promise<[IRuleEntitlement.RuleDataStructOutput]>; + ): Promise<[IRuleEntitlementBase.RuleDataStructOutput]>; postEntitlementCheckResult( transactionId: PromiseOrValue, @@ -257,7 +257,7 @@ export interface MockEntitlementGated extends BaseContract { requestEntitlementCheck( roleId: PromiseOrValue, - ruleData: IRuleEntitlement.RuleDataStruct, + ruleData: IRuleEntitlementBase.RuleDataStruct, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; }; @@ -270,13 +270,13 @@ export interface MockEntitlementGated extends BaseContract { "getRuleData(uint256)"( roleId: PromiseOrValue, overrides?: CallOverrides - ): Promise; + ): Promise; "getRuleData(bytes32,uint256)"( transactionId: PromiseOrValue, roleId: PromiseOrValue, overrides?: CallOverrides - ): Promise; + ): Promise; postEntitlementCheckResult( transactionId: PromiseOrValue, @@ -287,7 +287,7 @@ export interface MockEntitlementGated extends BaseContract { requestEntitlementCheck( roleId: PromiseOrValue, - ruleData: IRuleEntitlement.RuleDataStruct, + ruleData: IRuleEntitlementBase.RuleDataStruct, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; @@ -300,13 +300,13 @@ export interface MockEntitlementGated extends BaseContract { "getRuleData(uint256)"( roleId: PromiseOrValue, overrides?: CallOverrides - ): Promise; + ): Promise; "getRuleData(bytes32,uint256)"( transactionId: PromiseOrValue, roleId: PromiseOrValue, overrides?: CallOverrides - ): Promise; + ): Promise; postEntitlementCheckResult( transactionId: PromiseOrValue, @@ -317,7 +317,7 @@ export interface MockEntitlementGated extends BaseContract { requestEntitlementCheck( roleId: PromiseOrValue, - ruleData: IRuleEntitlement.RuleDataStruct, + ruleData: IRuleEntitlementBase.RuleDataStruct, overrides?: CallOverrides ): Promise; }; @@ -376,7 +376,7 @@ export interface MockEntitlementGated extends BaseContract { requestEntitlementCheck( roleId: PromiseOrValue, - ruleData: IRuleEntitlement.RuleDataStruct, + ruleData: IRuleEntitlementBase.RuleDataStruct, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; }; @@ -407,7 +407,7 @@ export interface MockEntitlementGated extends BaseContract { requestEntitlementCheck( roleId: PromiseOrValue, - ruleData: IRuleEntitlement.RuleDataStruct, + ruleData: IRuleEntitlementBase.RuleDataStruct, overrides?: Overrides & { from?: PromiseOrValue } ): Promise; }; diff --git a/packages/generated/dev/typings/factories/IArchitect__factory.ts b/packages/generated/dev/typings/factories/IArchitect__factory.ts index 78cb11d26..73353de9c 100644 --- a/packages/generated/dev/typings/factories/IArchitect__factory.ts +++ b/packages/generated/dev/typings/factories/IArchitect__factory.ts @@ -101,18 +101,18 @@ const _abi = [ { name: "ruleData", type: "tuple", - internalType: "struct IRuleEntitlement.RuleData", + internalType: "struct IRuleEntitlementBase.RuleData", components: [ { name: "operations", type: "tuple[]", - internalType: "struct IRuleEntitlement.Operation[]", + internalType: "struct IRuleEntitlementBase.Operation[]", components: [ { name: "opType", type: "uint8", internalType: - "enum IRuleEntitlement.CombinedOperationType", + "enum IRuleEntitlementBase.CombinedOperationType", }, { name: "index", @@ -125,13 +125,13 @@ const _abi = [ name: "checkOperations", type: "tuple[]", internalType: - "struct IRuleEntitlement.CheckOperation[]", + "struct IRuleEntitlementBase.CheckOperation[]", components: [ { name: "opType", type: "uint8", internalType: - "enum IRuleEntitlement.CheckOperationType", + "enum IRuleEntitlementBase.CheckOperationType", }, { name: "chainId", @@ -154,13 +154,13 @@ const _abi = [ name: "logicalOperations", type: "tuple[]", internalType: - "struct IRuleEntitlement.LogicalOperation[]", + "struct IRuleEntitlementBase.LogicalOperation[]", components: [ { name: "logOpType", type: "uint8", internalType: - "enum IRuleEntitlement.LogicalOperationType", + "enum IRuleEntitlementBase.LogicalOperationType", }, { name: "leftOperationIndex", diff --git a/packages/generated/dev/typings/factories/IEntitlementDataQueryable__factory.ts b/packages/generated/dev/typings/factories/IEntitlementDataQueryable__factory.ts index f3942ce19..9597d2914 100644 --- a/packages/generated/dev/typings/factories/IEntitlementDataQueryable__factory.ts +++ b/packages/generated/dev/typings/factories/IEntitlementDataQueryable__factory.ts @@ -46,6 +46,42 @@ const _abi = [ ], stateMutability: "view", }, + { + type: "function", + name: "getCrossChainEntitlementData", + inputs: [ + { + name: "transactionId", + type: "bytes32", + internalType: "bytes32", + }, + { + name: "roleId", + type: "uint256", + internalType: "uint256", + }, + ], + outputs: [ + { + name: "", + type: "tuple", + internalType: "struct IEntitlementDataQueryableBase.EntitlementData", + components: [ + { + name: "entitlementType", + type: "string", + internalType: "string", + }, + { + name: "entitlementData", + type: "bytes", + internalType: "bytes", + }, + ], + }, + ], + stateMutability: "view", + }, { type: "function", name: "getEntitlementDataByPermission", diff --git a/packages/generated/dev/typings/factories/IRuleEntitlement__factory.ts b/packages/generated/dev/typings/factories/IRuleEntitlement__factory.ts index 28f1d720f..9734a3d57 100644 --- a/packages/generated/dev/typings/factories/IRuleEntitlement__factory.ts +++ b/packages/generated/dev/typings/factories/IRuleEntitlement__factory.ts @@ -30,17 +30,17 @@ const _abi = [ { name: "data", type: "tuple", - internalType: "struct IRuleEntitlement.RuleData", + internalType: "struct IRuleEntitlementBase.RuleData", components: [ { name: "operations", type: "tuple[]", - internalType: "struct IRuleEntitlement.Operation[]", + internalType: "struct IRuleEntitlementBase.Operation[]", components: [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CombinedOperationType", + internalType: "enum IRuleEntitlementBase.CombinedOperationType", }, { name: "index", @@ -52,12 +52,12 @@ const _abi = [ { name: "checkOperations", type: "tuple[]", - internalType: "struct IRuleEntitlement.CheckOperation[]", + internalType: "struct IRuleEntitlementBase.CheckOperation[]", components: [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CheckOperationType", + internalType: "enum IRuleEntitlementBase.CheckOperationType", }, { name: "chainId", @@ -79,12 +79,12 @@ const _abi = [ { name: "logicalOperations", type: "tuple[]", - internalType: "struct IRuleEntitlement.LogicalOperation[]", + internalType: "struct IRuleEntitlementBase.LogicalOperation[]", components: [ { name: "logOpType", type: "uint8", - internalType: "enum IRuleEntitlement.LogicalOperationType", + internalType: "enum IRuleEntitlementBase.LogicalOperationType", }, { name: "leftOperationIndex", @@ -143,17 +143,17 @@ const _abi = [ { name: "data", type: "tuple", - internalType: "struct IRuleEntitlement.RuleData", + internalType: "struct IRuleEntitlementBase.RuleData", components: [ { name: "operations", type: "tuple[]", - internalType: "struct IRuleEntitlement.Operation[]", + internalType: "struct IRuleEntitlementBase.Operation[]", components: [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CombinedOperationType", + internalType: "enum IRuleEntitlementBase.CombinedOperationType", }, { name: "index", @@ -165,12 +165,12 @@ const _abi = [ { name: "checkOperations", type: "tuple[]", - internalType: "struct IRuleEntitlement.CheckOperation[]", + internalType: "struct IRuleEntitlementBase.CheckOperation[]", components: [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CheckOperationType", + internalType: "enum IRuleEntitlementBase.CheckOperationType", }, { name: "chainId", @@ -192,12 +192,12 @@ const _abi = [ { name: "logicalOperations", type: "tuple[]", - internalType: "struct IRuleEntitlement.LogicalOperation[]", + internalType: "struct IRuleEntitlementBase.LogicalOperation[]", components: [ { name: "logOpType", type: "uint8", - internalType: "enum IRuleEntitlement.LogicalOperationType", + internalType: "enum IRuleEntitlementBase.LogicalOperationType", }, { name: "leftOperationIndex", @@ -414,7 +414,7 @@ const _abi = [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CombinedOperationType", + internalType: "enum IRuleEntitlementBase.CombinedOperationType", }, ], }, diff --git a/packages/generated/dev/typings/factories/MembershipFacet__factory.ts b/packages/generated/dev/typings/factories/MembershipFacet__factory.ts index 548d2f108..50e270e0e 100644 --- a/packages/generated/dev/typings/factories/MembershipFacet__factory.ts +++ b/packages/generated/dev/typings/factories/MembershipFacet__factory.ts @@ -310,17 +310,17 @@ const _abi = [ { name: "", type: "tuple", - internalType: "struct IRuleEntitlement.RuleData", + internalType: "struct IRuleEntitlementBase.RuleData", components: [ { name: "operations", type: "tuple[]", - internalType: "struct IRuleEntitlement.Operation[]", + internalType: "struct IRuleEntitlementBase.Operation[]", components: [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CombinedOperationType", + internalType: "enum IRuleEntitlementBase.CombinedOperationType", }, { name: "index", @@ -332,12 +332,12 @@ const _abi = [ { name: "checkOperations", type: "tuple[]", - internalType: "struct IRuleEntitlement.CheckOperation[]", + internalType: "struct IRuleEntitlementBase.CheckOperation[]", components: [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CheckOperationType", + internalType: "enum IRuleEntitlementBase.CheckOperationType", }, { name: "chainId", @@ -359,12 +359,12 @@ const _abi = [ { name: "logicalOperations", type: "tuple[]", - internalType: "struct IRuleEntitlement.LogicalOperation[]", + internalType: "struct IRuleEntitlementBase.LogicalOperation[]", components: [ { name: "logOpType", type: "uint8", - internalType: "enum IRuleEntitlement.LogicalOperationType", + internalType: "enum IRuleEntitlementBase.LogicalOperationType", }, { name: "leftOperationIndex", @@ -1600,7 +1600,7 @@ const _abi = [ ] as const; const _bytecode = - "0x60806040523480156200001157600080fd5b506200001c62000022565b620000ca565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200006f576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff9081161015620000c757805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6151de80620000da6000396000f3fe60806040526004361061020f5760003560e01c806370a082311161011857806395d89b41116100a0578063c87b56dd1161006f578063c87b56dd146105d0578063d2f01f19146105f0578063df9a9fe614610610578063e847abdd14610630578063e985e9c51461064557600080fd5b806395d89b411461056857806397fb7c1e1461057d578063a22cb4651461059d578063b88d4fde146105bd57600080fd5b80638120f0ba116100e75780638120f0ba146104d15780638c625b06146104fe57806392c399ff1461051157806393b13cb71461053e57806395d600c81461055357600080fd5b806370a082311461046957806379dda585146104895780637adc9cbe1461049e5780637c9669ac146104be57600080fd5b80634739e8051161019b5780635becd24a1161016a5780635becd24a146103df5780636352211e146103ff578063657e45e81461041f57806369d5f38a14610434578063706b8e091461045457600080fd5b80634739e8051461035f5780634c2abfbe1461037f57806351cff8d91461039f5780635803909f146103bf57600080fd5b80631278076a116101e25780631278076a146102ac57806317c95709146102cf57806318160ddd1461032457806323b872dd1461033957806342842e0e1461034c57600080fd5b806306fdde0314610214578063081812fc1461023f578063095ea7b3146102775780630ef1be5f1461028c575b600080fd5b34801561022057600080fd5b50610229610675565b604051610236919061427e565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004614291565b610710565b6040516001600160a01b039091168152602001610236565b61028a6102853660046142cf565b610721565b005b34801561029857600080fd5b5061028a6102a73660046142fb565b610731565b3480156102b857600080fd5b506102c16107b0565b604051908152602001610236565b3480156102db57600080fd5b506102c16102ea366004614291565b60009081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b031690565b34801561033057600080fd5b506102c16107c7565b61028a61034736600461436c565b6107d1565b61028a61035a36600461436c565b6109c8565b34801561036b57600080fd5b5061028a61037a3660046143ba565b6109e8565b34801561038b57600080fd5b5061028a61039a36600461455f565b610a51565b3480156103ab57600080fd5b5061028a6103ba366004614668565b610ac7565b3480156103cb57600080fd5b506102c16103da366004614291565b610b69565b3480156103eb57600080fd5b5061028a6103fa366004614291565b610b7c565b34801561040b57600080fd5b5061025f61041a366004614291565b610c01565b34801561042b57600080fd5b5061025f610c0c565b34801561044057600080fd5b5061028a61044f366004614291565b610c16565b34801561046057600080fd5b506102c1610cc4565b34801561047557600080fd5b506102c1610484366004614668565b610cce565b34801561049557600080fd5b5061025f610cd9565b3480156104aa57600080fd5b5061028a6104b9366004614668565b610ce3565b61028a6104cc366004614291565b610d39565b3480156104dd57600080fd5b506104e6610e96565b6040516001600160401b039091168152602001610236565b61028a61050c366004614668565b610ea0565b34801561051d57600080fd5b5061053161052c366004614685565b6112af565b6040516102369190614798565b34801561054a57600080fd5b506102296112e4565b34801561055f57600080fd5b506102c16112ee565b34801561057457600080fd5b506102296112f8565b34801561058957600080fd5b5061028a610598366004614291565b611310565b3480156105a957600080fd5b5061028a6105b836600461483f565b611365565b61028a6105cb366004614878565b6113e2565b3480156105dc57600080fd5b506102296105eb366004614291565b61142c565b3480156105fc57600080fd5b5061028a61060b3660046148f7565b6114bc565b34801561061c57600080fd5b5061028a61062b366004614668565b611510565b34801561063c57600080fd5b5061025f61155d565b34801561065157600080fd5b5061066561066036600461495a565b611567565b6040519015158152602001610236565b606061067f611573565b600201805461068d90614988565b80601f01602080910402602001604051908101604052809291908181526020018280546106b990614988565b80156107065780601f106106db57610100808354040283529160200191610706565b820191906000526020600020905b8154815290600101906020018083116106e957829003601f168201915b5050505050905090565b600061071b82611597565b92915050565b61072d828260016115e4565b5050565b610739611699565b6001600160a01b0316336001600160a01b031614610771576040516365f4906560e01b81523360048201526024015b60405180910390fd5b61072d82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061176392505050565b60006107c26107bd61177a565b611799565b905090565b60006107c261177a565b60006107dc82611899565b9050836001600160a01b0316816001600160a01b03161461080f5760405162a1148160e81b815260040160405180910390fd5b60008061081b84611934565b91509150610840818761082b3390565b6001600160a01b039081169116811491141790565b61086b5761084e8633611567565b61086b57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661089257604051633a954ecd60e21b815260040160405180910390fd5b801561089d57600082555b6108a5611573565b6001600160a01b03871660009081526005919091016020526040902080546000190190556108d1611573565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b17610908611573565b60008681526004919091016020526040812091909155600160e11b8416900361097e5760018401610937611573565b60008281526004919091016020526040812054900361097c57610958611573565b54811461097c5783610968611573565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6109e3838383604051806020016040528060008152506113e2565b505050565b600260008051602061515e8339815191525403610a1857604051635db5c7cd60e11b815260040160405180910390fd5b610a2f600260008051602061515e83398151915255565b610a3a83838361195c565b6109e3600160008051602061515e83398151915255565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610a9b57604051630ef4733760e31b815260040160405180910390fd5b610aab6322fa1fe560e21b611bff565b610ab58282611cdd565b61072d82600001518360200151611e00565b610acf611699565b6001600160a01b0316336001600160a01b031614610b02576040516365f4906560e01b8152336004820152602401610768565b6001600160a01b038116610b2957604051635fbd571760e01b815260040160405180910390fd5b6000610b33611e2a565b905080600003610b5657604051635894b54560e11b815260040160405180910390fd5b61072d610b61611e3d565b308484611e59565b600061071b82610b7761177a565b611e9f565b610b84611699565b6001600160a01b0316336001600160a01b031614610bb7576040516365f4906560e01b8152336004820152602401610768565b6000610bc1611ee5565b90508015801590610bd157508082115b15610bef5760405163c3983b9160e01b815260040160405180910390fd5b610bf882611ef8565b61072d82611f9d565b600061071b82611899565b60006107c2611e3d565b610c1e611699565b6001600160a01b0316336001600160a01b031614610c51576040516365f4906560e01b8152336004820152602401610768565b610c5a81611fe0565b610c6261206e565b6001600160a01b03166391b7f5ed826040518263ffffffff1660e01b8152600401610c8f91815260200190565b600060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b5050505050565b60006107c261208a565b600061071b82612129565b60006107c2612191565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610d2d57604051630ef4733760e31b815260040160405180910390fd5b610d36816121ad565b50565b600260008051602061515e8339815191525403610d6957604051635db5c7cd60e11b815260040160405180910390fd5b610d80600260008051602061515e83398151915255565b6000610d8b82610c01565b90506001600160a01b038116610db457604051635fbd571760e01b815260040160405180910390fd5b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b0316610df36121e8565b6001600160401b0316610e0642836149d2565b10610e245760405163dce9a1d360e01b815260040160405180910390fd5b6000610e3284610b7761177a565b90508015610e6b576000610e46848361226e565b90506000610e5482846149d2565b90508015610e6857610e668582612386565b505b50505b610e7c84610e776121e8565b612524565b505050610d36600160008051602061515e83398151915255565b60006107c26121e8565b600260008051602061515e8339815191525403610ed057604051635db5c7cd60e11b815260040160405180910390fd5b610ee7600260008051602061515e83398151915255565b610ef0816125ed565b60405133606081901b6bffffffffffffffffffffffff19166020830152436034830152906000906054016040516020818303038152906040528051906020012090506000610fb282610f868486610f4687612656565b604080516020808201959095526001600160a01b039390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9050610ff4818486604051602001610fe09291906001600160a01b0392831681529116602082015260400190565b60405160208183030381529060405261268b565b34156110045761100481346126d2565b6000611030604051806040016040528060098152602001684a6f696e537061636560b81b815250612758565b90506000806000611040336129a2565b845190915060005b81811015611220576000868281518110611064576110646149e5565b6020026020010151905080604001516112175760005b8160800151518110156112155760008260800151828151811061109f5761109f6149e5565b60200260200101519050806001600160a01b0316632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110b91906149fb565b6111f457806001600160a01b0316630cf0b5336000801b88604051806040016040528060098152602001684a6f696e537061636560b81b8152506040516020016111559190614a18565b60405160208183030381529060405261116d90614a34565b6040518463ffffffff1660e01b815260040161118b93929190614a92565b602060405180830381865afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc91906149fb565b156111eb576111da8a612c0a565b505050505050505050505050611298565b6001965061120c565b6112038a828560000151612dbc565b60009650600197505b5060010161107a565b505b50600101611048565b508315801561122c5750825b1561128f5761124a866040518060200160405280600081525061268b565b341561125a5761125a868961306b565b6040516001600160a01b038a16907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a25b50505050505050505b610d36600160008051602061515e83398151915255565b6112d360405180606001604052806060815260200160608152602001606081525090565b6112dd83836130a2565b9392505050565b60606107c261319c565b60006107c2611ee5565b6060611302611573565b600301805461068d90614988565b611318611699565b6001600160a01b0316336001600160a01b03161461134b576040516365f4906560e01b8152336004820152602401610768565b61135c8161135761177a565b6131b4565b610d36816131d5565b8061136e611573565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6113ed8484846107d1565b6001600160a01b0383163b1561142657611409848484846131e5565b611426576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6060611437826132d0565b61145457604051630a14c4b560e41b815260040160405180910390fd5b600061146b60408051602081019091526000815290565b9050805160000361148b57604051806020016040528060008152506112dd565b806114958461330c565b6040516020016114a6929190614abb565b6040516020818303038152906040529392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661150657604051630ef4733760e31b815260040160405180910390fd5b61072d8282611e00565b611518611699565b6001600160a01b0316336001600160a01b03161461154b576040516365f4906560e01b8152336004820152602401610768565b61155481613350565b610d3681613408565b60006107c261206e565b60006112dd8383613435565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090565b60006115a2826132d0565b6115bf576040516333d1c03960e21b815260040160405180910390fd5b6115c7611573565b60009283526006016020525060409020546001600160a01b031690565b60006115ef83610c01565b9050811561162e57336001600160a01b0382161461162e576116118133613435565b61162e576040516367d9dca160e11b815260040160405180910390fd5b83611637611573565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015611739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614aea565b91505090565b8061176c613472565b600c019061072d9082614b4f565b600080611785611573565b60010154611791611573565b540303919050565b6000806117a4613472565b905060006117b061208a565b60088301549091506001600160a01b031615611844576008820154604051635cf4ee9160e01b815260048101839052602481018690526001600160a01b0390911690635cf4ee9190604401602060405180830381865afa158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183c9190614c0e565b949350505050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611818573d6000803e3d6000fd5b6000806118a4611573565b60008481526004820160205260408120549350909150600160e01b8316900361191a578160000361191457805483106118f057604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156118f1575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b6000806000611941611573565b60009485526006016020525050604090912080549092909150565b600083815260008051602061513e83398151915260205260409020805460008051602061511e833981519152919061010090046001600160a01b031615806119a65750805460ff16155b156119c457604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff16156119f657604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b81811015611b345760008981526001870160205260408120805483908110611a3757611a376149e5565b60009182526020909120018054909150336001600160a01b0390911603611ac35760008154600160a01b900460ff166002811115611a7757611a776146a7565b14611a95576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b836002811115611ab957611ab96146a7565b0217905550600195505b60018154600160a01b900460ff166002811115611ae257611ae26146a7565b03611af95784611af181614c27565b955050611b2b565b60028154600160a01b900460ff166002811115611b1857611b186146a7565b03611b2b5783611b2781614c27565b9450505b50600101611a0d565b5083611b5357604051638223a7e960e01b815260040160405180910390fd5b611b5e600282614c40565b831180611b745750611b71600282614c40565b82115b15611bf45760008881526002860160205260408120805460ff19166001179055828411611ba2576002611ba5565b60015b9050611bb18a82613496565b897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051611be19190614c62565b60405180910390a2611bf28a613538565b505b505050505050505050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114611c8c576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055611ca5565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b6000611ce7613472565b6006810180546001600160a01b038086166001600160a01b031992831617909255610100860151600884018054919093169082161790915560048201805490911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1790556060840151600382015560e08401516007820181905590915015611d6b57611d6b8360e00151611ef8565b611d79836101000151613350565b6040830151156109e357611d908360400151611fe0565b600881015460408085015190516391b7f5ed60e01b81526001600160a01b03909216916391b7f5ed91611dc99160040190815260200190565b600060405180830381600087803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b50505050505050565b611e106380ac58cd60e01b611bff565b611e20635b5e139f60e01b611bff565b61072d8282613605565b6000611e34613472565b600a0154905090565b6000611e47613472565b600401546001600160a01b0316919050565b80156114265773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03851601611e9357611e8e8282613637565b611426565b611426848484846136da565b600080611eaa613472565b600085815260098201602052604090205490915015611edc57600084815260099091016020526040902054905061071b565b61183c83611799565b6000611eef613472565b60030154905090565b6000611f02613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7d9190614c0e565b82111561072d5760405163c3983b9160e01b815260040160405180910390fd5b6000611fa7613472565b6007810183905560405190915082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f90600090a25050565b6000611fea612191565b6001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204b9190614c0e565b90508082101561072d57604051631a23d64760e11b815260040160405180910390fd5b6000612078613472565b600801546001600160a01b0316919050565b600080612095613472565b600781015490915080156120a95792915050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190614c0e565b9250505090565b60006001600160a01b038216612152576040516323d3ad8160e21b815260040160405180910390fd5b6001600160401b03612162611573565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b600061219b613472565b600601546001600160a01b0316919050565b6121bd636afd38fd60e11b611bff565b60008051602061511e83398151915280546001600160a01b0319166001600160a01b03831617905550565b6000806121f3613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614c75565b600080612279613472565b6006810154600480830154604080516301332c8360e61b815290519495506001600160a01b039384169493909116926000928592634ccb20c092818301926020928290030181865afa1580156122d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f79190614aea565b90506000836001600160a01b0316639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235d9190614c92565b905061236d878261ffff1661372d565b955061237b83898489611e59565b505050505092915050565b600080612391613472565b9050600061239d611e3d565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038216016123e8578382600a0160008282546123d89190614cb6565b9091555084935061071b92505050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190614c0e565b905061246383883089611e59565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156124aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ce9190614c0e565b905060006124dc83836149d2565b90508781146124fe57604051635894b54560e11b815260040160405180910390fd5b8086600a0160008282546125129190614cb6565b90915550909998505050505050505050565b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce006020819052604082205490916001600160401b039091169081810361257a576125738442614cc9565b9050612587565b6125848483614cc9565b90505b60008581526020848152604091829020805467ffffffffffffffff19166001600160401b038516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b6001600160a01b03811661261457604051635fbd571760e01b815260040160405180910390fd5b61261c611ee5565b15801590612638575061262d611ee5565b61263561177a565b10155b15610d3657604051637efcdb4960e01b815260040160405180910390fd5b600081815260008051602061517e8339815191526020819052604082208054908361268083614c27565b909155509392505050565b60008281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040902060008051602061517e833981519152906114268382614b4f565b806000036126f35760405163acdc0d4960e01b815260040160405180910390fd5b8034146127135760405163acdc0d4960e01b815260040160405180910390fd5b60008281526000805160206151be83398151915260205260408120805460008051602061517e8339815191529284929161274e908490614cb6565b9091555050505050565b606060006127646137a2565b80519091506000816001600160401b03811115612783576127836143f3565b6040519080825280602002602001820160405280156127ac578160200160208202803683370190505b5085516020870120909150600090815b8481101561287b5760006127e88783815181106127db576127db6149e5565b60200260200101516137cd565b509250505060005b8151811015612871578382828151811061280c5761280c6149e5565b6020026020010151805190602001200361286957878381518110612832576128326149e5565b602002602001015186868151811061284c5761284c6149e5565b60209081029190910101528461286181614c27565b955050612871565b6001016127f0565b50506001016127bc565b506000826001600160401b03811115612896576128966143f3565b6040519080825280602002602001820160405280156128fb57816020015b6128e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816128b45790505b50905060005b8381101561299657600085828151811061291d5761291d6149e5565b60200260200101519050600080600080612936856137cd565b93509350935093506040518060a00160405280868152602001858152602001841515815260200183815260200182815250878781518110612979576129796149e5565b602002602001018190525050505050508080600101915050612901565b50979650505050505050565b606060006129ae613472565b6006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa1580156129fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a269190810190614d0c565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa158015612a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a969190614aea565b905081516000148015612ab157506001600160a01b03811615155b15612b2b5760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015612b00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b289190810190614d0c565b91505b81516000612b3a826001614cb6565b6001600160401b03811115612b5157612b516143f3565b604051908082528060200260200182016040528015612b7a578160200160208202803683370190505b50905060005b82811015612bd457848181518110612b9a57612b9a6149e5565b6020026020010151828281518110612bb457612bb46149e5565b6001600160a01b0390921660209283029190910190910152600101612b80565b5086818381518110612be857612be86149e5565b6001600160a01b03909216602092830291909101909101529695505050505050565b600080612c16836138dd565b806020019051810190612c299190614d9f565b915091506000612c3761177a565b9050600080612c4461208a565b90506000612c506139ae565b905083821115612c6d5760009250612c68878761306b565b612c97565b8015612c8b5760009250612c8160016139d8565b612c68878761306b565b612c9484611799565b92505b6000612ca1613a16565b90508315612d655760008881526000805160206151be833981519152602052604081205490819003612ce657604051635894b54560e11b815260040160405180910390fd5b848114612d06576040516334a7a93d60e01b815260040160405180910390fd5b612d108286613a20565b6000612d1c898761226e565b90506000612d2a82886149d2565b90508015612d3e57612d3c8a82612386565b505b612d488b88613a40565b612d618b6040518060200160405280600081525061268b565b5050505b612d70866001613a7b565b612d7c81610e776121e8565b60405181906001600160a01b038816907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b57690600090a35050505050505050565b600083815260008051602061513e83398151915260205260409020805460008051602061511e833981519152919060ff161515600103612e4e5760005b6004820154811015612e4c5783826004018281548110612e1b57612e1b6149e5565b906000526020600020015403612e44576040516301ab53df60e31b815260040160405180910390fd5b600101612df9565b505b81546001600160a01b0316612e6557612e65613a95565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015612eae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ed69190810190614d0c565b825490915060ff16612f175781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b8151811015613007578260010160008681526020019081526020016000206040518060400160405280848481518110612f6c57612f6c6149e5565b60200260200101516001600160a01b0316815260200160006002811115612f9557612f956146a7565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b836002811115612ff857612ff86146a7565b02179055505050600101612f31565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e59061303d9033908a9089908790600401614dce565b600060405180830381600087803b15801561305757600080fd5b505af1158015611bf2573d6000803e3d6000fd5b60008281526000805160206151be833981519152602052604090205480156109e3576130978382613a40565b6109e3610b61611e3d565b6130c660405180606001604052806060815260200160608152602001606081525090565b600083815260008051602061513e83398151915260205260408120805460008051602061511e8339815191529260ff9091161515900361311957604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015613169573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131919190810190614f6c565b979650505050505050565b60606131a6613472565b600c01805461068d90614988565b8082101561072d57604051636664d51760e11b815260040160405180910390fd5b806131de613472565b6003015550565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061321a9033908990889088906004016150a9565b6020604051808303816000875af1925050508015613255575060408051601f3d908101601f19168201909252613252918101906150dc565b60015b6132b3573d808015613283576040519150601f19603f3d011682016040523d82523d6000602084013e613288565b606091505b5080516000036132ab576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60006132da611573565b548210801561071b5750600160e01b6132f1611573565b60008481526004919091016020526040902054161592915050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806133265750819003601f19909101908152919050565b6001600160a01b03811661337757604051630e88bf4b60e01b815260040160405180910390fd5b61337f612191565b6040516346fc05eb60e11b81526001600160a01b0383811660048301529190911690638df80bd690602401602060405180830381865afa1580156133c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133eb91906149fb565b610d3657604051630e88bf4b60e01b815260040160405180910390fd5b80613411613472565b60080180546001600160a01b0319166001600160a01b039290921691909117905550565b600061343f611573565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090565b60018160028111156134aa576134aa6146a7565b036134b85761072d82612c0a565b6000806134c4846138dd565b8060200190518101906134d79190614d9f565b915091506134f4846040518060200160405280600081525061268b565b6134fe848361306b565b6040516001600160a01b038216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a250505050565b600081815260008051602061513e8339815191526020526040812060008051602061511e833981519152915b60048201548110156135b85781600101600083600401838154811061358b5761358b6149e5565b9060005260206000200154815260200190815260200160002060006135b091906141ba565b600101613564565b506135c76004820160006141d8565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610cbd60048301826141d8565b600061360f611573565b90506002810161361f8482614b4f565b506003810161362e8382614b4f565b50600090555050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613684576040519150601f19603f3d011682016040523d82523d6000602084013e613689565b606091505b50509050806109e35760405162461bcd60e51b815260206004820152601c60248201527f6e617469766520746f6b656e207472616e73666572206661696c6564000000006044820152606401610768565b816001600160a01b0316836001600160a01b0316031561142657306001600160a01b0384160361371857611e8e6001600160a01b0385168383613b49565b6114266001600160a01b038516848484613ba8565b600061271082111561378b5760405162461bcd60e51b815260206004820152602160248201527f426173697320706f696e74732063616e6e6f74206578636565642031305f30306044820152600360fc1b6064820152608401610768565b6127106137988385615106565b6112dd9190614c40565b60606107c27f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01613be1565b600081815260008051602061519e83398151915260205260408120805460609291839182917f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd009161381d90614988565b80601f016020809104026020016040519081016040528092919081815260200182805461384990614988565b80156138965780601f1061386b57610100808354040283529160200191613896565b820191906000526020600020905b81548152906001019060200180831161387957829003601f168201915b50505060008981526003850160205260409020600181015493985060ff90931696506138c8926002019150613bee9050565b92506138d386613bf9565b9150509193509193565b60008181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0260205260409020805460609160008051602061517e8339815191529161392890614988565b80601f016020809104026020016040519081016040528092919081815260200182805461395490614988565b80156139a15780601f10613976576101008083540402835291602001916139a1565b820191906000526020600020905b81548152906001019060200180831161398457829003601f168201915b5050505050915050919050565b60007f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c00805482908290600090613a0d9084906149d2565b90915550505050565b60006139d2611573565b80613a29613472565b600093845260090160205260409092209190915550565b60008281526000805160206151be83398151915260205260408120805460008051602061517e8339815191529284929161274e9084906149d2565b61072d828260405180602001604052806000815250613cfd565b60008051602061511e8339815191526000613aae613472565b60060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015613b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b2a9190614aea565b82546001600160a01b0319166001600160a01b03919091161790915550565b6040516001600160a01b038381166024830152604482018390526109e391859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613d73565b6040516001600160a01b0384811660248301528381166044830152606482018390526114269186918216906323b872dd90608401613b76565b606060006112dd83613dd6565b606061071b82613e32565b600081815260008051602061519e8339815191526020526040812060609190613c2490600401613f0f565b6001600160401b03811115613c3b57613c3b6143f3565b604051908082528060200260200182016040528015613c64578160200160208202803683370190505b50905060005b600084815260008051602061519e83398151915260205260409020613c9190600401613f0f565b811015613cf657600084815260008051602061519e83398151915260205260408120613cc09060040183613f19565b905080838381518110613cd557613cd56149e5565b6001600160a01b039092166020928302919091019091015250600101613c6a565b5092915050565b613d078383613f25565b6001600160a01b0383163b156109e3576000613d21611573565b5490508281035b613d3b60008683806001019450866131e5565b613d58576040516368d2bf6b60e11b815260040160405180910390fd5b818110613d285781613d68611573565b5414610cbd57600080fd5b6000613d886001600160a01b03841683614060565b90508051600014158015613dad575080806020019051810190613dab91906149fb565b155b156109e357604051635274afe760e01b81526001600160a01b0384166004820152602401610768565b606081600001805480602002602001604051908101604052809291908181526020018280548015613e2657602002820191906000526020600020905b815481526020019060010190808311613e12575b50505050509050919050565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015613f04578382906000526020600020018054613e7790614988565b80601f0160208091040260200160405190810160405280929190818152602001828054613ea390614988565b8015613ef05780601f10613ec557610100808354040283529160200191613ef0565b820191906000526020600020905b815481529060010190602001808311613ed357829003601f168201915b505050505081526020019060010190613e58565b505050509050919050565b600061071b825490565b60006112dd838361406e565b6000613f2f611573565b5490506000829003613f545760405163b562e8dd60e01b815260040160405180910390fd5b680100000000000000018202613f68611573565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b1717613fa3611573565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461402d57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613ff5565b508160000361404e57604051622e076360e81b815260040160405180910390fd5b80614057611573565b55506109e39050565b60606112dd83836000614098565b6000826000018281548110614085576140856149e5565b9060005260206000200154905092915050565b6060814710156140bd5760405163cd78605960e01b8152306004820152602401610768565b600080856001600160a01b031684866040516140d99190614a18565b60006040518083038185875af1925050503d8060008114614116576040519150601f19603f3d011682016040523d82523d6000602084013e61411b565b606091505b509150915061412b868383614135565b9695505050505050565b60608261414a5761414582614191565b6112dd565b815115801561416157506001600160a01b0384163b155b1561418a57604051639996b31560e01b81526001600160a01b0385166004820152602401610768565b50806112dd565b8051156141a15780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825590600052602060002090810190610d3691906141f6565b5080546000825590600052602060002090810190610d369190614219565b5b808211156142155780546001600160a81b03191681556001016141f7565b5090565b5b80821115614215576000815560010161421a565b60005b83811015614249578181015183820152602001614231565b50506000910152565b6000815180845261426a81602086016020860161422e565b601f01601f19169290920160200192915050565b6020815260006112dd6020830184614252565b6000602082840312156142a357600080fd5b5035919050565b6001600160a01b0381168114610d3657600080fd5b80356142ca816142aa565b919050565b600080604083850312156142e257600080fd5b82356142ed816142aa565b946020939093013593505050565b6000806020838503121561430e57600080fd5b82356001600160401b038082111561432557600080fd5b818501915085601f83011261433957600080fd5b81358181111561434857600080fd5b86602082850101111561435a57600080fd5b60209290920196919550909350505050565b60008060006060848603121561438157600080fd5b833561438c816142aa565b9250602084013561439c816142aa565b929592945050506040919091013590565b60038110610d3657600080fd5b6000806000606084860312156143cf57600080fd5b833592506020840135915060408401356143e8816143ad565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171561442c5761442c6143f3565b60405290565b604051608081016001600160401b038111828210171561442c5761442c6143f3565b604051606081016001600160401b038111828210171561442c5761442c6143f3565b604080519081016001600160401b038111828210171561442c5761442c6143f3565b604051601f8201601f191681016001600160401b03811182821017156144c0576144c06143f3565b604052919050565b60006001600160401b038311156144e1576144e16143f3565b6144f4601f8401601f1916602001614498565b905082815283838301111561450857600080fd5b828260208301376000602084830101529392505050565b600082601f83011261453057600080fd5b6112dd838335602085016144c8565b6001600160401b0381168114610d3657600080fd5b80356142ca8161453f565b6000806040838503121561457257600080fd5b82356001600160401b038082111561458957600080fd5b90840190610120828703121561459e57600080fd5b6145a6614409565b8235828111156145b557600080fd5b6145c18882860161451f565b8252506020830135828111156145d657600080fd5b6145e28882860161451f565b602083015250604083013560408201526060830135606082015261460860808401614554565b608082015261461960a084016142bf565b60a082015261462a60c084016142bf565b60c082015260e083013560e082015261010091506146498284016142bf565b8282015280945050505061465f602084016142bf565b90509250929050565b60006020828403121561467a57600080fd5b81356112dd816142aa565b6000806040838503121561469857600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b60038110610d3657610d366146a7565b60008151808452602080850194506020840160005b838110156147375781518051600681106146fe576146fe6146a7565b885280840151848901526040808201516001600160a01b03169089015260609081015190880152608090960195908201906001016146e2565b509495945050505050565b60008151808452602080850194506020840160005b83811015614737578151805161476c816146bd565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101614757565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156147f457835180516147d2816146bd565b835285015160ff168583015292840192600192909201916040909101906147bd565b50838701519350601f1992508286820301604087015261481481856146cd565b9350505060408501518185840301606086015261412b8382614742565b8015158114610d3657600080fd5b6000806040838503121561485257600080fd5b823561485d816142aa565b9150602083013561486d81614831565b809150509250929050565b6000806000806080858703121561488e57600080fd5b8435614899816142aa565b935060208501356148a9816142aa565b92506040850135915060608501356001600160401b038111156148cb57600080fd5b8501601f810187136148dc57600080fd5b6148eb878235602084016144c8565b91505092959194509250565b6000806040838503121561490a57600080fd5b82356001600160401b038082111561492157600080fd5b61492d8683870161451f565b9350602085013591508082111561494357600080fd5b506149508582860161451f565b9150509250929050565b6000806040838503121561496d57600080fd5b8235614978816142aa565b9150602083013561486d816142aa565b600181811c9082168061499c57607f821691505b60208210810361191457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561071b5761071b6149bc565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614a0d57600080fd5b81516112dd81614831565b60008251614a2a81846020870161422e565b9190910192915050565b805160208083015191908110156119145760001960209190910360031b1b16919050565b60008151808452602080850194506020840160005b838110156147375781516001600160a01b031687529582019590820190600101614a6d565b838152606060208201526000614aab6060830185614a58565b9050826040830152949350505050565b60008351614acd81846020880161422e565b835190830190614ae181836020880161422e565b01949350505050565b600060208284031215614afc57600080fd5b81516112dd816142aa565b601f8211156109e3576000816000526020600020601f850160051c81016020861015614b305750805b601f850160051c820191505b818110156109c057828155600101614b3c565b81516001600160401b03811115614b6857614b686143f3565b614b7c81614b768454614988565b84614b07565b602080601f831160018114614bb15760008415614b995750858301515b600019600386901b1c1916600185901b1785556109c0565b600085815260208120601f198616915b82811015614be057888601518255948401946001909101908401614bc1565b5085821015614bfe5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215614c2057600080fd5b5051919050565b600060018201614c3957614c396149bc565b5060010190565b600082614c5d57634e487b7160e01b600052601260045260246000fd5b500490565b60208101614c6f836146bd565b91905290565b600060208284031215614c8757600080fd5b81516112dd8161453f565b600060208284031215614ca457600080fd5b815161ffff811681146112dd57600080fd5b8082018082111561071b5761071b6149bc565b6001600160401b03818116838216019080821115613cf657613cf66149bc565b60006001600160401b03821115614d0257614d026143f3565b5060051b60200190565b60006020808385031215614d1f57600080fd5b82516001600160401b03811115614d3557600080fd5b8301601f81018513614d4657600080fd5b8051614d59614d5482614ce9565b614498565b81815260059190911b82018301908381019087831115614d7857600080fd5b928401925b82841015613191578351614d90816142aa565b82529284019290840190614d7d565b60008060408385031215614db257600080fd5b8251614dbd816142aa565b602084015190925061486d816142aa565b60018060a01b038516815283602082015282604082015260806060820152600061412b6080830184614a58565b805160ff811681146142ca57600080fd5b600082601f830112614e1d57600080fd5b81516020614e2d614d5483614ce9565b82815260079290921b84018101918181019086841115614e4c57600080fd5b8286015b84811015614eb65760808189031215614e695760008081fd5b614e71614432565b815160068110614e815760008081fd5b81528185015185820152604080830151614e9a816142aa565b9082015260608281015190820152835291830191608001614e50565b509695505050505050565b600082601f830112614ed257600080fd5b81516020614ee2614d5483614ce9565b82815260609283028501820192828201919087851115614f0157600080fd5b8387015b85811015614f5f5781818a031215614f1d5760008081fd5b614f25614454565b8151614f30816143ad565b8152614f3d828701614dfb565b868201526040614f4e818401614dfb565b908201528452928401928101614f05565b5090979650505050505050565b60006020808385031215614f7f57600080fd5b82516001600160401b0380821115614f9657600080fd5b9084019060608287031215614faa57600080fd5b614fb2614454565b825182811115614fc157600080fd5b8301601f81018813614fd257600080fd5b8051614fe0614d5482614ce9565b81815260069190911b8201860190868101908a831115614fff57600080fd5b928701925b82841015615053576040848c03121561501d5760008081fd5b615025614476565b8451615030816143ad565b815261503d858a01614dfb565b818a015282526040939093019290870190615004565b8452505050828401518281111561506957600080fd5b61507588828601614e0c565b8583015250604083015193508184111561508e57600080fd5b61509a87858501614ec1565b60408201529695505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061412b90830184614252565b6000602082840312156150ee57600080fd5b81516001600160e01b0319811681146112dd57600080fd5b808202811582820484141761071b5761071b6149bc56fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0154f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0034516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0334516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e01"; + "0x60806040523480156200001157600080fd5b506200001c62000022565b620000ca565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156200006f576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff9081161015620000c757805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6151b080620000da6000396000f3fe60806040526004361061020f5760003560e01c806370a082311161011857806395d89b41116100a0578063c87b56dd1161006f578063c87b56dd146105d0578063d2f01f19146105f0578063df9a9fe614610610578063e847abdd14610630578063e985e9c51461064557600080fd5b806395d89b411461056857806397fb7c1e1461057d578063a22cb4651461059d578063b88d4fde146105bd57600080fd5b80638120f0ba116100e75780638120f0ba146104d15780638c625b06146104fe57806392c399ff1461051157806393b13cb71461053e57806395d600c81461055357600080fd5b806370a082311461046957806379dda585146104895780637adc9cbe1461049e5780637c9669ac146104be57600080fd5b80634739e8051161019b5780635becd24a1161016a5780635becd24a146103df5780636352211e146103ff578063657e45e81461041f57806369d5f38a14610434578063706b8e091461045457600080fd5b80634739e8051461035f5780634c2abfbe1461037f57806351cff8d91461039f5780635803909f146103bf57600080fd5b80631278076a116101e25780631278076a146102ac57806317c95709146102cf57806318160ddd1461032457806323b872dd1461033957806342842e0e1461034c57600080fd5b806306fdde0314610214578063081812fc1461023f578063095ea7b3146102775780630ef1be5f1461028c575b600080fd5b34801561022057600080fd5b50610229610675565b6040516102369190614269565b60405180910390f35b34801561024b57600080fd5b5061025f61025a36600461427c565b610710565b6040516001600160a01b039091168152602001610236565b61028a6102853660046142ba565b610721565b005b34801561029857600080fd5b5061028a6102a73660046142e6565b610731565b3480156102b857600080fd5b506102c16107b0565b604051908152602001610236565b3480156102db57600080fd5b506102c16102ea36600461427c565b60009081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b031690565b34801561033057600080fd5b506102c16107c7565b61028a610347366004614357565b6107d1565b61028a61035a366004614357565b6109c8565b34801561036b57600080fd5b5061028a61037a3660046143a5565b6109e8565b34801561038b57600080fd5b5061028a61039a36600461454a565b610a51565b3480156103ab57600080fd5b5061028a6103ba366004614653565b610ac7565b3480156103cb57600080fd5b506102c16103da36600461427c565b610b69565b3480156103eb57600080fd5b5061028a6103fa36600461427c565b610b7c565b34801561040b57600080fd5b5061025f61041a36600461427c565b610c01565b34801561042b57600080fd5b5061025f610c0c565b34801561044057600080fd5b5061028a61044f36600461427c565b610c16565b34801561046057600080fd5b506102c1610cc4565b34801561047557600080fd5b506102c1610484366004614653565b610cce565b34801561049557600080fd5b5061025f610cd9565b3480156104aa57600080fd5b5061028a6104b9366004614653565b610ce3565b61028a6104cc36600461427c565b610d39565b3480156104dd57600080fd5b506104e6610e96565b6040516001600160401b039091168152602001610236565b61028a61050c366004614653565b610ea0565b34801561051d57600080fd5b5061053161052c366004614670565b6112af565b6040516102369190614783565b34801561054a57600080fd5b506102296112e4565b34801561055f57600080fd5b506102c16112ee565b34801561057457600080fd5b506102296112f8565b34801561058957600080fd5b5061028a61059836600461427c565b611310565b3480156105a957600080fd5b5061028a6105b836600461482a565b611365565b61028a6105cb366004614863565b6113e2565b3480156105dc57600080fd5b506102296105eb36600461427c565b61142c565b3480156105fc57600080fd5b5061028a61060b3660046148e2565b6114bc565b34801561061c57600080fd5b5061028a61062b366004614653565b611510565b34801561063c57600080fd5b5061025f61155d565b34801561065157600080fd5b50610665610660366004614945565b611567565b6040519015158152602001610236565b606061067f611573565b600201805461068d90614973565b80601f01602080910402602001604051908101604052809291908181526020018280546106b990614973565b80156107065780601f106106db57610100808354040283529160200191610706565b820191906000526020600020905b8154815290600101906020018083116106e957829003601f168201915b5050505050905090565b600061071b82611597565b92915050565b61072d828260016115e4565b5050565b610739611699565b6001600160a01b0316336001600160a01b031614610771576040516365f4906560e01b81523360048201526024015b60405180910390fd5b61072d82828080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061176392505050565b60006107c26107bd61177a565b611799565b905090565b60006107c261177a565b60006107dc82611899565b9050836001600160a01b0316816001600160a01b03161461080f5760405162a1148160e81b815260040160405180910390fd5b60008061081b84611934565b91509150610840818761082b3390565b6001600160a01b039081169116811491141790565b61086b5761084e8633611567565b61086b57604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661089257604051633a954ecd60e21b815260040160405180910390fd5b801561089d57600082555b6108a5611573565b6001600160a01b03871660009081526005919091016020526040902080546000190190556108d1611573565b6001600160a01b03861660008181526005929092016020526040909120805460010190554260a01b17600160e11b17610908611573565b60008681526004919091016020526040812091909155600160e11b8416900361097e5760018401610937611573565b60008281526004919091016020526040812054900361097c57610958611573565b54811461097c5783610968611573565b600083815260049190910160205260409020555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6109e3838383604051806020016040528060008152506113e2565b505050565b60026000805160206151508339815191525403610a1857604051635db5c7cd60e11b815260040160405180910390fd5b610a2f600260008051602061515083398151915255565b610a3a83838361195c565b6109e3600160008051602061515083398151915255565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610a9b57604051630ef4733760e31b815260040160405180910390fd5b610aab6322fa1fe560e21b611bff565b610ab58282611cdd565b61072d82600001518360200151611e00565b610acf611699565b6001600160a01b0316336001600160a01b031614610b02576040516365f4906560e01b8152336004820152602401610768565b6001600160a01b038116610b2957604051635fbd571760e01b815260040160405180910390fd5b6000610b33611e2a565b905080600003610b5657604051635894b54560e11b815260040160405180910390fd5b61072d610b61611e3d565b308484611e59565b600061071b82610b7761177a565b611e9f565b610b84611699565b6001600160a01b0316336001600160a01b031614610bb7576040516365f4906560e01b8152336004820152602401610768565b6000610bc1611ee5565b90508015801590610bd157508082115b15610bef5760405163c3983b9160e01b815260040160405180910390fd5b610bf882611ef8565b61072d82611f9d565b600061071b82611899565b60006107c2611e3d565b610c1e611699565b6001600160a01b0316336001600160a01b031614610c51576040516365f4906560e01b8152336004820152602401610768565b610c5a81611fe0565b610c6261206e565b6001600160a01b03166391b7f5ed826040518263ffffffff1660e01b8152600401610c8f91815260200190565b600060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b5050505050565b60006107c261208a565b600061071b82612129565b60006107c2612191565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610d2d57604051630ef4733760e31b815260040160405180910390fd5b610d36816121ad565b50565b60026000805160206151508339815191525403610d6957604051635db5c7cd60e11b815260040160405180910390fd5b610d80600260008051602061515083398151915255565b6000610d8b82610c01565b90506001600160a01b038116610db457604051635fbd571760e01b815260040160405180910390fd5b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce0060205260409020546001600160401b0316610df36121e8565b6001600160401b0316610e0642836149bd565b10610e245760405163dce9a1d360e01b815260040160405180910390fd5b6000610e3284610b7761177a565b90508015610e6b576000610e46848361226e565b90506000610e5482846149bd565b90508015610e6857610e668582612386565b505b50505b610e7c84610e776121e8565b612524565b505050610d36600160008051602061515083398151915255565b60006107c26121e8565b60026000805160206151508339815191525403610ed057604051635db5c7cd60e11b815260040160405180910390fd5b610ee7600260008051602061515083398151915255565b610ef0816125ed565b60405133606081901b6bffffffffffffffffffffffff19166020830152436034830152906000906054016040516020818303038152906040528051906020012090506000610fb282610f868486610f4687612656565b604080516020808201959095526001600160a01b039390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b9050610ff4818486604051602001610fe09291906001600160a01b0392831681529116602082015260400190565b60405160208183030381529060405261268b565b34156110045761100481346126d2565b6000611030604051806040016040528060098152602001684a6f696e537061636560b81b815250612758565b90506000806000611040336129a2565b845190915060005b81811015611220576000868281518110611064576110646149d0565b6020026020010151905080604001516112175760005b8160800151518110156112155760008260800151828151811061109f5761109f6149d0565b60200260200101519050806001600160a01b0316632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110b91906149e6565b6111f457806001600160a01b0316630cf0b5336000801b88604051806040016040528060098152602001684a6f696e537061636560b81b8152506040516020016111559190614a03565b60405160208183030381529060405261116d90614a1f565b6040518463ffffffff1660e01b815260040161118b93929190614a7d565b602060405180830381865afa1580156111a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cc91906149e6565b156111eb576111da8a612c0a565b505050505050505050505050611298565b6001965061120c565b6112038a828560000151612dbc565b60009650600197505b5060010161107a565b505b50600101611048565b508315801561122c5750825b1561128f5761124a866040518060200160405280600081525061268b565b341561125a5761125a868961306b565b6040516001600160a01b038a16907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a25b50505050505050505b610d36600160008051602061515083398151915255565b6112d360405180606001604052806060815260200160608152602001606081525090565b6112dd83836130a2565b9392505050565b60606107c261319c565b60006107c2611ee5565b6060611302611573565b600301805461068d90614973565b611318611699565b6001600160a01b0316336001600160a01b03161461134b576040516365f4906560e01b8152336004820152602401610768565b61135c8161135761177a565b6131b4565b610d36816131d5565b8061136e611573565b336000818152600792909201602090815260408084206001600160a01b03881680865290835293819020805460ff19169515159590951790945592518415158152919290917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6113ed8484846107d1565b6001600160a01b0383163b1561142657611409848484846131e5565b611426576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b6060611437826132d0565b61145457604051630a14c4b560e41b815260040160405180910390fd5b600061146b60408051602081019091526000815290565b9050805160000361148b57604051806020016040528060008152506112dd565b806114958461330c565b6040516020016114a6929190614aa6565b6040516020818303038152906040529392505050565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff1661150657604051630ef4733760e31b815260040160405180910390fd5b61072d8282611e00565b611518611699565b6001600160a01b0316336001600160a01b03161461154b576040516365f4906560e01b8152336004820152602401610768565b61155481613350565b610d3681613408565b60006107c261206e565b60006112dd8383613435565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0090565b60006115a2826132d0565b6115bf576040516333d1c03960e21b815260040160405180910390fd5b6115c7611573565b60009283526006016020525060409020546001600160a01b031690565b60006115ef83610c01565b9050811561162e57336001600160a01b0382161461162e576116118133613435565b61162e576040516367d9dca160e11b815260040160405180910390fd5b83611637611573565b6000858152600691909101602052604080822080546001600160a01b0319166001600160a01b0394851617905551859287811692908516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a450505050565b6040805180820182527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600546001600160a01b03168082527fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b60154602080840182905284516331a9108f60e11b815260048101929092529351600094636352211e92602480820193918290030181865afa158015611739573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614ad5565b91505090565b8061176c613472565b600c019061072d9082614b3a565b600080611785611573565b60010154611791611573565b540303919050565b6000806117a4613472565b905060006117b061208a565b60088301549091506001600160a01b031615611844576008820154604051635cf4ee9160e01b815260048101839052602481018690526001600160a01b0390911690635cf4ee9190604401602060405180830381865afa158015611818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183c9190614bf9565b949350505050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611818573d6000803e3d6000fd5b6000806118a4611573565b60008481526004820160205260408120549350909150600160e01b8316900361191a578160000361191457805483106118f057604051636f96cda160e11b815260040160405180910390fd5b5b6000199092016000818152600484016020526040902054909290915081156118f1575b50919050565b50604051636f96cda160e11b815260040160405180910390fd5b6000806000611941611573565b60009485526006016020525050604090912080549092909150565b6000838152600080516020615130833981519152602052604090208054600080516020615110833981519152919061010090046001600160a01b031615806119a65750805460ff16155b156119c457604051637ad5a43960e11b815260040160405180910390fd5b600084815260028201602052604090205460ff16156119f657604051637912b73960e01b815260040160405180910390fd5b600084815260018201602052604081205481908190815b81811015611b345760008981526001870160205260408120805483908110611a3757611a376149d0565b60009182526020909120018054909150336001600160a01b0390911603611ac35760008154600160a01b900460ff166002811115611a7757611a77614692565b14611a95576040516347592a4d60e01b815260040160405180910390fd5b80548990829060ff60a01b1916600160a01b836002811115611ab957611ab9614692565b0217905550600195505b60018154600160a01b900460ff166002811115611ae257611ae2614692565b03611af95784611af181614c12565b955050611b2b565b60028154600160a01b900460ff166002811115611b1857611b18614692565b03611b2b5783611b2781614c12565b9450505b50600101611a0d565b5083611b5357604051638223a7e960e01b815260040160405180910390fd5b611b5e600282614c2b565b831180611b745750611b71600282614c2b565b82115b15611bf45760008881526002860160205260408120805460ff19166001179055828411611ba2576002611ba5565b60015b9050611bb18a82613496565b897fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63382604051611be19190614c4d565b60405180910390a2611bf28a613538565b505b505050505050505050565b6001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff161515600114611c8c576001600160e01b0319811660009081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b0060205260409020805460ff19166001179055611ca5565b604051637967f77d60e11b815260040160405180910390fd5b6040516001600160e01b03198216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f2290600090a250565b6000611ce7613472565b6006810180546001600160a01b038086166001600160a01b031992831617909255610100860151600884018054919093169082161790915560048201805490911673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1790556060840151600382015560e08401516007820181905590915015611d6b57611d6b8360e00151611ef8565b611d79836101000151613350565b6040830151156109e357611d908360400151611fe0565b600881015460408085015190516391b7f5ed60e01b81526001600160a01b03909216916391b7f5ed91611dc99160040190815260200190565b600060405180830381600087803b158015611de357600080fd5b505af1158015611df7573d6000803e3d6000fd5b50505050505050565b611e106380ac58cd60e01b611bff565b611e20635b5e139f60e01b611bff565b61072d8282613605565b6000611e34613472565b600a0154905090565b6000611e47613472565b600401546001600160a01b0316919050565b80156114265773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03851601611e9357611e8e8282613637565b611426565b611426848484846136da565b600080611eaa613472565b600085815260098201602052604090205490915015611edc57600084815260099091016020526040902054905061071b565b61183c83611799565b6000611eef613472565b60030154905090565b6000611f02613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7d9190614bf9565b82111561072d5760405163c3983b9160e01b815260040160405180910390fd5b6000611fa7613472565b6007810183905560405190915082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f90600090a25050565b6000611fea612191565b6001600160a01b0316631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204b9190614bf9565b90508082101561072d57604051631a23d64760e11b815260040160405180910390fd5b6000612078613472565b600801546001600160a01b0316919050565b600080612095613472565b600781015490915080156120a95792915050565b8160060160009054906101000a90046001600160a01b03166001600160a01b0316632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121229190614bf9565b9250505090565b60006001600160a01b038216612152576040516323d3ad8160e21b815260040160405180910390fd5b6001600160401b03612162611573565b6005016000846001600160a01b03166001600160a01b0316815260200190815260200160002054169050919050565b600061219b613472565b600601546001600160a01b0316919050565b6121bd636afd38fd60e11b611bff565b60008051602061511083398151915280546001600160a01b0319166001600160a01b03831617905550565b6000806121f3613472565b90508060060160009054906101000a90046001600160a01b03166001600160a01b0316638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561224a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175d9190614c60565b600080612279613472565b6006810154600480830154604080516301332c8360e61b815290519495506001600160a01b039384169493909116926000928592634ccb20c092818301926020928290030181865afa1580156122d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f79190614ad5565b90506000836001600160a01b0316639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061235d9190614c7d565b905061236d878261ffff1661372d565b955061237b83898489611e59565b505050505092915050565b600080612391613472565b9050600061239d611e3d565b905073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038216016123e8578382600a0160008282546123d89190614ca1565b9091555084935061071b92505050565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa158015612431573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124559190614bf9565b905061246383883089611e59565b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156124aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ce9190614bf9565b905060006124dc83836149bd565b90508781146124fe57604051635894b54560e11b815260040160405180910390fd5b8086600a0160008282546125129190614ca1565b90915550909998505050505050505050565b60008281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce006020819052604082205490916001600160401b039091169081810361257a576125738442614cb4565b9050612587565b6125848483614cb4565b90505b60008581526020848152604091829020805467ffffffffffffffff19166001600160401b038516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b6001600160a01b03811661261457604051635fbd571760e01b815260040160405180910390fd5b61261c611ee5565b15801590612638575061262d611ee5565b61263561177a565b10155b15610d3657604051637efcdb4960e01b815260040160405180910390fd5b60008181526000805160206151708339815191526020819052604082208054908361268083614c12565b909155509392505050565b60008281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0260205260409020600080516020615170833981519152906114268382614b3a565b806000036126f35760405163acdc0d4960e01b815260040160405180910390fd5b8034146127135760405163acdc0d4960e01b815260040160405180910390fd5b60008281526000805160206151908339815191526020526040812080546000805160206151708339815191529284929161274e908490614ca1565b9091555050505050565b606060006127646137a2565b80519091506000816001600160401b03811115612783576127836143de565b6040519080825280602002602001820160405280156127ac578160200160208202803683370190505b5085516020870120909150600090815b8481101561287b5760006127e88783815181106127db576127db6149d0565b60200260200101516137cd565b509250505060005b8151811015612871578382828151811061280c5761280c6149d0565b6020026020010151805190602001200361286957878381518110612832576128326149d0565b602002602001015186868151811061284c5761284c6149d0565b60209081029190910101528461286181614c12565b955050612871565b6001016127f0565b50506001016127bc565b506000826001600160401b03811115612896576128966143de565b6040519080825280602002602001820160405280156128fb57816020015b6128e86040518060a00160405280600081526020016060815260200160001515815260200160608152602001606081525090565b8152602001906001900390816128b45790505b50905060005b8381101561299657600085828151811061291d5761291d6149d0565b60200260200101519050600080600080612936856137cd565b93509350935093506040518060a00160405280868152602001858152602001841515815260200183815260200182815250878781518110612979576129796149d0565b602002602001018190525050505050508080600101915050612901565b50979650505050505050565b606060006129ae613472565b6006015460405162468b7360e31b81526001600160a01b038581166004830152909116915060009082906302345b9890602401600060405180830381865afa1580156129fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612a269190810190614cfe565b604051631f04207360e31b81526001600160a01b03868116600483015291925060009184169063f821039890602401602060405180830381865afa158015612a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a969190614ad5565b905081516000148015612ab157506001600160a01b03811615155b15612b2b5760405162468b7360e31b81526001600160a01b03808316600483015291955085918416906302345b9890602401600060405180830381865afa158015612b00573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b289190810190614cfe565b91505b81516000612b3a826001614ca1565b6001600160401b03811115612b5157612b516143de565b604051908082528060200260200182016040528015612b7a578160200160208202803683370190505b50905060005b82811015612bd457848181518110612b9a57612b9a6149d0565b6020026020010151828281518110612bb457612bb46149d0565b6001600160a01b0390921660209283029190910190910152600101612b80565b5086818381518110612be857612be86149d0565b6001600160a01b03909216602092830291909101909101529695505050505050565b600080612c16836138ef565b806020019051810190612c299190614d91565b915091506000612c3761177a565b9050600080612c4461208a565b90506000612c506139c0565b905083821115612c6d5760009250612c68878761306b565b612c97565b8015612c8b5760009250612c8160016139ea565b612c68878761306b565b612c9484611799565b92505b6000612ca1613a28565b90508315612d65576000888152600080516020615190833981519152602052604081205490819003612ce657604051635894b54560e11b815260040160405180910390fd5b848114612d06576040516334a7a93d60e01b815260040160405180910390fd5b612d108286613a32565b6000612d1c898761226e565b90506000612d2a82886149bd565b90508015612d3e57612d3c8a82612386565b505b612d488b88613a52565b612d618b6040518060200160405280600081525061268b565b5050505b612d70866001613a8d565b612d7c81610e776121e8565b60405181906001600160a01b038816907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b57690600090a35050505050505050565b6000838152600080516020615130833981519152602052604090208054600080516020615110833981519152919060ff161515600103612e4e5760005b6004820154811015612e4c5783826004018281548110612e1b57612e1b6149d0565b906000526020600020015403612e44576040516301ab53df60e31b815260040160405180910390fd5b600101612df9565b505b81546001600160a01b0316612e6557612e65613aa7565b8154604051634f84544560e01b8152600560048201526000916001600160a01b031690634f84544590602401600060405180830381865afa158015612eae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ed69190810190614cfe565b825490915060ff16612f175781546003830180546001600160a01b0319166001600160a01b0388161790556001600160a81b03191661010033021760011782555b600482018054600181018255600091825260208220018590555b8151811015613007578260010160008681526020019081526020016000206040518060400160405280848481518110612f6c57612f6c6149d0565b60200260200101516001600160a01b0316815260200160006002811115612f9557612f95614692565b9052815460018101835560009283526020928390208251910180546001600160a01b031981166001600160a01b03909316928317825593830151929390929183916001600160a81b03191617600160a01b836002811115612ff857612ff8614692565b02179055505050600101612f31565b50825460405163541da4e560e01b81526001600160a01b039091169063541da4e59061303d9033908a9089908790600401614dc0565b600060405180830381600087803b15801561305757600080fd5b505af1158015611bf2573d6000803e3d6000fd5b6000828152600080516020615190833981519152602052604090205480156109e3576130978382613a52565b6109e3610b61611e3d565b6130c660405180606001604052806060815260200160608152602001606081525090565b60008381526000805160206151308339815191526020526040812080546000805160206151108339815191529260ff9091161515900361311957604051637ad5a43960e11b815260040160405180910390fd5b600381015460405163069a3ee960e01b8152600481018690526001600160a01b0390911690600090829063069a3ee990602401600060405180830381865afa158015613169573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131919190810190614f5e565b979650505050505050565b60606131a6613472565b600c01805461068d90614973565b8082101561072d57604051636664d51760e11b815260040160405180910390fd5b806131de613472565b6003015550565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061321a90339089908890889060040161509b565b6020604051808303816000875af1925050508015613255575060408051601f3d908101601f19168201909252613252918101906150ce565b60015b6132b3573d808015613283576040519150601f19603f3d011682016040523d82523d6000602084013e613288565b606091505b5080516000036132ab576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60006132da611573565b548210801561071b5750600160e01b6132f1611573565b60008481526004919091016020526040902054161592915050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806133265750819003601f19909101908152919050565b6001600160a01b03811661337757604051630e88bf4b60e01b815260040160405180910390fd5b61337f612191565b6040516346fc05eb60e11b81526001600160a01b0383811660048301529190911690638df80bd690602401602060405180830381865afa1580156133c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133eb91906149e6565b610d3657604051630e88bf4b60e01b815260040160405180910390fd5b80613411613472565b60080180546001600160a01b0319166001600160a01b039290921691909117905550565b600061343f611573565b6001600160a01b039384166000908152600791909101602090815260408083209490951682529290925250205460ff1690565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090565b60018160028111156134aa576134aa614692565b036134b85761072d82612c0a565b6000806134c4846138ef565b8060200190518101906134d79190614d91565b915091506134f4846040518060200160405280600081525061268b565b6134fe848361306b565b6040516001600160a01b038216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f90600090a250505050565b600081815260008051602061513083398151915260205260408120600080516020615110833981519152915b60048201548110156135b85781600101600083600401838154811061358b5761358b6149d0565b9060005260206000200154815260200190815260200160002060006135b091906141a5565b600101613564565b506135c76004820160006141c3565b6000838152600183016020526040812080546001600160a81b03191681556003810180546001600160a01b031916905590610cbd60048301826141c3565b600061360f611573565b90506002810161361f8482614b3a565b506003810161362e8382614b3a565b50600090555050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613684576040519150601f19603f3d011682016040523d82523d6000602084013e613689565b606091505b50509050806109e35760405162461bcd60e51b815260206004820152601c60248201527f6e617469766520746f6b656e207472616e73666572206661696c6564000000006044820152606401610768565b816001600160a01b0316836001600160a01b0316031561142657306001600160a01b0384160361371857611e8e6001600160a01b0385168383613b5b565b6114266001600160a01b038516848484613bba565b600061271082111561378b5760405162461bcd60e51b815260206004820152602160248201527f426173697320706f696e74732063616e6e6f74206578636565642031305f30306044820152600360fc1b6064820152608401610768565b61271061379883856150f8565b6112dd9190614c2b565b60606107c27f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01613bf3565b60008181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360205260408120805460609291839182917f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd009161382f90614973565b80601f016020809104026020016040519081016040528092919081815260200182805461385b90614973565b80156138a85780601f1061387d576101008083540402835291602001916138a8565b820191906000526020600020905b81548152906001019060200180831161388b57829003601f168201915b50505060008981526003850160205260409020600181015493985060ff90931696506138da926002019150613c009050565b92506138e586613c0b565b9150509193509193565b60008181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040902080546060916000805160206151708339815191529161393a90614973565b80601f016020809104026020016040519081016040528092919081815260200182805461396690614973565b80156139b35780601f10613988576101008083540402835291602001916139b3565b820191906000526020600020905b81548152906001019060200180831161399657829003601f168201915b5050505050915050919050565b60007f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c00805482908290600090613a1f9084906149bd565b90915550505050565b60006139e4611573565b80613a3b613472565b600093845260090160205260409092209190915550565b60008281526000805160206151908339815191526020526040812080546000805160206151708339815191529284929161274e9084906149bd565b61072d828260405180602001604052806000815250613ce8565b6000805160206151108339815191526000613ac0613472565b60060154604051628956cd60e71b81526c29b830b1b2a7b832b930ba37b960991b60048201526001600160a01b03909116906344ab668090602401602060405180830381865afa158015613b18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b3c9190614ad5565b82546001600160a01b0319166001600160a01b03919091161790915550565b6040516001600160a01b038381166024830152604482018390526109e391859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050613d5e565b6040516001600160a01b0384811660248301528381166044830152606482018390526114269186918216906323b872dd90608401613b88565b606060006112dd83613dc1565b606061071b82613e1d565b60008181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360205260408120606091600490910190613c4a82613efa565b90506000816001600160401b03811115613c6657613c666143de565b604051908082528060200260200182016040528015613c8f578160200160208202803683370190505b50905060005b82811015613cdf576000613ca98583613f04565b905080838381518110613cbe57613cbe6149d0565b6001600160a01b039092166020928302919091019091015250600101613c95565b50949350505050565b613cf28383613f10565b6001600160a01b0383163b156109e3576000613d0c611573565b5490508281035b613d2660008683806001019450866131e5565b613d43576040516368d2bf6b60e11b815260040160405180910390fd5b818110613d135781613d53611573565b5414610cbd57600080fd5b6000613d736001600160a01b0384168361404b565b90508051600014158015613d98575080806020019051810190613d9691906149e6565b155b156109e357604051635274afe760e01b81526001600160a01b0384166004820152602401610768565b606081600001805480602002602001604051908101604052809291908181526020018280548015613e1157602002820191906000526020600020905b815481526020019060010190808311613dfd575b50505050509050919050565b606081600001805480602002602001604051908101604052809291908181526020016000905b82821015613eef578382906000526020600020018054613e6290614973565b80601f0160208091040260200160405190810160405280929190818152602001828054613e8e90614973565b8015613edb5780601f10613eb057610100808354040283529160200191613edb565b820191906000526020600020905b815481529060010190602001808311613ebe57829003601f168201915b505050505081526020019060010190613e43565b505050509050919050565b600061071b825490565b60006112dd8383614059565b6000613f1a611573565b5490506000829003613f3f5760405163b562e8dd60e01b815260040160405180910390fd5b680100000000000000018202613f53611573565b6001600160a01b038516600081815260059290920160205260409091208054929092019091554260a01b6001841460e11b1717613f8e611573565b600083815260049190910160205260408120919091556001600160a01b0384169083830190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461401857808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613fe0565b508160000361403957604051622e076360e81b815260040160405180910390fd5b80614042611573565b55506109e39050565b60606112dd83836000614083565b6000826000018281548110614070576140706149d0565b9060005260206000200154905092915050565b6060814710156140a85760405163cd78605960e01b8152306004820152602401610768565b600080856001600160a01b031684866040516140c49190614a03565b60006040518083038185875af1925050503d8060008114614101576040519150601f19603f3d011682016040523d82523d6000602084013e614106565b606091505b5091509150614116868383614120565b9695505050505050565b606082614135576141308261417c565b6112dd565b815115801561414c57506001600160a01b0384163b155b1561417557604051639996b31560e01b81526001600160a01b0385166004820152602401610768565b50806112dd565b80511561418c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825590600052602060002090810190610d3691906141e1565b5080546000825590600052602060002090810190610d369190614204565b5b808211156142005780546001600160a81b03191681556001016141e2565b5090565b5b808211156142005760008155600101614205565b60005b8381101561423457818101518382015260200161421c565b50506000910152565b60008151808452614255816020860160208601614219565b601f01601f19169290920160200192915050565b6020815260006112dd602083018461423d565b60006020828403121561428e57600080fd5b5035919050565b6001600160a01b0381168114610d3657600080fd5b80356142b581614295565b919050565b600080604083850312156142cd57600080fd5b82356142d881614295565b946020939093013593505050565b600080602083850312156142f957600080fd5b82356001600160401b038082111561431057600080fd5b818501915085601f83011261432457600080fd5b81358181111561433357600080fd5b86602082850101111561434557600080fd5b60209290920196919550909350505050565b60008060006060848603121561436c57600080fd5b833561437781614295565b9250602084013561438781614295565b929592945050506040919091013590565b60038110610d3657600080fd5b6000806000606084860312156143ba57600080fd5b833592506020840135915060408401356143d381614398565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715614417576144176143de565b60405290565b604051608081016001600160401b0381118282101715614417576144176143de565b604051606081016001600160401b0381118282101715614417576144176143de565b604080519081016001600160401b0381118282101715614417576144176143de565b604051601f8201601f191681016001600160401b03811182821017156144ab576144ab6143de565b604052919050565b60006001600160401b038311156144cc576144cc6143de565b6144df601f8401601f1916602001614483565b90508281528383830111156144f357600080fd5b828260208301376000602084830101529392505050565b600082601f83011261451b57600080fd5b6112dd838335602085016144b3565b6001600160401b0381168114610d3657600080fd5b80356142b58161452a565b6000806040838503121561455d57600080fd5b82356001600160401b038082111561457457600080fd5b90840190610120828703121561458957600080fd5b6145916143f4565b8235828111156145a057600080fd5b6145ac8882860161450a565b8252506020830135828111156145c157600080fd5b6145cd8882860161450a565b60208301525060408301356040820152606083013560608201526145f36080840161453f565b608082015261460460a084016142aa565b60a082015261461560c084016142aa565b60c082015260e083013560e082015261010091506146348284016142aa565b8282015280945050505061464a602084016142aa565b90509250929050565b60006020828403121561466557600080fd5b81356112dd81614295565b6000806040838503121561468357600080fd5b50508035926020909101359150565b634e487b7160e01b600052602160045260246000fd5b60038110610d3657610d36614692565b60008151808452602080850194506020840160005b838110156147225781518051600681106146e9576146e9614692565b885280840151848901526040808201516001600160a01b03169089015260609081015190880152608090960195908201906001016146cd565b509495945050505050565b60008151808452602080850194506020840160005b838110156147225781518051614757816146a8565b88528084015160ff908116858a0152604091820151169088015260609096019590820190600101614742565b6020808252825160608383015280516080840181905260009291820190839060a08601905b808310156147df57835180516147bd816146a8565b835285015160ff168583015292840192600192909201916040909101906147a8565b50838701519350601f199250828682030160408701526147ff81856146b8565b93505050604085015181858403016060860152614116838261472d565b8015158114610d3657600080fd5b6000806040838503121561483d57600080fd5b823561484881614295565b915060208301356148588161481c565b809150509250929050565b6000806000806080858703121561487957600080fd5b843561488481614295565b9350602085013561489481614295565b92506040850135915060608501356001600160401b038111156148b657600080fd5b8501601f810187136148c757600080fd5b6148d6878235602084016144b3565b91505092959194509250565b600080604083850312156148f557600080fd5b82356001600160401b038082111561490c57600080fd5b6149188683870161450a565b9350602085013591508082111561492e57600080fd5b5061493b8582860161450a565b9150509250929050565b6000806040838503121561495857600080fd5b823561496381614295565b9150602083013561485881614295565b600181811c9082168061498757607f821691505b60208210810361191457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561071b5761071b6149a7565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156149f857600080fd5b81516112dd8161481c565b60008251614a15818460208701614219565b9190910192915050565b805160208083015191908110156119145760001960209190910360031b1b16919050565b60008151808452602080850194506020840160005b838110156147225781516001600160a01b031687529582019590820190600101614a58565b838152606060208201526000614a966060830185614a43565b9050826040830152949350505050565b60008351614ab8818460208801614219565b835190830190614acc818360208801614219565b01949350505050565b600060208284031215614ae757600080fd5b81516112dd81614295565b601f8211156109e3576000816000526020600020601f850160051c81016020861015614b1b5750805b601f850160051c820191505b818110156109c057828155600101614b27565b81516001600160401b03811115614b5357614b536143de565b614b6781614b618454614973565b84614af2565b602080601f831160018114614b9c5760008415614b845750858301515b600019600386901b1c1916600185901b1785556109c0565b600085815260208120601f198616915b82811015614bcb57888601518255948401946001909101908401614bac565b5085821015614be95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215614c0b57600080fd5b5051919050565b600060018201614c2457614c246149a7565b5060010190565b600082614c4857634e487b7160e01b600052601260045260246000fd5b500490565b60208101614c5a836146a8565b91905290565b600060208284031215614c7257600080fd5b81516112dd8161452a565b600060208284031215614c8f57600080fd5b815161ffff811681146112dd57600080fd5b8082018082111561071b5761071b6149a7565b6001600160401b03818116838216019080821115614cd457614cd46149a7565b5092915050565b60006001600160401b03821115614cf457614cf46143de565b5060051b60200190565b60006020808385031215614d1157600080fd5b82516001600160401b03811115614d2757600080fd5b8301601f81018513614d3857600080fd5b8051614d4b614d4682614cdb565b614483565b81815260059190911b82018301908381019087831115614d6a57600080fd5b928401925b82841015613191578351614d8281614295565b82529284019290840190614d6f565b60008060408385031215614da457600080fd5b8251614daf81614295565b602084015190925061485881614295565b60018060a01b03851681528360208201528260408201526080606082015260006141166080830184614a43565b805160ff811681146142b557600080fd5b600082601f830112614e0f57600080fd5b81516020614e1f614d4683614cdb565b82815260079290921b84018101918181019086841115614e3e57600080fd5b8286015b84811015614ea85760808189031215614e5b5760008081fd5b614e6361441d565b815160068110614e735760008081fd5b81528185015185820152604080830151614e8c81614295565b9082015260608281015190820152835291830191608001614e42565b509695505050505050565b600082601f830112614ec457600080fd5b81516020614ed4614d4683614cdb565b82815260609283028501820192828201919087851115614ef357600080fd5b8387015b85811015614f515781818a031215614f0f5760008081fd5b614f1761443f565b8151614f2281614398565b8152614f2f828701614ded565b868201526040614f40818401614ded565b908201528452928401928101614ef7565b5090979650505050505050565b60006020808385031215614f7157600080fd5b82516001600160401b0380821115614f8857600080fd5b9084019060608287031215614f9c57600080fd5b614fa461443f565b825182811115614fb357600080fd5b8301601f81018813614fc457600080fd5b8051614fd2614d4682614cdb565b81815260069190911b8201860190868101908a831115614ff157600080fd5b928701925b82841015615045576040848c03121561500f5760008081fd5b615017614461565b845161502281614398565b815261502f858a01614ded565b818a015282526040939093019290870190614ff6565b8452505050828401518281111561505b57600080fd5b61506788828601614dfe565b8583015250604083015193508184111561508057600080fd5b61508c87858501614eb3565b60408201529695505050505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906141169083018461423d565b6000602082840312156150e057600080fd5b81516001600160e01b0319811681146112dd57600080fd5b808202811582820484141761071b5761071b6149a756fe9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0154f22f54f370bd020e00ee80e1a5099a71652e2ccbcf6a75281e4c70a3e11a0034516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0034516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e01"; type MembershipFacetConstructorParams = | [signer?: Signer] diff --git a/packages/generated/dev/typings/factories/MockEntitlementGated__factory.ts b/packages/generated/dev/typings/factories/MockEntitlementGated__factory.ts index 7a0ffb346..0e80e271d 100644 --- a/packages/generated/dev/typings/factories/MockEntitlementGated__factory.ts +++ b/packages/generated/dev/typings/factories/MockEntitlementGated__factory.ts @@ -48,17 +48,17 @@ const _abi = [ { name: "", type: "tuple", - internalType: "struct IRuleEntitlement.RuleData", + internalType: "struct IRuleEntitlementBase.RuleData", components: [ { name: "operations", type: "tuple[]", - internalType: "struct IRuleEntitlement.Operation[]", + internalType: "struct IRuleEntitlementBase.Operation[]", components: [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CombinedOperationType", + internalType: "enum IRuleEntitlementBase.CombinedOperationType", }, { name: "index", @@ -70,12 +70,12 @@ const _abi = [ { name: "checkOperations", type: "tuple[]", - internalType: "struct IRuleEntitlement.CheckOperation[]", + internalType: "struct IRuleEntitlementBase.CheckOperation[]", components: [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CheckOperationType", + internalType: "enum IRuleEntitlementBase.CheckOperationType", }, { name: "chainId", @@ -97,12 +97,12 @@ const _abi = [ { name: "logicalOperations", type: "tuple[]", - internalType: "struct IRuleEntitlement.LogicalOperation[]", + internalType: "struct IRuleEntitlementBase.LogicalOperation[]", components: [ { name: "logOpType", type: "uint8", - internalType: "enum IRuleEntitlement.LogicalOperationType", + internalType: "enum IRuleEntitlementBase.LogicalOperationType", }, { name: "leftOperationIndex", @@ -140,17 +140,17 @@ const _abi = [ { name: "", type: "tuple", - internalType: "struct IRuleEntitlement.RuleData", + internalType: "struct IRuleEntitlementBase.RuleData", components: [ { name: "operations", type: "tuple[]", - internalType: "struct IRuleEntitlement.Operation[]", + internalType: "struct IRuleEntitlementBase.Operation[]", components: [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CombinedOperationType", + internalType: "enum IRuleEntitlementBase.CombinedOperationType", }, { name: "index", @@ -162,12 +162,12 @@ const _abi = [ { name: "checkOperations", type: "tuple[]", - internalType: "struct IRuleEntitlement.CheckOperation[]", + internalType: "struct IRuleEntitlementBase.CheckOperation[]", components: [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CheckOperationType", + internalType: "enum IRuleEntitlementBase.CheckOperationType", }, { name: "chainId", @@ -189,12 +189,12 @@ const _abi = [ { name: "logicalOperations", type: "tuple[]", - internalType: "struct IRuleEntitlement.LogicalOperation[]", + internalType: "struct IRuleEntitlementBase.LogicalOperation[]", components: [ { name: "logOpType", type: "uint8", - internalType: "enum IRuleEntitlement.LogicalOperationType", + internalType: "enum IRuleEntitlementBase.LogicalOperationType", }, { name: "leftOperationIndex", @@ -248,17 +248,17 @@ const _abi = [ { name: "ruleData", type: "tuple", - internalType: "struct IRuleEntitlement.RuleData", + internalType: "struct IRuleEntitlementBase.RuleData", components: [ { name: "operations", type: "tuple[]", - internalType: "struct IRuleEntitlement.Operation[]", + internalType: "struct IRuleEntitlementBase.Operation[]", components: [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CombinedOperationType", + internalType: "enum IRuleEntitlementBase.CombinedOperationType", }, { name: "index", @@ -270,12 +270,12 @@ const _abi = [ { name: "checkOperations", type: "tuple[]", - internalType: "struct IRuleEntitlement.CheckOperation[]", + internalType: "struct IRuleEntitlementBase.CheckOperation[]", components: [ { name: "opType", type: "uint8", - internalType: "enum IRuleEntitlement.CheckOperationType", + internalType: "enum IRuleEntitlementBase.CheckOperationType", }, { name: "chainId", @@ -297,12 +297,12 @@ const _abi = [ { name: "logicalOperations", type: "tuple[]", - internalType: "struct IRuleEntitlement.LogicalOperation[]", + internalType: "struct IRuleEntitlementBase.LogicalOperation[]", components: [ { name: "logOpType", type: "uint8", - internalType: "enum IRuleEntitlement.LogicalOperationType", + internalType: "enum IRuleEntitlementBase.LogicalOperationType", }, { name: "leftOperationIndex", diff --git a/packages/sdk/src/channelsWithEntitlements.test.ts b/packages/sdk/src/channelsWithEntitlements.test.ts index c469263b0..5da437cf5 100644 --- a/packages/sdk/src/channelsWithEntitlements.test.ts +++ b/packages/sdk/src/channelsWithEntitlements.test.ts @@ -22,7 +22,7 @@ import { makeUserStreamId } from './id' import { dlog } from '@river-build/dlog' import { NoopRuleData, - IRuleEntitlement, + IRuleEntitlementBase, Permission, getContractAddress, publicMint, @@ -43,7 +43,7 @@ const log = dlog('csb:test:channelsWithEntitlements') // pass in users as 'alice', 'bob', 'carol' - b/c their wallets are created here async function setupChannelWithCustomRole( userNames: string[], - ruleData: IRuleEntitlement.RuleDataStruct, + ruleData: IRuleEntitlementBase.RuleDataStruct, permissions: Permission[] = [Permission.Read], ) { const { diff --git a/packages/sdk/src/spaceWithEntitlements.test.ts b/packages/sdk/src/spaceWithEntitlements.test.ts index 61dcf626b..05f356f7d 100644 --- a/packages/sdk/src/spaceWithEntitlements.test.ts +++ b/packages/sdk/src/spaceWithEntitlements.test.ts @@ -31,7 +31,7 @@ import { getContractAddress, publicMint, treeToRuleData, - IRuleEntitlement, + IRuleEntitlementBase, ISpaceDapp, } from '@river-build/web3' @@ -42,7 +42,7 @@ const log = dlog('csb:test:spaceWithEntitlements') async function createTownWithRequirements(requirements: { everyone: boolean users: string[] - ruleData: IRuleEntitlement.RuleDataStruct + ruleData: IRuleEntitlementBase.RuleDataStruct }) { const { alice, diff --git a/packages/sdk/src/util.test.ts b/packages/sdk/src/util.test.ts index 52ea7f7db..e07aa367c 100644 --- a/packages/sdk/src/util.test.ts +++ b/packages/sdk/src/util.test.ts @@ -40,7 +40,7 @@ import { createExternalNFTStruct, createRiverRegistry, createSpaceDapp, - IRuleEntitlement, + IRuleEntitlementBase, Permission, ISpaceDapp, IArchitectBase, @@ -498,7 +498,7 @@ export function twoNftRuleData( nft1Address: string, nft2Address: string, logOpType: LogicalOperationType.AND | LogicalOperationType.OR = LogicalOperationType.AND, -): IRuleEntitlement.RuleDataStruct { +): IRuleEntitlementBase.RuleDataStruct { const leftOperation: Operation = { opType: OperationType.CHECK, checkType: CheckOperationType.ERC721, @@ -680,7 +680,7 @@ export const getFixedPricingModule = (pricingModules: PricingModuleStruct[]) => return pricingModules.find((module) => module.name === FIXED_PRICING) } -export function getNftRuleData(testNftAddress: `0x${string}`): IRuleEntitlement.RuleDataStruct { +export function getNftRuleData(testNftAddress: `0x${string}`): IRuleEntitlementBase.RuleDataStruct { return createExternalNFTStruct([testNftAddress]) } @@ -696,7 +696,7 @@ export async function createRole( roleName: string, permissions: Permission[], users: string[], - ruleData: IRuleEntitlement.RuleDataStruct, + ruleData: IRuleEntitlementBase.RuleDataStruct, signer: ethers.Signer, ): Promise { let txn: ethers.ContractTransaction | undefined = undefined diff --git a/packages/web3/src/ContractTypes.ts b/packages/web3/src/ContractTypes.ts index 1ebf0570f..ad5e18f6c 100644 --- a/packages/web3/src/ContractTypes.ts +++ b/packages/web3/src/ContractTypes.ts @@ -5,7 +5,7 @@ import { } from './v3/ISpaceArchitectShim' import { IRolesBase as IRolesBaseV3 } from './v3/IRolesShim' import { RuleEntitlementShim } from './v3/RuleEntitlementShim' -import { IRuleEntitlement } from './v3' +import { IRuleEntitlementBase } from './v3' import { IPricingModulesBase } from './v3/IPricingShim' export const Permission = { @@ -56,7 +56,7 @@ export interface RoleDetails { name: string permissions: Permission[] users: string[] - ruleData: IRuleEntitlement.RuleDataStruct + ruleData: IRuleEntitlementBase.RuleDataStruct channels: ChannelMetadata[] } @@ -90,7 +90,7 @@ export interface RoleEntitlements { name: string permissions: Permission[] users: string[] - ruleData: IRuleEntitlement.RuleDataStruct + ruleData: IRuleEntitlementBase.RuleDataStruct } /* @@ -98,7 +98,7 @@ export interface RoleEntitlements { */ export interface EntitlementDetails { users: string[] - ruleData: IRuleEntitlement.RuleDataStruct + ruleData: IRuleEntitlementBase.RuleDataStruct } export interface BasicRoleInfo { diff --git a/packages/web3/src/ConvertersEntitlements.ts b/packages/web3/src/ConvertersEntitlements.ts index 9126617b6..52a018581 100644 --- a/packages/web3/src/ConvertersEntitlements.ts +++ b/packages/web3/src/ConvertersEntitlements.ts @@ -3,7 +3,7 @@ import { ethers } from 'ethers' import { Address, EntitlementStruct } from './ContractTypes' import { Hex, decodeAbiParameters, parseAbiParameters } from 'viem' import { encodeEntitlementData } from './entitlement' -import { IRuleEntitlement } from './v3' +import { IRuleEntitlementBase } from './v3' const UserAddressesEncoding = 'address[]' @@ -50,7 +50,7 @@ export function createUserEntitlementStruct( export function createRuleEntitlementStruct( moduleAddress: `0x${string}`, - ruleData: IRuleEntitlement.RuleDataStruct, + ruleData: IRuleEntitlementBase.RuleDataStruct, ): EntitlementStruct { const encoded = encodeEntitlementData(ruleData) return { diff --git a/packages/web3/src/ConvertersRoles.ts b/packages/web3/src/ConvertersRoles.ts index ef82fb333..361c1fe47 100644 --- a/packages/web3/src/ConvertersRoles.ts +++ b/packages/web3/src/ConvertersRoles.ts @@ -2,12 +2,12 @@ import { EntitlementModuleType, Permission, EntitlementStruct } from './Contract import { createRuleEntitlementStruct, createUserEntitlementStruct } from './ConvertersEntitlements' import { Space as SpaceV3 } from './v3/Space' -import { IRuleEntitlement } from './v3' +import { IRuleEntitlementBase } from './v3' export async function createEntitlementStruct( spaceIn: Space, users: string[], - ruleData: IRuleEntitlement.RuleDataStruct, + ruleData: IRuleEntitlementBase.RuleDataStruct, ): Promise { const space = spaceIn as SpaceV3 // figure out the addresses for each entitlement module diff --git a/packages/web3/src/ISpaceDapp.ts b/packages/web3/src/ISpaceDapp.ts index 82ca7e8dd..a895fd936 100644 --- a/packages/web3/src/ISpaceDapp.ts +++ b/packages/web3/src/ISpaceDapp.ts @@ -13,7 +13,7 @@ import { import { WalletLink as WalletLinkV3 } from './v3/WalletLink' import { BigNumber, BytesLike, ContractReceipt, ContractTransaction, ethers } from 'ethers' import { SpaceInfo } from './types' -import { IRolesBase, Space, SpaceRegistrar, IRuleEntitlement } from './v3' +import { IRolesBase, Space, SpaceRegistrar, IRuleEntitlementBase } from './v3' import { PricingModules } from './v3/PricingModules' import { BaseChainConfig } from './IStaticContractsInfo' import { PlatformRequirements } from './v3/PlatformRequirements' @@ -44,7 +44,7 @@ export interface UpdateRoleParams { roleName: string permissions: Permission[] users: string[] - ruleData: IRuleEntitlement.RuleDataStruct + ruleData: IRuleEntitlementBase.RuleDataStruct } export interface TransactionOpts { @@ -105,7 +105,7 @@ export interface ISpaceDapp { roleName: string, permissions: Permission[], users: string[], - ruleData: IRuleEntitlement.RuleDataStruct, + ruleData: IRuleEntitlementBase.RuleDataStruct, signer: SignerType, txnOpts?: TransactionOpts, ): Promise diff --git a/packages/web3/src/entitlement.ts b/packages/web3/src/entitlement.ts index 072111871..1ee9ce612 100644 --- a/packages/web3/src/entitlement.ts +++ b/packages/web3/src/entitlement.ts @@ -1,5 +1,5 @@ import type { AbiParameter, AbiFunction } from 'abitype' -import { IRuleEntitlement, IRuleEntitlementAbi } from './v3/IRuleEntitlementShim' +import { IRuleEntitlementBase, IRuleEntitlementAbi } from './v3/IRuleEntitlementShim' import { createPublicClient, @@ -181,7 +181,7 @@ const encodeRuleDataInputs: readonly AbiParameter[] | undefined = ( | undefined )?.inputs -export function encodeEntitlementData(ruleData: IRuleEntitlement.RuleDataStruct): Address { +export function encodeEntitlementData(ruleData: IRuleEntitlementBase.RuleDataStruct): Address { if (!encodeRuleDataInputs) { throw new Error('setRuleDataInputs not found') } @@ -194,16 +194,18 @@ const getRuleDataOutputs: readonly AbiParameter[] | undefined = ( | undefined )?.outputs -export function decodeEntitlementData(entitlementData: Address): IRuleEntitlement.RuleDataStruct[] { +export function decodeEntitlementData( + entitlementData: Address, +): IRuleEntitlementBase.RuleDataStruct[] { if (!getRuleDataOutputs) { throw new Error('getRuleDataOutputs not found') } return decodeAbiParameters( getRuleDataOutputs, entitlementData, - ) as IRuleEntitlement.RuleDataStruct[] + ) as IRuleEntitlementBase.RuleDataStruct[] } -export function ruleDataToOperations(data: IRuleEntitlement.RuleDataStruct[]): Operation[] { +export function ruleDataToOperations(data: IRuleEntitlementBase.RuleDataStruct[]): Operation[] { if (data.length === 0) { return [] } @@ -281,7 +283,7 @@ export function postOrderTraversal(operation: Operation, data: DeepWriteable & { threshold?: bigint })[], -): IRuleEntitlement.RuleDataStruct { +): IRuleEntitlementBase.RuleDataStruct { if (checkOp.length === 0) { return { operations: [NoopOperation], @@ -603,7 +605,7 @@ export function createOperationsTree( } export function createContractCheckOperationFromTree( - entitlementData: IRuleEntitlement.RuleDataStruct, + entitlementData: IRuleEntitlementBase.RuleDataStruct, ): ContractCheckOperation[] { const operations = ruleDataToOperations([entitlementData]) const checkOpSubsets: ContractCheckOperation[] = [] diff --git a/packages/web3/src/v3/IRuleEntitlementShim.ts b/packages/web3/src/v3/IRuleEntitlementShim.ts index efac6f878..b27949660 100644 --- a/packages/web3/src/v3/IRuleEntitlementShim.ts +++ b/packages/web3/src/v3/IRuleEntitlementShim.ts @@ -1,7 +1,11 @@ -import { IRuleEntitlement as LocalhostIRuleEntitlement } from '@river-build/generated/dev/typings/IRuleEntitlement' +import { + IRuleEntitlement as LocalhostIRuleEntitlement, + IRuleEntitlementBase, +} from '@river-build/generated/dev/typings/IRuleEntitlement' import LocalhostEntitlementAbi from '@river-build/generated/dev/abis/IRuleEntitlement.abi' export type { LocalhostIRuleEntitlement as IRuleEntitlement } +export type { IRuleEntitlementBase } export { LocalhostEntitlementAbi as IRuleEntitlementAbi } diff --git a/packages/web3/src/v3/RuleEntitlementShim.ts b/packages/web3/src/v3/RuleEntitlementShim.ts index d5bf1782e..5c743b2d7 100644 --- a/packages/web3/src/v3/RuleEntitlementShim.ts +++ b/packages/web3/src/v3/RuleEntitlementShim.ts @@ -1,5 +1,6 @@ import { IRuleEntitlement as LocalhostContract, + IRuleEntitlementBase as LocalhostBase, IRuleEntitlementInterface as LocalhostInterface, } from '@river-build/generated/dev/typings/IRuleEntitlement' @@ -25,7 +26,7 @@ export class RuleEntitlementShim public async getRoleEntitlement( roleId: BigNumberish, - ): Promise { + ): Promise { if (roleId === 0) { return { operations: [], @@ -36,14 +37,12 @@ export class RuleEntitlementShim return this.read.getRuleData(roleId) } - public decodeGetRuleData( - entitlmentData: string, - ): LocalhostContract.RuleDataStruct[] | undefined { + public decodeGetRuleData(entitlmentData: string): LocalhostBase.RuleDataStruct[] | undefined { try { const decoded = this.decodeFunctionResult( 'getRuleData', entitlmentData, - ) as unknown as LocalhostContract.RuleDataStruct[] + ) as unknown as LocalhostBase.RuleDataStruct[] if (decoded.length === 0) { logger.error('RuleEntitlementShim No rule data', decoded) diff --git a/packages/web3/src/v3/Space.ts b/packages/web3/src/v3/Space.ts index 6858bcdb4..195743dd7 100644 --- a/packages/web3/src/v3/Space.ts +++ b/packages/web3/src/v3/Space.ts @@ -27,7 +27,7 @@ import { toPermissions } from '../ConvertersRoles' import { IMembershipShim } from './IMembershipShim' import { NoopRuleData } from '../entitlement' import { RuleEntitlementShim } from './RuleEntitlementShim' -import { IRuleEntitlement } from '.' +import { IRuleEntitlementBase } from '.' import { IBanningShim } from './IBanningShim' import { IERC721AQueryableShim } from './IERC721AQueryableShim' import { IEntitlementDataQueryableShim } from './IEntitlementDataQueryableShim' @@ -367,8 +367,8 @@ export class Space { ) function isRuleDataStruct( - ruleData: IRuleEntitlement.RuleDataStruct | undefined, - ): ruleData is IRuleEntitlement.RuleDataStruct { + ruleData: IRuleEntitlementBase.RuleDataStruct | undefined, + ): ruleData is IRuleEntitlementBase.RuleDataStruct { return ruleData !== undefined } diff --git a/packages/web3/src/v3/SpaceDapp.ts b/packages/web3/src/v3/SpaceDapp.ts index 4b62c36a7..96e700331 100644 --- a/packages/web3/src/v3/SpaceDapp.ts +++ b/packages/web3/src/v3/SpaceDapp.ts @@ -23,7 +23,7 @@ import { createEntitlementStruct } from '../ConvertersRoles' import { BaseChainConfig } from '../IStaticContractsInfo' import { WalletLink, INVALID_ADDRESS } from './WalletLink' import { SpaceInfo } from '../types' -import { IRuleEntitlement, UNKNOWN_ERROR, UserEntitlementShim } from './index' +import { IRuleEntitlementBase, UNKNOWN_ERROR, UserEntitlementShim } from './index' import { PricingModules } from './PricingModules' import { dlogger, isJest } from '@river-build/dlog' import { EVERYONE_ADDRESS, stringifyChannelMetadataJSON } from '../Utils' @@ -37,7 +37,7 @@ const logger = dlogger('csb:SpaceDapp:debug') type EntitlementData = { entitlementType: EntitlementModuleType - ruleEntitlement: IRuleEntitlement.RuleDataStruct[] | undefined + ruleEntitlement: IRuleEntitlementBase.RuleDataStruct[] | undefined userEntitlement: string[] | undefined } @@ -289,7 +289,7 @@ export class SpaceDapp implements ISpaceDapp { roleName: string, permissions: Permission[], users: string[], - ruleData: IRuleEntitlement.RuleDataStruct, + ruleData: IRuleEntitlementBase.RuleDataStruct, signer: ethers.Signer, txnOpts?: TransactionOpts, ): Promise { diff --git a/scripts/gen-river-node-bindings.sh b/scripts/gen-river-node-bindings.sh index bd5c3f2c9..41d42281a 100755 --- a/scripts/gen-river-node-bindings.sh +++ b/scripts/gen-river-node-bindings.sh @@ -57,17 +57,17 @@ generate_go river river IRiverConfig river_config_v1 # Full River contracts for deployment from tests generate_go river/deploy deploy MockRiverRegistry mock_river_registry -# The follwing structs get included twice in the generated code, this utility removes them from a file +# The following structs get included twice in the generated code, this utility removes them from a file # -# "IRuleEntitlementCheckOperation": true, -# "IRuleEntitlementLogicalOperation": true, -# "IRuleEntitlementOperation": true, -# "IRuleEntitlementRuleData": true, +# "IRuleEntitlementBaseCheckOperation": true, +# "IRuleEntitlementBaseLogicalOperation": true, +# "IRuleEntitlementBaseOperation": true, +# "IRuleEntitlementBaseRuleData": true, mkdir -p bin go build -o bin/gen-bindings-remove-struct scripts/gen-bindings-remove-struct.go -./bin/gen-bindings-remove-struct core/contracts/base/architect.go IRuleEntitlementCheckOperation,IRuleEntitlementLogicalOperation,IRuleEntitlementOperation,IRuleEntitlementRuleData -./bin/gen-bindings-remove-struct core/contracts/base/entitlements_manager.go IRuleEntitlementCheckOperation,IRuleEntitlementLogicalOperation,IRuleEntitlementOperation,IRuleEntitlementRuleData -./bin/gen-bindings-remove-struct core/contracts/base/rule_entitlement.go IRuleEntitlementCheckOperation,IRuleEntitlementLogicalOperation,IRuleEntitlementOperation,IRuleEntitlementRuleData +./bin/gen-bindings-remove-struct core/contracts/base/architect.go IRuleEntitlementBaseCheckOperation,IRuleEntitlementBaseLogicalOperation,IRuleEntitlementBaseOperation,IRuleEntitlementBaseRuleData +./bin/gen-bindings-remove-struct core/contracts/base/entitlements_manager.go IRuleEntitlementBaseCheckOperation,IRuleEntitlementBaseLogicalOperation,IRuleEntitlementBaseOperation,IRuleEntitlementBaseRuleData +./bin/gen-bindings-remove-struct core/contracts/base/rule_entitlement.go IRuleEntitlementBaseCheckOperation,IRuleEntitlementBaseLogicalOperation,IRuleEntitlementBaseOperation,IRuleEntitlementBaseRuleData ./bin/gen-bindings-remove-struct core/contracts/base/deploy/mock_wallet_link.go IWalletLinkBaseLinkedWallet