@decaf-ts/for-fabric 0.13.31-experimental.3 → 0.13.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/for-fabric.cjs +2 -4001
- package/dist/for-fabric.cjs.map +1 -0
- package/dist/for-fabric.js +2 -4111
- package/dist/for-fabric.js.map +1 -0
- package/lib/cjs/bin/cli.cjs +2 -2
- package/lib/cjs/bin/cli.cjs.map +1 -0
- package/lib/cjs/cli-module.cjs +2 -2
- package/lib/cjs/cli-module.cjs.map +1 -0
- package/lib/cjs/cli-utils.cjs +2 -2
- package/lib/cjs/cli-utils.cjs.map +1 -0
- package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
- package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
- package/lib/cjs/client/FabricClientContext.cjs +2 -2
- package/lib/cjs/client/FabricClientContext.cjs.map +1 -0
- package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
- package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
- package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
- package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
- package/lib/cjs/client/FabricClientRepository.cjs +2 -2
- package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
- package/lib/cjs/client/FabricClientStatement.cjs +2 -2
- package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
- package/lib/cjs/client/collections/generation.cjs +2 -2
- package/lib/cjs/client/collections/generation.cjs.map +1 -0
- package/lib/cjs/client/collections/index.cjs +2 -2
- package/lib/cjs/client/collections/index.cjs.map +1 -0
- package/lib/cjs/client/constants.cjs +2 -2
- package/lib/cjs/client/constants.cjs.map +1 -0
- package/lib/cjs/client/crypto.cjs +2 -2
- package/lib/cjs/client/crypto.cjs.map +1 -0
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
- package/lib/cjs/client/erc20/index.cjs +2 -2
- package/lib/cjs/client/erc20/index.cjs.map +1 -0
- package/lib/cjs/client/fabric-fs.cjs +2 -2
- package/lib/cjs/client/fabric-fs.cjs.map +1 -0
- package/lib/cjs/client/fabric-hsm.cjs +2 -2
- package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
- package/lib/cjs/client/ids/id-extraction.cjs +2 -2
- package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
- package/lib/cjs/client/ids/index.cjs +2 -2
- package/lib/cjs/client/ids/index.cjs.map +1 -0
- package/lib/cjs/client/index.cjs +2 -2
- package/lib/cjs/client/index.cjs.map +1 -0
- package/lib/cjs/client/indexes/generation.cjs +2 -2
- package/lib/cjs/client/indexes/generation.cjs.map +1 -0
- package/lib/cjs/client/indexes/index.cjs +2 -2
- package/lib/cjs/client/indexes/index.cjs.map +1 -0
- package/lib/cjs/client/logging.cjs +2 -2
- package/lib/cjs/client/logging.cjs.map +1 -0
- package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
- package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
- package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
- package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
- package/lib/cjs/client/services/constants.cjs +2 -2
- package/lib/cjs/client/services/constants.cjs.map +1 -0
- package/lib/cjs/client/services/index.cjs +2 -2
- package/lib/cjs/client/services/index.cjs.map +1 -0
- package/lib/cjs/client/types.cjs +2 -2
- package/lib/cjs/client/types.cjs.map +1 -0
- package/lib/cjs/client/utils.cjs +2 -2
- package/lib/cjs/client/utils.cjs.map +1 -0
- package/lib/cjs/contract/Address.cjs +2 -2
- package/lib/cjs/contract/Address.cjs.map +1 -0
- package/lib/cjs/contract/AddressContract.cjs +2 -2
- package/lib/cjs/contract/AddressContract.cjs.map +1 -0
- package/lib/cjs/contract/AuditContract.cjs +2 -2
- package/lib/cjs/contract/AuditContract.cjs.map +1 -0
- package/lib/cjs/contract/BatchContract.cjs +2 -2
- package/lib/cjs/contract/BatchContract.cjs.map +1 -0
- package/lib/cjs/contract/MarketContract.cjs +2 -2
- package/lib/cjs/contract/MarketContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
- package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
- package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherLeafletContract.cjs +2 -2
- package/lib/cjs/contract/OtherLeafletContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherLeafletFileContract.cjs +2 -2
- package/lib/cjs/contract/OtherLeafletFileContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
- package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
- package/lib/cjs/contract/Product.cjs +2 -2
- package/lib/cjs/contract/Product.cjs.map +1 -0
- package/lib/cjs/contract/ProductContract.cjs +2 -2
- package/lib/cjs/contract/ProductContract.cjs.map +1 -0
- package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
- package/lib/cjs/contract/User.cjs +2 -2
- package/lib/cjs/contract/User.cjs.map +1 -0
- package/lib/cjs/contract/UserContract.cjs +2 -2
- package/lib/cjs/contract/UserContract.cjs.map +1 -0
- package/lib/cjs/contract/index.cjs +2 -2
- package/lib/cjs/contract/index.cjs.map +1 -0
- package/lib/cjs/contract/logging-context.cjs +2 -2
- package/lib/cjs/contract/logging-context.cjs.map +1 -0
- package/lib/cjs/contract/models/Audit.cjs +2 -2
- package/lib/cjs/contract/models/Audit.cjs.map +1 -0
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
- package/lib/cjs/contract/models/BaseModel.cjs +2 -2
- package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
- package/lib/cjs/contract/models/Batch.cjs +2 -2
- package/lib/cjs/contract/models/Batch.cjs.map +1 -0
- package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
- package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
- package/lib/cjs/contract/models/History.cjs +2 -2
- package/lib/cjs/contract/models/History.cjs.map +1 -0
- package/lib/cjs/contract/models/Leaflet.cjs +2 -2
- package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
- package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/models/Market.cjs +2 -2
- package/lib/cjs/contract/models/Market.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
- package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
- package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
- package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
- package/lib/cjs/contract/models/Product.cjs +2 -2
- package/lib/cjs/contract/models/Product.cjs.map +1 -0
- package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
- package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
- package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
- package/lib/cjs/contract/models/constants.cjs +2 -2
- package/lib/cjs/contract/models/constants.cjs.map +1 -0
- package/lib/cjs/contract/models/decorators-private.cjs +2 -2
- package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
- package/lib/cjs/contract/models/decorators.cjs +2 -2
- package/lib/cjs/contract/models/decorators.cjs.map +1 -0
- package/lib/cjs/contract/models/gtin.cjs +2 -2
- package/lib/cjs/contract/models/gtin.cjs.map +1 -0
- package/lib/cjs/contract/models/history-dec.cjs +2 -2
- package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/History.cjs +2 -2
- package/lib/cjs/contract/trackedModels/History.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherAudit.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherAudit.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherBatchShared.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherLeaflet.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherLeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherMarket.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherMarket.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherProduct.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherProduct.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherProductImage.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherProductImage.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherProductShared.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherProductShared.cjs.map +1 -0
- package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs +2 -2
- package/lib/cjs/contract/trackedModels/OtherProductStrength.cjs.map +1 -0
- package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
- package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
- package/lib/cjs/contracts/ContractContext.cjs +2 -2
- package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
- package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
- package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
- package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
- package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
- package/lib/cjs/contracts/MigrationContract.cjs +2 -2
- package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
- package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
- package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
- package/lib/cjs/contracts/auth/decorators.cjs +2 -2
- package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
- package/lib/cjs/contracts/auth/index.cjs +2 -2
- package/lib/cjs/contracts/auth/index.cjs.map +1 -0
- package/lib/cjs/contracts/bootstrap.cjs +2 -2
- package/lib/cjs/contracts/bootstrap.cjs.map +1 -0
- package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
- package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
- package/lib/cjs/contracts/crud/index.cjs +2 -2
- package/lib/cjs/contracts/crud/index.cjs.map +1 -0
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
- package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/index.cjs +2 -2
- package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/models.cjs +2 -2
- package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
- package/lib/cjs/contracts/fabric-overrides.cjs +2 -2
- package/lib/cjs/contracts/fabric-overrides.cjs.map +1 -0
- package/lib/cjs/contracts/index.cjs +2 -2
- package/lib/cjs/contracts/index.cjs.map +1 -0
- package/lib/cjs/contracts/logging.cjs +2 -2
- package/lib/cjs/contracts/logging.cjs.map +1 -0
- package/lib/cjs/contracts/overrides.cjs +2 -2
- package/lib/cjs/contracts/overrides.cjs.map +1 -0
- package/lib/cjs/contracts/types.cjs +2 -2
- package/lib/cjs/contracts/types.cjs.map +1 -0
- package/lib/cjs/contracts/uuid.cjs +2 -2
- package/lib/cjs/contracts/uuid.cjs.map +1 -0
- package/lib/cjs/index.cjs +2 -2
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/shared/ClientSerializer.cjs +2 -2
- package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
- package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
- package/lib/cjs/shared/constants.cjs +2 -2
- package/lib/cjs/shared/constants.cjs.map +1 -0
- package/lib/cjs/shared/decorators.cjs +2 -2
- package/lib/cjs/shared/decorators.cjs.map +1 -0
- package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
- package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
- package/lib/cjs/shared/erc20/index.cjs +2 -2
- package/lib/cjs/shared/erc20/index.cjs.map +1 -0
- package/lib/cjs/shared/errors.cjs +2 -2
- package/lib/cjs/shared/errors.cjs.map +1 -0
- package/lib/cjs/shared/events.cjs +2 -2
- package/lib/cjs/shared/events.cjs.map +1 -0
- package/lib/cjs/shared/fabric-types.cjs +2 -2
- package/lib/cjs/shared/fabric-types.cjs.map +1 -0
- package/lib/cjs/shared/index.cjs +2 -2
- package/lib/cjs/shared/index.cjs.map +1 -0
- package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
- package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
- package/lib/cjs/shared/interfaces/index.cjs +2 -2
- package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
- package/lib/cjs/shared/math.cjs +2 -2
- package/lib/cjs/shared/math.cjs.map +1 -0
- package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
- package/lib/cjs/shared/model/Identity.cjs +2 -2
- package/lib/cjs/shared/model/Identity.cjs.map +1 -0
- package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
- package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
- package/lib/cjs/shared/model/index.cjs +2 -2
- package/lib/cjs/shared/model/index.cjs.map +1 -0
- package/lib/cjs/shared/overrides/Model.cjs +2 -2
- package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
- package/lib/cjs/shared/overrides/index.cjs +2 -2
- package/lib/cjs/shared/overrides/index.cjs.map +1 -0
- package/lib/cjs/shared/overrides/overrides.cjs +2 -2
- package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
- package/lib/cjs/shared/types.cjs +2 -2
- package/lib/cjs/shared/types.cjs.map +1 -0
- package/lib/cjs/version.cjs +5 -5
- package/lib/cjs/version.cjs.map +1 -0
- package/lib/esm/bin/cli.js +1 -1
- package/lib/esm/bin/cli.js.map +1 -0
- package/lib/esm/cli-module.js +1 -1
- package/lib/esm/cli-module.js.map +1 -0
- package/lib/esm/cli-utils.js +1 -1
- package/lib/esm/cli-utils.js.map +1 -0
- package/lib/esm/client/FabricClientAdapter.js +1 -1
- package/lib/esm/client/FabricClientAdapter.js.map +1 -0
- package/lib/esm/client/FabricClientContext.js +1 -1
- package/lib/esm/client/FabricClientContext.js.map +1 -0
- package/lib/esm/client/FabricClientDispatch.js +1 -1
- package/lib/esm/client/FabricClientDispatch.js.map +1 -0
- package/lib/esm/client/FabricClientPaginator.js +1 -1
- package/lib/esm/client/FabricClientPaginator.js.map +1 -0
- package/lib/esm/client/FabricClientRepository.js +1 -1
- package/lib/esm/client/FabricClientRepository.js.map +1 -0
- package/lib/esm/client/FabricClientStatement.js +1 -1
- package/lib/esm/client/FabricClientStatement.js.map +1 -0
- package/lib/esm/client/collections/generation.js +1 -1
- package/lib/esm/client/collections/generation.js.map +1 -0
- package/lib/esm/client/collections/index.js +1 -1
- package/lib/esm/client/collections/index.js.map +1 -0
- package/lib/esm/client/constants.js +1 -1
- package/lib/esm/client/constants.js.map +1 -0
- package/lib/esm/client/crypto.js +1 -1
- package/lib/esm/client/crypto.js.map +1 -0
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
- package/lib/esm/client/erc20/index.js +1 -1
- package/lib/esm/client/erc20/index.js.map +1 -0
- package/lib/esm/client/fabric-fs.js +1 -1
- package/lib/esm/client/fabric-fs.js.map +1 -0
- package/lib/esm/client/fabric-hsm.js +1 -1
- package/lib/esm/client/fabric-hsm.js.map +1 -0
- package/lib/esm/client/ids/id-extraction.js +1 -1
- package/lib/esm/client/ids/id-extraction.js.map +1 -0
- package/lib/esm/client/ids/index.js +1 -1
- package/lib/esm/client/ids/index.js.map +1 -0
- package/lib/esm/client/index.js +1 -1
- package/lib/esm/client/index.js.map +1 -0
- package/lib/esm/client/indexes/generation.js +1 -1
- package/lib/esm/client/indexes/generation.js.map +1 -0
- package/lib/esm/client/indexes/index.js +1 -1
- package/lib/esm/client/indexes/index.js.map +1 -0
- package/lib/esm/client/logging.js +1 -1
- package/lib/esm/client/logging.js.map +1 -0
- package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
- package/lib/esm/client/services/FabricIdentityService.js +1 -1
- package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
- package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
- package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
- package/lib/esm/client/services/constants.js +1 -1
- package/lib/esm/client/services/constants.js.map +1 -0
- package/lib/esm/client/services/index.js +1 -1
- package/lib/esm/client/services/index.js.map +1 -0
- package/lib/esm/client/types.js +1 -1
- package/lib/esm/client/types.js.map +1 -0
- package/lib/esm/client/utils.js +1 -1
- package/lib/esm/client/utils.js.map +1 -0
- package/lib/esm/contract/Address.js +1 -1
- package/lib/esm/contract/Address.js.map +1 -0
- package/lib/esm/contract/AddressContract.js +1 -1
- package/lib/esm/contract/AddressContract.js.map +1 -0
- package/lib/esm/contract/AuditContract.js +1 -1
- package/lib/esm/contract/AuditContract.js.map +1 -0
- package/lib/esm/contract/BatchContract.js +1 -1
- package/lib/esm/contract/BatchContract.js.map +1 -0
- package/lib/esm/contract/MarketContract.js +1 -1
- package/lib/esm/contract/MarketContract.js.map +1 -0
- package/lib/esm/contract/OtherAuditContract.js +1 -1
- package/lib/esm/contract/OtherAuditContract.js.map +1 -0
- package/lib/esm/contract/OtherBatchContract.js +1 -1
- package/lib/esm/contract/OtherBatchContract.js.map +1 -0
- package/lib/esm/contract/OtherLeafletContract.js +1 -1
- package/lib/esm/contract/OtherLeafletContract.js.map +1 -0
- package/lib/esm/contract/OtherLeafletFileContract.js +1 -1
- package/lib/esm/contract/OtherLeafletFileContract.js.map +1 -0
- package/lib/esm/contract/OtherMarketContract.js +1 -1
- package/lib/esm/contract/OtherMarketContract.js.map +1 -0
- package/lib/esm/contract/OtherProductContract.js +1 -1
- package/lib/esm/contract/OtherProductContract.js.map +1 -0
- package/lib/esm/contract/OtherProductImageContract.js +1 -1
- package/lib/esm/contract/OtherProductImageContract.js.map +1 -0
- package/lib/esm/contract/OtherProductSharedContract.js +1 -1
- package/lib/esm/contract/OtherProductSharedContract.js.map +1 -0
- package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
- package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
- package/lib/esm/contract/Product.js +1 -1
- package/lib/esm/contract/Product.js.map +1 -0
- package/lib/esm/contract/ProductContract.js +1 -1
- package/lib/esm/contract/ProductContract.js.map +1 -0
- package/lib/esm/contract/ProductStrengthContract.js +1 -1
- package/lib/esm/contract/ProductStrengthContract.js.map +1 -0
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
- package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
- package/lib/esm/contract/User.js +1 -1
- package/lib/esm/contract/User.js.map +1 -0
- package/lib/esm/contract/UserContract.js +1 -1
- package/lib/esm/contract/UserContract.js.map +1 -0
- package/lib/esm/contract/index.js +1 -1
- package/lib/esm/contract/index.js.map +1 -0
- package/lib/esm/contract/logging-context.js +1 -1
- package/lib/esm/contract/logging-context.js.map +1 -0
- package/lib/esm/contract/models/Audit.js +1 -1
- package/lib/esm/contract/models/Audit.js.map +1 -0
- package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
- package/lib/esm/contract/models/BaseModel.js +1 -1
- package/lib/esm/contract/models/BaseModel.js.map +1 -0
- package/lib/esm/contract/models/Batch.js +1 -1
- package/lib/esm/contract/models/Batch.js.map +1 -0
- package/lib/esm/contract/models/GtinOwner.js +1 -1
- package/lib/esm/contract/models/GtinOwner.js.map +1 -0
- package/lib/esm/contract/models/History.js +1 -1
- package/lib/esm/contract/models/History.js.map +1 -0
- package/lib/esm/contract/models/Leaflet.js +1 -1
- package/lib/esm/contract/models/Leaflet.js.map +1 -0
- package/lib/esm/contract/models/LeafletFile.js +1 -1
- package/lib/esm/contract/models/LeafletFile.js.map +1 -0
- package/lib/esm/contract/models/Market.js +1 -1
- package/lib/esm/contract/models/Market.js.map +1 -0
- package/lib/esm/contract/models/OtherAudit.js +1 -1
- package/lib/esm/contract/models/OtherAudit.js.map +1 -0
- package/lib/esm/contract/models/OtherBatchShared.js +1 -1
- package/lib/esm/contract/models/OtherBatchShared.js.map +1 -0
- package/lib/esm/contract/models/OtherLeaflet.js +1 -1
- package/lib/esm/contract/models/OtherLeaflet.js.map +1 -0
- package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
- package/lib/esm/contract/models/OtherLeafletFile.js.map +1 -0
- package/lib/esm/contract/models/OtherMarket.js +1 -1
- package/lib/esm/contract/models/OtherMarket.js.map +1 -0
- package/lib/esm/contract/models/OtherProduct.js +1 -1
- package/lib/esm/contract/models/OtherProduct.js.map +1 -0
- package/lib/esm/contract/models/OtherProductImage.js +1 -1
- package/lib/esm/contract/models/OtherProductImage.js.map +1 -0
- package/lib/esm/contract/models/OtherProductShared.js +1 -1
- package/lib/esm/contract/models/OtherProductShared.js.map +1 -0
- package/lib/esm/contract/models/OtherProductStrength.js +1 -1
- package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
- package/lib/esm/contract/models/Product.js +1 -1
- package/lib/esm/contract/models/Product.js.map +1 -0
- package/lib/esm/contract/models/ProductStrength.js +1 -1
- package/lib/esm/contract/models/ProductStrength.js.map +1 -0
- package/lib/esm/contract/models/SegregatedDocument.js +1 -1
- package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
- package/lib/esm/contract/models/constants.js +1 -1
- package/lib/esm/contract/models/constants.js.map +1 -0
- package/lib/esm/contract/models/decorators-private.js +1 -1
- package/lib/esm/contract/models/decorators-private.js.map +1 -0
- package/lib/esm/contract/models/decorators.js +1 -1
- package/lib/esm/contract/models/decorators.js.map +1 -0
- package/lib/esm/contract/models/gtin.js +1 -1
- package/lib/esm/contract/models/gtin.js.map +1 -0
- package/lib/esm/contract/models/history-dec.js +1 -1
- package/lib/esm/contract/models/history-dec.js.map +1 -0
- package/lib/esm/contract/trackedModels/History.js +1 -1
- package/lib/esm/contract/trackedModels/History.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherAudit.js +1 -1
- package/lib/esm/contract/trackedModels/OtherAudit.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherBatchShared.js +1 -1
- package/lib/esm/contract/trackedModels/OtherBatchShared.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherLeaflet.js +1 -1
- package/lib/esm/contract/trackedModels/OtherLeaflet.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherLeafletFile.js +1 -1
- package/lib/esm/contract/trackedModels/OtherLeafletFile.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherMarket.js +1 -1
- package/lib/esm/contract/trackedModels/OtherMarket.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherProduct.js +1 -1
- package/lib/esm/contract/trackedModels/OtherProduct.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherProductImage.js +1 -1
- package/lib/esm/contract/trackedModels/OtherProductImage.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherProductShared.js +1 -1
- package/lib/esm/contract/trackedModels/OtherProductShared.js.map +1 -0
- package/lib/esm/contract/trackedModels/OtherProductStrength.js +1 -1
- package/lib/esm/contract/trackedModels/OtherProductStrength.js.map +1 -0
- package/lib/esm/contracts/ContractAdapter.js +1 -1
- package/lib/esm/contracts/ContractAdapter.js.map +1 -0
- package/lib/esm/contracts/ContractContext.js +1 -1
- package/lib/esm/contracts/ContractContext.js.map +1 -0
- package/lib/esm/contracts/FabricContractDispatch.js +1 -1
- package/lib/esm/contracts/FabricContractDispatch.js.map +1 -0
- package/lib/esm/contracts/FabricContractPaginator.js +1 -1
- package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
- package/lib/esm/contracts/FabricContractRepository.js +1 -1
- package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
- package/lib/esm/contracts/FabricContractSequence.js +1 -1
- package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
- package/lib/esm/contracts/FabricContractStatement.js +1 -1
- package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
- package/lib/esm/contracts/MigrationContract.js +1 -1
- package/lib/esm/contracts/MigrationContract.js.map +1 -0
- package/lib/esm/contracts/PrivateSequence.js +1 -1
- package/lib/esm/contracts/PrivateSequence.js.map +1 -0
- package/lib/esm/contracts/auth/decorators.js +1 -1
- package/lib/esm/contracts/auth/decorators.js.map +1 -0
- package/lib/esm/contracts/auth/index.js +1 -1
- package/lib/esm/contracts/auth/index.js.map +1 -0
- package/lib/esm/contracts/bootstrap.js +1 -1
- package/lib/esm/contracts/bootstrap.js.map +1 -0
- package/lib/esm/contracts/crud/crud-contract.js +1 -1
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
- package/lib/esm/contracts/crud/index.js +1 -1
- package/lib/esm/contracts/crud/index.js.map +1 -0
- package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
- package/lib/esm/contracts/erc20/erc20contract.js +1 -1
- package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
- package/lib/esm/contracts/erc20/index.js +1 -1
- package/lib/esm/contracts/erc20/index.js.map +1 -0
- package/lib/esm/contracts/erc20/models.js +1 -1
- package/lib/esm/contracts/erc20/models.js.map +1 -0
- package/lib/esm/contracts/fabric-overrides.js +1 -1
- package/lib/esm/contracts/fabric-overrides.js.map +1 -0
- package/lib/esm/contracts/index.js +1 -1
- package/lib/esm/contracts/index.js.map +1 -0
- package/lib/esm/contracts/logging.js +1 -1
- package/lib/esm/contracts/logging.js.map +1 -0
- package/lib/esm/contracts/overrides.js +1 -1
- package/lib/esm/contracts/overrides.js.map +1 -0
- package/lib/esm/contracts/types.js +1 -1
- package/lib/esm/contracts/types.js.map +1 -0
- package/lib/esm/contracts/uuid.js +1 -1
- package/lib/esm/contracts/uuid.js.map +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/shared/ClientSerializer.js +1 -1
- package/lib/esm/shared/ClientSerializer.js.map +1 -0
- package/lib/esm/shared/DeterministicSerializer.js +1 -1
- package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
- package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
- package/lib/esm/shared/constants.js +1 -1
- package/lib/esm/shared/constants.js.map +1 -0
- package/lib/esm/shared/decorators.js +1 -1
- package/lib/esm/shared/decorators.js.map +1 -0
- package/lib/esm/shared/erc20/erc20-constants.js +1 -1
- package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
- package/lib/esm/shared/erc20/index.js +1 -1
- package/lib/esm/shared/erc20/index.js.map +1 -0
- package/lib/esm/shared/errors.js +1 -1
- package/lib/esm/shared/errors.js.map +1 -0
- package/lib/esm/shared/events.js +1 -1
- package/lib/esm/shared/events.js.map +1 -0
- package/lib/esm/shared/fabric-types.js +1 -1
- package/lib/esm/shared/fabric-types.js.map +1 -0
- package/lib/esm/shared/index.js +1 -1
- package/lib/esm/shared/index.js.map +1 -0
- package/lib/esm/shared/interfaces/Checkable.js +1 -1
- package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
- package/lib/esm/shared/interfaces/index.js +1 -1
- package/lib/esm/shared/interfaces/index.js.map +1 -0
- package/lib/esm/shared/math.js +1 -1
- package/lib/esm/shared/math.js.map +1 -0
- package/lib/esm/shared/model/FabricBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
- package/lib/esm/shared/model/Identity.js +1 -1
- package/lib/esm/shared/model/Identity.js.map +1 -0
- package/lib/esm/shared/model/IdentityCredentials.js +1 -1
- package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
- package/lib/esm/shared/model/index.js +1 -1
- package/lib/esm/shared/model/index.js.map +1 -0
- package/lib/esm/shared/overrides/Model.js +1 -1
- package/lib/esm/shared/overrides/Model.js.map +1 -0
- package/lib/esm/shared/overrides/index.js +1 -1
- package/lib/esm/shared/overrides/index.js.map +1 -0
- package/lib/esm/shared/overrides/overrides.js +1 -1
- package/lib/esm/shared/overrides/overrides.js.map +1 -0
- package/lib/esm/shared/types.js +1 -1
- package/lib/esm/shared/types.js.map +1 -0
- package/lib/esm/version.js +4 -4
- package/lib/esm/version.js.map +1 -0
- package/lib/types/version.d.cts +3 -3
- package/lib/types/version.d.mts +3 -3
- package/package.json +1 -1
|
@@ -613,5 +613,5 @@ function sharedData(collection) {
|
|
|
613
613
|
})
|
|
614
614
|
.apply();
|
|
615
615
|
}
|
|
616
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaGFyZWQvZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsa0JBQWtCLEVBR2xCLGdCQUFnQixHQUlqQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxTQUFTLEVBQ1QsYUFBYSxFQUNiLGFBQWEsRUFDYixRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxlQUFlLEVBQ2YsTUFBTSxFQUNOLFlBQVksRUFDWixFQUFFLEdBQ0gsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsdUJBQW9CO0FBSTlDLE9BQU8sRUFDTCxLQUFLLEVBRUwsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsSUFBSSxFQUNKLFlBQVksR0FDYixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVqRCw4QkFBNkI7QUFRN0IsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FDckMsS0FBOEI7QUFDOUIsNkRBQTZEO0FBQzdELEdBQUcsSUFBeUIsRUFDNUIsRUFBRTtJQUNGLE9BQU8sS0FBSyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7QUFDakMsQ0FBQyxDQUFDO0FBTUYsTUFBTSxVQUFVLFFBQVEsQ0FBQyxRQUFhO0lBQ3BDLE1BQU0sSUFBSSxHQUFzQixFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQzdDLE9BQU8sUUFBUSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsUUFBYTtJQUNyQyxNQUFN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QyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FDekIsYUFBMEMseUJBQXlCO0lBRW5FLFNBQVMsV0FBVyxDQUFDLFVBQXVDO1FBQzFELE9BQU8sVUFBVSxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDO1NBQzNDLE1BQU0sQ0FBQztRQUNOLFNBQVMsRUFBRSxXQUFXO1FBQ3RCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztLQUNuQixDQUFDO1NBQ0QsS0FBSyxFQUFFLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxVQUF1QztJQUNoRSxTQUFTLFVBQVUsQ0FBQyxVQUF1QztRQUN6RCxPQUFPLFVBQVUsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQztTQUMxQyxNQUFNLENBQUM7UUFDTixTQUFTLEVBQUUsVUFBVTtRQUNyQixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7S0FDbkIsQ0FBQztTQUNELEtBQUssRUFBRSxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEF1dGhvcml6YXRpb25FcnJvcixcbiAgUmVwbyxcbiAgQ29udGV4dCxcbiAgVW5zdXBwb3J0ZWRFcnJvcixcbiAgUmVwb3NpdG9yeSxcbiAgQ29udGV4dE9mLFxuICBDb250ZXh0dWFsQXJncyxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQge1xuICBnZW5lcmF0ZWQsXG4gIEludGVybmFsRXJyb3IsXG4gIE5vdEZvdW5kRXJyb3IsXG4gIG9uQ3JlYXRlLFxuICBvbkRlbGV0ZSxcbiAgb25SZWFkLFxuICBvblVwZGF0ZSxcbiAgcmVhZG9ubHksXG4gIHRyYW5zaWVudCxcbiAgVmFsaWRhdGlvbkVycm9yLFxuICBEQktleXMsXG4gIERCT3BlcmF0aW9ucyxcbiAgb24sXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTW9kZWwsIHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljTW9kZWxLZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgdHlwZSB7IENvbnRleHQgYXMgSExDb250ZXh0IH0gZnJvbSBcImZhYnJpYy1jb250cmFjdC1hcGlcIjtcbmltcG9ydCB7IENsaWVudElkZW50aXR5IH0gZnJvbSBcImZhYnJpYy1zaGltLWFwaVwiO1xuaW1wb3J0IHsgRmFicmljRVJDMjBDb250cmFjdCB9IGZyb20gXCIuLi9jb250cmFjdHMvZXJjMjAvZXJjMjBjb250cmFjdFwiO1xuaW1wb3J0IHtcbiAgYXBwbHksXG4gIENvbnN0cnVjdG9yLFxuICBEZWNvcmF0aW9uLFxuICBtZXRhZGF0YSxcbiAgTWV0YWRhdGEsXG4gIHByb3AsXG4gIHByb3BNZXRhZGF0YSxcbn0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNGbGFncyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyB0b1Bhc2NhbENhc2UgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0RmxhZ3MgfSBmcm9tIFwiLi4vY29udHJhY3RzL3R5cGVzXCI7XG5pbXBvcnQgXCIuLi9zaGFyZWQvb3ZlcnJpZGVzXCI7XG5pbXBvcnQgeyB0eXBlIEZhYnJpY0NvbnRyYWN0Q29udGV4dCB9IGZyb20gXCIuLi9jb250cmFjdHMvQ29udHJhY3RDb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVyRnVuY3Rpb248VD4gPSAoXG4gIG1vZGVsOiBDb25zdHJ1Y3RvcjxNb2RlbDxhbnk+PixcbiAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuKSA9PiBQcm9taXNlPFQ+IHwgVDtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRDb250cmFjdFJlc29sdmVyID0gKFxuICBtb2RlbDogQ29uc3RydWN0b3I8TW9kZWw8YW55Pj4sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuKSA9PiB7XG4gIHJldHVybiBtb2RlbC5uYW1lICsgXCJDb250cmFjdFwiO1xufTtcblxuZXhwb3J0IHR5cGUgQ2hhaW5jb2RlTWV0YWRhdGEgPSB7XG4gIHJlc29sdmVyOiBzdHJpbmcgfCBSZXNvbHZlckZ1bmN0aW9uPHN0cmluZz47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY29udHJhY3QocmVzb2x2ZXI6IGFueSkge1xuICBjb25zdCBtZXRhOiBDaGFpbmNvZGVNZXRhZGF0YSA9IHsgcmVzb2x2ZXIgfTtcbiAgcmV0dXJuIG1ldGFkYXRhKEZhYnJpY01vZGVsS2V5cy5DT05UUkFDVCwgbWV0YSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGFpbmNvZGUocmVzb2x2ZXI6IGFueSkge1xuICBjb25zdCBtZXRhOiBDaGFpbmNvZGVNZXRhZGF0YSA9IHsgcmVzb2x2ZXIgfTtcbiAgcmV0dXJuIG1ldGFkYXRhKEZhYnJpY01vZGVsS2V5cy5DSEFJTkNPREUsIG1ldGEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hhbm5lbChyZXNvbHZlcjogYW55KSB7XG4gIGNvbnN0IG1ldGE6IENoYWluY29kZU1ldGFkYXRhID0geyByZXNvbHZlciB9O1xuICByZXR1cm4gbWV0YWRhdGEoRmFicmljTW9kZWxLZXlzLkNIQU5ORUwsIG1ldGEpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFeHRyYWN0cyB0aGUgTVNQIElEIGZyb20gZWl0aGVyIGEgc3RyaW5nIG9yIENsaWVudElkZW50aXR5IG9iamVjdFxuICogQHBhcmFtIGlkZW50aXR5IC0gVGhlIGlkZW50aXR5IHZhbHVlIHdoaWNoIGNhbiBiZSBhIHN0cmluZyBNU1AgSUQgb3IgQ2xpZW50SWRlbnRpdHkgb2JqZWN0XG4gKiBAcmV0dXJucyBUaGUgTVNQIElEIGFzIGEgc3RyaW5nLCBvciB1bmRlZmluZWQgaWYgbm90IGF2YWlsYWJsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE1zcElkKFxuICBpZGVudGl0eTogc3RyaW5nIHwgQ2xpZW50SWRlbnRpdHkgfCB1bmRlZmluZWRcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghaWRlbnRpdHkpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmICh0eXBlb2YgaWRlbnRpdHkgPT09IFwic3RyaW5nXCIpIHJldHVybiBpZGVudGl0eTtcbiAgcmV0dXJuIGlkZW50aXR5LmdldE1TUElEKCk7XG59XG5cbi8qKlxuICogRGVjb3JhdG9yIGZvciBtYXJraW5nIG1ldGhvZHMgdGhhdCByZXF1aXJlIG93bmVyc2hpcCBhdXRob3JpemF0aW9uLlxuICogQ2hlY2tzIHRoZSBvd25lciBvZiB0aGUgdG9rZW4gYmVmb3JlIGFsbG93aW5nIHRoZSBtZXRob2QgdG8gYmUgZXhlY3V0ZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNsYXNzIFRva2VuQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7XG4gKiAgIEBPd25lcigpXG4gKiAgIGFzeW5jIE1pbnQoY3R4OiBDb250ZXh0LCBhbW91bnQ6IG51bWJlcikge1xuICogICAgIC8vIE1pbnQgdG9rZW4gbG9naWNcbiAqICAgfVxuICogfVxuICogYGBgXG4gKlxuICogQHJldHVybnMge01ldGhvZERlY29yYXRvcn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgY2hlY2tzIG93bmVyc2hpcCBhdXRob3JpemF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gT3duZXIoKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXG4gICAgdGFyZ2V0OiBhbnksXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyxcbiAgICBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3JcbiAgKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBkZXNjcmlwdG9yLnZhbHVlO1xuXG4gICAgZGVzY3JpcHRvci52YWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIChcbiAgICAgIHRoaXM6IEZhYnJpY0VSQzIwQ29udHJhY3QsXG4gICAgICAuLi5hcmdzOiBhbnlbXVxuICAgICkge1xuICAgICAgY29uc3QgY3R4OiBITENvbnRleHQgPSBhcmdzWzBdO1xuICAgICAgY29uc3QgYWNvdW50SWQgPSBjdHguY2xpZW50SWRlbnRpdHkuZ2V0SUQoKTtcblxuICAgICAgY29uc3Qgc2VsZWN0ID0gYXdhaXQgKHRoaXMgYXMgRmFicmljRVJDMjBDb250cmFjdClbXG4gICAgICAgIFwidG9rZW5SZXBvc2l0b3J5XCJcbiAgICAgIF0uc2VsZWN0KCk7XG5cbiAgICAgIGNvbnN0IHRva2VucyA9IGF3YWl0IHNlbGVjdC5leGVjdXRlKGN0eCk7XG5cbiAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXCJObyB0b2tlbnMgYXZhaWFsYmxlXCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAodG9rZW5zLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFRvIG1hbnkgdG9rZW4gYXZhaWxhYmxlIDogJHt0b2tlbnMubGVuZ3RofWApO1xuICAgICAgfVxuXG4gICAgICBpZiAodG9rZW5zWzBdLm93bmVyICE9IGFjb3VudElkKSB7XG4gICAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoXG4gICAgICAgICAgYFVzZXIgbm90IGF1dGhvcml6ZWQgdG8gcnVuICR7cHJvcGVydHlLZXl9IG9uIHRoZSB0b2tlbmBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF3YWl0IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIH07XG5cbiAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG93bmVkQnlPbkNyZWF0ZTxcbiAgTSBleHRlbmRzIE1vZGVsPGJvb2xlYW4+LFxuICBSIGV4dGVuZHMgUmVwbzxNPixcbiAgVixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHRPZjxSPixcbiAgZGF0YTogVixcbiAga2V5OiBrZXlvZiBNLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgc3R1YiB9ID0gY29udGV4dCBhcyBhbnk7XG5cbiAgY29uc3QgYWxsb3dHZW5lcmF0aW9uT3ZlcnJpZGUgPVxuICAgIGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJhbGxvd0dlbmVyYXRpb25PdmVycmlkZVwiKSB8fCBmYWxzZTtcblxuICBjb25zdCBjcmVhdG9yID0gYXdhaXQgc3R1Yi5nZXRDcmVhdG9yKCk7XG4gIGxldCBvd25lciA9IGNyZWF0b3IubXNwaWQ7XG4gIGNvbnRleHQubG9nZ2VyLmluZm8oXG4gICAgYEV4cGVjdGVkIG1zcGlkIHRvIGJlICR7bW9kZWxba2V5XX0gfCAke293bmVyfS4gXFxuIFVzaW5nIGFsbG93R2VuZXJhdGlvbk92ZXJyaWRlOiAke2FsbG93R2VuZXJhdGlvbk92ZXJyaWRlfWBcbiAgKTtcblxuICBpZiAoYWxsb3dHZW5lcmF0aW9uT3ZlcnJpZGUpIG93bmVyID0gbW9kZWxba2V5XSA/IG1vZGVsW2tleV0gOiBvd25lcjtcblxuICBjb25zdCBzZXRPd25lZEJ5S2V5VmFsdWUgPSBmdW5jdGlvbiA8TSBleHRlbmRzIE1vZGVsPihcbiAgICB0YXJnZXQ6IE0sXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50XG4gICkge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3BlcnR5S2V5LCB7XG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgIH0pO1xuICB9O1xuXG4gIHNldE93bmVkQnlLZXlWYWx1ZShtb2RlbCwga2V5IGFzIHN0cmluZywgb3duZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3duZWRCeSgpIHtcbiAgZnVuY3Rpb24gb3duZWRCeSgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKG9iajogYW55LCBhdHRyaWJ1dGU/OiBhbnkpIHtcbiAgICAgIHJldHVybiBhcHBseShcbiAgICAgICAgcmVxdWlyZWQoKSxcbiAgICAgICAgZ2VuZXJhdGVkKCksXG4gICAgICAgIHJlYWRvbmx5KCksXG4gICAgICAgIG9uQ3JlYXRlKG93bmVkQnlPbkNyZWF0ZSksXG4gICAgICAgIHByb3BNZXRhZGF0YShcbiAgICAgICAgICBNZXRhZGF0YS5rZXkoRmFicmljTW9kZWxLZXlzLkZBQlJJQywgRmFicmljTW9kZWxLZXlzLk9XTkVEX0JZKSxcbiAgICAgICAgICBhdHRyaWJ1dGVcbiAgICAgICAgKVxuICAgICAgKShvYmosIGF0dHJpYnV0ZSk7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBEZWNvcmF0aW9uLmZvcihGYWJyaWNNb2RlbEtleXMuT1dORURfQlkpXG4gICAgLmRlZmluZSh7XG4gICAgICBkZWNvcmF0b3I6IG93bmVkQnksXG4gICAgICBhcmdzOiBbXSxcbiAgICB9KVxuICAgIC5hcHBseSgpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdHJhbnNhY3Rpb25JZE9uQ3JlYXRlPFxuICBNIGV4dGVuZHMgTW9kZWw8Ym9vbGVhbj4sXG4gIFIgZXh0ZW5kcyBSZXBvPE0+LFxuICBWLFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dE9mPFI+LFxuICBkYXRhOiBWLFxuICBrZXk6IGtleW9mIE0sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyBzdHViIH0gPSBjb250ZXh0IGFzIGFueTtcbiAgbW9kZWxba2V5XSA9IHN0dWIuZ2V0VHhJRCgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNhY3Rpb25JZCgpIHtcbiAgZnVuY3Rpb24gdHJhbnNhY3Rpb25JZCgpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKG9iajogYW55LCBhdHRyaWJ1dGU/OiBhbnkpIHtcbiAgICAgIHJldHVybiBhcHBseShcbiAgICAgICAgcmVxdWlyZWQoKSxcbiAgICAgICAgcmVhZG9ubHkoKSxcbiAgICAgICAgb25DcmVhdGUodHJhbnNhY3Rpb25JZE9uQ3JlYXRlKSxcbiAgICAgICAgb25VcGRhdGUodHJhbnNhY3Rpb25JZE9uQ3JlYXRlKSxcbiAgICAgICAgcHJvcE1ldGFkYXRhKFxuICAgICAgICAgIE1ldGFkYXRhLmtleShcbiAgICAgICAgICAgIEZhYnJpY01vZGVsS2V5cy5GQUJSSUMsXG4gICAgICAgICAgICBhdHRyaWJ1dGUsXG4gICAgICAgICAgICBGYWJyaWNNb2RlbEtleXMuVFJBTlNBQ1RJT05fSURcbiAgICAgICAgICApLFxuICAgICAgICAgIGF0dHJpYnV0ZVxuICAgICAgICApXG4gICAgICApKG9iaiwgYXR0cmlidXRlKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIERlY29yYXRpb24uZm9yKEZhYnJpY01vZGVsS2V5cy5UUkFOU0FDVElPTl9JRClcbiAgICAuZGVmaW5lKHtcbiAgICAgIGRlY29yYXRvcjogdHJhbnNhY3Rpb25JZCxcbiAgICAgIGFyZ3M6IFtdLFxuICAgIH0pXG4gICAgLmFwcGx5KCk7XG59XG5cbmV4cG9ydCB0eXBlIE1pcnJvckNvbmRpdGlvbiA9IChtc3A6IHN0cmluZykgPT4gYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgTWlycm9yTWV0YWRhdGEgPSB7XG4gIGNvbmRpdGlvbj86IE1pcnJvckNvbmRpdGlvbjtcbiAgcmVzb2x2ZXI6IENvbGxlY3Rpb25SZXNvbHZlciB8IHN0cmluZztcbiAgbXNwSWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBldmFsTWlycm9yTWV0YWRhdGE8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IE0sXG4gIHJlc29sdmVyOiB1bmRlZmluZWQgfCBzdHJpbmcgfCBDb2xsZWN0aW9uUmVzb2x2ZXIsXG4gIGN0eDogQ29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPlxuKSB7XG4gIGxldCBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uUmVzb2x2ZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQgPSByZXNvbHZlcjtcbiAgaWYgKHR5cGVvZiBjb2xsZWN0aW9uICE9PSBcInN0cmluZ1wiKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG93bmVyID1cbiAgICAgICAgTW9kZWwub3duZXJPZihtb2RlbCkgfHwgY3R4LmdldChcInN0dWJcIikuZ2V0Q3JlYXRvcigpLnRvU3RyaW5nKCk7XG4gICAgICBpZiAocmVzb2x2ZXIgJiYgdHlwZW9mIHJlc29sdmVyID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGNvbGxlY3Rpb24gPSBhd2FpdCByZXNvbHZlcihtb2RlbCwgb3duZXIsIGN0eCk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byByZXNvbHZlIGNvbGxlY3Rpb24gbWlycm9yIG5hbWU6ICR7ZX1gKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWNvbGxlY3Rpb24gfHwgdHlwZW9mIGNvbGxlY3Rpb24gIT09IFwic3RyaW5nXCIpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgTm8gY29sbGVjdGlvbiBmb3VuZCBtb2RlbCAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9YFxuICAgICk7XG4gIHJldHVybiBjb2xsZWN0aW9uO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlTWlycm9ySGFuZGxlcjxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgUmVwb3NpdG9yeTxNLCBhbnk+LFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPixcbiAgZGF0YTogTWlycm9yTWV0YWRhdGEsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgZXZhbE1pcnJvck1ldGFkYXRhKG1vZGVsLCBkYXRhLnJlc29sdmVyLCBjb250ZXh0KTtcbiAgY29uc3QgZmFicmljQ3R4ID0gY29udGV4dCBhcyBGYWJyaWNDb250cmFjdENvbnRleHQ7XG4gIGNvbnN0IHNvdXJjZU1vZGVsID0gbW9kZWw7XG4gIC8vIFB1dCBtaXJyb3IgZmxhZ3MgZGlyZWN0bHkgb24gY29udGV4dCBzbyBhZGFwdGVyLnByZXBhcmUoKSBhbmQgYWRhcHRlci5jcmVhdGUoKSBjYW4gc2VlIHRoZW1cbiAgZmFicmljQ3R4LnB1dChcIm1pcnJvclwiIGFzIGFueSwgdHJ1ZSk7XG4gIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIgYXMgYW55LCBjb2xsZWN0aW9uKTtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXBvID0gdGhpcy5vdmVycmlkZShcbiAgICAgIE9iamVjdC5hc3NpZ24oe30sICh0aGlzIGFzIGFueSkuX292ZXJyaWRlcywge1xuICAgICAgICBtaXJyb3I6IHRydWUsXG4gICAgICAgIG1pcnJvckNvbGxlY3Rpb246IGNvbGxlY3Rpb24sXG4gICAgICAgIGlnbm9yZVZhbGlkYXRpb246IHRydWUsXG4gICAgICAgIGlnbm9yZUhhbmRsZXJzOiB0cnVlLFxuICAgICAgfSBhcyBhbnkpXG4gICAgKTtcbiAgICBjb25zdCBtaXJyb3IgPSBhd2FpdCByZXBvLmNyZWF0ZShzb3VyY2VNb2RlbCwgY29udGV4dCk7XG4gICAgY29udGV4dC5sb2dnZXIuaW5mbyhcbiAgICAgIGBNaXJyb3IgZm9yICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBjcmVhdGVkIHdpdGggJHtNb2RlbC5wayhtb2RlbCkgYXMgc3RyaW5nfTogJHttaXJyb3JbTW9kZWwucGsobW9kZWwpXX1gXG4gICAgKTtcbiAgfSBmaW5hbGx5IHtcbiAgICAvLyBDbGVhbiB1cCBtaXJyb3IgZmxhZ3MgZnJvbSBjb250ZXh0XG4gICAgZmFicmljQ3R4LnB1dChcIm1pcnJvclwiIGFzIGFueSwgdW5kZWZpbmVkKTtcbiAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiIGFzIGFueSwgdW5kZWZpbmVkKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlTWlycm9ySGFuZGxlcjxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgUmVwb3NpdG9yeTxNLCBhbnk+LFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPixcbiAgZGF0YTogTWlycm9yTWV0YWRhdGEsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgZXZhbE1pcnJvck1ldGFkYXRhKG1vZGVsLCBkYXRhLnJlc29sdmVyLCBjb250ZXh0KTtcbiAgY29uc3QgZmFicmljQ3R4ID0gY29udGV4dCBhcyBGYWJyaWNDb250cmFjdENvbnRleHQ7XG4gIGNvbnN0IHNvdXJjZU1vZGVsID0gbW9kZWw7XG4gIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JcIiBhcyBhbnksIHRydWUpO1xuICBmYWJyaWNDdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiIGFzIGFueSwgY29sbGVjdGlvbik7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVwbyA9IHRoaXMub3ZlcnJpZGUoXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCAodGhpcyBhcyBhbnkpLl9vdmVycmlkZXMsIHtcbiAgICAgICAgbWlycm9yOiB0cnVlLFxuICAgICAgICBtaXJyb3JDb2xsZWN0aW9uOiBjb2xsZWN0aW9uLFxuICAgICAgICBpZ25vcmVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICBpZ25vcmVIYW5kbGVyczogdHJ1ZSxcbiAgICAgICAgYXBwbHlVcGRhdGVWYWxpZGF0aW9uOiBmYWxzZSxcbiAgICAgICAgbWVyZ2VGb3JVcGRhdGU6IGZhbHNlLFxuICAgICAgfSBhcyBhbnkpXG4gICAgKTtcbiAgICBhd2FpdCByZXBvLnVwZGF0ZShzb3VyY2VNb2RlbCwgY29udGV4dCk7XG4gICAgY29udGV4dC5sb2dnZXIuaW5mbyhcbiAgICAgIGBNaXJyb3IgZm9yICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB1cGRhdGVkOiAkeyhtb2RlbCBhcyBhbnkpW01vZGVsLnBrKG1vZGVsKV19YFxuICAgICk7XG4gIH0gZmluYWxseSB7XG4gICAgZmFicmljQ3R4LnB1dChcIm1pcnJvclwiIGFzIGFueSwgdW5kZWZpbmVkKTtcbiAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiIGFzIGFueSwgdW5kZWZpbmVkKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlTWlycm9ySGFuZGxlcjxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBSIGV4dGVuZHMgUmVwb3NpdG9yeTxNLCBhbnk+LFxuPihcbiAgdGhpczogUixcbiAgY29udGV4dDogQ29udGV4dDxGYWJyaWNDb250cmFjdEZsYWdzPixcbiAgZGF0YTogTWlycm9yTWV0YWRhdGEsXG4gIGtleToga2V5b2YgTSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgZXZhbE1pcnJvck1ldGFkYXRhKG1vZGVsLCBkYXRhLnJlc29sdmVyLCBjb250ZXh0KTtcbiAgY29uc3QgZmFicmljQ3R4ID0gY29udGV4dCBhcyBGYWJyaWNDb250cmFjdENvbnRleHQ7XG4gIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JcIiBhcyBhbnksIHRydWUpO1xuICBmYWJyaWNDdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiIGFzIGFueSwgY29sbGVjdGlvbik7XG4gIGZhYnJpY0N0eC5wdXQoXCJzZWdyZWdhdGVkXCIgYXMgYW55LCBjb2xsZWN0aW9uKTtcbiAgdHJ5IHtcbiAgICBjb25zdCBwa1Byb3AgPSBNb2RlbC5wayhtb2RlbCkgYXMga2V5b2YgTTtcbiAgICBjb25zdCBpZCA9IG1vZGVsW3BrUHJvcF07XG4gICAgY29uc3QgcmVwbyA9IHRoaXMub3ZlcnJpZGUoXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCAodGhpcyBhcyBhbnkpLl9vdmVycmlkZXMsIHtcbiAgICAgICAgc2VncmVnYXRlZDogY29sbGVjdGlvbixcbiAgICAgICAgbWlycm9yOiB0cnVlLFxuICAgICAgICBpZ25vcmVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICBpZ25vcmVIYW5kbGVyczogdHJ1ZSxcbiAgICAgIH0gYXMgYW55KVxuICAgICk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHJlcG8uZGVsZXRlKGlkIGFzIGFueSwgY29udGV4dCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBNYXkgYWxyZWFkeSBiZSBkZWxldGVkIGJ5IGFkYXB0ZXIuZGVsZXRlU2VncmVnYXRlZENvbGxlY3Rpb25zXG4gICAgfVxuICAgIGNvbnRleHQubG9nZ2VyLmluZm8oXG4gICAgICBgTWlycm9yIGZvciAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gZGVsZXRlZDogJHtTdHJpbmcoaWQpfWBcbiAgICApO1xuICB9IGZpbmFsbHkge1xuICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JcIiBhcyBhbnksIHVuZGVmaW5lZCk7XG4gICAgZmFicmljQ3R4LnB1dChcIm1pcnJvckNvbGxlY3Rpb25cIiBhcyBhbnksIHVuZGVmaW5lZCk7XG4gICAgZmFicmljQ3R4LnB1dChcInNlZ3JlZ2F0ZWRcIiBhcyBhbnksIHVuZGVmaW5lZCk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1pcnJvcldyaXRlR3VhcmQ8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG9zaXRvcnk8TSwgYW55Pixcbj4oXG4gIHRoaXM6IFIsXG4gIGNvbnRleHQ6IENvbnRleHQ8RmFicmljQ29udHJhY3RGbGFncz4sXG4gIGRhdGE6IE1pcnJvck1ldGFkYXRhLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGtleToga2V5b2YgTSxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IG1zcCA9IGV4dHJhY3RNc3BJZChcbiAgICBjb250ZXh0LmdldChcImlkZW50aXR5XCIpIGFzIHN0cmluZyB8IENsaWVudElkZW50aXR5IHwgdW5kZWZpbmVkXG4gICk7XG4gIGlmICghbXNwKSByZXR1cm47XG4gIGlmIChtc3AgPT09IGRhdGEubXNwSWQgfHwgKGRhdGEuY29uZGl0aW9uICYmIGRhdGEuY29uZGl0aW9uKG1zcCkpKSB7XG4gICAgdGhyb3cgbmV3IEF1dGhvcml6YXRpb25FcnJvcihcbiAgICAgIGBPcmdhbml6YXRpb24gJHttc3B9IGlzIG5vdCBhdXRob3JpemVkIHRvIG1vZGlmeSBtaXJyb3JlZCBkYXRhYFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRNaXJyb3JIYW5kbGVyPFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIFIgZXh0ZW5kcyBSZXBvc2l0b3J5PE0sIGFueT4sXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBDb250ZXh0PEZhYnJpY0NvbnRyYWN0RmxhZ3M+LFxuICBkYXRhOiBNaXJyb3JNZXRhZGF0YSxcbiAga2V5OiBrZXlvZiBNLFxuICBtb2RlbDogTVxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IG1zcCA9IGV4dHJhY3RNc3BJZChcbiAgICBjb250ZXh0LmdldChcImlkZW50aXR5XCIpIGFzIHN0cmluZyB8IENsaWVudElkZW50aXR5IHwgdW5kZWZpbmVkXG4gICk7XG5cbiAgaWYgKCFtc3ApIHJldHVybjtcblxuICBjb25zdCBjb2xsZWN0aW9uID0gYXdhaXQgZXZhbE1pcnJvck1ldGFkYXRhKG1vZGVsLCBkYXRhLnJlc29sdmVyLCBjb250ZXh0KTtcbiAgY29uc3QgZmFicmljQ3R4ID0gY29udGV4dCBhcyBGYWJyaWNDb250cmFjdENvbnRleHQ7XG4gIGNvbnN0IG1hdGNoZXMgPSBtc3AgPT09IGRhdGEubXNwSWQgfHwgKGRhdGEuY29uZGl0aW9uICYmIGRhdGEuY29uZGl0aW9uKG1zcCkpO1xuXG4gIGlmIChtYXRjaGVzKSB7XG4gICAgY29udGV4dC5sb2dnZXIuaW5mbyhcbiAgICAgIGBNaXJyb3IgcmVhZDogTVNQICR7bXNwfSBtYXRjaGVzLCByb3V0aW5nIHJlYWRzIHRvIG1pcnJvciBjb2xsZWN0aW9uICR7Y29sbGVjdGlvbn1gXG4gICAgKTtcbiAgICAvLyBSb3V0ZSByZWFkcyBleGNsdXNpdmVseSB0aHJvdWdoIHRoZSBtaXJyb3IgY29sbGVjdGlvblxuICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JcIiBhcyBhbnksIHRydWUpO1xuICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIgYXMgYW55LCBjb2xsZWN0aW9uKTtcbiAgICBmYWJyaWNDdHgucHV0KFwiZnVsbHlTZWdyZWdhdGVkXCIsIHRydWUpO1xuICAgIGZhYnJpY0N0eC5yZWFkRnJvbShjb2xsZWN0aW9uKTtcbiAgfVxuICAvLyBXaGVuIE1TUCBkb2VzIE5PVCBtYXRjaCwgbm9ybWFsIHJlYWQgZmxvdyDigJQgYWxsIGRhdGEgaXMgaW4gcHVibGljIHN0YXRlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaXJyb3IoXG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25SZXNvbHZlciB8IHN0cmluZyxcbiAgbXNwSWRPckNvbmRpdGlvbj86IHN0cmluZyB8IE1pcnJvckNvbmRpdGlvbixcbiAgY29uZGl0aW9uPzogTWlycm9yQ29uZGl0aW9uXG4pIHtcbiAgY29uc3QgaXNDb25kaXRpb25Pbmx5ID1cbiAgICB0eXBlb2YgbXNwSWRPckNvbmRpdGlvbiAhPT0gXCJzdHJpbmdcIiAmJiBCb29sZWFuKG1zcElkT3JDb25kaXRpb24pO1xuICBjb25zdCBtc3BJZCA9IGlzQ29uZGl0aW9uT25seVxuICAgID8gdW5kZWZpbmVkXG4gICAgOiAobXNwSWRPckNvbmRpdGlvbiBhcyBzdHJpbmcgfCB1bmRlZmluZWQpO1xuICBjb25zdCBjb25kID0gaXNDb25kaXRpb25Pbmx5XG4gICAgPyAobXNwSWRPckNvbmRpdGlvbiBhcyBNaXJyb3JDb25kaXRpb24pXG4gICAgOiBjb25kaXRpb247XG5cbiAgZnVuY3Rpb24gbWlycm9yKFxuICAgIHJlc29sdmVyOiBDb2xsZWN0aW9uUmVzb2x2ZXIgfCBzdHJpbmcsXG4gICAgbXNwSWQ6IHN0cmluZyxcbiAgICBjb25kaXRpb24/OiBNaXJyb3JDb25kaXRpb25cbiAgKSB7XG4gICAgY29uc3QgbWV0YTogTWlycm9yTWV0YWRhdGEgPSB7XG4gICAgICBjb25kaXRpb246IGNvbmRpdGlvbixcbiAgICAgIG1zcElkOiBtc3BJZCxcbiAgICAgIHJlc29sdmVyOiByZXNvbHZlcixcbiAgICB9O1xuICAgIHJldHVybiBhcHBseShcbiAgICAgIG1ldGFkYXRhKFxuICAgICAgICBNZXRhZGF0YS5rZXkoRmFicmljTW9kZWxLZXlzLkZBQlJJQywgRmFicmljTW9kZWxLZXlzLk1JUlJPUiksXG4gICAgICAgIG1ldGFcbiAgICAgICksXG4gICAgICAvLyBSZWFkIGhhbmRsZXIgcnVucyBlYXJseSAocHJpb3JpdHkgMzApIHRvIHNldCB1cCBjb250ZXh0IGJlZm9yZSBhbnkgcmVhZHNcbiAgICAgIG9uUmVhZChyZWFkTWlycm9ySGFuZGxlciBhcyBhbnksIG1ldGEsIHsgcHJpb3JpdHk6IDMwIH0pLFxuICAgICAgLy8gV3JpdGUgZ3VhcmRzIOKAlCByZWplY3QgbWF0Y2hpbmcgTVNQcyBiZWZvcmUgYW55IHByb2Nlc3NpbmdcbiAgICAgIG9uQ3JlYXRlKG1pcnJvcldyaXRlR3VhcmQgYXMgYW55LCBtZXRhLCB7IHByaW9yaXR5OiAyMCB9KSxcbiAgICAgIG9uVXBkYXRlKG1pcnJvcldyaXRlR3VhcmQgYXMgYW55LCBtZXRhLCB7IHByaW9yaXR5OiAyMCB9KSxcbiAgICAgIG9uRGVsZXRlKG1pcnJvcldyaXRlR3VhcmQgYXMgYW55LCBtZXRhLCB7IHByaW9yaXR5OiAyMCB9KSxcbiAgICAgIC8vIE1pcnJvciBzeW5jIGhhbmRsZXJzIOKAlCB3cml0ZSBmdWxsIG1vZGVsIGFmdGVyIG90aGVyIGhhbmRsZXJzIChwcmlvcml0eSAxMDApXG4gICAgICBvbkNyZWF0ZShjcmVhdGVNaXJyb3JIYW5kbGVyIGFzIGFueSwgbWV0YSwgeyBwcmlvcml0eTogMTAwIH0pLFxuICAgICAgb25VcGRhdGUodXBkYXRlTWlycm9ySGFuZGxlciBhcyBhbnksIG1ldGEsIHsgcHJpb3JpdHk6IDEwMCB9KSxcbiAgICAgIG9uRGVsZXRlKGRlbGV0ZU1pcnJvckhhbmRsZXIgYXMgYW55LCBtZXRhLCB7IHByaW9yaXR5OiAxMDAgfSlcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIERlY29yYXRpb24uZm9yKEZhYnJpY01vZGVsS2V5cy5NSVJST1IpXG4gICAgLmRlZmluZSh7XG4gICAgICBkZWNvcmF0b3I6IG1pcnJvcixcbiAgICAgIGFyZ3M6IFtjb2xsZWN0aW9uLCBtc3BJZCwgY29uZF0sXG4gICAgfSlcbiAgICAuYXBwbHkoKTtcbn1cblxuZXhwb3J0IHR5cGUgQ29sbGVjdGlvblJlc29sdmVyID0gPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG1vZGVsOiBNIHwgQ29uc3RydWN0b3I8TT4sXG4gIG1zcD86IHN0cmluZyxcbiAgLi4uYXJnczogYW55W11cbikgPT4gc3RyaW5nO1xuXG5leHBvcnQgY29uc3QgTW9kZWxDb2xsZWN0aW9uOiBDb2xsZWN0aW9uUmVzb2x2ZXIgPSA8TSBleHRlbmRzIE1vZGVsPihcbiAgbW9kZWw6IE0gfCBDb25zdHJ1Y3RvcjxNPixcbiAgbXNwSWQ/OiBzdHJpbmdcbikgPT4ge1xuICBjb25zdCBvcmdOYW1lID1cbiAgICBtc3BJZCB8fCAodHlwZW9mIG1vZGVsICE9PSBcImZ1bmN0aW9uXCIgPyBNb2RlbC5vd25lck9mKG1vZGVsKSA6IHVuZGVmaW5lZCk7XG4gIGNvbnN0IGNvbnN0ciA9IHR5cGVvZiBtb2RlbCA9PT0gXCJmdW5jdGlvblwiID8gbW9kZWwgOiBtb2RlbC5jb25zdHJ1Y3RvcjtcbiAgaWYgKCFvcmdOYW1lKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgYE1vZGVsICR7Y29uc3RyLm5hbWV9IGlzIG5vdCBvd25lZCBieSBhbnkgb3JnYW5pemF0aW9uLiBkaWQgeW91IHVzZSBAb3duZWRCeSgpIChvciBwcm92aWRlIHRoZSBuYW1lKT9gXG4gICAgKTtcbiAgcmV0dXJuIGAke3RvUGFzY2FsQ2FzZShjb25zdHIubmFtZSl9JHtvcmdOYW1lID8gdG9QYXNjYWxDYXNlKG9yZ05hbWUpIDogXCJcIn1gO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIE5hbWVzcGFjZUNvbGxlY3Rpb24obmFtZXNwYWNlOiBzdHJpbmcpOiBDb2xsZWN0aW9uUmVzb2x2ZXIge1xuICByZXR1cm4gPE0gZXh0ZW5kcyBNb2RlbD4obW9kZWw6IE0gfCBDb25zdHJ1Y3RvcjxNPiwgbXNwSWQ/OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBvcmdOYW1lID1cbiAgICAgIG1zcElkIHx8ICh0eXBlb2YgbW9kZWwgIT09IFwiZnVuY3Rpb25cIiA/IE1vZGVsLm93bmVyT2YobW9kZWwpIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBjb25zdHIgPSB0eXBlb2YgbW9kZWwgPT09IFwiZnVuY3Rpb25cIiA/IG1vZGVsIDogbW9kZWwuY29uc3RydWN0b3I7XG4gICAgaWYgKCFvcmdOYW1lKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBNb2RlbCAke2NvbnN0ci5uYW1lfSBpcyBub3Qgb3duZWQgYnkgYW55IG9yZ2FuaXphdGlvbi4gZGlkIHlvdSB1c2UgQG93bmVkQnkoKSAob3IgcHJvdmlkZSB0aGUgbmFtZSk/YFxuICAgICAgKTtcbiAgICByZXR1cm4gYCR7bmFtZXNwYWNlfSR7b3JnTmFtZSA/IHRvUGFzY2FsQ2FzZShvcmdOYW1lKSA6IFwiXCJ9YDtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEltcGxpY2l0UHJpdmF0ZUNvbGxlY3Rpb246IENvbGxlY3Rpb25SZXNvbHZlciA9IDxNIGV4dGVuZHMgTW9kZWw+KFxuICBtb2RlbDogTSB8IENvbnN0cnVjdG9yPE0+LFxuICBtc3BJZD86IHN0cmluZ1xuKSA9PiB7XG4gIGNvbnN0IG9yZ05hbWUgPVxuICAgIG1zcElkIHx8ICh0eXBlb2YgbW9kZWwgIT09IFwiZnVuY3Rpb25cIiA/IE1vZGVsLm93bmVyT2YobW9kZWwpIDogdW5kZWZpbmVkKTtcbiAgaWYgKCFvcmdOYW1lKVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgYE1vZGVsICR7bW9kZWwuY29uc3RydWN0b3IubmFtZX0gaXMgbm90IG93bmVkIGJ5IGFueSBvcmdhbml6YXRpb24uIGRpZCB5b3UgdXNlIEBvd25lZEJ5KCkgKG9yIHByb3ZpZGUgdGhlIG5hbWUpP2BcbiAgICApO1xuICByZXR1cm4gYF9fJHt0b1Bhc2NhbENhc2Uob3JnTmFtZSl9UHJpdmF0ZUNvbGxlY3Rpb25gO1xufTtcblxuZXhwb3J0IHR5cGUgU2VncmVnYXRlZERhdGFNZXRhZGF0YSA9IHtcbiAgY29sbGVjdGlvbnM6IHN0cmluZyB8IENvbGxlY3Rpb25SZXNvbHZlcjtcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFByaW9yaXR5IGZvciBlYXJseSBjb2xsZWN0aW9uIGV4dHJhY3Rpb24gKGJlZm9yZSBwayBnZW5lcmF0aW9uIGF0IHByaW9yaXR5IDYwKVxuICogQHN1bW1hcnkgVGhpcyBwcmlvcml0eSBlbnN1cmVzIGNvbGxlY3Rpb25zIGFyZSByZWdpc3RlcmVkIGluIGNvbnRleHQgYmVmb3JlIGFueSBzZXF1ZW5jZVxuICogb3BlcmF0aW9ucyBvY2N1ciwgYWxsb3dpbmcgc2VxdWVuY2VzIHRvIGJlIHJlcGxpY2F0ZWQgdG8gcHJpdmF0ZS9zaGFyZWQgY29sbGVjdGlvbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBTRUdSRUdBVEVEX0NPTExFQ1RJT05fRVhUUkFDVElPTl9QUklPUklUWSA9IDM1O1xuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTZWdyZWdhdGlvbkZsYWdzPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIGNsYXp6OiBNLFxuICBjb2xsZWN0aW9uczogc3RyaW5nW10sXG4gIGN0eDogYW55XG4pIHtcbiAgLy8gUmVnaXN0ZXIgY29sbGVjdGlvbnMgZWFybHkgdXNpbmcgcmVhZEZyb20gLSB0aGlzIGFsbG93cyBzZXF1ZW5jZSBjb2RlXG4gIC8vIHRvIGtub3cgd2hpY2ggY29sbGVjdGlvbnMgdG8gcmVwbGljYXRlIHRvIGR1cmluZyBwayBnZW5lcmF0aW9uXG4gIGlmIChjb2xsZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgKGN0eCBhcyBGYWJyaWNDb250cmFjdENvbnRleHQpLnJlYWRGcm9tKGNvbGxlY3Rpb25zKTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIG1vZGVsIGlzIGZ1bGx5IHNlZ3JlZ2F0ZWQgKGFsbCBub24tcGsgcHJvcGVydGllcyBhcmUgcHJpdmF0ZS9zaGFyZWQvdHJhbnNpZW50KS5cbiAgLy8gVXNlIE1vZGVsLnNlZ3JlZ2F0ZSgpIHdoaWNoIGlzIHRoZSBjYW5vbmljYWwgd2F5IHRvIGRldGVybWluZSB3aGF0J3MgdHJhbnNpZW50LFxuICAvLyByYXRoZXIgdGhhbiByZWFkaW5nIERCS2V5cy5UUkFOU0lFTlQgbWV0YWRhdGEgd2hpY2ggbWF5IG5vdCBhY2N1bXVsYXRlIGNvcnJlY3RseVxuICAvLyB3aGVuIGNsYXNzLWxldmVsIEBwcml2YXRlRGF0YSBhcHBsaWVzIGRlY29yYXRvcnMgaXRlcmF0aXZlbHkuXG4gIGlmICghY3R4LmlzRnVsbHlTZWdyZWdhdGVkICYmIGNvbGxlY3Rpb25zLmxlbmd0aCkge1xuICAgIGlmICghaGFzUHVibGljUHJvcGVydGllcyhjbGF6ei5jb25zdHJ1Y3RvciBhcyBDb25zdHJ1Y3RvcjxNPikpIHtcbiAgICAgIGN0eC5tYXJrRnVsbHlTZWdyZWdhdGVkKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcHBseU1pcnJvckZsYWdzPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgbXNwOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0XG4pIHtcbiAgaWYgKCFtc3ApIHJldHVybjtcbiAgY29uc3QgbWlycm9yTWV0YSA9IE1vZGVsLm1pcnJvcmVkQXQoY2xhenopO1xuICBpZiAoIW1pcnJvck1ldGEpIHJldHVybjtcbiAgY29uc3QgbWF0Y2hlcyA9XG4gICAgbXNwID09PSBtaXJyb3JNZXRhLm1zcElkIHx8XG4gICAgKG1pcnJvck1ldGEuY29uZGl0aW9uICYmIG1pcnJvck1ldGEuY29uZGl0aW9uKG1zcCkpO1xuICBpZiAoIW1hdGNoZXMpIHJldHVybjtcbiAgY29uc3QgY29sbGVjdGlvbiA9IGF3YWl0IGV2YWxNaXJyb3JNZXRhZGF0YShcbiAgICBuZXcgY2xhenooKSxcbiAgICBtaXJyb3JNZXRhLnJlc29sdmVyLFxuICAgIGN0eFxuICApO1xuICAvLyBNaXJyb3IgTVNQIG1hdGNoZXMg4oCUIHJvdXRlIHJlYWRzIGV4Y2x1c2l2ZWx5IHRocm91Z2ggdGhlIG1pcnJvclxuICAvLyBjb2xsZWN0aW9uLiBDbGVhciBhbnkgcHJldmlvdXNseSByZWdpc3RlcmVkIGNvbGxlY3Rpb25zIHNvIHF1ZXJpZXNcbiAgLy8gZ28gT05MWSB0byB0aGUgbWlycm9yLCBub3QgdG8gdGhlIHJlZ3VsYXIgcHJpdmF0ZS9zaGFyZWQgb25lcy5cbiAgY3R4LnB1dChcInNlZ3JlZ2F0ZVJlYWRcIiwgdW5kZWZpbmVkKTtcbiAgY3R4LnB1dChcInNlZ3JlZ2F0ZVJlYWRTdGFja1wiLCB1bmRlZmluZWQpO1xuICBjdHgucHV0KFwiZnVsbHlTZWdyZWdhdGVkXCIsIHRydWUpO1xuICBjdHgucHV0KFwibWlycm9yXCIgYXMgYW55LCB0cnVlKTtcbiAgY3R4LnB1dChcIm1pcnJvckNvbGxlY3Rpb25cIiBhcyBhbnksIGNvbGxlY3Rpb24pO1xuICBjdHgucmVhZEZyb20oY29sbGVjdGlvbik7XG59XG5cbmZ1bmN0aW9uIGhhc1B1YmxpY1Byb3BlcnRpZXM8TSBleHRlbmRzIE1vZGVsPihjbGF6ejogQ29uc3RydWN0b3I8TT4pOiBib29sZWFuIHtcbiAgY29uc3QgYXR0cmlidXRlcyA9IE1ldGFkYXRhLmdldEF0dHJpYnV0ZXMoY2xhenopIHx8IFtdO1xuICBjb25zdCBwayA9IE1vZGVsLnBrKGNsYXp6KTtcbiAgY29uc3QgdHJhbnNpZW50TWV0YSA9IE1ldGFkYXRhLmdldChjbGF6eiBhcyBhbnksIERCS2V5cy5UUkFOU0lFTlQpIHx8IHt9O1xuICBjb25zdCBwcml2YXRlTWV0YSA9XG4gICAgTWV0YWRhdGEuZ2V0KGNsYXp6IGFzIGFueSwgTWV0YWRhdGEua2V5KEZhYnJpY01vZGVsS2V5cy5QUklWQVRFKSkgfHwge307XG4gIGNvbnN0IHNoYXJlZE1ldGEgPVxuICAgIE1ldGFkYXRhLmdldChjbGF6eiBhcyBhbnksIE1ldGFkYXRhLmtleShGYWJyaWNNb2RlbEtleXMuU0hBUkVEKSkgfHwge307XG5cbiAgcmV0dXJuIGF0dHJpYnV0ZXMuc29tZSgoYXR0cikgPT4ge1xuICAgIGlmIChhdHRyID09PSBwaykgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChhdHRyIGluIHRyYW5zaWVudE1ldGEpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoYXR0ciBpbiBwcml2YXRlTWV0YSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChhdHRyIGluIHNoYXJlZE1ldGEpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVhcmx5IGhhbmRsZXIgdG8gZXh0cmFjdCBhbmQgcmVnaXN0ZXIgY29sbGVjdGlvbnMgaW4gY29udGV4dFxuICogQHN1bW1hcnkgUnVucyB3aXRoIHByaW9yaXR5IDwgNDAgdG8gZXh0cmFjdCBjb2xsZWN0aW9uIG5hbWVzIGJlZm9yZSBwayBnZW5lcmF0aW9uIChwcmlvcml0eSA2MCkuXG4gKiBUaGlzIGFsbG93cyBGYWJyaWNDb250cmFjdFNlcXVlbmNlIHRvIGtub3cgd2hpY2ggY29sbGVjdGlvbnMgdG8gcmVwbGljYXRlIHRvLlxuICogQHRlbXBsYXRlIE0gLSBUeXBlIHRoYXQgZXh0ZW5kcyBNb2RlbFxuICogQHBhcmFtIHtDb250ZXh0T2Y8UmVwb3NpdG9yeTxNLCBhbnk+Pn0gY29udGV4dCAtIFRoZSBleGVjdXRpb24gY29udGV4dFxuICogQHBhcmFtIHtTZWdyZWdhdGVkRGF0YU1ldGFkYXRhIHwgU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdfSBkYXRhIC0gVGhlIHNlZ3JlZ2F0ZWQgZGF0YSBtZXRhZGF0YVxuICogQHBhcmFtIHtzdHJpbmcgfCBzdHJpbmdbXX0ga2V5cyAtIFRoZSBwcm9wZXJ0eSBrZXkocykgYmVpbmcgc2VncmVnYXRlZFxuICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBpbnN0YW5jZVxuICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RTZWdyZWdhdGVkQ29sbGVjdGlvbnM8TSBleHRlbmRzIE1vZGVsPihcbiAgdGhpczogUmVwb3NpdG9yeTxNLCBhbnk+LFxuICBjb250ZXh0OiBDb250ZXh0T2Y8dHlwZW9mIHRoaXM+LFxuICBkYXRhOiBTZWdyZWdhdGVkRGF0YU1ldGFkYXRhIHwgU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdLFxuICBrZXlzOiBrZXlvZiBNIHwgKGtleW9mIE0pW10sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZGF0YUFycmF5ID0gKFxuICAgIEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW2RhdGFdXG4gICkgYXMgU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdO1xuXG4gIGNvbnN0IG0gPVxuICAgIGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJhbGxvd0dlbmVyYXRpb25PdmVycmlkZVwiKSB8fCBmYWxzZVxuICAgICAgPyBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwib3duZXJPdmVycmlkZVwiKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgbXNwID1cbiAgICBtIHx8IE1vZGVsLm93bmVyT2YobW9kZWwpIHx8IGV4dHJhY3RNc3BJZChjb250ZXh0LmdldChcImlkZW50aXR5XCIpKTtcblxuICBpZiAoIW1zcCkge1xuICAgIC8vIENhbid0IGV4dHJhY3QgY29sbGVjdGlvbnMgd2l0aG91dCBNU1AsIHdpbGwgYmUgY2F1Z2h0IGJ5IGxhdGVyIGhhbmRsZXJzXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY29sbGVjdGlvbnM6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgbWV0YWRhdGEgb2YgZGF0YUFycmF5KSB7XG4gICAgY29uc3QgY29sbGVjdGlvblJlc29sdmVyID0gbWV0YWRhdGEuY29sbGVjdGlvbnM7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9XG4gICAgICB0eXBlb2YgY29sbGVjdGlvblJlc29sdmVyID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gY29sbGVjdGlvblJlc29sdmVyXG4gICAgICAgIDogY29sbGVjdGlvblJlc29sdmVyKG1vZGVsLCBtc3AsIGNvbnRleHQpO1xuICAgIGlmIChjb2xsZWN0aW9uICYmICFjb2xsZWN0aW9ucy5pbmNsdWRlcyhjb2xsZWN0aW9uKSkge1xuICAgICAgY29sbGVjdGlvbnMucHVzaChjb2xsZWN0aW9uKTtcbiAgICB9XG4gIH1cbiAgYXBwbHlTZWdyZWdhdGlvbkZsYWdzKG1vZGVsLCBjb2xsZWN0aW9ucywgY29udGV4dCk7XG5cbiAgLy8gU3RvcmUgc2VncmVnYXRpb24gbWV0YWRhdGEgcGVyLXNlcXVlbmNlIHNvIEZhYnJpY0NvbnRyYWN0U2VxdWVuY2UgY2FuIGRlY2lkZVxuICAvLyB3aGVyZSB0byBzdG9yZS9yZXBsaWNhdGUgc2VxdWVuY2UgcmVjb3JkcyAocHVibGljIHZzIHByaXZhdGUvc2hhcmVkKS5cbiAgLy9cbiAgLy8gLSBgQHBrKClgIHNlcXVlbmNlcyB1c2UgdGhlIHNoYXJlZCBuYW1lIGAke3RhYmxlfV9wa2AgKG5vIGlkIGNvbXBvbmVudCkuXG4gIC8vIC0gYEBzZXF1ZW5jZSgpYCAvIHBlcnNpc3RlbnQgYEB2ZXJzaW9uKHRydWUpYCBzZXF1ZW5jZXMgYXJlIHBlci1tb2RlbC1pbnN0YW5jZTpcbiAgLy8gICBgJHt0YWJsZX1fJHtpZH1fJHtwcm9wZXJ0eX1gLlxuICBjb25zdCBrZXlBcnJheSA9IChBcnJheS5pc0FycmF5KGtleXMpID8ga2V5cyA6IFtrZXlzXSkgYXMgKGtleW9mIE0pW107XG4gIGNvbnN0IHBrS2V5ID0gTW9kZWwucGsobW9kZWwuY29uc3RydWN0b3IgYXMgYW55KSBhcyBrZXlvZiBNO1xuICBjb25zdCBwa1NlcU5hbWUgPSBNb2RlbC5zZXF1ZW5jZU5hbWUobW9kZWwsIFwicGtcIik7XG5cbiAgY29uc3QgaWRWYWx1ZSA9IChtb2RlbCBhcyBhbnkpW3BrS2V5IGFzIGFueV07XG4gIGNvbnN0IGNhbkJ1aWxkUGVySW5zdGFuY2UgPVxuICAgIHR5cGVvZiBpZFZhbHVlICE9PSBcInVuZGVmaW5lZFwiICYmIGlkVmFsdWUgIT09IG51bGw7XG5cbiAgLy8gQWx3YXlzIHVuaW9uIGNvbGxlY3Rpb25zIGZvciB0aGUgcGsgc2VxdWVuY2Ugd2hlbiB0aGUgbW9kZWwgdXNlcyBzZWdyZWdhdGVkIGRhdGEuXG4gIChjb250ZXh0IGFzIGFueSkuc2V0U2VxdWVuY2VTZWdyZWdhdGlvbihcbiAgICBwa1NlcU5hbWUsXG4gICAgKGNvbnRleHQgYXMgYW55KS5pc0Z1bGx5U2VncmVnYXRlZCxcbiAgICBjb2xsZWN0aW9uc1xuICApO1xuXG4gIC8vIEZvciBwZXItcHJvcGVydHkgc2VxdWVuY2VzLCBvbmx5IHJlZ2lzdGVyIHdoZW4gd2UgY2FuIGNvbXB1dGUgYW4gaWQtc2NvcGVkIG5hbWUuXG4gIC8vIFRoaXMga2VlcHMgc2VxdWVuY2VzIGNvbnN0cmFpbmVkIHRvIHRoZSBjb2xsZWN0aW9ucyB0aGUgYXR0cmlidXRlIGV4aXN0cyBpbi5cbiAgaWYgKGNhbkJ1aWxkUGVySW5zdGFuY2UpIHtcbiAgICBmb3IgKGNvbnN0IGsgb2Yga2V5QXJyYXkpIHtcbiAgICAgIGNvbnN0IHByb3BTZXFOYW1lID0gTW9kZWwuc2VxdWVuY2VOYW1lKG1vZGVsLCBTdHJpbmcoaWRWYWx1ZSksIFN0cmluZyhrKSk7XG4gICAgICAoY29udGV4dCBhcyBhbnkpLnNldFNlcXVlbmNlU2VncmVnYXRpb24oXG4gICAgICAgIHByb3BTZXFOYW1lLFxuICAgICAgICAoY29udGV4dCBhcyBhbnkpLmlzRnVsbHlTZWdyZWdhdGVkLFxuICAgICAgICBjb2xsZWN0aW9uc1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlZ3JlZ2F0ZWREYXRhT25DcmVhdGU8TSBleHRlbmRzIE1vZGVsPihcbiAgdGhpczogUmVwb3NpdG9yeTxNLCBhbnk+LFxuICBjb250ZXh0OiBDb250ZXh0T2Y8dHlwZW9mIHRoaXM+LFxuICBkYXRhOiBTZWdyZWdhdGVkRGF0YU1ldGFkYXRhIHwgU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdLFxuICBrZXlzOiBrZXlvZiBNIHwgKGtleW9mIE0pW10sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZGF0YUFycmF5ID0gKFxuICAgIEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW2RhdGFdXG4gICkgYXMgU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdO1xuICBjb25zdCBrZXlBcnJheSA9IChBcnJheS5pc0FycmF5KGtleXMpID8ga2V5cyA6IFtrZXlzXSkgYXMgKGtleW9mIE0pW107XG4gIGlmIChrZXlBcnJheS5sZW5ndGggIT09IGRhdGFBcnJheS5sZW5ndGgpXG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICBgU2VncmVnYXRlZCBkYXRhIGtleXMgYW5kIG1ldGFkYXRhIGxlbmd0aCBtaXNtYXRjaGBcbiAgICApO1xuXG4gIGNvbnN0IG1zcCA9XG4gICAgTW9kZWwub3duZXJPZihtb2RlbCkgfHxcbiAgICBleHRyYWN0TXNwSWQoXG4gICAgICBjb250ZXh0LmdldChcImlkZW50aXR5XCIpIGFzIHN0cmluZyB8IENsaWVudElkZW50aXR5IHwgdW5kZWZpbmVkXG4gICAgKTtcbiAgaWYgKCFtc3ApXG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcbiAgICAgIGBUaGVyZSdzIG5vIGFzc2lnbmVkIG9yZ2FuaXphdGlvbiBmb3IgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWBcbiAgICApO1xuXG4gIGNvbnN0IGNvbGxlY3Rpb25SZXNvbHZlciA9IGRhdGFBcnJheVswXS5jb2xsZWN0aW9ucztcbiAgY29uc3QgY29sbGVjdGlvbiA9XG4gICAgdHlwZW9mIGNvbGxlY3Rpb25SZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBjb2xsZWN0aW9uUmVzb2x2ZXJcbiAgICAgIDogY29sbGVjdGlvblJlc29sdmVyKG1vZGVsLCBtc3AsIGNvbnRleHQpO1xuXG4gIC8vIFZhbGlkYXRlIGFsbCBrZXlzIHJlc29sdmUgdG8gdGhlIHNhbWUgY29sbGVjdGlvblxuICBrZXlBcnJheS5mb3JFYWNoKChfaywgaSkgPT4ge1xuICAgIGNvbnN0IGMgPVxuICAgICAgdHlwZW9mIGRhdGFBcnJheVtpXS5jb2xsZWN0aW9ucyA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGRhdGFBcnJheVtpXS5jb2xsZWN0aW9uc1xuICAgICAgICA6IGRhdGFBcnJheVtpXS5jb2xsZWN0aW9ucyhtb2RlbCwgbXNwLCBjb250ZXh0KTtcbiAgICBpZiAoYyAhPT0gY29sbGVjdGlvbilcbiAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgICBgU2VncmVnYXRlZCBkYXRhIGNvbGxlY3Rpb24gbWlzbWF0Y2g6ICR7Y30gdnMgJHtjb2xsZWN0aW9ufWBcbiAgICAgICk7XG4gIH0pO1xuXG4gIGNvbnN0IGtleVN0cmluZ3MgPSBrZXlBcnJheS5tYXAoKGtleSkgPT4gU3RyaW5nKGtleSkpO1xuICAvLyBTdG9yZSB0aGUgc2VncmVnYXRlZCBtb2RlbCDigJQgcHJlcGFyZSgpIHdpbGwgZmlsdGVyIHRvIGNvbGxlY3Rpb24tc3BlY2lmaWMgZmllbGRzXG4gIChjb250ZXh0IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkud3JpdGVUbyhjb2xsZWN0aW9uLCBrZXlTdHJpbmdzKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlZ3JlZ2F0ZWREYXRhT25SZWFkPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIHRoaXM6IFJlcG9zaXRvcnk8TSwgYW55PixcbiAgY29udGV4dDogQ29udGV4dDxGYWJyaWNGbGFncz4sXG4gIGRhdGE6IFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGEgfCBTZWdyZWdhdGVkRGF0YU1ldGFkYXRhW10sXG4gIGtleXM6IGtleW9mIE0gfCAoa2V5b2YgTSlbXSxcbiAgbW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBkYXRhQXJyYXkgPSAoXG4gICAgQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV1cbiAgKSBhcyBTZWdyZWdhdGVkRGF0YU1ldGFkYXRhW107XG4gIGNvbnN0IGtleUFycmF5ID0gKEFycmF5LmlzQXJyYXkoa2V5cykgPyBrZXlzIDogW2tleXNdKSBhcyAoa2V5b2YgTSlbXTtcbiAgaWYgKGtleUFycmF5Lmxlbmd0aCAhPT0gZGF0YUFycmF5Lmxlbmd0aClcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBTZWdyZWdhdGVkIGRhdGEga2V5cyBhbmQgbWV0YWRhdGEgbGVuZ3RoIG1pc21hdGNoYFxuICAgICk7XG5cbiAgY29uc3QgbSA9XG4gICAgY29udGV4dC5nZXRPclVuZGVmaW5lZChcImFsbG93R2VuZXJhdGlvbk92ZXJyaWRlXCIpIHx8IGZhbHNlXG4gICAgICA/IGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJvd25lck92ZXJyaWRlXCIpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBtc3AgPVxuICAgIG0gfHwgTW9kZWwub3duZXJPZihtb2RlbCkgfHwgZXh0cmFjdE1zcElkKGNvbnRleHQuZ2V0KFwiaWRlbnRpdHlcIikpO1xuICBpZiAoIW1zcClcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgYFRoZXJlJ3Mgbm8gYXNzaWduZWQgb3JnYW5pemF0aW9uIGZvciBtb2RlbCAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9YFxuICAgICk7XG5cbiAgY29uc3QgY29sbGVjdGlvblJlc29sdmVyID0gZGF0YUFycmF5WzBdLmNvbGxlY3Rpb25zO1xuICBjb25zdCBjb2xsZWN0aW9uID1cbiAgICB0eXBlb2YgY29sbGVjdGlvblJlc29sdmVyID09PSBcInN0cmluZ1wiXG4gICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgOiBhd2FpdCBjb2xsZWN0aW9uUmVzb2x2ZXIobW9kZWwsIG1zcCwgY29udGV4dCk7XG5cbiAgKGNvbnRleHQgYXMgRmFicmljQ29udHJhY3RDb250ZXh0KS5yZWFkRnJvbShjb2xsZWN0aW9uKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlZ3JlZ2F0ZWREYXRhT25VcGRhdGU8TSBleHRlbmRzIE1vZGVsPihcbiAgdGhpczogUmVwb3NpdG9yeTxNLCBhbnk+LFxuICBjb250ZXh0OiBDb250ZXh0T2Y8dHlwZW9mIHRoaXM+LFxuICBkYXRhOiBTZWdyZWdhdGVkRGF0YU1ldGFkYXRhIHwgU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdLFxuICBrZXk6IGtleW9mIE0gfCAoa2V5b2YgTSlbXSxcbiAgbW9kZWw6IE0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgb2xkTW9kZWw6IE1cbik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBkYXRhQXJyYXkgPSAoXG4gICAgQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV1cbiAgKSBhcyBTZWdyZWdhdGVkRGF0YU1ldGFkYXRhW107XG4gIGNvbnN0IGtleUFycmF5ID0gKEFycmF5LmlzQXJyYXkoa2V5KSA/IGtleSA6IFtrZXldKSBhcyAoa2V5b2YgTSlbXTtcbiAgaWYgKGtleUFycmF5Lmxlbmd0aCAhPT0gZGF0YUFycmF5Lmxlbmd0aClcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBTZWdyZWdhdGVkIGRhdGEga2V5cyBhbmQgbWV0YWRhdGEgbGVuZ3RoIG1pc21hdGNoYFxuICAgICk7XG5cbiAgY29uc3QgbXNwID1cbiAgICBNb2RlbC5vd25lck9mKG1vZGVsKSB8fFxuICAgIGV4dHJhY3RNc3BJZChcbiAgICAgIGNvbnRleHQuZ2V0KFwiaWRlbnRpdHlcIikgYXMgc3RyaW5nIHwgQ2xpZW50SWRlbnRpdHkgfCB1bmRlZmluZWRcbiAgICApO1xuICBpZiAoIW1zcClcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgYFRoZXJlJ3Mgbm8gYXNzaWduZWQgb3JnYW5pemF0aW9uIGZvciBtb2RlbCAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9YFxuICAgICk7XG5cbiAgY29uc3QgY29sbGVjdGlvblJlc29sdmVyID0gZGF0YUFycmF5WzBdLmNvbGxlY3Rpb25zO1xuICBjb25zdCBjb2xsZWN0aW9uID1cbiAgICB0eXBlb2YgY29sbGVjdGlvblJlc29sdmVyID09PSBcInN0cmluZ1wiXG4gICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgOiBjb2xsZWN0aW9uUmVzb2x2ZXIobW9kZWwsIG1zcCwgY29udGV4dCk7XG5cbiAga2V5QXJyYXkuZm9yRWFjaCgoaywgaSkgPT4ge1xuICAgIGNvbnN0IGMgPVxuICAgICAgdHlwZW9mIGRhdGFBcnJheVtpXS5jb2xsZWN0aW9ucyA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGRhdGFBcnJheVtpXS5jb2xsZWN0aW9uc1xuICAgICAgICA6IGRhdGFBcnJheVtpXS5jb2xsZWN0aW9ucyhtb2RlbCwgbXNwLCBjb250ZXh0KTtcbiAgICBpZiAoYyAhPT0gY29sbGVjdGlvbilcbiAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgICBgU2VncmVnYXRlZCBkYXRhIGNvbGxlY3Rpb24gbWlzbWF0Y2g6ICR7Y30gdnMgJHtjb2xsZWN0aW9ufWBcbiAgICAgICk7XG4gIH0pO1xuXG4gIGNvbnN0IGtleVN0cmluZ3MgPSAoa2V5QXJyYXkgYXMgKGtleW9mIE0pW10pLm1hcCgoa2V5KSA9PiBTdHJpbmcoa2V5KSk7XG4gIC8vIFN0b3JlIHRoZSBvcmlnaW5hbCBtb2RlbCDigJQgcHJlcGFyZSgpIHdpbGwgZmlsdGVyIHRvIGNvbGxlY3Rpb24tc3BlY2lmaWMgZmllbGRzXG4gIChjb250ZXh0IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkud3JpdGVUbyhjb2xsZWN0aW9uLCBrZXlTdHJpbmdzKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlZ3JlZ2F0ZWREYXRhT25EZWxldGU8XG4gIE0gZXh0ZW5kcyBNb2RlbCxcbiAgUiBleHRlbmRzIFJlcG9zaXRvcnk8TSwgYW55PixcbiAgViBleHRlbmRzIFNlZ3JlZ2F0ZWREYXRhTWV0YWRhdGEsXG4+KFxuICB0aGlzOiBSLFxuICBjb250ZXh0OiBDb250ZXh0T2Y8Uj4sXG4gIGRhdGE6IFYgfCBWW10sXG4gIGtleTogKGtleW9mIE0pW10sXG4gIG1vZGVsOiBNXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgZGF0YUFycmF5ID0gKEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW2RhdGFdKSBhcyBWW107XG4gIGNvbnN0IGtleUFycmF5ID0gKEFycmF5LmlzQXJyYXkoa2V5KSA/IGtleSA6IFtrZXldKSBhcyAoa2V5b2YgTSlbXTtcbiAgaWYgKGtleUFycmF5Lmxlbmd0aCAhPT0gZGF0YUFycmF5Lmxlbmd0aClcbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgIGBTZWdyZWdhdGVkIGRhdGEga2V5cyBhbmQgbWV0YWRhdGEgbGVuZ3RoIG1pc21hdGNoYFxuICAgICk7XG5cbiAgY29uc3QgbSA9XG4gICAgY29udGV4dC5nZXRPclVuZGVmaW5lZChcImFsbG93R2VuZXJhdGlvbk92ZXJyaWRlXCIpIHx8IGZhbHNlXG4gICAgICA/IGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJvd25lck92ZXJyaWRlXCIpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBtc3AgPVxuICAgIG0gfHxcbiAgICBNb2RlbC5vd25lck9mKG1vZGVsKSB8fFxuICAgIGV4dHJhY3RNc3BJZChcbiAgICAgIGNvbnRleHQuZ2V0KFwiaWRlbnRpdHlcIikgYXMgc3RyaW5nIHwgQ2xpZW50SWRlbnRpdHkgfCB1bmRlZmluZWRcbiAgICApO1xuICBpZiAoIW1zcClcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgYFRoZXJlJ3Mgbm8gYXNzaWduZWQgb3JnYW5pemF0aW9uIGZvciBtb2RlbCAke21vZGVsLmNvbnN0cnVjdG9yLm5hbWV9YFxuICAgICk7XG5cbiAgY29uc3QgY29sbGVjdGlvblJlc29sdmVyID0gZGF0YUFycmF5WzBdLmNvbGxlY3Rpb25zO1xuICBjb25zdCBjb2xsZWN0aW9uID1cbiAgICB0eXBlb2YgY29sbGVjdGlvblJlc29sdmVyID09PSBcInN0cmluZ1wiXG4gICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgOiBjb2xsZWN0aW9uUmVzb2x2ZXIobW9kZWwsIG1zcCwgY29udGV4dCk7XG5cbiAgKGNvbnRleHQgYXMgRmFicmljQ29udHJhY3RDb250ZXh0KS5yZWFkRnJvbShjb2xsZWN0aW9uKTtcbn1cblxuZnVuY3Rpb24gc2VncmVnYXRlZChcbiAgY29sbGVjdGlvbjogc3RyaW5nIHwgQ29sbGVjdGlvblJlc29sdmVyLFxuICB0eXBlOiBGYWJyaWNNb2RlbEtleXMuUFJJVkFURSB8IEZhYnJpY01vZGVsS2V5cy5TSEFSRUQsXG4gIGZpbHRlcj86IChwcm9wTmFtZTogc3RyaW5nKSA9PiBib29sZWFuXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGlubmVyU2VncmVnYXRlZCh0YXJnZXQ6IG9iamVjdCwgcHJvcGVydHlLZXk/OiBhbnkpIHtcbiAgICBmdW5jdGlvbiBzZWdyZWdhdGVkRGVjKHRhcmdldDogb2JqZWN0LCBwcm9wZXJ0eUtleT86IGFueSkge1xuICAgICAgY29uc3Qga2V5ID0gTWV0YWRhdGEua2V5KHR5cGUsIHByb3BlcnR5S2V5KTtcbiAgICAgIGNvbnN0IGNvbnN0cjogQ29uc3RydWN0b3IgPSB0YXJnZXQuY29uc3RydWN0b3IgYXMgQ29uc3RydWN0b3I7XG5cbiAgICAgIGNvbnN0IG1ldGEgPSBNZXRhZGF0YS5nZXQoY29uc3RyIGFzIENvbnN0cnVjdG9yLCBrZXkpIHx8IHt9O1xuICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBuZXcgU2V0KG1ldGEuY29sbGVjdGlvbnMgfHwgW10pO1xuICAgICAgY29sbGVjdGlvbnMuYWRkKGNvbGxlY3Rpb24pO1xuICAgICAgbWV0YS5jb2xsZWN0aW9ucyA9IFsuLi5jb2xsZWN0aW9uc107XG4gICAgICBNZXRhZGF0YS5zZXQoY29uc3RyIGFzIENvbnN0cnVjdG9yLCBrZXksIG1ldGEpO1xuXG4gICAgICBjb25zdCBjb25zdHJNZXRhID0gTWV0YWRhdGEuZ2V0KGNvbnN0ciBhcyBDb25zdHJ1Y3RvciwgdHlwZSkgfHwge307XG4gICAgICBjb25zdCBjb25zdHJDb2xsZWN0aW9ucyA9IG5ldyBTZXQoY29uc3RyTWV0YS5jb2xsZWN0aW9ucyB8fCBbXSk7XG4gICAgICBjb25zdHJDb2xsZWN0aW9ucy5hZGQoY29sbGVjdGlvbik7XG4gICAgICBjb25zdHJNZXRhLmNvbGxlY3Rpb25zID0gWy4uLmNvbnN0ckNvbGxlY3Rpb25zXTtcbiAgICAgIE1ldGFkYXRhLnNldChjb25zdHIgYXMgQ29uc3RydWN0b3IsIHR5cGUsIGNvbnN0ck1ldGEpO1xuXG4gICAgICBjb25zdCB0cmFuc2llbnRNZXRhID1cbiAgICAgICAgTWV0YWRhdGEuZ2V0KGNvbnN0ciBhcyBDb25zdHJ1Y3RvciwgREJLZXlzLlRSQU5TSUVOVCkgfHwge307XG4gICAgICBjb25zdCB1cGRhdGVkVHJhbnNpZW50TWV0YSA9IHtcbiAgICAgICAgLi4udHJhbnNpZW50TWV0YSxcbiAgICAgICAgW3Byb3BlcnR5S2V5IGFzIGFueV06IHt9LFxuICAgICAgfTtcbiAgICAgIE1ldGFkYXRhLnNldChcbiAgICAgICAgY29uc3RyIGFzIENvbnN0cnVjdG9yLFxuICAgICAgICBEQktleXMuVFJBTlNJRU5ULFxuICAgICAgICB1cGRhdGVkVHJhbnNpZW50TWV0YVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWNzOiBhbnlbXSA9IFtdO1xuICAgIGlmICghcHJvcGVydHlLZXkpIHtcbiAgICAgIC8vIGRlY29yYXRlZCBhdCB0aGUgY2xhc3MgbGV2ZWxcbiAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBNZXRhZGF0YS5nZXRBdHRyaWJ1dGVzKHRhcmdldCBhcyBDb25zdHJ1Y3Rvcik7XG4gICAgICBwcm9wZXJ0aWVzPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICAgIGlmICghZmlsdGVyIHx8IGZpbHRlcihwKSkge1xuICAgICAgICAgIHNlZ3JlZ2F0ZWQoY29sbGVjdGlvbiwgdHlwZSkoKHRhcmdldCBhcyBhbnkpLnByb3RvdHlwZSwgcCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZ3JvdXBOYW1lID1cbiAgICAgICAgdHlwZW9mIGNvbGxlY3Rpb24gPT09IFwic3RyaW5nXCIgPyBjb2xsZWN0aW9uIDogY29sbGVjdGlvbi50b1N0cmluZygpO1xuICAgICAgLy8gVXNlIGRpZmZlcmVudCBncm91cCBuYW1lcyBmb3IgZXh0cmFjdGlvbiB2cyBkYXRhIGhhbmRsZXJzIHRvIHByZXZlbnQgbWVyZ2luZ1xuICAgICAgY29uc3QgZXh0cmFjdEdyb3VwTmFtZSA9IGAke2dyb3VwTmFtZX06ZXh0cmFjdGA7XG4gICAgICBjb25zdCBkYXRhR3JvdXBOYW1lID0gYCR7Z3JvdXBOYW1lfTpkYXRhYDtcbiAgICAgIGNvbnN0IGVhcmx5RXh0cmFjdGlvbk1ldGEgPSB7IGNvbGxlY3Rpb25zOiBjb2xsZWN0aW9uIH07XG4gICAgICBjb25zdCBlYXJseUV4dHJhY3Rpb25Hcm91cFNvcnQgPSB7XG4gICAgICAgIHByaW9yaXR5OiBTRUdSRUdBVEVEX0NPTExFQ1RJT05fRVhUUkFDVElPTl9QUklPUklUWSxcbiAgICAgICAgZ3JvdXA6IGV4dHJhY3RHcm91cE5hbWUsXG4gICAgICB9O1xuICAgICAgZGVjcy5wdXNoKFxuICAgICAgICBwcm9wKCksXG4gICAgICAgIHRyYW5zaWVudCgpLFxuICAgICAgICBzZWdyZWdhdGVkRGVjLFxuICAgICAgICAvLyBFYXJseSBleHRyYWN0aW9uIGhhbmRsZXJzIC0gcnVuIEJFRk9SRSBwayBnZW5lcmF0aW9uIChwcmlvcml0eSA2MClcbiAgICAgICAgLy8gVGhpcyBlbnN1cmVzIGNvbGxlY3Rpb25zIGFyZSByZWdpc3RlcmVkIGluIGNvbnRleHQgZm9yIHNlcXVlbmNlIHJlcGxpY2F0aW9uXG4gICAgICAgIC8vIFdlIHJlZ2lzdGVyIGZvciBlYWNoIG9wZXJhdGlvbiBleHBsaWNpdGx5IHRvIGVuc3VyZSBwcm9wZXIgaGFuZGxlciBsb29rdXBcbiAgICAgICAgb24oXG4gICAgICAgICAgREJPcGVyYXRpb25zLkFMTCxcbiAgICAgICAgICBleHRyYWN0U2VncmVnYXRlZENvbGxlY3Rpb25zIGFzIGFueSxcbiAgICAgICAgICBlYXJseUV4dHJhY3Rpb25NZXRhLFxuICAgICAgICAgIGVhcmx5RXh0cmFjdGlvbkdyb3VwU29ydFxuICAgICAgICApLFxuICAgICAgICAvLyBNYWluIGhhbmRsZXJzIGZvciBzZWdyZWdhdGVkIGRhdGEgb3BlcmF0aW9ucyAocHJpb3JpdHkgOTUpXG4gICAgICAgIG9uQ3JlYXRlKFxuICAgICAgICAgIHNlZ3JlZ2F0ZWREYXRhT25DcmVhdGUsXG4gICAgICAgICAgeyBjb2xsZWN0aW9uczogY29sbGVjdGlvbiB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByaW9yaXR5OiA5NSxcbiAgICAgICAgICAgIGdyb3VwOiBkYXRhR3JvdXBOYW1lLFxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgb25SZWFkKFxuICAgICAgICAgIHNlZ3JlZ2F0ZWREYXRhT25SZWFkIGFzIGFueSxcbiAgICAgICAgICB7IGNvbGxlY3Rpb25zOiBjb2xsZWN0aW9uIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpb3JpdHk6IDk1LFxuICAgICAgICAgICAgZ3JvdXA6IGRhdGFHcm91cE5hbWUsXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBvblVwZGF0ZShcbiAgICAgICAgICBzZWdyZWdhdGVkRGF0YU9uVXBkYXRlIGFzIGFueSxcbiAgICAgICAgICB7IGNvbGxlY3Rpb25zOiBjb2xsZWN0aW9uIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpb3JpdHk6IDk1LFxuICAgICAgICAgICAgZ3JvdXA6IGRhdGFHcm91cE5hbWUsXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBvbkRlbGV0ZShcbiAgICAgICAgICBzZWdyZWdhdGVkRGF0YU9uRGVsZXRlIGFzIGFueSxcbiAgICAgICAgICB7IGNvbGxlY3Rpb25zOiBjb2xsZWN0aW9uIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJpb3JpdHk6IDk1LFxuICAgICAgICAgICAgZ3JvdXA6IGRhdGFHcm91cE5hbWUsXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gYXBwbHkoLi4uZGVjcykodGFyZ2V0LCBwcm9wZXJ0eUtleSk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcml2YXRlRGF0YShcbiAgY29sbGVjdGlvbjogc3RyaW5nIHwgQ29sbGVjdGlvblJlc29sdmVyID0gSW1wbGljaXRQcml2YXRlQ29sbGVjdGlvblxuKSB7XG4gIGZ1bmN0aW9uIHByaXZhdGVEYXRhKGNvbGxlY3Rpb246IHN0cmluZyB8IENvbGxlY3Rpb25SZXNvbHZlcikge1xuICAgIHJldHVybiBzZWdyZWdhdGVkKGNvbGxlY3Rpb24sIEZhYnJpY01vZGVsS2V5cy5QUklWQVRFKTtcbiAgfVxuXG4gIHJldHVybiBEZWNvcmF0aW9uLmZvcihGYWJyaWNNb2RlbEtleXMuUFJJVkFURSlcbiAgICAuZGVmaW5lKHtcbiAgICAgIGRlY29yYXRvcjogcHJpdmF0ZURhdGEsXG4gICAgICBhcmdzOiBbY29sbGVjdGlvbl0sXG4gICAgfSlcbiAgICAuYXBwbHkoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNoYXJlZERhdGEoY29sbGVjdGlvbjogc3RyaW5nIHwgQ29sbGVjdGlvblJlc29sdmVyKSB7XG4gIGZ1bmN0aW9uIHNoYXJlZERhdGEoY29sbGVjdGlvbjogc3RyaW5nIHwgQ29sbGVjdGlvblJlc29sdmVyKSB7XG4gICAgcmV0dXJuIHNlZ3JlZ2F0ZWQoY29sbGVjdGlvbiwgRmFicmljTW9kZWxLZXlzLlNIQVJFRCk7XG4gIH1cblxuICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoRmFicmljTW9kZWxLZXlzLlNIQVJFRClcbiAgICAuZGVmaW5lKHtcbiAgICAgIGRlY29yYXRvcjogc2hhcmVkRGF0YSxcbiAgICAgIGFyZ3M6IFtjb2xsZWN0aW9uXSxcbiAgICB9KVxuICAgIC5hcHBseSgpO1xufVxuIl19
|
|
617
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBWUEsNEJBR0M7QUFDRCw4QkFHQztBQUNELDBCQUdDO0FBTUQsb0NBTUM7QUFpQkQsc0JBcUJDO0FBQ0QsMENBaUJDO0FBQ0QsMEJBWUM7QUFDRCxzREFHQztBQUNELHNDQVlDO0FBQ0QsZ0RBZUM7QUFDRCxrREFzQkM7QUFDRCxrREFzQkM7QUFDRCxrREE0QkM7QUFDRCw0Q0FXQztBQUNELDhDQWdCQztBQUNELHdCQTRCQztBQVFELGtEQVFDO0FBYUQsc0RBZUM7QUFDRCw0Q0FvQkM7QUE4QkQsb0VBMENDO0FBQ0Qsd0RBd0JDO0FBQ0Qsb0RBZ0JDO0FBQ0Qsd0RBeUJDO0FBQ0Qsd0RBa0JDO0FBbUVELGtDQVVDO0FBQ0QsZ0NBVUM7QUF0a0JELHlDQUF1RTtBQUN2RSwyREFBeUw7QUFDekwseUVBQWlFO0FBQ2pFLGlEQUFpRDtBQUNqRCxxREFBa0c7QUFDbEcsK0NBQWlEO0FBQ2pELGdDQUE4QjtBQUN2QixNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBSztBQUM3Qyw2REFBNkQ7QUFDN0QsR0FBRyxJQUFJLEVBQUUsRUFBRTtJQUNQLE9BQU8sS0FBSyxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBSlcsUUFBQSx1QkFBdUIsMkJBSWxDO0FBQ0YsU0FBZ0IsUUFBUSxDQUFDLFFBQVE7SUFDN0IsTUFBTSxJQUFJLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUMxQixPQUFPLElBQUEscUJBQVEsRUFBQyw4QkFBZSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBQ0QsU0FBZ0IsU0FBUyxDQUFDLFFBQVE7SUFDOUIsTUFBTSxJQUFJLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUMxQixPQUFPLElBQUEscUJBQVEsRUFBQyw4QkFBZSxDQUFDLFNB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QUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELE9BQU8sdUJBQVUsQ0FBQyxHQUFHLENBQUMsOEJBQWUsQ0FBQyxPQUFPLENBQUM7U0FDekMsTUFBTSxDQUFDO1FBQ1IsU0FBUyxFQUFFLFdBQVc7UUFDdEIsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO0tBQ3JCLENBQUM7U0FDRyxLQUFLLEVBQUUsQ0FBQztBQUNqQixDQUFDO0FBQ0QsU0FBZ0IsVUFBVSxDQUFDLFVBQVU7SUFDakMsU0FBUyxVQUFVLENBQUMsVUFBVTtRQUMxQixPQUFPLFVBQVUsQ0FBQyxVQUFVLEVBQUUsOEJBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsT0FBTyx1QkFBVSxDQUFDLEdBQUcsQ0FBQyw4QkFBZSxDQUFDLE1BQU0sQ0FBQztTQUN4QyxNQUFNLENBQUM7UUFDUixTQUFTLEVBQUUsVUFBVTtRQUNyQixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUM7S0FDckIsQ0FBQztTQUNHLEtBQUssRUFBRSxDQUFDO0FBQ2pCLENBQUM7QUFDRCwwc3hFQUEwc3hFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aG9yaXphdGlvbkVycm9yLCBVbnN1cHBvcnRlZEVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVkLCBJbnRlcm5hbEVycm9yLCBOb3RGb3VuZEVycm9yLCBvbkNyZWF0ZSwgb25EZWxldGUsIG9uUmVhZCwgb25VcGRhdGUsIHJlYWRvbmx5LCB0cmFuc2llbnQsIFZhbGlkYXRpb25FcnJvciwgREJLZXlzLCBEQk9wZXJhdGlvbnMsIG9uLCB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTW9kZWwsIHJlcXVpcmVkIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljTW9kZWxLZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgeyBhcHBseSwgRGVjb3JhdGlvbiwgbWV0YWRhdGEsIE1ldGFkYXRhLCBwcm9wLCBwcm9wTWV0YWRhdGEsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyB0b1Bhc2NhbENhc2UgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCBcIi4vb3ZlcnJpZGVzL2luZGV4LmpzXCI7XG5leHBvcnQgY29uc3QgRGVmYXVsdENvbnRyYWN0UmVzb2x2ZXIgPSAobW9kZWwsIFxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuLi4uYXJncykgPT4ge1xuICAgIHJldHVybiBtb2RlbC5uYW1lICsgXCJDb250cmFjdFwiO1xufTtcbmV4cG9ydCBmdW5jdGlvbiBjb250cmFjdChyZXNvbHZlcikge1xuICAgIGNvbnN0IG1ldGEgPSB7IHJlc29sdmVyIH07XG4gICAgcmV0dXJuIG1ldGFkYXRhKEZhYnJpY01vZGVsS2V5cy5DT05UUkFDVCwgbWV0YSk7XG59XG5leHBvcnQgZnVuY3Rpb24gY2hhaW5jb2RlKHJlc29sdmVyKSB7XG4gICAgY29uc3QgbWV0YSA9IHsgcmVzb2x2ZXIgfTtcbiAgICByZXR1cm4gbWV0YWRhdGEoRmFicmljTW9kZWxLZXlzLkNIQUlOQ09ERSwgbWV0YSk7XG59XG5leHBvcnQgZnVuY3Rpb24gY2hhbm5lbChyZXNvbHZlcikge1xuICAgIGNvbnN0IG1ldGEgPSB7IHJlc29sdmVyIH07XG4gICAgcmV0dXJuIG1ldGFkYXRhKEZhYnJpY01vZGVsS2V5cy5DSEFOTkVMLCBtZXRhKTtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIEV4dHJhY3RzIHRoZSBNU1AgSUQgZnJvbSBlaXRoZXIgYSBzdHJpbmcgb3IgQ2xpZW50SWRlbnRpdHkgb2JqZWN0XG4gKiBAcGFyYW0gaWRlbnRpdHkgLSBUaGUgaWRlbnRpdHkgdmFsdWUgd2hpY2ggY2FuIGJlIGEgc3RyaW5nIE1TUCBJRCBvciBDbGllbnRJZGVudGl0eSBvYmplY3RcbiAqIEByZXR1cm5zIFRoZSBNU1AgSUQgYXMgYSBzdHJpbmcsIG9yIHVuZGVmaW5lZCBpZiBub3QgYXZhaWxhYmxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0TXNwSWQoaWRlbnRpdHkpIHtcbiAgICBpZiAoIWlkZW50aXR5KVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgaWRlbnRpdHkgPT09IFwic3RyaW5nXCIpXG4gICAgICAgIHJldHVybiBpZGVudGl0eTtcbiAgICByZXR1cm4gaWRlbnRpdHkuZ2V0TVNQSUQoKTtcbn1cbi8qKlxuICogRGVjb3JhdG9yIGZvciBtYXJraW5nIG1ldGhvZHMgdGhhdCByZXF1aXJlIG93bmVyc2hpcCBhdXRob3JpemF0aW9uLlxuICogQ2hlY2tzIHRoZSBvd25lciBvZiB0aGUgdG9rZW4gYmVmb3JlIGFsbG93aW5nIHRoZSBtZXRob2QgdG8gYmUgZXhlY3V0ZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNsYXNzIFRva2VuQ29udHJhY3QgZXh0ZW5kcyBDb250cmFjdCB7XG4gKiAgIEBPd25lcigpXG4gKiAgIGFzeW5jIE1pbnQoY3R4OiBDb250ZXh0LCBhbW91bnQ6IG51bWJlcikge1xuICogICAgIC8vIE1pbnQgdG9rZW4gbG9naWNcbiAqICAgfVxuICogfVxuICogYGBgXG4gKlxuICogQHJldHVybnMge01ldGhvZERlY29yYXRvcn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgY2hlY2tzIG93bmVyc2hpcCBhdXRob3JpemF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gT3duZXIoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIHByb3BlcnR5S2V5LCBkZXNjcmlwdG9yKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcbiAgICAgICAgZGVzY3JpcHRvci52YWx1ZSA9IGFzeW5jIGZ1bmN0aW9uICguLi5hcmdzKSB7XG4gICAgICAgICAgICBjb25zdCBjdHggPSBhcmdzWzBdO1xuICAgICAgICAgICAgY29uc3QgYWNvdW50SWQgPSBjdHguY2xpZW50SWRlbnRpdHkuZ2V0SUQoKTtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdCA9IGF3YWl0IHRoaXNbXCJ0b2tlblJlcG9zaXRvcnlcIl0uc2VsZWN0KCk7XG4gICAgICAgICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCBzZWxlY3QuZXhlY3V0ZShjdHgpO1xuICAgICAgICAgICAgaWYgKHRva2Vucy5sZW5ndGggPT0gMCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFwiTm8gdG9rZW5zIGF2YWlhbGJsZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUbyBtYW55IHRva2VuIGF2YWlsYWJsZSA6ICR7dG9rZW5zLmxlbmd0aH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0b2tlbnNbMF0ub3duZXIgIT0gYWNvdW50SWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXV0aG9yaXphdGlvbkVycm9yKGBVc2VyIG5vdCBhdXRob3JpemVkIHRvIHJ1biAke3Byb3BlcnR5S2V5fSBvbiB0aGUgdG9rZW5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvd25lZEJ5T25DcmVhdGUoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCkge1xuICAgIGNvbnN0IHsgc3R1YiB9ID0gY29udGV4dDtcbiAgICBjb25zdCBhbGxvd0dlbmVyYXRpb25PdmVycmlkZSA9IGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJhbGxvd0dlbmVyYXRpb25PdmVycmlkZVwiKSB8fCBmYWxzZTtcbiAgICBjb25zdCBjcmVhdG9yID0gYXdhaXQgc3R1Yi5nZXRDcmVhdG9yKCk7XG4gICAgbGV0IG93bmVyID0gY3JlYXRvci5tc3BpZDtcbiAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGBFeHBlY3RlZCBtc3BpZCB0byBiZSAke21vZGVsW2tleV19IHwgJHtvd25lcn0uIFxcbiBVc2luZyBhbGxvd0dlbmVyYXRpb25PdmVycmlkZTogJHthbGxvd0dlbmVyYXRpb25PdmVycmlkZX1gKTtcbiAgICBpZiAoYWxsb3dHZW5lcmF0aW9uT3ZlcnJpZGUpXG4gICAgICAgIG93bmVyID0gbW9kZWxba2V5XSA/IG1vZGVsW2tleV0gOiBvd25lcjtcbiAgICBjb25zdCBzZXRPd25lZEJ5S2V5VmFsdWUgPSBmdW5jdGlvbiAodGFyZ2V0LCBwcm9wZXJ0eUtleSwgdmFsdWUpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgcHJvcGVydHlLZXksIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgc2V0T3duZWRCeUtleVZhbHVlKG1vZGVsLCBrZXksIG93bmVyKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBvd25lZEJ5KCkge1xuICAgIGZ1bmN0aW9uIG93bmVkQnkoKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAob2JqLCBhdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBseShyZXF1aXJlZCgpLCBnZW5lcmF0ZWQoKSwgcmVhZG9ubHkoKSwgb25DcmVhdGUob3duZWRCeU9uQ3JlYXRlKSwgcHJvcE1ldGFkYXRhKE1ldGFkYXRhLmtleShGYWJyaWNNb2RlbEtleXMuRkFCUklDLCBGYWJyaWNNb2RlbEtleXMuT1dORURfQlkpLCBhdHRyaWJ1dGUpKShvYmosIGF0dHJpYnV0ZSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBEZWNvcmF0aW9uLmZvcihGYWJyaWNNb2RlbEtleXMuT1dORURfQlkpXG4gICAgICAgIC5kZWZpbmUoe1xuICAgICAgICBkZWNvcmF0b3I6IG93bmVkQnksXG4gICAgICAgIGFyZ3M6IFtdLFxuICAgIH0pXG4gICAgICAgIC5hcHBseSgpO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRyYW5zYWN0aW9uSWRPbkNyZWF0ZShjb250ZXh0LCBkYXRhLCBrZXksIG1vZGVsKSB7XG4gICAgY29uc3QgeyBzdHViIH0gPSBjb250ZXh0O1xuICAgIG1vZGVsW2tleV0gPSBzdHViLmdldFR4SUQoKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2FjdGlvbklkKCkge1xuICAgIGZ1bmN0aW9uIHRyYW5zYWN0aW9uSWQoKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAob2JqLCBhdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBseShyZXF1aXJlZCgpLCByZWFkb25seSgpLCBvbkNyZWF0ZSh0cmFuc2FjdGlvbklkT25DcmVhdGUpLCBvblVwZGF0ZSh0cmFuc2FjdGlvbklkT25DcmVhdGUpLCBwcm9wTWV0YWRhdGEoTWV0YWRhdGEua2V5KEZhYnJpY01vZGVsS2V5cy5GQUJSSUMsIGF0dHJpYnV0ZSwgRmFicmljTW9kZWxLZXlzLlRSQU5TQUNUSU9OX0lEKSwgYXR0cmlidXRlKSkob2JqLCBhdHRyaWJ1dGUpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoRmFicmljTW9kZWxLZXlzLlRSQU5TQUNUSU9OX0lEKVxuICAgICAgICAuZGVmaW5lKHtcbiAgICAgICAgZGVjb3JhdG9yOiB0cmFuc2FjdGlvbklkLFxuICAgICAgICBhcmdzOiBbXSxcbiAgICB9KVxuICAgICAgICAuYXBwbHkoKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBldmFsTWlycm9yTWV0YWRhdGEobW9kZWwsIHJlc29sdmVyLCBjdHgpIHtcbiAgICBsZXQgY29sbGVjdGlvbiA9IHJlc29sdmVyO1xuICAgIGlmICh0eXBlb2YgY29sbGVjdGlvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgb3duZXIgPSBNb2RlbC5vd25lck9mKG1vZGVsKSB8fCBjdHguZ2V0KFwic3R1YlwiKS5nZXRDcmVhdG9yKCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmIChyZXNvbHZlciAmJiB0eXBlb2YgcmVzb2x2ZXIgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uID0gYXdhaXQgcmVzb2x2ZXIobW9kZWwsIG93bmVyLCBjdHgpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIHJlc29sdmUgY29sbGVjdGlvbiBtaXJyb3IgbmFtZTogJHtlfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICghY29sbGVjdGlvbiB8fCB0eXBlb2YgY29sbGVjdGlvbiAhPT0gXCJzdHJpbmdcIilcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE5vIGNvbGxlY3Rpb24gZm91bmQgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgIHJldHVybiBjb2xsZWN0aW9uO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZU1pcnJvckhhbmRsZXIoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCkge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCBldmFsTWlycm9yTWV0YWRhdGEobW9kZWwsIGRhdGEucmVzb2x2ZXIsIGNvbnRleHQpO1xuICAgIGNvbnN0IGZhYnJpY0N0eCA9IGNvbnRleHQ7XG4gICAgY29uc3Qgc291cmNlTW9kZWwgPSBtb2RlbDtcbiAgICAvLyBQdXQgbWlycm9yIGZsYWdzIGRpcmVjdGx5IG9uIGNvbnRleHQgc28gYWRhcHRlci5wcmVwYXJlKCkgYW5kIGFkYXB0ZXIuY3JlYXRlKCkgY2FuIHNlZSB0aGVtXG4gICAgZmFicmljQ3R4LnB1dChcIm1pcnJvclwiLCB0cnVlKTtcbiAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiLCBjb2xsZWN0aW9uKTtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXBvID0gdGhpcy5vdmVycmlkZShPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9vdmVycmlkZXMsIHtcbiAgICAgICAgICAgIG1pcnJvcjogdHJ1ZSxcbiAgICAgICAgICAgIG1pcnJvckNvbGxlY3Rpb246IGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBpZ25vcmVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgaWdub3JlSGFuZGxlcnM6IHRydWUsXG4gICAgICAgIH0pKTtcbiAgICAgICAgY29uc3QgbWlycm9yID0gYXdhaXQgcmVwby5jcmVhdGUoc291cmNlTW9kZWwsIGNvbnRleHQpO1xuICAgICAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGBNaXJyb3IgZm9yICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBjcmVhdGVkIHdpdGggJHtNb2RlbC5wayhtb2RlbCl9OiAke21pcnJvcltNb2RlbC5wayhtb2RlbCldfWApO1xuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgICAgLy8gQ2xlYW4gdXAgbWlycm9yIGZsYWdzIGZyb20gY29udGV4dFxuICAgICAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yXCIsIHVuZGVmaW5lZCk7XG4gICAgICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIsIHVuZGVmaW5lZCk7XG4gICAgfVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwZGF0ZU1pcnJvckhhbmRsZXIoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCkge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCBldmFsTWlycm9yTWV0YWRhdGEobW9kZWwsIGRhdGEucmVzb2x2ZXIsIGNvbnRleHQpO1xuICAgIGNvbnN0IGZhYnJpY0N0eCA9IGNvbnRleHQ7XG4gICAgY29uc3Qgc291cmNlTW9kZWwgPSBtb2RlbDtcbiAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yXCIsIHRydWUpO1xuICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIsIGNvbGxlY3Rpb24pO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcG8gPSB0aGlzLm92ZXJyaWRlKE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX292ZXJyaWRlcywge1xuICAgICAgICAgICAgbWlycm9yOiB0cnVlLFxuICAgICAgICAgICAgbWlycm9yQ29sbGVjdGlvbjogY29sbGVjdGlvbixcbiAgICAgICAgICAgIGlnbm9yZVZhbGlkYXRpb246IHRydWUsXG4gICAgICAgICAgICBpZ25vcmVIYW5kbGVyczogdHJ1ZSxcbiAgICAgICAgICAgIGFwcGx5VXBkYXRlVmFsaWRhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICBtZXJnZUZvclVwZGF0ZTogZmFsc2UsXG4gICAgICAgIH0pKTtcbiAgICAgICAgYXdhaXQgcmVwby51cGRhdGUoc291cmNlTW9kZWwsIGNvbnRleHQpO1xuICAgICAgICBjb250ZXh0LmxvZ2dlci5pbmZvKGBNaXJyb3IgZm9yICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB1cGRhdGVkOiAke21vZGVsW01vZGVsLnBrKG1vZGVsKV19YCk7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yXCIsIHVuZGVmaW5lZCk7XG4gICAgICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIsIHVuZGVmaW5lZCk7XG4gICAgfVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZU1pcnJvckhhbmRsZXIoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCkge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCBldmFsTWlycm9yTWV0YWRhdGEobW9kZWwsIGRhdGEucmVzb2x2ZXIsIGNvbnRleHQpO1xuICAgIGNvbnN0IGZhYnJpY0N0eCA9IGNvbnRleHQ7XG4gICAgZmFicmljQ3R4LnB1dChcIm1pcnJvclwiLCB0cnVlKTtcbiAgICBmYWJyaWNDdHgucHV0KFwibWlycm9yQ29sbGVjdGlvblwiLCBjb2xsZWN0aW9uKTtcbiAgICBmYWJyaWNDdHgucHV0KFwic2VncmVnYXRlZFwiLCBjb2xsZWN0aW9uKTtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBwa1Byb3AgPSBNb2RlbC5wayhtb2RlbCk7XG4gICAgICAgIGNvbnN0IGlkID0gbW9kZWxbcGtQcm9wXTtcbiAgICAgICAgY29uc3QgcmVwbyA9IHRoaXMub3ZlcnJpZGUoT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fb3ZlcnJpZGVzLCB7XG4gICAgICAgICAgICBzZWdyZWdhdGVkOiBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgbWlycm9yOiB0cnVlLFxuICAgICAgICAgICAgaWdub3JlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgIGlnbm9yZUhhbmRsZXJzOiB0cnVlLFxuICAgICAgICB9KSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCByZXBvLmRlbGV0ZShpZCwgY29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgLy8gTWF5IGFscmVhZHkgYmUgZGVsZXRlZCBieSBhZGFwdGVyLmRlbGV0ZVNlZ3JlZ2F0ZWRDb2xsZWN0aW9uc1xuICAgICAgICB9XG4gICAgICAgIGNvbnRleHQubG9nZ2VyLmluZm8oYE1pcnJvciBmb3IgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGRlbGV0ZWQ6ICR7U3RyaW5nKGlkKX1gKTtcbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JcIiwgdW5kZWZpbmVkKTtcbiAgICAgICAgZmFicmljQ3R4LnB1dChcIm1pcnJvckNvbGxlY3Rpb25cIiwgdW5kZWZpbmVkKTtcbiAgICAgICAgZmFicmljQ3R4LnB1dChcInNlZ3JlZ2F0ZWRcIiwgdW5kZWZpbmVkKTtcbiAgICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWlycm9yV3JpdGVHdWFyZChjb250ZXh0LCBkYXRhLCBcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbmtleSwgXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5tb2RlbCkge1xuICAgIGNvbnN0IG1zcCA9IGV4dHJhY3RNc3BJZChjb250ZXh0LmdldChcImlkZW50aXR5XCIpKTtcbiAgICBpZiAoIW1zcClcbiAgICAgICAgcmV0dXJuO1xuICAgIGlmIChtc3AgPT09IGRhdGEubXNwSWQgfHwgKGRhdGEuY29uZGl0aW9uICYmIGRhdGEuY29uZGl0aW9uKG1zcCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBBdXRob3JpemF0aW9uRXJyb3IoYE9yZ2FuaXphdGlvbiAke21zcH0gaXMgbm90IGF1dGhvcml6ZWQgdG8gbW9kaWZ5IG1pcnJvcmVkIGRhdGFgKTtcbiAgICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZE1pcnJvckhhbmRsZXIoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCkge1xuICAgIGNvbnN0IG1zcCA9IGV4dHJhY3RNc3BJZChjb250ZXh0LmdldChcImlkZW50aXR5XCIpKTtcbiAgICBpZiAoIW1zcClcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBhd2FpdCBldmFsTWlycm9yTWV0YWRhdGEobW9kZWwsIGRhdGEucmVzb2x2ZXIsIGNvbnRleHQpO1xuICAgIGNvbnN0IGZhYnJpY0N0eCA9IGNvbnRleHQ7XG4gICAgY29uc3QgbWF0Y2hlcyA9IG1zcCA9PT0gZGF0YS5tc3BJZCB8fCAoZGF0YS5jb25kaXRpb24gJiYgZGF0YS5jb25kaXRpb24obXNwKSk7XG4gICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgY29udGV4dC5sb2dnZXIuaW5mbyhgTWlycm9yIHJlYWQ6IE1TUCAke21zcH0gbWF0Y2hlcywgcm91dGluZyByZWFkcyB0byBtaXJyb3IgY29sbGVjdGlvbiAke2NvbGxlY3Rpb259YCk7XG4gICAgICAgIC8vIFJvdXRlIHJlYWRzIGV4Y2x1c2l2ZWx5IHRocm91Z2ggdGhlIG1pcnJvciBjb2xsZWN0aW9uXG4gICAgICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JcIiwgdHJ1ZSk7XG4gICAgICAgIGZhYnJpY0N0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIsIGNvbGxlY3Rpb24pO1xuICAgICAgICBmYWJyaWNDdHgucHV0KFwiZnVsbHlTZWdyZWdhdGVkXCIsIHRydWUpO1xuICAgICAgICBmYWJyaWNDdHgucmVhZEZyb20oY29sbGVjdGlvbik7XG4gICAgfVxuICAgIC8vIFdoZW4gTVNQIGRvZXMgTk9UIG1hdGNoLCBub3JtYWwgcmVhZCBmbG93IOKAlCBhbGwgZGF0YSBpcyBpbiBwdWJsaWMgc3RhdGVcbn1cbmV4cG9ydCBmdW5jdGlvbiBtaXJyb3IoY29sbGVjdGlvbiwgbXNwSWRPckNvbmRpdGlvbiwgY29uZGl0aW9uKSB7XG4gICAgY29uc3QgaXNDb25kaXRpb25Pbmx5ID0gdHlwZW9mIG1zcElkT3JDb25kaXRpb24gIT09IFwic3RyaW5nXCIgJiYgQm9vbGVhbihtc3BJZE9yQ29uZGl0aW9uKTtcbiAgICBjb25zdCBtc3BJZCA9IGlzQ29uZGl0aW9uT25seVxuICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICA6IG1zcElkT3JDb25kaXRpb247XG4gICAgY29uc3QgY29uZCA9IGlzQ29uZGl0aW9uT25seVxuICAgICAgICA/IG1zcElkT3JDb25kaXRpb25cbiAgICAgICAgOiBjb25kaXRpb247XG4gICAgZnVuY3Rpb24gbWlycm9yKHJlc29sdmVyLCBtc3BJZCwgY29uZGl0aW9uKSB7XG4gICAgICAgIGNvbnN0IG1ldGEgPSB7XG4gICAgICAgICAgICBjb25kaXRpb246IGNvbmRpdGlvbixcbiAgICAgICAgICAgIG1zcElkOiBtc3BJZCxcbiAgICAgICAgICAgIHJlc29sdmVyOiByZXNvbHZlcixcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGFwcGx5KG1ldGFkYXRhKE1ldGFkYXRhLmtleShGYWJyaWNNb2RlbEtleXMuRkFCUklDLCBGYWJyaWNNb2RlbEtleXMuTUlSUk9SKSwgbWV0YSksIFxuICAgICAgICAvLyBSZWFkIGhhbmRsZXIgcnVucyBlYXJseSAocHJpb3JpdHkgMzApIHRvIHNldCB1cCBjb250ZXh0IGJlZm9yZSBhbnkgcmVhZHNcbiAgICAgICAgb25SZWFkKHJlYWRNaXJyb3JIYW5kbGVyLCBtZXRhLCB7IHByaW9yaXR5OiAzMCB9KSwgXG4gICAgICAgIC8vIFdyaXRlIGd1YXJkcyDigJQgcmVqZWN0IG1hdGNoaW5nIE1TUHMgYmVmb3JlIGFueSBwcm9jZXNzaW5nXG4gICAgICAgIG9uQ3JlYXRlKG1pcnJvcldyaXRlR3VhcmQsIG1ldGEsIHsgcHJpb3JpdHk6IDIwIH0pLCBvblVwZGF0ZShtaXJyb3JXcml0ZUd1YXJkLCBtZXRhLCB7IHByaW9yaXR5OiAyMCB9KSwgb25EZWxldGUobWlycm9yV3JpdGVHdWFyZCwgbWV0YSwgeyBwcmlvcml0eTogMjAgfSksIFxuICAgICAgICAvLyBNaXJyb3Igc3luYyBoYW5kbGVycyDigJQgd3JpdGUgZnVsbCBtb2RlbCBhZnRlciBvdGhlciBoYW5kbGVycyAocHJpb3JpdHkgMTAwKVxuICAgICAgICBvbkNyZWF0ZShjcmVhdGVNaXJyb3JIYW5kbGVyLCBtZXRhLCB7IHByaW9yaXR5OiAxMDAgfSksIG9uVXBkYXRlKHVwZGF0ZU1pcnJvckhhbmRsZXIsIG1ldGEsIHsgcHJpb3JpdHk6IDEwMCB9KSwgb25EZWxldGUoZGVsZXRlTWlycm9ySGFuZGxlciwgbWV0YSwgeyBwcmlvcml0eTogMTAwIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIERlY29yYXRpb24uZm9yKEZhYnJpY01vZGVsS2V5cy5NSVJST1IpXG4gICAgICAgIC5kZWZpbmUoe1xuICAgICAgICBkZWNvcmF0b3I6IG1pcnJvcixcbiAgICAgICAgYXJnczogW2NvbGxlY3Rpb24sIG1zcElkLCBjb25kXSxcbiAgICB9KVxuICAgICAgICAuYXBwbHkoKTtcbn1cbmV4cG9ydCBjb25zdCBNb2RlbENvbGxlY3Rpb24gPSAobW9kZWwsIG1zcElkKSA9PiB7XG4gICAgY29uc3Qgb3JnTmFtZSA9IG1zcElkIHx8ICh0eXBlb2YgbW9kZWwgIT09IFwiZnVuY3Rpb25cIiA/IE1vZGVsLm93bmVyT2YobW9kZWwpIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBjb25zdHIgPSB0eXBlb2YgbW9kZWwgPT09IFwiZnVuY3Rpb25cIiA/IG1vZGVsIDogbW9kZWwuY29uc3RydWN0b3I7XG4gICAgaWYgKCFvcmdOYW1lKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTW9kZWwgJHtjb25zdHIubmFtZX0gaXMgbm90IG93bmVkIGJ5IGFueSBvcmdhbml6YXRpb24uIGRpZCB5b3UgdXNlIEBvd25lZEJ5KCkgKG9yIHByb3ZpZGUgdGhlIG5hbWUpP2ApO1xuICAgIHJldHVybiBgJHt0b1Bhc2NhbENhc2UoY29uc3RyLm5hbWUpfSR7b3JnTmFtZSA/IHRvUGFzY2FsQ2FzZShvcmdOYW1lKSA6IFwiXCJ9YDtcbn07XG5leHBvcnQgZnVuY3Rpb24gTmFtZXNwYWNlQ29sbGVjdGlvbihuYW1lc3BhY2UpIHtcbiAgICByZXR1cm4gKG1vZGVsLCBtc3BJZCkgPT4ge1xuICAgICAgICBjb25zdCBvcmdOYW1lID0gbXNwSWQgfHwgKHR5cGVvZiBtb2RlbCAhPT0gXCJmdW5jdGlvblwiID8gTW9kZWwub3duZXJPZihtb2RlbCkgOiB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBjb25zdHIgPSB0eXBlb2YgbW9kZWwgPT09IFwiZnVuY3Rpb25cIiA/IG1vZGVsIDogbW9kZWwuY29uc3RydWN0b3I7XG4gICAgICAgIGlmICghb3JnTmFtZSlcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBNb2RlbCAke2NvbnN0ci5uYW1lfSBpcyBub3Qgb3duZWQgYnkgYW55IG9yZ2FuaXphdGlvbi4gZGlkIHlvdSB1c2UgQG93bmVkQnkoKSAob3IgcHJvdmlkZSB0aGUgbmFtZSk/YCk7XG4gICAgICAgIHJldHVybiBgJHtuYW1lc3BhY2V9JHtvcmdOYW1lID8gdG9QYXNjYWxDYXNlKG9yZ05hbWUpIDogXCJcIn1gO1xuICAgIH07XG59XG5leHBvcnQgY29uc3QgSW1wbGljaXRQcml2YXRlQ29sbGVjdGlvbiA9IChtb2RlbCwgbXNwSWQpID0+IHtcbiAgICBjb25zdCBvcmdOYW1lID0gbXNwSWQgfHwgKHR5cGVvZiBtb2RlbCAhPT0gXCJmdW5jdGlvblwiID8gTW9kZWwub3duZXJPZihtb2RlbCkgOiB1bmRlZmluZWQpO1xuICAgIGlmICghb3JnTmFtZSlcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE1vZGVsICR7bW9kZWwuY29uc3RydWN0b3IubmFtZX0gaXMgbm90IG93bmVkIGJ5IGFueSBvcmdhbml6YXRpb24uIGRpZCB5b3UgdXNlIEBvd25lZEJ5KCkgKG9yIHByb3ZpZGUgdGhlIG5hbWUpP2ApO1xuICAgIHJldHVybiBgX18ke3RvUGFzY2FsQ2FzZShvcmdOYW1lKX1Qcml2YXRlQ29sbGVjdGlvbmA7XG59O1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gUHJpb3JpdHkgZm9yIGVhcmx5IGNvbGxlY3Rpb24gZXh0cmFjdGlvbiAoYmVmb3JlIHBrIGdlbmVyYXRpb24gYXQgcHJpb3JpdHkgNjApXG4gKiBAc3VtbWFyeSBUaGlzIHByaW9yaXR5IGVuc3VyZXMgY29sbGVjdGlvbnMgYXJlIHJlZ2lzdGVyZWQgaW4gY29udGV4dCBiZWZvcmUgYW55IHNlcXVlbmNlXG4gKiBvcGVyYXRpb25zIG9jY3VyLCBhbGxvd2luZyBzZXF1ZW5jZXMgdG8gYmUgcmVwbGljYXRlZCB0byBwcml2YXRlL3NoYXJlZCBjb2xsZWN0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IFNFR1JFR0FURURfQ09MTEVDVElPTl9FWFRSQUNUSU9OX1BSSU9SSVRZID0gMzU7XG5leHBvcnQgZnVuY3Rpb24gYXBwbHlTZWdyZWdhdGlvbkZsYWdzKGNsYXp6LCBjb2xsZWN0aW9ucywgY3R4KSB7XG4gICAgLy8gUmVnaXN0ZXIgY29sbGVjdGlvbnMgZWFybHkgdXNpbmcgcmVhZEZyb20gLSB0aGlzIGFsbG93cyBzZXF1ZW5jZSBjb2RlXG4gICAgLy8gdG8ga25vdyB3aGljaCBjb2xsZWN0aW9ucyB0byByZXBsaWNhdGUgdG8gZHVyaW5nIHBrIGdlbmVyYXRpb25cbiAgICBpZiAoY29sbGVjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICBjdHgucmVhZEZyb20oY29sbGVjdGlvbnMpO1xuICAgIH1cbiAgICAvLyBDaGVjayBpZiBtb2RlbCBpcyBmdWxseSBzZWdyZWdhdGVkIChhbGwgbm9uLXBrIHByb3BlcnRpZXMgYXJlIHByaXZhdGUvc2hhcmVkL3RyYW5zaWVudCkuXG4gICAgLy8gVXNlIE1vZGVsLnNlZ3JlZ2F0ZSgpIHdoaWNoIGlzIHRoZSBjYW5vbmljYWwgd2F5IHRvIGRldGVybWluZSB3aGF0J3MgdHJhbnNpZW50LFxuICAgIC8vIHJhdGhlciB0aGFuIHJlYWRpbmcgREJLZXlzLlRSQU5TSUVOVCBtZXRhZGF0YSB3aGljaCBtYXkgbm90IGFjY3VtdWxhdGUgY29ycmVjdGx5XG4gICAgLy8gd2hlbiBjbGFzcy1sZXZlbCBAcHJpdmF0ZURhdGEgYXBwbGllcyBkZWNvcmF0b3JzIGl0ZXJhdGl2ZWx5LlxuICAgIGlmICghY3R4LmlzRnVsbHlTZWdyZWdhdGVkICYmIGNvbGxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICBpZiAoIWhhc1B1YmxpY1Byb3BlcnRpZXMoY2xhenouY29uc3RydWN0b3IpKSB7XG4gICAgICAgICAgICBjdHgubWFya0Z1bGx5U2VncmVnYXRlZCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwcGx5TWlycm9yRmxhZ3MoY2xhenosIG1zcCwgY3R4KSB7XG4gICAgaWYgKCFtc3ApXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBtaXJyb3JNZXRhID0gTW9kZWwubWlycm9yZWRBdChjbGF6eik7XG4gICAgaWYgKCFtaXJyb3JNZXRhKVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgbWF0Y2hlcyA9IG1zcCA9PT0gbWlycm9yTWV0YS5tc3BJZCB8fFxuICAgICAgICAobWlycm9yTWV0YS5jb25kaXRpb24gJiYgbWlycm9yTWV0YS5jb25kaXRpb24obXNwKSk7XG4gICAgaWYgKCFtYXRjaGVzKVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IGF3YWl0IGV2YWxNaXJyb3JNZXRhZGF0YShuZXcgY2xhenooKSwgbWlycm9yTWV0YS5yZXNvbHZlciwgY3R4KTtcbiAgICAvLyBNaXJyb3IgTVNQIG1hdGNoZXMg4oCUIHJvdXRlIHJlYWRzIGV4Y2x1c2l2ZWx5IHRocm91Z2ggdGhlIG1pcnJvclxuICAgIC8vIGNvbGxlY3Rpb24uIENsZWFyIGFueSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgY29sbGVjdGlvbnMgc28gcXVlcmllc1xuICAgIC8vIGdvIE9OTFkgdG8gdGhlIG1pcnJvciwgbm90IHRvIHRoZSByZWd1bGFyIHByaXZhdGUvc2hhcmVkIG9uZXMuXG4gICAgY3R4LnB1dChcInNlZ3JlZ2F0ZVJlYWRcIiwgdW5kZWZpbmVkKTtcbiAgICBjdHgucHV0KFwic2VncmVnYXRlUmVhZFN0YWNrXCIsIHVuZGVmaW5lZCk7XG4gICAgY3R4LnB1dChcImZ1bGx5U2VncmVnYXRlZFwiLCB0cnVlKTtcbiAgICBjdHgucHV0KFwibWlycm9yXCIsIHRydWUpO1xuICAgIGN0eC5wdXQoXCJtaXJyb3JDb2xsZWN0aW9uXCIsIGNvbGxlY3Rpb24pO1xuICAgIGN0eC5yZWFkRnJvbShjb2xsZWN0aW9uKTtcbn1cbmZ1bmN0aW9uIGhhc1B1YmxpY1Byb3BlcnRpZXMoY2xhenopIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gTWV0YWRhdGEuZ2V0QXR0cmlidXRlcyhjbGF6eikgfHwgW107XG4gICAgY29uc3QgcGsgPSBNb2RlbC5wayhjbGF6eik7XG4gICAgY29uc3QgdHJhbnNpZW50TWV0YSA9IE1ldGFkYXRhLmdldChjbGF6eiwgREJLZXlzLlRSQU5TSUVOVCkgfHwge307XG4gICAgY29uc3QgcHJpdmF0ZU1ldGEgPSBNZXRhZGF0YS5nZXQoY2xhenosIE1ldGFkYXRhLmtleShGYWJyaWNNb2RlbEtleXMuUFJJVkFURSkpIHx8IHt9O1xuICAgIGNvbnN0IHNoYXJlZE1ldGEgPSBNZXRhZGF0YS5nZXQoY2xhenosIE1ldGFkYXRhLmtleShGYWJyaWNNb2RlbEtleXMuU0hBUkVEKSkgfHwge307XG4gICAgcmV0dXJuIGF0dHJpYnV0ZXMuc29tZSgoYXR0cikgPT4ge1xuICAgICAgICBpZiAoYXR0ciA9PT0gcGspXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChhdHRyIGluIHRyYW5zaWVudE1ldGEpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGlmIChhdHRyIGluIHByaXZhdGVNZXRhKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoYXR0ciBpbiBzaGFyZWRNZXRhKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVhcmx5IGhhbmRsZXIgdG8gZXh0cmFjdCBhbmQgcmVnaXN0ZXIgY29sbGVjdGlvbnMgaW4gY29udGV4dFxuICogQHN1bW1hcnkgUnVucyB3aXRoIHByaW9yaXR5IDwgNDAgdG8gZXh0cmFjdCBjb2xsZWN0aW9uIG5hbWVzIGJlZm9yZSBwayBnZW5lcmF0aW9uIChwcmlvcml0eSA2MCkuXG4gKiBUaGlzIGFsbG93cyBGYWJyaWNDb250cmFjdFNlcXVlbmNlIHRvIGtub3cgd2hpY2ggY29sbGVjdGlvbnMgdG8gcmVwbGljYXRlIHRvLlxuICogQHRlbXBsYXRlIE0gLSBUeXBlIHRoYXQgZXh0ZW5kcyBNb2RlbFxuICogQHBhcmFtIHtDb250ZXh0T2Y8UmVwb3NpdG9yeTxNLCBhbnk+Pn0gY29udGV4dCAtIFRoZSBleGVjdXRpb24gY29udGV4dFxuICogQHBhcmFtIHtTZWdyZWdhdGVkRGF0YU1ldGFkYXRhIHwgU2VncmVnYXRlZERhdGFNZXRhZGF0YVtdfSBkYXRhIC0gVGhlIHNlZ3JlZ2F0ZWQgZGF0YSBtZXRhZGF0YVxuICogQHBhcmFtIHtzdHJpbmcgfCBzdHJpbmdbXX0ga2V5cyAtIFRoZSBwcm9wZXJ0eSBrZXkocykgYmVpbmcgc2VncmVnYXRlZFxuICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBpbnN0YW5jZVxuICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RTZWdyZWdhdGVkQ29sbGVjdGlvbnMoY29udGV4dCwgZGF0YSwga2V5cywgbW9kZWwpIHtcbiAgICBjb25zdCBkYXRhQXJyYXkgPSAoQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV0pO1xuICAgIGNvbnN0IG0gPSBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwiYWxsb3dHZW5lcmF0aW9uT3ZlcnJpZGVcIikgfHwgZmFsc2VcbiAgICAgICAgPyBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwib3duZXJPdmVycmlkZVwiKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBtc3AgPSBtIHx8IE1vZGVsLm93bmVyT2YobW9kZWwpIHx8IGV4dHJhY3RNc3BJZChjb250ZXh0LmdldChcImlkZW50aXR5XCIpKTtcbiAgICBpZiAoIW1zcCkge1xuICAgICAgICAvLyBDYW4ndCBleHRyYWN0IGNvbGxlY3Rpb25zIHdpdGhvdXQgTVNQLCB3aWxsIGJlIGNhdWdodCBieSBsYXRlciBoYW5kbGVyc1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gW107XG4gICAgZm9yIChjb25zdCBtZXRhZGF0YSBvZiBkYXRhQXJyYXkpIHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvblJlc29sdmVyID0gbWV0YWRhdGEuY29sbGVjdGlvbnM7XG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0eXBlb2YgY29sbGVjdGlvblJlc29sdmVyID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgICAgICAgOiBjb2xsZWN0aW9uUmVzb2x2ZXIobW9kZWwsIG1zcCwgY29udGV4dCk7XG4gICAgICAgIGlmIChjb2xsZWN0aW9uICYmICFjb2xsZWN0aW9ucy5pbmNsdWRlcyhjb2xsZWN0aW9uKSkge1xuICAgICAgICAgICAgY29sbGVjdGlvbnMucHVzaChjb2xsZWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBhcHBseVNlZ3JlZ2F0aW9uRmxhZ3MobW9kZWwsIGNvbGxlY3Rpb25zLCBjb250ZXh0KTtcbiAgICAvLyBTdG9yZSBzZWdyZWdhdGlvbiBtZXRhZGF0YSBwZXItc2VxdWVuY2Ugc28gRmFicmljQ29udHJhY3RTZXF1ZW5jZSBjYW4gZGVjaWRlXG4gICAgLy8gd2hlcmUgdG8gc3RvcmUvcmVwbGljYXRlIHNlcXVlbmNlIHJlY29yZHMgKHB1YmxpYyB2cyBwcml2YXRlL3NoYXJlZCkuXG4gICAgLy9cbiAgICAvLyAtIGBAcGsoKWAgc2VxdWVuY2VzIHVzZSB0aGUgc2hhcmVkIG5hbWUgYCR7dGFibGV9X3BrYCAobm8gaWQgY29tcG9uZW50KS5cbiAgICAvLyAtIGBAc2VxdWVuY2UoKWAgLyBwZXJzaXN0ZW50IGBAdmVyc2lvbih0cnVlKWAgc2VxdWVuY2VzIGFyZSBwZXItbW9kZWwtaW5zdGFuY2U6XG4gICAgLy8gICBgJHt0YWJsZX1fJHtpZH1fJHtwcm9wZXJ0eX1gLlxuICAgIGNvbnN0IGtleUFycmF5ID0gKEFycmF5LmlzQXJyYXkoa2V5cykgPyBrZXlzIDogW2tleXNdKTtcbiAgICBjb25zdCBwa0tleSA9IE1vZGVsLnBrKG1vZGVsLmNvbnN0cnVjdG9yKTtcbiAgICBjb25zdCBwa1NlcU5hbWUgPSBNb2RlbC5zZXF1ZW5jZU5hbWUobW9kZWwsIFwicGtcIik7XG4gICAgY29uc3QgaWRWYWx1ZSA9IG1vZGVsW3BrS2V5XTtcbiAgICBjb25zdCBjYW5CdWlsZFBlckluc3RhbmNlID0gdHlwZW9mIGlkVmFsdWUgIT09IFwidW5kZWZpbmVkXCIgJiYgaWRWYWx1ZSAhPT0gbnVsbDtcbiAgICAvLyBBbHdheXMgdW5pb24gY29sbGVjdGlvbnMgZm9yIHRoZSBwayBzZXF1ZW5jZSB3aGVuIHRoZSBtb2RlbCB1c2VzIHNlZ3JlZ2F0ZWQgZGF0YS5cbiAgICBjb250ZXh0LnNldFNlcXVlbmNlU2VncmVnYXRpb24ocGtTZXFOYW1lLCBjb250ZXh0LmlzRnVsbHlTZWdyZWdhdGVkLCBjb2xsZWN0aW9ucyk7XG4gICAgLy8gRm9yIHBlci1wcm9wZXJ0eSBzZXF1ZW5jZXMsIG9ubHkgcmVnaXN0ZXIgd2hlbiB3ZSBjYW4gY29tcHV0ZSBhbiBpZC1zY29wZWQgbmFtZS5cbiAgICAvLyBUaGlzIGtlZXBzIHNlcXVlbmNlcyBjb25zdHJhaW5lZCB0byB0aGUgY29sbGVjdGlvbnMgdGhlIGF0dHJpYnV0ZSBleGlzdHMgaW4uXG4gICAgaWYgKGNhbkJ1aWxkUGVySW5zdGFuY2UpIHtcbiAgICAgICAgZm9yIChjb25zdCBrIG9mIGtleUFycmF5KSB7XG4gICAgICAgICAgICBjb25zdCBwcm9wU2VxTmFtZSA9IE1vZGVsLnNlcXVlbmNlTmFtZShtb2RlbCwgU3RyaW5nKGlkVmFsdWUpLCBTdHJpbmcoaykpO1xuICAgICAgICAgICAgY29udGV4dC5zZXRTZXF1ZW5jZVNlZ3JlZ2F0aW9uKHByb3BTZXFOYW1lLCBjb250ZXh0LmlzRnVsbHlTZWdyZWdhdGVkLCBjb2xsZWN0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2VncmVnYXRlZERhdGFPbkNyZWF0ZShjb250ZXh0LCBkYXRhLCBrZXlzLCBtb2RlbCkge1xuICAgIGNvbnN0IGRhdGFBcnJheSA9IChBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXSk7XG4gICAgY29uc3Qga2V5QXJyYXkgPSAoQXJyYXkuaXNBcnJheShrZXlzKSA/IGtleXMgOiBba2V5c10pO1xuICAgIGlmIChrZXlBcnJheS5sZW5ndGggIT09IGRhdGFBcnJheS5sZW5ndGgpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBTZWdyZWdhdGVkIGRhdGEga2V5cyBhbmQgbWV0YWRhdGEgbGVuZ3RoIG1pc21hdGNoYCk7XG4gICAgY29uc3QgbXNwID0gTW9kZWwub3duZXJPZihtb2RlbCkgfHxcbiAgICAgICAgZXh0cmFjdE1zcElkKGNvbnRleHQuZ2V0KFwiaWRlbnRpdHlcIikpO1xuICAgIGlmICghbXNwKVxuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBUaGVyZSdzIG5vIGFzc2lnbmVkIG9yZ2FuaXphdGlvbiBmb3IgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25SZXNvbHZlciA9IGRhdGFBcnJheVswXS5jb2xsZWN0aW9ucztcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdHlwZW9mIGNvbGxlY3Rpb25SZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgICA6IGNvbGxlY3Rpb25SZXNvbHZlcihtb2RlbCwgbXNwLCBjb250ZXh0KTtcbiAgICAvLyBWYWxpZGF0ZSBhbGwga2V5cyByZXNvbHZlIHRvIHRoZSBzYW1lIGNvbGxlY3Rpb25cbiAgICBrZXlBcnJheS5mb3JFYWNoKChfaywgaSkgPT4ge1xuICAgICAgICBjb25zdCBjID0gdHlwZW9mIGRhdGFBcnJheVtpXS5jb2xsZWN0aW9ucyA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBkYXRhQXJyYXlbaV0uY29sbGVjdGlvbnNcbiAgICAgICAgICAgIDogZGF0YUFycmF5W2ldLmNvbGxlY3Rpb25zKG1vZGVsLCBtc3AsIGNvbnRleHQpO1xuICAgICAgICBpZiAoYyAhPT0gY29sbGVjdGlvbilcbiAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKGBTZWdyZWdhdGVkIGRhdGEgY29sbGVjdGlvbiBtaXNtYXRjaDogJHtjfSB2cyAke2NvbGxlY3Rpb259YCk7XG4gICAgfSk7XG4gICAgY29uc3Qga2V5U3RyaW5ncyA9IGtleUFycmF5Lm1hcCgoa2V5KSA9PiBTdHJpbmcoa2V5KSk7XG4gICAgLy8gU3RvcmUgdGhlIHNlZ3JlZ2F0ZWQgbW9kZWwg4oCUIHByZXBhcmUoKSB3aWxsIGZpbHRlciB0byBjb2xsZWN0aW9uLXNwZWNpZmljIGZpZWxkc1xuICAgIGNvbnRleHQud3JpdGVUbyhjb2xsZWN0aW9uLCBrZXlTdHJpbmdzKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWdyZWdhdGVkRGF0YU9uUmVhZChjb250ZXh0LCBkYXRhLCBrZXlzLCBtb2RlbCkge1xuICAgIGNvbnN0IGRhdGFBcnJheSA9IChBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXSk7XG4gICAgY29uc3Qga2V5QXJyYXkgPSAoQXJyYXkuaXNBcnJheShrZXlzKSA/IGtleXMgOiBba2V5c10pO1xuICAgIGlmIChrZXlBcnJheS5sZW5ndGggIT09IGRhdGFBcnJheS5sZW5ndGgpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBTZWdyZWdhdGVkIGRhdGEga2V5cyBhbmQgbWV0YWRhdGEgbGVuZ3RoIG1pc21hdGNoYCk7XG4gICAgY29uc3QgbSA9IGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJhbGxvd0dlbmVyYXRpb25PdmVycmlkZVwiKSB8fCBmYWxzZVxuICAgICAgICA/IGNvbnRleHQuZ2V0T3JVbmRlZmluZWQoXCJvd25lck92ZXJyaWRlXCIpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1zcCA9IG0gfHwgTW9kZWwub3duZXJPZihtb2RlbCkgfHwgZXh0cmFjdE1zcElkKGNvbnRleHQuZ2V0KFwiaWRlbnRpdHlcIikpO1xuICAgIGlmICghbXNwKVxuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBUaGVyZSdzIG5vIGFzc2lnbmVkIG9yZ2FuaXphdGlvbiBmb3IgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25SZXNvbHZlciA9IGRhdGFBcnJheVswXS5jb2xsZWN0aW9ucztcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdHlwZW9mIGNvbGxlY3Rpb25SZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgICA6IGF3YWl0IGNvbGxlY3Rpb25SZXNvbHZlcihtb2RlbCwgbXNwLCBjb250ZXh0KTtcbiAgICBjb250ZXh0LnJlYWRGcm9tKGNvbGxlY3Rpb24pO1xufVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlZ3JlZ2F0ZWREYXRhT25VcGRhdGUoY29udGV4dCwgZGF0YSwga2V5LCBtb2RlbCwgXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5vbGRNb2RlbCkge1xuICAgIGNvbnN0IGRhdGFBcnJheSA9IChBcnJheS5pc0FycmF5KGRhdGEpID8gZGF0YSA6IFtkYXRhXSk7XG4gICAgY29uc3Qga2V5QXJyYXkgPSAoQXJyYXkuaXNBcnJheShrZXkpID8ga2V5IDogW2tleV0pO1xuICAgIGlmIChrZXlBcnJheS5sZW5ndGggIT09IGRhdGFBcnJheS5sZW5ndGgpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBTZWdyZWdhdGVkIGRhdGEga2V5cyBhbmQgbWV0YWRhdGEgbGVuZ3RoIG1pc21hdGNoYCk7XG4gICAgY29uc3QgbXNwID0gTW9kZWwub3duZXJPZihtb2RlbCkgfHxcbiAgICAgICAgZXh0cmFjdE1zcElkKGNvbnRleHQuZ2V0KFwiaWRlbnRpdHlcIikpO1xuICAgIGlmICghbXNwKVxuICAgICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBUaGVyZSdzIG5vIGFzc2lnbmVkIG9yZ2FuaXphdGlvbiBmb3IgbW9kZWwgJHttb2RlbC5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICAgIGNvbnN0IGNvbGxlY3Rpb25SZXNvbHZlciA9IGRhdGFBcnJheVswXS5jb2xsZWN0aW9ucztcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdHlwZW9mIGNvbGxlY3Rpb25SZXNvbHZlciA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IGNvbGxlY3Rpb25SZXNvbHZlclxuICAgICAgICA6IGNvbGxlY3Rpb25SZXNvbHZlcihtb2RlbCwgbXNwLCBjb250ZXh0KTtcbiAgICBrZXlBcnJheS5mb3JFYWNoKChrLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGMgPSB0eXBlb2YgZGF0YUFycmF5W2ldLmNvbGxlY3Rpb25zID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IGRhdGFBcnJheVtpXS5jb2xsZWN0aW9uc1xuICAgICAgICAgICAgOiBkYXRhQXJyYXlbaV0uY29sbGVjdGlvbnMobW9kZWwsIG1zcCwgY29udGV4dCk7XG4gICAgICAgIGlmIChjICE9PSBjb2xsZWN0aW9uKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoYFNlZ3JlZ2F0ZWQgZGF0YSBjb2xsZWN0aW9uIG1pc21hdGNoOiAke2N9IHZzICR7Y29sbGVjdGlvbn1gKTtcbiAgICB9KTtcbiAgICBjb25zdCBrZXlTdHJpbmdzID0ga2V5QXJyYXkubWFwKChrZXkpID0+IFN0cmluZyhrZXkpKTtcbiAgICAvLyBTdG9yZSB0aGUgb3JpZ2luYWwgbW9kZWwg4oCUIHByZXBhcmUoKSB3aWxsIGZpbHRlciB0byBjb2xsZWN0aW9uLXNwZWNpZmljIGZpZWxkc1xuICAgIGNvbnRleHQud3JpdGVUbyhjb2xsZWN0aW9uLCBrZXlTdHJpbmdzKTtcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZWdyZWdhdGVkRGF0YU9uRGVsZXRlKGNvbnRleHQsIGRhdGEsIGtleSwgbW9kZWwpIHtcbiAgICBjb25zdCBkYXRhQXJyYXkgPSAoQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV0pO1xuICAgIGNvbnN0IGtleUFycmF5ID0gKEFycmF5LmlzQXJyYXkoa2V5KSA/IGtleSA6IFtrZXldKTtcbiAgICBpZiAoa2V5QXJyYXkubGVuZ3RoICE9PSBkYXRhQXJyYXkubGVuZ3RoKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgU2VncmVnYXRlZCBkYXRhIGtleXMgYW5kIG1ldGFkYXRhIGxlbmd0aCBtaXNtYXRjaGApO1xuICAgIGNvbnN0IG0gPSBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwiYWxsb3dHZW5lcmF0aW9uT3ZlcnJpZGVcIikgfHwgZmFsc2VcbiAgICAgICAgPyBjb250ZXh0LmdldE9yVW5kZWZpbmVkKFwib3duZXJPdmVycmlkZVwiKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBtc3AgPSBtIHx8XG4gICAgICAgIE1vZGVsLm93bmVyT2YobW9kZWwpIHx8XG4gICAgICAgIGV4dHJhY3RNc3BJZChjb250ZXh0LmdldChcImlkZW50aXR5XCIpKTtcbiAgICBpZiAoIW1zcClcbiAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgVGhlcmUncyBubyBhc3NpZ25lZCBvcmdhbml6YXRpb24gZm9yIG1vZGVsICR7bW9kZWwuY29uc3RydWN0b3IubmFtZX1gKTtcbiAgICBjb25zdCBjb2xsZWN0aW9uUmVzb2x2ZXIgPSBkYXRhQXJyYXlbMF0uY29sbGVjdGlvbnM7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHR5cGVvZiBjb2xsZWN0aW9uUmVzb2x2ZXIgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBjb2xsZWN0aW9uUmVzb2x2ZXJcbiAgICAgICAgOiBjb2xsZWN0aW9uUmVzb2x2ZXIobW9kZWwsIG1zcCwgY29udGV4dCk7XG4gICAgY29udGV4dC5yZWFkRnJvbShjb2xsZWN0aW9uKTtcbn1cbmZ1bmN0aW9uIHNlZ3JlZ2F0ZWQoY29sbGVjdGlvbiwgdHlwZSwgZmlsdGVyKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGlubmVyU2VncmVnYXRlZCh0YXJnZXQsIHByb3BlcnR5S2V5KSB7XG4gICAgICAgIGZ1bmN0aW9uIHNlZ3JlZ2F0ZWREZWModGFyZ2V0LCBwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gTWV0YWRhdGEua2V5KHR5cGUsIHByb3BlcnR5S2V5KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnN0ciA9IHRhcmdldC5jb25zdHJ1Y3RvcjtcbiAgICAgICAgICAgIGNvbnN0IG1ldGEgPSBNZXRhZGF0YS5nZXQoY29uc3RyLCBrZXkpIHx8IHt9O1xuICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBuZXcgU2V0KG1ldGEuY29sbGVjdGlvbnMgfHwgW10pO1xuICAgICAgICAgICAgY29sbGVjdGlvbnMuYWRkKGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgbWV0YS5jb2xsZWN0aW9ucyA9IFsuLi5jb2xsZWN0aW9uc107XG4gICAgICAgICAgICBNZXRhZGF0YS5zZXQoY29uc3RyLCBrZXksIG1ldGEpO1xuICAgICAgICAgICAgY29uc3QgY29uc3RyTWV0YSA9IE1ldGFkYXRhLmdldChjb25zdHIsIHR5cGUpIHx8IHt9O1xuICAgICAgICAgICAgY29uc3QgY29uc3RyQ29sbGVjdGlvbnMgPSBuZXcgU2V0KGNvbnN0ck1ldGEuY29sbGVjdGlvbnMgfHwgW10pO1xuICAgICAgICAgICAgY29uc3RyQ29sbGVjdGlvbnMuYWRkKGNvbGxlY3Rpb24pO1xuICAgICAgICAgICAgY29uc3RyTWV0YS5jb2xsZWN0aW9ucyA9IFsuLi5jb25zdHJDb2xsZWN0aW9uc107XG4gICAgICAgICAgICBNZXRhZGF0YS5zZXQoY29uc3RyLCB0eXBlLCBjb25zdHJNZXRhKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zaWVudE1ldGEgPSBNZXRhZGF0YS5nZXQoY29uc3RyLCBEQktleXMuVFJBTlNJRU5UKSB8fCB7fTtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRUcmFuc2llbnRNZXRhID0ge1xuICAgICAgICAgICAgICAgIC4uLnRyYW5zaWVudE1ldGEsXG4gICAgICAgICAgICAgICAgW3Byb3BlcnR5S2V5XToge30sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgTWV0YWRhdGEuc2V0KGNvbnN0ciwgREJLZXlzLlRSQU5TSUVOVCwgdXBkYXRlZFRyYW5zaWVudE1ldGEpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRlY3MgPSBbXTtcbiAgICAgICAgaWYgKCFwcm9wZXJ0eUtleSkge1xuICAgICAgICAgICAgLy8gZGVjb3JhdGVkIGF0IHRoZSBjbGFzcyBsZXZlbFxuICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE1ldGFkYXRhLmdldEF0dHJpYnV0ZXModGFyZ2V0KTtcbiAgICAgICAgICAgIHByb3BlcnRpZXM/LmZvckVhY2goKHApID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWZpbHRlciB8fCBmaWx0ZXIocCkpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VncmVnYXRlZChjb2xsZWN0aW9uLCB0eXBlKSh0YXJnZXQucHJvdG90eXBlLCBwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBncm91cE5hbWUgPSB0eXBlb2YgY29sbGVjdGlvbiA9PT0gXCJzdHJpbmdcIiA/IGNvbGxlY3Rpb24gOiBjb2xsZWN0aW9uLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAvLyBVc2UgZGlmZmVyZW50IGdyb3VwIG5hbWVzIGZvciBleHRyYWN0aW9uIHZzIGRhdGEgaGFuZGxlcnMgdG8gcHJldmVudCBtZXJnaW5nXG4gICAgICAgICAgICBjb25zdCBleHRyYWN0R3JvdXBOYW1lID0gYCR7Z3JvdXBOYW1lfTpleHRyYWN0YDtcbiAgICAgICAgICAgIGNvbnN0IGRhdGFHcm91cE5hbWUgPSBgJHtncm91cE5hbWV9OmRhdGFgO1xuICAgICAgICAgICAgY29uc3QgZWFybHlFeHRyYWN0aW9uTWV0YSA9IHsgY29sbGVjdGlvbnM6IGNvbGxlY3Rpb24gfTtcbiAgICAgICAgICAgIGNvbnN0IGVhcmx5RXh0cmFjdGlvbkdyb3VwU29ydCA9IHtcbiAgICAgICAgICAgICAgICBwcmlvcml0eTogU0VHUkVHQVRFRF9DT0xMRUNUSU9OX0VYVFJBQ1RJT05fUFJJT1JJVFksXG4gICAgICAgICAgICAgICAgZ3JvdXA6IGV4dHJhY3RHcm91cE5hbWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZGVjcy5wdXNoKHByb3AoKSwgdHJhbnNpZW50KCksIHNlZ3JlZ2F0ZWREZWMsIFxuICAgICAgICAgICAgLy8gRWFybHkgZXh0cmFjdGlvbiBoYW5kbGVycyAtIHJ1biBCRUZPUkUgcGsgZ2VuZXJhdGlvbiAocHJpb3JpdHkgNjApXG4gICAgICAgICAgICAvLyBUaGlzIGVuc3VyZXMgY29sbGVjdGlvbnMgYXJlIHJlZ2lzdGVyZWQgaW4gY29udGV4dCBmb3Igc2VxdWVuY2UgcmVwbGljYXRpb25cbiAgICAgICAgICAgIC8vIFdlIHJlZ2lzdGVyIGZvciBlYWNoIG9wZXJhdGlvbiBleHBsaWNpdGx5IHRvIGVuc3VyZSBwcm9wZXIgaGFuZGxlciBsb29rdXBcbiAgICAgICAgICAgIG9uKERCT3BlcmF0aW9ucy5BTEwsIGV4dHJhY3RTZWdyZWdhdGVkQ29sbGVjdGlvbnMsIGVhcmx5RXh0cmFjdGlvbk1ldGEsIGVhcmx5RXh0cmFjdGlvbkdyb3VwU29ydCksIFxuICAgICAgICAgICAgLy8gTWFpbiBoYW5kbGVycyBmb3Igc2VncmVnYXRlZCBkYXRhIG9wZXJhdGlvbnMgKHByaW9yaXR5IDk1KVxuICAgICAgICAgICAgb25DcmVhdGUoc2VncmVnYXRlZERhdGFPbkNyZWF0ZSwgeyBjb2xsZWN0aW9uczogY29sbGVjdGlvbiB9LCB7XG4gICAgICAgICAgICAgICAgcHJpb3JpdHk6IDk1LFxuICAgICAgICAgICAgICAgIGdyb3VwOiBkYXRhR3JvdXBOYW1lLFxuICAgICAgICAgICAgfSksIG9uUmVhZChzZWdyZWdhdGVkRGF0YU9uUmVhZCwgeyBjb2xsZWN0aW9uczogY29sbGVjdGlvbiB9LCB7XG4gICAgICAgICAgICAgICAgcHJpb3JpdHk6IDk1LFxuICAgICAgICAgICAgICAgIGdyb3VwOiBkYXRhR3JvdXBOYW1lLFxuICAgICAgICAgICAgfSksIG9uVXBkYXRlKHNlZ3JlZ2F0ZWREYXRhT25VcGRhdGUsIHsgY29sbGVjdGlvbnM6IGNvbGxlY3Rpb24gfSwge1xuICAgICAgICAgICAgICAgIHByaW9yaXR5OiA5NSxcbiAgICAgICAgICAgICAgICBncm91cDogZGF0YUdyb3VwTmFtZSxcbiAgICAgICAgICAgIH0pLCBvbkRlbGV0ZShzZWdyZWdhdGVkRGF0YU9uRGVsZXRlLCB7IGNvbGxlY3Rpb25zOiBjb2xsZWN0aW9uIH0sIHtcbiAgICAgICAgICAgICAgICBwcmlvcml0eTogOTUsXG4gICAgICAgICAgICAgICAgZ3JvdXA6IGRhdGFHcm91cE5hbWUsXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFwcGx5KC4uLmRlY3MpKHRhcmdldCwgcHJvcGVydHlLZXkpO1xuICAgIH07XG59XG5leHBvcnQgZnVuY3Rpb24gcHJpdmF0ZURhdGEoY29sbGVjdGlvbiA9IEltcGxpY2l0UHJpdmF0ZUNvbGxlY3Rpb24pIHtcbiAgICBmdW5jdGlvbiBwcml2YXRlRGF0YShjb2xsZWN0aW9uKSB7XG4gICAgICAgIHJldHVybiBzZWdyZWdhdGVkKGNvbGxlY3Rpb24sIEZhYnJpY01vZGVsS2V5cy5QUklWQVRFKTtcbiAgICB9XG4gICAgcmV0dXJuIERlY29yYXRpb24uZm9yKEZhYnJpY01vZGVsS2V5cy5QUklWQVRFKVxuICAgICAgICAuZGVmaW5lKHtcbiAgICAgICAgZGVjb3JhdG9yOiBwcml2YXRlRGF0YSxcbiAgICAgICAgYXJnczogW2NvbGxlY3Rpb25dLFxuICAgIH0pXG4gICAgICAgIC5hcHBseSgpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHNoYXJlZERhdGEoY29sbGVjdGlvbikge1xuICAgIGZ1bmN0aW9uIHNoYXJlZERhdGEoY29sbGVjdGlvbikge1xuICAgICAgICByZXR1cm4gc2VncmVnYXRlZChjb2xsZWN0aW9uLCBGYWJyaWNNb2RlbEtleXMuU0hBUkVEKTtcbiAgICB9XG4gICAgcmV0dXJuIERlY29yYXRpb24uZm9yKEZhYnJpY01vZGVsS2V5cy5TSEFSRUQpXG4gICAgICAgIC5kZWZpbmUoe1xuICAgICAgICBkZWNvcmF0b3I6IHNoYXJlZERhdGEsXG4gICAgICAgIGFyZ3M6IFtjb2xsZWN0aW9uXSxcbiAgICB9KVxuICAgICAgICAuYXBwbHkoKTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpHVmpiM0poZEc5eWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDNOeVl5OXphR0Z5WldRdlpHVmpiM0poZEc5eWN5NTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4UFFVRlBMRVZCUTB3c2EwSkJRV3RDTEVWQlIyeENMR2RDUVVGblFpeEhRVWxxUWl4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlEzaENMRTlCUVU4c1JVRkRUQ3hUUVVGVExFVkJRMVFzWVVGQllTeEZRVU5pTEdGQlFXRXNSVUZEWWl4UlFVRlJMRVZCUTFJc1VVRkJVU3hGUVVOU0xFMUJRVTBzUlVGRFRpeFJRVUZSTEVWQlExSXNVVUZCVVN4RlFVTlNMRk5CUVZNc1JVRkRWQ3hsUVVGbExFVkJRMllzVFVGQlRTeEZRVU5PTEZsQlFWa3NSVUZEV2l4RlFVRkZMRWRCUTBnc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVTnFReXhQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEZGQlFWRXNSVUZCUlN4TlFVRk5MR2REUVVGblF5eERRVUZETzBGQlEycEZMRTlCUVU4c1JVRkJSU3hsUVVGbExFVkJRVVVzZFVKQlFXOUNPMEZCU1RsRExFOUJRVThzUlVGRFRDeExRVUZMTEVWQlJVd3NWVUZCVlN4RlFVTldMRkZCUVZFc1JVRkRVaXhSUVVGUkxFVkJRMUlzU1VGQlNTeEZRVU5LTEZsQlFWa3NSMEZEWWl4TlFVRk5MSE5DUVVGelFpeERRVUZETzBGQlJUbENMRTlCUVU4c1JVRkJSU3haUVVGWkxFVkJRVVVzVFVGQlRTeHRRa0ZCYlVJc1EwRkJRenRCUVVWcVJDdzRRa0ZCTmtJN1FVRlJOMElzVFVGQlRTeERRVUZETEUxQlFVMHNkVUpCUVhWQ0xFZEJRVWNzUTBGRGNrTXNTMEZCT0VJN1FVRkRPVUlzTmtSQlFUWkVPMEZCUXpkRUxFZEJRVWNzU1VGQmVVSXNSVUZETlVJc1JVRkJSVHRKUVVOR0xFOUJRVThzUzBGQlN5eERRVUZETEVsQlFVa3NSMEZCUnl4VlFVRlZMRU5CUVVNN1FVRkRha01zUTBGQlF5eERRVUZETzBGQlRVWXNUVUZCVFN4VlFVRlZMRkZCUVZFc1EwRkJReXhSUVVGaE8wbEJRM0JETEUxQlFVMHNTVUZCU1N4SFFVRnpRaXhGUVVGRkxGRkJRVkVzUlVGQlJTeERRVUZETzBsQlF6ZERMRTlCUVU4c1VVRkJVU3hEUVVGRExHVkJRV1VzUTBGQlF5eFJRVUZSTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1FVRkRiRVFzUTBGQlF6dEJRVVZFTEUxQlFVMHNWVUZCVlN4VFFVRlRMRU5CUVVNc1VVRkJZVHRKUVVOeVF5eE5RVUZOTEVsQlFVa3NSMEZCYzBJc1JVRkJSU3hSUVVGUkxFVkJRVVVzUTBGQlF6dEpRVU0zUXl4UFFVRlBMRkZCUVZFc1EwRkJReXhsUVVGbExFTkJRVU1zVTBGQlV5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTI1RUxFTkJRVU03UVVGRlJDeE5RVUZOTEZWQlFWVXNUMEZCVHl4RFFVRkRMRkZCUVdFN1NVRkRia01zVFVGQlRTeEpRVUZKTEVkQlFYTkNMRVZCUVVVc1VVRkJVU3hGUVVGRkxFTkJRVU03U1VGRE4wTXNUMEZCVHl4UlFVRlJMRU5CUVVNc1pVRkJaU3hEUVVGRExFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0QlFVTnFSQ3hEUVVGRE8wRkJSVVE3T3pzN1IwRkpSenRCUVVOSUxFMUJRVTBzVlVGQlZTeFpRVUZaTEVOQlF6RkNMRkZCUVRaRE8wbEJSVGRETEVsQlFVa3NRMEZCUXl4UlFVRlJPMUZCUVVVc1QwRkJUeXhUUVVGVExFTkJRVU03U1VGRGFFTXNTVUZCU1N4UFFVRlBMRkZCUVZFc1MwRkJTeXhSUVVGUk8xRkJRVVVzVDBGQlR5eFJRVUZSTEVOQlFVTTdTVUZEYkVRc1QwRkJUeXhSUVVGUkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdRVUZETjBJc1EwRkJRenRCUVVWRU96czdPenM3T3pzN096czdPenM3UjBGbFJ6dEJRVU5JTEUxQlFVMHNWVUZCVlN4TFFVRkxPMGxCUTI1Q0xFOUJRVThzVlVGRFRDeE5RVUZYTEVWQlExZ3NWMEZCYlVJc1JVRkRia0lzVlVGQk9FSTdVVUZGT1VJc1RVRkJUU3hqUVVGakxFZEJRVWNzVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXp0UlFVVjRReXhWUVVGVkxFTkJRVU1zUzBGQlN5eEhRVUZITEV0QlFVc3NWMEZGZEVJc1IwRkJSeXhKUVVGWE8xbEJSV1FzVFVGQlRTeEhRVUZITEVkQlFXTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJReTlDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWRCUVVjc1EwRkJReXhqUVVGakxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZGTlVNc1RVRkJUU3hOUVVGTkxFZEJRVWNzVFVGQlR5eEpRVUUwUWl4RFFVTm9SQ3hwUWtGQmFVSXNRMEZEYkVJc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFpRVVZZTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVVjZReXhKUVVGSkxFMUJRVTBzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUVVNN1owSkJRM1pDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXp0WlFVTnFSQ3hEUVVGRE8xbEJSVVFzU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFN4SFFVRkhMRU5CUVVNc1JVRkJSU3hEUVVGRE8yZENRVU4wUWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExEWkNRVUUyUWl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFpRVU40UlN4RFFVRkRPMWxCUlVRc1NVRkJTU3hOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4SlFVRkpMRkZCUVZFc1JVRkJSU3hEUVVGRE8yZENRVU5vUXl4TlFVRk5MRWxCUVVrc2EwSkJRV3RDTEVOQlF6RkNMRGhDUVVFNFFpeFhRVUZYTEdWQlFXVXNRMEZEZWtRc1EwRkJRenRaUVVOS0xFTkJRVU03V1VGRlJDeFBRVUZQTEUxQlFVMHNZMEZCWXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEYUVRc1EwRkJReXhEUVVGRE8xRkJSVVlzVDBGQlR5eFZRVUZWTEVOQlFVTTdTVUZEY0VJc1EwRkJReXhEUVVGRE8wRkJRMG9zUTBGQlF6dEJRVVZFTEUxQlFVMHNRMEZCUXl4TFFVRkxMRlZCUVZVc1pVRkJaU3hEUVUxdVF5eFBRVUZ4UWl4RlFVTnlRaXhKUVVGUExFVkJRMUFzUjBGQldTeEZRVU5hTEV0QlFWRTdTVUZGVWl4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxFZEJRVWNzVDBGQll5eERRVUZETzBsQlJXaERMRTFCUVUwc2RVSkJRWFZDTEVkQlF6TkNMRTlCUVU4c1EwRkJReXhqUVVGakxFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1NVRkJTU3hMUVVGTExFTkJRVU03U1VGRk4wUXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVOQlFVTTdTVUZEZUVNc1NVRkJTU3hMUVVGTExFZEJRVWNzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXp0SlFVTXhRaXhQUVVGUExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZEYWtJc2QwSkJRWGRDTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJUU3hMUVVGTExIVkRRVUYxUXl4MVFrRkJkVUlzUlVGQlJTeERRVU01Unl4RFFVRkRPMGxCUlVZc1NVRkJTU3gxUWtGQmRVSTdVVUZCUlN4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXp0SlFVVnlSU3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRlZCUTNwQ0xFMUJRVk1zUlVGRFZDeFhRVUZ0UWl4RlFVTnVRaXhMUVVFclFqdFJRVVV2UWl4TlFVRk5MRU5CUVVNc1kwRkJZeXhEUVVGRExFMUJRVTBzUlVGQlJTeFhRVUZYTEVWQlFVVTdXVUZEZWtNc1ZVRkJWU3hGUVVGRkxFbEJRVWs3V1VGRGFFSXNVVUZCVVN4RlFVRkZMRXRCUVVzN1dVRkRaaXhaUVVGWkxFVkJRVVVzU1VGQlNUdFpRVU5zUWl4TFFVRkxMRVZCUVVVc1MwRkJTenRUUVVOaUxFTkJRVU1zUTBGQlF6dEpRVU5NTEVOQlFVTXNRMEZCUXp0SlFVVkdMR3RDUVVGclFpeERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRmhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03UVVGRGJFUXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3hQUVVGUE8wbEJRM0pDTEZOQlFWTXNUMEZCVHp0UlFVTmtMRTlCUVU4c1ZVRkJWU3hIUVVGUkxFVkJRVVVzVTBGQlpUdFpRVU40UXl4UFFVRlBMRXRCUVVzc1EwRkRWaXhSUVVGUkxFVkJRVVVzUlVGRFZpeFRRVUZUTEVWQlFVVXNSVUZEV0N4UlFVRlJMRVZCUVVVc1JVRkRWaXhSUVVGUkxFTkJRVU1zWlVGQlpTeERRVUZETEVWQlEzcENMRmxCUVZrc1EwRkRWaXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEdWQlFXVXNRMEZCUXl4TlFVRk5MRVZCUVVVc1pVRkJaU3hEUVVGRExGRkJRVkVzUTBGQlF5eEZRVU01UkN4VFFVRlRMRU5CUTFZc1EwRkRSaXhEUVVGRExFZEJRVWNzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTndRaXhEUVVGRExFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNUMEZCVHl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTTdVMEZETlVNc1RVRkJUU3hEUVVGRE8xRkJRMDRzVTBGQlV5eEZRVUZGTEU5QlFVODdVVUZEYkVJc1NVRkJTU3hGUVVGRkxFVkJRVVU3UzBGRFZDeERRVUZETzFOQlEwUXNTMEZCU3l4RlFVRkZMRU5CUVVNN1FVRkRZaXhEUVVGRE8wRkJSVVFzVFVGQlRTeERRVUZETEV0QlFVc3NWVUZCVlN4eFFrRkJjVUlzUTBGTmVrTXNUMEZCY1VJc1JVRkRja0lzU1VGQlR5eEZRVU5RTEVkQlFWa3NSVUZEV2l4TFFVRlJPMGxCUlZJc1RVRkJUU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEhRVUZITEU5QlFXTXNRMEZCUXp0SlFVTm9ReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRE8wRkJRemxDTEVOQlFVTTdRVUZGUkN4TlFVRk5MRlZCUVZVc1lVRkJZVHRKUVVNelFpeFRRVUZUTEdGQlFXRTdVVUZEY0VJc1QwRkJUeXhWUVVGVkxFZEJRVkVzUlVGQlJTeFRRVUZsTzFsQlEzaERMRTlCUVU4c1MwRkJTeXhEUVVOV0xGRkJRVkVzUlVGQlJTeEZRVU5XTEZGQlFWRXNSVUZCUlN4RlFVTldMRkZCUVZFc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RlFVTXZRaXhSUVVGUkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1JVRkRMMElzV1VGQldTeERRVU5XTEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUTFZc1pVRkJaU3hEUVVGRExFMUJRVTBzUlVGRGRFSXNVMEZCVXl4RlFVTlVMR1ZCUVdVc1EwRkJReXhqUVVGakxFTkJReTlDTEVWQlEwUXNVMEZCVXl4RFFVTldMRU5CUTBZc1EwRkJReXhIUVVGSExFVkJRVVVzVTBGQlV5eERRVUZETEVOQlFVTTdVVUZEY0VJc1EwRkJReXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEU5QlFVOHNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhsUVVGbExFTkJRVU1zWTBGQll5eERRVUZETzFOQlEyeEVMRTFCUVUwc1EwRkJRenRSUVVOT0xGTkJRVk1zUlVGQlJTeGhRVUZoTzFGQlEzaENMRWxCUVVrc1JVRkJSU3hGUVVGRk8wdEJRMVFzUTBGQlF6dFRRVU5FTEV0QlFVc3NSVUZCUlN4RFFVRkRPMEZCUTJJc1EwRkJRenRCUVZWRUxFMUJRVTBzUTBGQlF5eExRVUZMTEZWQlFWVXNhMEpCUVd0Q0xFTkJRM1JETEV0QlFWRXNSVUZEVWl4UlFVRnBSQ3hGUVVOcVJDeEhRVUZwUXp0SlFVVnFReXhKUVVGSkxGVkJRVlVzUjBGQk5FTXNVVUZCVVN4RFFVRkRPMGxCUTI1RkxFbEJRVWtzVDBGQlR5eFZRVUZWTEV0QlFVc3NVVUZCVVN4RlFVRkZMRU5CUVVNN1VVRkRia01zU1VGQlNTeERRVUZETzFsQlEwZ3NUVUZCVFN4TFFVRkxMRWRCUTFRc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEZWQlFWVXNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRMnhGTEVsQlFVa3NVVUZCVVN4SlFVRkpMRTlCUVU4c1VVRkJVU3hMUVVGTExGVkJRVlU3WjBKQlF6VkRMRlZCUVZVc1IwRkJSeXhOUVVGTkxGRkJRVkVzUTBGQlF5eExRVUZMTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRMjVFTEVOQlFVTTdVVUZCUXl4UFFVRlBMRU5CUVZVc1JVRkJSU3hEUVVGRE8xbEJRM0JDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc05rTkJRVFpETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkROVVVzUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZGUkN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFOUJRVThzVlVGQlZTeExRVUZMTEZGQlFWRTdVVUZETDBNc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNOa0pCUVRaQ0xFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUTNSRUxFTkJRVU03U1VGRFNpeFBRVUZQTEZWQlFWVXNRMEZCUXp0QlFVTndRaXhEUVVGRE8wRkJSVVFzVFVGQlRTeERRVUZETEV0QlFVc3NWVUZCVlN4dFFrRkJiVUlzUTBGTGRrTXNUMEZCY1VNc1JVRkRja01zU1VGQmIwSXNSVUZEY0VJc1IwRkJXU3hGUVVOYUxFdEJRVkU3U1VGRlVpeE5RVUZOTEZWQlFWVXNSMEZCUnl4TlFVRk5MR3RDUVVGclFpeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6TkZMRTFCUVUwc1UwRkJVeXhIUVVGSExFOUJRV2RETEVOQlFVTTdTVUZEYmtRc1RVRkJUU3hYUVVGWExFZEJRVWNzUzBGQlN5eERRVUZETzBsQlF6RkNMRGhHUVVFNFJqdEpRVU01Uml4VFFVRlRMRU5CUVVNc1IwRkJSeXhEUVVGRExGRkJRV1VzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTnlReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEd0Q1FVRjVRaXhGUVVGRkxGVkJRVlVzUTBGQlF5eERRVUZETzBsQlEzSkVMRWxCUVVrc1EwRkJRenRSUVVOSUxFMUJRVTBzU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUTNoQ0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkhMRWxCUVZrc1EwRkJReXhWUVVGVkxFVkJRVVU3V1VGRE1VTXNUVUZCVFN4RlFVRkZMRWxCUVVrN1dVRkRXaXhuUWtGQlowSXNSVUZCUlN4VlFVRlZPMWxCUXpWQ0xHZENRVUZuUWl4RlFVRkZMRWxCUVVrN1dVRkRkRUlzWTBGQll5eEZRVUZGTEVsQlFVazdVMEZEWkN4RFFVRkRMRU5CUTFZc1EwRkJRenRSUVVOR0xFMUJRVTBzVFVGQlRTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEZGtRc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlEycENMR05CUVdNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJWeXhMUVVGTExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGRGJFZ3NRMEZCUXp0SlFVTktMRU5CUVVNN1dVRkJVeXhEUVVGRE8xRkJRMVFzY1VOQlFYRkRPMUZCUTNKRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCWlN4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRekZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc2EwSkJRWGxDTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNN1NVRkRkRVFzUTBGQlF6dEJRVU5JTEVOQlFVTTdRVUZGUkN4TlFVRk5MRU5CUVVNc1MwRkJTeXhWUVVGVkxHMUNRVUZ0UWl4RFFVdDJReXhQUVVGeFF5eEZRVU55UXl4SlFVRnZRaXhGUVVOd1FpeEhRVUZaTEVWQlExb3NTMEZCVVR0SlFVVlNMRTFCUVUwc1ZVRkJWU3hIUVVGSExFMUJRVTBzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRNMFVzVFVGQlRTeFRRVUZUTEVkQlFVY3NUMEZCWjBNc1EwRkJRenRKUVVOdVJDeE5RVUZOTEZkQlFWY3NSMEZCUnl4TFFVRkxMRU5CUVVNN1NVRkRNVUlzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRmxMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGNrTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhyUWtGQmVVSXNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJRenRKUVVOeVJDeEpRVUZKTEVOQlFVTTdVVUZEU0N4TlFVRk5MRWxCUVVrc1IwRkJSeXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVU40UWl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJ5eEpRVUZaTEVOQlFVTXNWVUZCVlN4RlFVRkZPMWxCUXpGRExFMUJRVTBzUlVGQlJTeEpRVUZKTzFsQlExb3NaMEpCUVdkQ0xFVkJRVVVzVlVGQlZUdFpRVU0xUWl4blFrRkJaMElzUlVGQlJTeEpRVUZKTzFsQlEzUkNMR05CUVdNc1JVRkJSU3hKUVVGSk8xbEJRM0JDTEhGQ1FVRnhRaXhGUVVGRkxFdEJRVXM3V1VGRE5VSXNZMEZCWXl4RlFVRkZMRXRCUVVzN1UwRkRaaXhEUVVGRExFTkJRMVlzUTBGQlF6dFJRVU5HTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEZUVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlEycENMR05CUVdNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR0ZCUVdNc1MwRkJZU3hEUVVGRExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVONFJpeERRVUZETzBsQlEwb3NRMEZCUXp0WlFVRlRMRU5CUVVNN1VVRkRWQ3hUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFXVXNSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJRenRSUVVNeFF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMR3RDUVVGNVFpeEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRPMGxCUTNSRUxFTkJRVU03UVVGRFNDeERRVUZETzBGQlJVUXNUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3h0UWtGQmJVSXNRMEZMZGtNc1QwRkJjVU1zUlVGRGNrTXNTVUZCYjBJc1JVRkRjRUlzUjBGQldTeEZRVU5hTEV0QlFWRTdTVUZGVWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhOUVVGTkxHdENRVUZyUWl4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpORkxFMUJRVTBzVTBGQlV5eEhRVUZITEU5QlFXZERMRU5CUVVNN1NVRkRia1FzVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRmxMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGNrTXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhyUWtGQmVVSXNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJRenRKUVVOeVJDeFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVcxQ0xFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTTdTVUZETDBNc1NVRkJTU3hEUVVGRE8xRkJRMGdzVFVGQlRTeE5RVUZOTEVkQlFVY3NTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhMUVVGTExFTkJRVmtzUTBGQlF6dFJRVU14UXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZEZWtJc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZEZUVJc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZGTEVWQlFVY3NTVUZCV1N4RFFVRkRMRlZCUVZVc1JVRkJSVHRaUVVNeFF5eFZRVUZWTEVWQlFVVXNWVUZCVlR0WlFVTjBRaXhOUVVGTkxFVkJRVVVzU1VGQlNUdFpRVU5hTEdkQ1FVRm5RaXhGUVVGRkxFbEJRVWs3V1VGRGRFSXNZMEZCWXl4RlFVRkZMRWxCUVVrN1UwRkRaQ3hEUVVGRExFTkJRMVlzUTBGQlF6dFJRVU5HTEVsQlFVa3NRMEZCUXp0WlFVTklMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEZRVUZUTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRlRU1zUTBGQlF6dFJRVUZETEUxQlFVMHNRMEZCUXp0WlFVTlFMR2RGUVVGblJUdFJRVU5zUlN4RFFVRkRPMUZCUTBRc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlEycENMR05CUVdNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMR0ZCUVdFc1RVRkJUU3hEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlEyNUZMRU5CUVVNN1NVRkRTaXhEUVVGRE8xbEJRVk1zUTBGQlF6dFJRVU5VTEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJaU3hGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETzFGQlF6RkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zYTBKQlFYbENMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGNFUXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhaUVVGdFFpeEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRPMGxCUTJoRUxFTkJRVU03UVVGRFNDeERRVUZETzBGQlJVUXNUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3huUWtGQlowSXNRMEZMY0VNc1QwRkJjVU1zUlVGRGNrTXNTVUZCYjBJN1FVRkRjRUlzTmtSQlFUWkVPMEZCUXpkRUxFZEJRVms3UVVGRFdpdzJSRUZCTmtRN1FVRkROMFFzUzBGQlVUdEpRVVZTTEUxQlFVMHNSMEZCUnl4SFFVRkhMRmxCUVZrc1EwRkRkRUlzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVhkRExFTkJReTlFTEVOQlFVTTdTVUZEUml4SlFVRkpMRU5CUVVNc1IwRkJSenRSUVVGRkxFOUJRVTg3U1VGRGFrSXNTVUZCU1N4SFFVRkhMRXRCUVVzc1NVRkJTU3hEUVVGRExFdEJRVXNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRWxCUVVrc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1VVRkRiRVVzVFVGQlRTeEpRVUZKTEd0Q1FVRnJRaXhEUVVNeFFpeG5Ra0ZCWjBJc1IwRkJSeXcwUTBGQk5FTXNRMEZEYUVVc1EwRkJRenRKUVVOS0xFTkJRVU03UVVGRFNDeERRVUZETzBGQlJVUXNUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3hwUWtGQmFVSXNRMEZMY2tNc1QwRkJjVU1zUlVGRGNrTXNTVUZCYjBJc1JVRkRjRUlzUjBGQldTeEZRVU5hTEV0QlFWRTdTVUZGVWl4TlFVRk5MRWRCUVVjc1IwRkJSeXhaUVVGWkxFTkJRM1JDTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hEUVVGM1F5eERRVU12UkN4RFFVRkRPMGxCUlVZc1NVRkJTU3hEUVVGRExFZEJRVWM3VVVGQlJTeFBRVUZQTzBsQlJXcENMRTFCUVUwc1ZVRkJWU3hIUVVGSExFMUJRVTBzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRNMFVzVFVGQlRTeFRRVUZUTEVkQlFVY3NUMEZCWjBNc1EwRkJRenRKUVVOdVJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4SFFVRkhMRXRCUVVzc1NVRkJTU3hEUVVGRExFdEJRVXNzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4VFFVRlRMRWxCUVVrc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMGxCUlRsRkxFbEJRVWtzVDBGQlR5eEZRVUZGTEVOQlFVTTdVVUZEV2l4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGRGFrSXNiMEpCUVc5Q0xFZEJRVWNzWjBSQlFXZEVMRlZCUVZVc1JVRkJSU3hEUVVOd1JpeERRVUZETzFGQlEwWXNkMFJCUVhkRU8xRkJRM2hFTEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJaU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEzSkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zYTBKQlFYbENMRVZCUVVVc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGNrUXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOMlF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8wbEJRMnBETEVOQlFVTTdTVUZEUkN3d1JVRkJNRVU3UVVGRE5VVXNRMEZCUXp0QlFVVkVMRTFCUVUwc1ZVRkJWU3hOUVVGTkxFTkJRM0JDTEZWQlFYVkRMRVZCUTNaRExHZENRVUV5UXl4RlFVTXpReXhUUVVFeVFqdEpRVVV6UWl4TlFVRk5MR1ZCUVdVc1IwRkRia0lzVDBGQlR5eG5Ra0ZCWjBJc1MwRkJTeXhSUVVGUkxFbEJRVWtzVDBGQlR5eERRVUZETEdkQ1FVRm5RaXhEUVVGRExFTkJRVU03U1VGRGNFVXNUVUZCVFN4TFFVRkxMRWRCUVVjc1pVRkJaVHRSUVVNelFpeERRVUZETEVOQlFVTXNVMEZCVXp0UlFVTllMRU5CUVVNc1EwRkJSU3huUWtGQmRVTXNRMEZCUXp0SlFVTTNReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eGxRVUZsTzFGQlF6RkNMRU5CUVVNc1EwRkJSU3huUWtGQmIwTTdVVUZEZGtNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF6dEpRVVZrTEZOQlFWTXNUVUZCVFN4RFFVTmlMRkZCUVhGRExFVkJRM0pETEV0QlFXRXNSVUZEWWl4VFFVRXlRanRSUVVVelFpeE5RVUZOTEVsQlFVa3NSMEZCYlVJN1dVRkRNMElzVTBGQlV5eEZRVUZGTEZOQlFWTTdXVUZEY0VJc1MwRkJTeXhGUVVGRkxFdEJRVXM3V1VGRFdpeFJRVUZSTEVWQlFVVXNVVUZCVVR0VFFVTnVRaXhEUVVGRE8xRkJRMFlzVDBGQlR5eExRVUZMTEVOQlExWXNVVUZCVVN4RFFVTk9MRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zWlVGQlpTeERRVUZETEUxQlFVMHNSVUZCUlN4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRelZFTEVsQlFVa3NRMEZEVER0UlFVTkVMREpGUVVFeVJUdFJRVU16UlN4TlFVRk5MRU5CUVVNc2FVSkJRWGRDTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETzFGQlEzaEVMRFJFUVVFMFJEdFJRVU0xUkN4UlFVRlJMRU5CUVVNc1owSkJRWFZDTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzUlVGQlJTeERRVUZETEVWQlEzcEVMRkZCUVZFc1EwRkJReXhuUWtGQmRVSXNSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSU3hSUVVGUkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZEZWtRc1VVRkJVU3hEUVVGRExHZENRVUYxUWl4RlFVRkZMRWxCUVVrc1JVRkJSU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTEVWQlFVVXNRMEZCUXp0UlFVTjZSQ3c0UlVGQk9FVTdVVUZET1VVc1VVRkJVU3hEUVVGRExHMUNRVUV3UWl4RlFVRkZMRWxCUVVrc1JVRkJSU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVTTNSQ3hSUVVGUkxFTkJRVU1zYlVKQlFUQkNMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzVVVGQlVTeEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRVZCUXpkRUxGRkJRVkVzUTBGQlF5eHRRa0ZCTUVJc1JVRkJSU3hKUVVGSkxFVkJRVVVzUlVGQlJTeFJRVUZSTEVWQlFVVXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkRPVVFzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4UFFVRlBMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zWlVGQlpTeERRVUZETEUxQlFVMHNRMEZCUXp0VFFVTXhReXhOUVVGTkxFTkJRVU03VVVGRFRpeFRRVUZUTEVWQlFVVXNUVUZCVFR0UlFVTnFRaXhKUVVGSkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJRenRMUVVOb1F5eERRVUZETzFOQlEwUXNTMEZCU3l4RlFVRkZMRU5CUVVNN1FVRkRZaXhEUVVGRE8wRkJVVVFzVFVGQlRTeERRVUZETEUxQlFVMHNaVUZCWlN4SFFVRjFRaXhEUVVOcVJDeExRVUY1UWl4RlFVTjZRaXhMUVVGakxFVkJRMlFzUlVGQlJUdEpRVU5HTEUxQlFVMHNUMEZCVHl4SFFVTllMRXRCUVVzc1NVRkJTU3hEUVVGRExFOUJRVThzUzBGQlN5eExRVUZMTEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03U1VGRE5VVXNUVUZCVFN4TlFVRk5MRWRCUVVjc1QwRkJUeXhMUVVGTExFdEJRVXNzVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTTdTVUZEZGtVc1NVRkJTU3hEUVVGRExFOUJRVTg3VVVGRFZpeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXhUUVVGVExFMUJRVTBzUTBGQlF5eEpRVUZKTEd0R1FVRnJSaXhEUVVOMlJ5eERRVUZETzBsQlEwb3NUMEZCVHl4SFFVRkhMRmxCUVZrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhaUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRE8wRkJReTlGTEVOQlFVTXNRMEZCUXp0QlFVVkdMRTFCUVUwc1ZVRkJWU3h0UWtGQmJVSXNRMEZCUXl4VFFVRnBRanRKUVVOdVJDeFBRVUZQTEVOQlFXdENMRXRCUVhsQ0xFVkJRVVVzUzBGQll5eEZRVUZGTEVWQlFVVTdVVUZEY0VVc1RVRkJUU3hQUVVGUExFZEJRMWdzUzBGQlN5eEpRVUZKTEVOQlFVTXNUMEZCVHl4TFFVRkxMRXRCUVVzc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTTFSU3hOUVVGTkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEV0QlFVc3NTMEZCU3l4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJRenRSUVVOMlJTeEpRVUZKTEVOQlFVTXNUMEZCVHp0WlFVTldMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRM0pDTEZOQlFWTXNUVUZCVFN4RFFVRkRMRWxCUVVrc2EwWkJRV3RHTEVOQlEzWkhMRU5CUVVNN1VVRkRTaXhQUVVGUExFZEJRVWNzVTBGQlV5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1dVRkJXU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJRenRKUVVNdlJDeERRVUZETEVOQlFVTTdRVUZEU2l4RFFVRkRPMEZCUlVRc1RVRkJUU3hEUVVGRExFMUJRVTBzZVVKQlFYbENMRWRCUVhWQ0xFTkJRek5FTEV0QlFYbENMRVZCUTNwQ0xFdEJRV01zUlVGRFpDeEZRVUZGTzBsQlEwWXNUVUZCVFN4UFFVRlBMRWRCUTFnc1MwRkJTeXhKUVVGSkxFTkJRVU1zVDBGQlR5eExRVUZMTEV0QlFVc3NWVUZCVlN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dEpRVU0xUlN4SlFVRkpMRU5CUVVNc1QwRkJUenRSUVVOV0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlEzSkNMRk5CUVZNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEd0R1FVRnJSaXhEUVVOc1NDeERRVUZETzBsQlEwb3NUMEZCVHl4TFFVRkxMRmxCUVZrc1EwRkJReXhQUVVGUExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNN1FVRkRka1FzUTBGQlF5eERRVUZETzBGQlRVWTdPenM3UjBGSlJ6dEJRVU5JTEUxQlFVMHNRMEZCUXl4TlFVRk5MSGxEUVVGNVF5eEhRVUZITEVWQlFVVXNRMEZCUXp0QlFVVTFSQ3hOUVVGTkxGVkJRVlVzY1VKQlFYRkNMRU5CUTI1RExFdEJRVkVzUlVGRFVpeFhRVUZ4UWl4RlFVTnlRaXhIUVVGUk8wbEJSVklzZDBWQlFYZEZPMGxCUTNoRkxHbEZRVUZwUlR0SlFVTnFSU3hKUVVGSkxGZEJRVmNzUTBGQlF5eE5RVUZOTEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1VVRkRNVUlzUjBGQk5rSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03U1VGRGRrUXNRMEZCUXp0SlFVVkVMREpHUVVFeVJqdEpRVU16Uml4clJrRkJhMFk3U1VGRGJFWXNiVVpCUVcxR08wbEJRMjVHTEdkRlFVRm5SVHRKUVVOb1JTeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMR2xDUVVGcFFpeEpRVUZKTEZkQlFWY3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVOcVJDeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFUWkNMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRemxFTEVkQlFVY3NRMEZCUXl4dFFrRkJiVUlzUlVGQlJTeERRVUZETzFGQlF6VkNMRU5CUVVNN1NVRkRTQ3hEUVVGRE8wRkJRMGdzUTBGQlF6dEJRVVZFTEUxQlFVMHNRMEZCUXl4TFFVRkxMRlZCUVZVc1owSkJRV2RDTEVOQlEzQkRMRXRCUVhGQ0xFVkJRM0pDTEVkQlFYVkNMRVZCUTNaQ0xFZEJRVEJDTzBsQlJURkNMRWxCUVVrc1EwRkJReXhIUVVGSE8xRkJRVVVzVDBGQlR6dEpRVU5xUWl4TlFVRk5MRlZCUVZVc1IwRkJSeXhMUVVGTExFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUXpORExFbEJRVWtzUTBGQlF5eFZRVUZWTzFGQlFVVXNUMEZCVHp0SlFVTjRRaXhOUVVGTkxFOUJRVThzUjBGRFdDeEhRVUZITEV0QlFVc3NWVUZCVlN4RFFVRkRMRXRCUVVzN1VVRkRlRUlzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4SlFVRkpMRlZCUVZVc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTjBSQ3hKUVVGSkxFTkJRVU1zVDBGQlR6dFJRVUZGTEU5QlFVODdTVUZEY2tJc1RVRkJUU3hWUVVGVkxFZEJRVWNzVFVGQlRTeHJRa0ZCYTBJc1EwRkRla01zU1VGQlNTeExRVUZMTEVWQlFVVXNSVUZEV0N4VlFVRlZMRU5CUVVNc1VVRkJVU3hGUVVOdVFpeEhRVUZITEVOQlEwb3NRMEZCUXp0SlFVTkdMR3RGUVVGclJUdEpRVU5zUlN4eFJVRkJjVVU3U1VGRGNrVXNhVVZCUVdsRk8wbEJRMnBGTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1pVRkJaU3hGUVVGRkxGTkJRVk1zUTBGQlF5eERRVUZETzBsQlEzQkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zYjBKQlFXOUNMRVZCUVVVc1UwRkJVeXhEUVVGRExFTkJRVU03U1VGRGVrTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhwUWtGQmFVSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOcVF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRkZCUVdVc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU12UWl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExHdENRVUY1UWl4RlFVRkZMRlZCUVZVc1EwRkJReXhEUVVGRE8wbEJReTlETEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UVVGRE0wSXNRMEZCUXp0QlFVVkVMRk5CUVZNc2JVSkJRVzFDTEVOQlFXdENMRXRCUVhGQ08wbEJRMnBGTEUxQlFVMHNWVUZCVlN4SFFVRkhMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMGxCUTNaRUxFMUJRVTBzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRE0wSXNUVUZCVFN4aFFVRmhMRWRCUVVjc1VVRkJVU3hEUVVGRExFZEJRVWNzUTBGQlF5eExRVUZaTEVWQlFVVXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dEpRVU42UlN4TlFVRk5MRmRCUVZjc1IwRkRaaXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFWa3NSVUZCUlN4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExHVkJRV1VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRKUVVNeFJTeE5RVUZOTEZWQlFWVXNSMEZEWkN4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVmtzUlVGQlJTeFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMR1ZCUVdVc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0SlFVVjZSU3hQUVVGUExGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSVHRSUVVNNVFpeEpRVUZKTEVsQlFVa3NTMEZCU3l4RlFVRkZPMWxCUVVVc1QwRkJUeXhMUVVGTExFTkJRVU03VVVGRE9VSXNTVUZCU1N4SlFVRkpMRWxCUVVrc1lVRkJZVHRaUVVGRkxFOUJRVThzUzBGQlN5eERRVUZETzFGQlEzaERMRWxCUVVrc1NVRkJTU3hKUVVGSkxGZEJRVmM3V1VGQlJTeFBRVUZQTEV0QlFVc3NRMEZCUXp0UlFVTjBReXhKUVVGSkxFbEJRVWtzU1VGQlNTeFZRVUZWTzFsQlFVVXNUMEZCVHl4TFFVRkxMRU5CUVVNN1VVRkRja01zVDBGQlR5eEpRVUZKTEVOQlFVTTdTVUZEWkN4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOTUxFTkJRVU03UVVGRlJEczdPenM3T3pzN096dEhRVlZITzBGQlEwZ3NUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3cwUWtGQk5FSXNRMEZGYUVRc1QwRkJLMElzUlVGREwwSXNTVUZCZFVRc1JVRkRka1FzU1VGQk1rSXNSVUZETTBJc1MwRkJVVHRKUVVWU0xFMUJRVTBzVTBGQlV5eEhRVUZITEVOQlEyaENMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZEVWl4RFFVRkRPMGxCUlRsQ0xFMUJRVTBzUTBGQlF5eEhRVU5NTEU5QlFVOHNRMEZCUXl4alFVRmpMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNTVUZCU1N4TFFVRkxPMUZCUTNoRUxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RFFVRkRMR1ZCUVdVc1EwRkJRenRSUVVONlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRPMGxCUldoQ0xFMUJRVTBzUjBGQlJ5eEhRVU5RTEVOQlFVTXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTTdTVUZGY2tVc1NVRkJTU3hEUVVGRExFZEJRVWNzUlVGQlJTeERRVUZETzFGQlExUXNNRVZCUVRCRk8xRkJRekZGTEU5QlFVODdTVUZEVkN4RFFVRkRPMGxCUlVRc1RVRkJUU3hYUVVGWExFZEJRV0VzUlVGQlJTeERRVUZETzBsQlEycERMRXRCUVVzc1RVRkJUU3hSUVVGUkxFbEJRVWtzVTBGQlV5eEZRVUZGTEVOQlFVTTdVVUZEYWtNc1RVRkJUU3hyUWtGQmEwSXNSMEZCUnl4UlFVRlJMRU5CUVVNc1YwRkJWeXhEUVVGRE8xRkJRMmhFTEUxQlFVMHNWVUZCVlN4SFFVTmtMRTlCUVU4c2EwSkJRV3RDTEV0QlFVc3NVVUZCVVR0WlFVTndReXhEUVVGRExFTkJRVU1zYTBKQlFXdENPMWxCUTNCQ0xFTkJRVU1zUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUXpsRExFbEJRVWtzVlVGQlZTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRkZCUVZFc1EwRkJReXhWUVVGVkxFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEzQkVMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVVUZETDBJc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRFJDeHhRa0ZCY1VJc1EwRkJReXhMUVVGTExFVkJRVVVzVjBGQlZ5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUlc1RUxDdEZRVUVyUlR0SlFVTXZSU3gzUlVGQmQwVTdTVUZEZUVVc1JVRkJSVHRKUVVOR0xESkZRVUV5UlR0SlFVTXpSU3hyUmtGQmEwWTdTVUZEYkVZc2EwTkJRV3RETzBsQlEyeERMRTFCUVUwc1VVRkJVU3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGblFpeERRVUZETzBsQlEzUkZMRTFCUVUwc1MwRkJTeXhIUVVGSExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVd0Q0xFTkJRVmtzUTBGQlF6dEpRVU0xUkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhMUVVGTExFTkJRVU1zV1VGQldTeERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVWc1JDeE5RVUZOTEU5QlFVOHNSMEZCU1N4TFFVRmhMRU5CUVVNc1MwRkJXU3hEUVVGRExFTkJRVU03U1VGRE4wTXNUVUZCVFN4dFFrRkJiVUlzUjBGRGRrSXNUMEZCVHl4UFFVRlBMRXRCUVVzc1YwRkJWeXhKUVVGSkxFOUJRVThzUzBGQlN5eEpRVUZKTEVOQlFVTTdTVUZGY2tRc2IwWkJRVzlHTzBsQlEyNUdMRTlCUVdVc1EwRkJReXh6UWtGQmMwSXNRMEZEY2tNc1UwRkJVeXhGUVVOU0xFOUJRV1VzUTBGQlF5eHBRa0ZCYVVJc1JVRkRiRU1zVjBGQlZ5eERRVU5hTEVOQlFVTTdTVUZGUml4dFJrRkJiVVk3U1VGRGJrWXNLMFZCUVN0Rk8wbEJReTlGTEVsQlFVa3NiVUpCUVcxQ0xFVkJRVVVzUTBGQlF6dFJRVU40UWl4TFFVRkxMRTFCUVUwc1EwRkJReXhKUVVGSkxGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEzcENMRTFCUVUwc1YwRkJWeXhIUVVGSExFdEJRVXNzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4RlFVRkZMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVONlJTeFBRVUZsTEVOQlFVTXNjMEpCUVhOQ0xFTkJRM0pETEZkQlFWY3NSVUZEVml4UFFVRmxMRU5CUVVNc2FVSkJRV2xDTEVWQlEyeERMRmRCUVZjc1EwRkRXaXhEUVVGRE8xRkJRMG9zUTBGQlF6dEpRVU5JTEVOQlFVTTdRVUZEU0N4RFFVRkRPMEZCUlVRc1RVRkJUU3hEUVVGRExFdEJRVXNzVlVGQlZTeHpRa0ZCYzBJc1EwRkZNVU1zVDBGQkswSXNSVUZETDBJc1NVRkJkVVFzUlVGRGRrUXNTVUZCTWtJc1JVRkRNMElzUzBGQlVUdEpRVVZTTEUxQlFVMHNVMEZCVXl4SFFVRkhMRU5CUTJoQ0xFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkRVaXhEUVVGRE8wbEJRemxDTEUxQlFVMHNVVUZCVVN4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRm5RaXhEUVVGRE8wbEJRM1JGTEVsQlFVa3NVVUZCVVN4RFFVRkRMRTFCUVUwc1MwRkJTeXhUUVVGVExFTkJRVU1zVFVGQlRUdFJRVU4wUXl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVOeVFpeHRSRUZCYlVRc1EwRkRjRVFzUTBGQlF6dEpRVVZLTEUxQlFVMHNSMEZCUnl4SFFVTlFMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eERRVUZETzFGQlEzQkNMRmxCUVZrc1EwRkRWaXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCZDBNc1EwRkRMMFFzUTBGQlF6dEpRVU5LTEVsQlFVa3NRMEZCUXl4SFFVRkhPMUZCUTA0c1RVRkJUU3hKUVVGSkxHVkJRV1VzUTBGRGRrSXNPRU5CUVRoRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUTNaRkxFTkJRVU03U1VGRlNpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNN1NVRkRjRVFzVFVGQlRTeFZRVUZWTEVkQlEyUXNUMEZCVHl4clFrRkJhMElzUzBGQlN5eFJRVUZSTzFGQlEzQkRMRU5CUVVNc1EwRkJReXhyUWtGQmEwSTdVVUZEY0VJc1EwRkJReXhEUVVGRExHdENRVUZyUWl4RFFVRkRMRXRCUVVzc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZGT1VNc2JVUkJRVzFFTzBsQlEyNUVMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1VVRkRla0lzVFVGQlRTeERRVUZETEVkQlEwd3NUMEZCVHl4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zVjBGQlZ5eExRVUZMTEZGQlFWRTdXVUZETVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhPMWxCUXpGQ0xFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1YwRkJWeXhEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRVFzU1VGQlNTeERRVUZETEV0QlFVc3NWVUZCVlR0WlFVTnNRaXhOUVVGTkxFbEJRVWtzWjBKQlFXZENMRU5CUTNoQ0xIZERRVUYzUXl4RFFVRkRMRTlCUVU4c1ZVRkJWU3hGUVVGRkxFTkJRemRFTEVOQlFVTTdTVUZEVGl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVWSUxFMUJRVTBzVlVGQlZTeEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM1JFTEcxR1FVRnRSanRKUVVOc1JpeFBRVUZwUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhWUVVGVkxFVkJRVVVzVlVGQlZTeERRVUZETEVOQlFVTTdRVUZEY2tVc1EwRkJRenRCUVVWRUxFMUJRVTBzUTBGQlF5eExRVUZMTEZWQlFWVXNiMEpCUVc5Q0xFTkJSWGhETEU5QlFUWkNMRVZCUXpkQ0xFbEJRWFZFTEVWQlEzWkVMRWxCUVRKQ0xFVkJRek5DTEV0QlFWRTdTVUZGVWl4TlFVRk5MRk5CUVZNc1IwRkJSeXhEUVVOb1FpeExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRMUlzUTBGQlF6dEpRVU01UWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJaMElzUTBGQlF6dEpRVU4wUlN4SlFVRkpMRkZCUVZFc1EwRkJReXhOUVVGTkxFdEJRVXNzVTBGQlV5eERRVUZETEUxQlFVMDdVVUZEZEVNc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNiVVJCUVcxRUxFTkJRM0JFTEVOQlFVTTdTVUZGU2l4TlFVRk5MRU5CUVVNc1IwRkRUQ3hQUVVGUExFTkJRVU1zWTBGQll5eERRVUZETEhsQ1FVRjVRaXhEUVVGRExFbEJRVWtzUzBGQlN6dFJRVU40UkN4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExHTkJRV01zUTBGQlF5eGxRVUZsTEVOQlFVTTdVVUZEZWtNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF6dEpRVVZvUWl4TlFVRk5MRWRCUVVjc1IwRkRVQ3hEUVVGRExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRM0pGTEVsQlFVa3NRMEZCUXl4SFFVRkhPMUZCUTA0c1RVRkJUU3hKUVVGSkxHVkJRV1VzUTBGRGRrSXNPRU5CUVRoRExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUTNaRkxFTkJRVU03U1VGRlNpeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4WFFVRlhMRU5CUVVNN1NVRkRjRVFzVFVGQlRTeFZRVUZWTEVkQlEyUXNUMEZCVHl4clFrRkJhMElzUzBGQlN5eFJRVUZSTzFGQlEzQkRMRU5CUVVNc1EwRkJReXhyUWtGQmEwSTdVVUZEY0VJc1EwRkJReXhEUVVGRExFMUJRVTBzYTBKQlFXdENMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVVnVSQ3hQUVVGcFF5eERRVUZETEZGQlFWRXNRMEZCUXl4VlFVRlZMRU5CUVVNc1EwRkJRenRCUVVNeFJDeERRVUZETzBGQlJVUXNUVUZCVFN4RFFVRkRMRXRCUVVzc1ZVRkJWU3h6UWtGQmMwSXNRMEZGTVVNc1QwRkJLMElzUlVGREwwSXNTVUZCZFVRc1JVRkRka1FzUjBGQk1FSXNSVUZETVVJc1MwRkJVVHRCUVVOU0xEWkVRVUUyUkR0QlFVTTNSQ3hSUVVGWE8wbEJSVmdzVFVGQlRTeFRRVUZUTEVkQlFVY3NRMEZEYUVJc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVTlNMRU5CUVVNN1NVRkRPVUlzVFVGQlRTeFJRVUZSTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFXZENMRU5CUVVNN1NVRkRia1VzU1VGQlNTeFJRVUZSTEVOQlFVTXNUVUZCVFN4TFFVRkxMRk5CUVZNc1EwRkJReXhOUVVGTk8xRkJRM1JETEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUTNKQ0xHMUVRVUZ0UkN4RFFVTndSQ3hEUVVGRE8wbEJSVW9zVFVGQlRTeEhRVUZITEVkQlExQXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU03VVVGRGNFSXNXVUZCV1N4RFFVTldMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUYzUXl4RFFVTXZSQ3hEUVVGRE8wbEJRMG9zU1VGQlNTeERRVUZETEVkQlFVYzdVVUZEVGl4TlFVRk5MRWxCUVVrc1pVRkJaU3hEUVVOMlFpdzRRMEZCT0VNc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZEZGtVc1EwRkJRenRKUVVWS0xFMUJRVTBzYTBKQlFXdENMRWRCUVVjc1UwRkJVeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEZkQlFWY3NRMEZCUXp0SlFVTndSQ3hOUVVGTkxGVkJRVlVzUjBGRFpDeFBRVUZQTEd0Q1FVRnJRaXhMUVVGTExGRkJRVkU3VVVGRGNFTXNRMEZCUXl4RFFVRkRMR3RDUVVGclFqdFJRVU53UWl4RFFVRkRMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dEpRVVU1UXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZPMUZCUTNoQ0xFMUJRVTBzUTBGQlF5eEhRVU5NTEU5QlFVOHNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExGZEJRVmNzUzBGQlN5eFJRVUZSTzFsQlF6RkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWMEZCVnp0WlFVTXhRaXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRUxFbEJRVWtzUTBGQlF5eExRVUZMTEZWQlFWVTdXVUZEYkVJc1RVRkJUU3hKUVVGSkxHZENRVUZuUWl4RFFVTjRRaXgzUTBGQmQwTXNRMEZCUXl4UFFVRlBMRlZCUVZVc1JVRkJSU3hEUVVNM1JDeERRVUZETzBsQlEwNHNRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkZTQ3hOUVVGTkxGVkJRVlVzUjBGQlNTeFJRVUYzUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGRrVXNhVVpCUVdsR08wbEJRMmhHTEU5QlFXbERMRU5CUVVNc1QwRkJUeXhEUVVGRExGVkJRVlVzUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXp0QlFVTnlSU3hEUVVGRE8wRkJSVVFzVFVGQlRTeERRVUZETEV0QlFVc3NWVUZCVlN4elFrRkJjMElzUTBGTk1VTXNUMEZCY1VJc1JVRkRja0lzU1VGQllTeEZRVU5pTEVkQlFXZENMRVZCUTJoQ0xFdEJRVkU3U1VGRlVpeE5RVUZOTEZOQlFWTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCVVN4RFFVRkRPMGxCUXk5RUxFMUJRVTBzVVVGQlVTeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZuUWl4RFFVRkRPMGxCUTI1RkxFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNTMEZCU3l4VFFVRlRMRU5CUVVNc1RVRkJUVHRSUVVOMFF5eE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXh0UkVGQmJVUXNRMEZEY0VRc1EwRkJRenRKUVVWS0xFMUJRVTBzUTBGQlF5eEhRVU5NTEU5QlFVOHNRMEZCUXl4alFVRmpMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNTVUZCU1N4TFFVRkxPMUZCUTNoRUxFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNZMEZCWXl4RFFVRkRMR1ZCUVdVc1EwRkJRenRSUVVONlF5eERRVUZETEVOQlFVTXNVMEZCVXl4RFFVRkRPMGxCUldoQ0xFMUJRVTBzUjBGQlJ5eEhRVU5RTEVOQlFVTTdVVUZEUkN4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF6dFJRVU53UWl4WlFVRlpMRU5CUTFZc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFYZERMRU5CUXk5RUxFTkJRVU03U1VGRFNpeEpRVUZKTEVOQlFVTXNSMEZCUnp0UlFVTk9MRTFCUVUwc1NVRkJTU3hsUVVGbExFTkJRM1pDTERoRFFVRTRReXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVTjJSU3hEUVVGRE8wbEJSVW9zVFVGQlRTeHJRa0ZCYTBJc1IwRkJSeXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNWMEZCVnl4RFFVRkRPMGxCUTNCRUxFMUJRVTBzVlVGQlZTeEhRVU5rTEU5QlFVOHNhMEpCUVd0Q0xFdEJRVXNzVVVGQlVUdFJRVU53UXl4RFFVRkRMRU5CUVVNc2EwSkJRV3RDTzFGQlEzQkNMRU5CUVVNc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzBsQlJUZERMRTlCUVdsRExFTkJRVU1zVVVGQlVTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMEZCUXpGRUxFTkJRVU03UVVGRlJDeFRRVUZUTEZWQlFWVXNRMEZEYWtJc1ZVRkJkVU1zUlVGRGRrTXNTVUZCYzBRc1JVRkRkRVFzVFVGQmMwTTdTVUZGZEVNc1QwRkJUeXhUUVVGVExHVkJRV1VzUTBGQlF5eE5RVUZqTEVWQlFVVXNWMEZCYVVJN1VVRkRMMFFzVTBGQlV5eGhRVUZoTEVOQlFVTXNUVUZCWXl4RlFVRkZMRmRCUVdsQ08xbEJRM1JFTEUxQlFVMHNSMEZCUnl4SFFVRkhMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVRkRPMWxCUXpWRExFMUJRVTBzVFVGQlRTeEhRVUZuUWl4TlFVRk5MRU5CUVVNc1YwRkJNRUlzUTBGQlF6dFpRVVU1UkN4TlFVRk5MRWxCUVVrc1IwRkJSeXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFYRkNMRVZCUVVVc1IwRkJSeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFsQlF6VkVMRTFCUVUwc1YwRkJWeXhIUVVGSExFbEJRVWtzUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4WFFVRlhMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03V1VGRGNFUXNWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFpRVU0xUWl4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFTkJRVU1zUjBGQlJ5eFhRVUZYTEVOQlFVTXNRMEZCUXp0WlFVTndReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEUxQlFYRkNMRVZCUVVVc1IwRkJSeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzFsQlJTOURMRTFCUVUwc1ZVRkJWU3hIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNUVUZCY1VJc1JVRkJSU3hKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZEYmtVc1RVRkJUU3hwUWtGQmFVSXNSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zVjBGQlZ5eEpRVUZKTEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUTJoRkxHbENRVUZwUWl4RFFVRkRMRWRCUVVjc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFpRVU5zUXl4VlFVRlZMRU5CUVVNc1YwRkJWeXhIUVVGSExFTkJRVU1zUjBGQlJ5eHBRa0ZCYVVJc1EwRkJReXhEUVVGRE8xbEJRMmhFTEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1RVRkJjVUlzUlVGQlJTeEpRVUZKTEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNN1dVRkZkRVFzVFVGQlRTeGhRVUZoTEVkQlEycENMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU1zVFVGQmNVSXNSVUZCUlN4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFsQlF6bEVMRTFCUVUwc2IwSkJRVzlDTEVkQlFVYzdaMEpCUXpOQ0xFZEJRVWNzWVVGQllUdG5Ra0ZEYUVJc1EwRkJReXhYUVVGclFpeERRVUZETEVWQlFVVXNSVUZCUlR0aFFVTjZRaXhEUVVGRE8xbEJRMFlzVVVGQlVTeERRVUZETEVkQlFVY3NRMEZEVml4TlFVRnhRaXhGUVVOeVFpeE5RVUZOTEVOQlFVTXNVMEZCVXl4RlFVTm9RaXh2UWtGQmIwSXNRMEZEY2tJc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRlJDeE5RVUZOTEVsQlFVa3NSMEZCVlN4RlFVRkZMRU5CUVVNN1VVRkRka0lzU1VGQlNTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUTJwQ0xDdENRVUVyUWp0WlFVTXZRaXhOUVVGTkxGVkJRVlVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNZVUZCWVN4RFFVRkRMRTFCUVhGQ0xFTkJRVU1zUTBGQlF6dFpRVU5xUlN4VlFVRlZMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTNoQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVsQlFVa3NUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03YjBKQlEzcENMRlZCUVZVc1EwRkJReXhWUVVGVkxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVVXNUVUZCWXl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZETjBRc1EwRkJRenRaUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEwZ3NUMEZCVHl4TlFVRk5MRU5CUVVNN1VVRkRhRUlzUTBGQlF6dGhRVUZOTEVOQlFVTTdXVUZEVGl4TlFVRk5MRk5CUVZNc1IwRkRZaXhQUVVGUExGVkJRVlVzUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRExFTkJRVU1zVlVGQlZTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMWxCUTNSRkxDdEZRVUVyUlR0WlFVTXZSU3hOUVVGTkxHZENRVUZuUWl4SFFVRkhMRWRCUVVjc1UwRkJVeXhWUVVGVkxFTkJRVU03V1VGRGFFUXNUVUZCVFN4aFFVRmhMRWRCUVVjc1IwRkJSeXhUUVVGVExFOUJRVThzUTBGQlF6dFpRVU14UXl4TlFVRk5MRzFDUVVGdFFpeEhRVUZITEVWQlFVVXNWMEZCVnl4RlFVRkZMRlZCUVZVc1JVRkJSU3hEUVVGRE8xbEJRM2hFTEUxQlFVMHNkMEpCUVhkQ0xFZEJRVWM3WjBKQlF5OUNMRkZCUVZFc1JVRkJSU3g1UTBGQmVVTTdaMEpCUTI1RUxFdEJRVXNzUlVGQlJTeG5Ra0ZCWjBJN1lVRkRlRUlzUTBGQlF6dFpRVU5HTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUTFBc1NVRkJTU3hGUVVGRkxFVkJRMDRzVTBGQlV5eEZRVUZGTEVWQlExZ3NZVUZCWVR0WlFVTmlMSEZGUVVGeFJUdFpRVU55UlN3NFJVRkJPRVU3V1VGRE9VVXNORVZCUVRSRk8xbEJRelZGTEVWQlFVVXNRMEZEUVN4WlFVRlpMRU5CUVVNc1IwRkJSeXhGUVVOb1FpdzBRa0ZCYlVNc1JVRkRia01zYlVKQlFXMUNMRVZCUTI1Q0xIZENRVUYzUWl4RFFVTjZRanRaUVVORUxEWkVRVUUyUkR0WlFVTTNSQ3hSUVVGUkxFTkJRMDRzYzBKQlFYTkNMRVZCUTNSQ0xFVkJRVVVzVjBGQlZ5eEZRVUZGTEZWQlFWVXNSVUZCUlN4RlFVTXpRanRuUWtGRFJTeFJRVUZSTEVWQlFVVXNSVUZCUlR0blFrRkRXaXhMUVVGTExFVkJRVVVzWVVGQllUdGhRVU55UWl4RFFVTkdMRVZCUTBRc1RVRkJUU3hEUVVOS0xHOUNRVUV5UWl4RlFVTXpRaXhGUVVGRkxGZEJRVmNzUlVGQlJTeFZRVUZWTEVWQlFVVXNSVUZETTBJN1owSkJRMFVzVVVGQlVTeEZRVUZGTEVWQlFVVTdaMEpCUTFvc1MwRkJTeXhGUVVGRkxHRkJRV0U3WVVGRGNrSXNRMEZEUml4RlFVTkVMRkZCUVZFc1EwRkRUaXh6UWtGQk5rSXNSVUZETjBJc1JVRkJSU3hYUVVGWExFVkJRVVVzVlVGQlZTeEZRVUZGTEVWQlF6TkNPMmRDUVVORkxGRkJRVkVzUlVGQlJTeEZRVUZGTzJkQ1FVTmFMRXRCUVVzc1JVRkJSU3hoUVVGaE8yRkJRM0pDTEVOQlEwWXNSVUZEUkN4UlFVRlJMRU5CUTA0c2MwSkJRVFpDTEVWQlF6ZENMRVZCUVVVc1YwRkJWeXhGUVVGRkxGVkJRVlVzUlVGQlJTeEZRVU16UWp0blFrRkRSU3hSUVVGUkxFVkJRVVVzUlVGQlJUdG5Ra0ZEV2l4TFFVRkxMRVZCUVVVc1lVRkJZVHRoUVVOeVFpeERRVU5HTEVOQlEwWXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkRSQ3hQUVVGUExFdEJRVXNzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dEpRVU0zUXl4RFFVRkRMRU5CUVVNN1FVRkRTaXhEUVVGRE8wRkJSVVFzVFVGQlRTeFZRVUZWTEZkQlFWY3NRMEZEZWtJc1lVRkJNRU1zZVVKQlFYbENPMGxCUlc1RkxGTkJRVk1zVjBGQlZ5eERRVUZETEZWQlFYVkRPMUZCUXpGRUxFOUJRVThzVlVGQlZTeERRVUZETEZWQlFWVXNSVUZCUlN4bFFVRmxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGVrUXNRMEZCUXp0SlFVVkVMRTlCUVU4c1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eGxRVUZsTEVOQlFVTXNUMEZCVHl4RFFVRkRPMU5CUXpORExFMUJRVTBzUTBGQlF6dFJRVU5PTEZOQlFWTXNSVUZCUlN4WFFVRlhPMUZCUTNSQ0xFbEJRVWtzUlVGQlJTeERRVUZETEZWQlFWVXNRMEZCUXp0TFFVTnVRaXhEUVVGRE8xTkJRMFFzUzBGQlN5eEZRVUZGTEVOQlFVTTdRVUZEWWl4RFFVRkRPMEZCUlVRc1RVRkJUU3hWUVVGVkxGVkJRVlVzUTBGQlF5eFZRVUYxUXp0SlFVTm9SU3hUUVVGVExGVkJRVlVzUTBGQlF5eFZRVUYxUXp0UlFVTjZSQ3hQUVVGUExGVkJRVlVzUTBGQlF5eFZRVUZWTEVWQlFVVXNaVUZCWlN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJRM2hFTEVOQlFVTTdTVUZGUkN4UFFVRlBMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zWlVGQlpTeERRVUZETEUxQlFVMHNRMEZCUXp0VFFVTXhReXhOUVVGTkxFTkJRVU03VVVGRFRpeFRRVUZUTEVWQlFVVXNWVUZCVlR0UlFVTnlRaXhKUVVGSkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTTdTMEZEYmtJc1EwRkJRenRUUVVORUxFdEJRVXNzUlVGQlJTeERRVUZETzBGQlEySXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN1hHNGdJRUYxZEdodmNtbDZZWFJwYjI1RmNuSnZjaXhjYmlBZ1VtVndieXhjYmlBZ1EyOXVkR1Y0ZEN4Y2JpQWdWVzV6ZFhCd2IzSjBaV1JGY25KdmNpeGNiaUFnVW1Wd2IzTnBkRzl5ZVN4Y2JpQWdRMjl1ZEdWNGRFOW1MRnh1SUNCRGIyNTBaWGgwZFdGc1FYSm5jeXhjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQm5aVzVsY21GMFpXUXNYRzRnSUVsdWRHVnlibUZzUlhKeWIzSXNYRzRnSUU1dmRFWnZkVzVrUlhKeWIzSXNYRzRnSUc5dVEzSmxZWFJsTEZ4dUlDQnZia1JsYkdWMFpTeGNiaUFnYjI1U1pXRmtMRnh1SUNCdmJsVndaR0YwWlN4Y2JpQWdjbVZoWkc5dWJIa3NYRzRnSUhSeVlXNXphV1Z1ZEN4Y2JpQWdWbUZzYVdSaGRHbHZia1Z5Y205eUxGeHVJQ0JFUWt0bGVYTXNYRzRnSUVSQ1QzQmxjbUYwYVc5dWN5eGNiaUFnYjI0c1hHNTlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR0l0WkdWamIzSmhkRzl5YzF3aU8xeHVhVzF3YjNKMElIc2dUVzlrWld3c0lISmxjWFZwY21Wa0lIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtaV052Y21GMGIzSXRkbUZzYVdSaGRHbHZibHdpTzF4dWFXMXdiM0owSUhzZ1JtRmljbWxqVFc5a1pXeExaWGx6SUgwZ1puSnZiU0JjSWk0dlkyOXVjM1JoYm5SelhDSTdYRzVwYlhCdmNuUWdkSGx3WlNCN0lFTnZiblJsZUhRZ1lYTWdTRXhEYjI1MFpYaDBJSDBnWm5KdmJTQmNJbVpoWW5KcFl5MWpiMjUwY21GamRDMWhjR2xjSWp0Y2JtbHRjRzl5ZENCN0lFTnNhV1Z1ZEVsa1pXNTBhWFI1SUgwZ1puSnZiU0JjSW1aaFluSnBZeTF6YUdsdExXRndhVndpTzF4dWFXMXdiM0owSUhzZ1JtRmljbWxqUlZKRE1qQkRiMjUwY21GamRDQjlJR1p5YjIwZ1hDSXVMaTlqYjI1MGNtRmpkSE12WlhKak1qQXZaWEpqTWpCamIyNTBjbUZqZEZ3aU8xeHVhVzF3YjNKMElIdGNiaUFnWVhCd2JIa3NYRzRnSUVOdmJuTjBjblZqZEc5eUxGeHVJQ0JFWldOdmNtRjBhVzl1TEZ4dUlDQnRaWFJoWkdGMFlTeGNiaUFnVFdWMFlXUmhkR0VzWEc0Z0lIQnliM0FzWEc0Z0lIQnliM0JOWlhSaFpHRjBZU3hjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1pXTnZjbUYwYVc5dVhDSTdYRzVwYlhCdmNuUWdleUJHWVdKeWFXTkdiR0ZuY3lCOUlHWnliMjBnWENJdUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5QjBiMUJoYzJOaGJFTmhjMlVnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJ4dloyZHBibWRjSWp0Y2JtbHRjRzl5ZENCN0lFWmhZbkpwWTBOdmJuUnlZV04wUm14aFozTWdmU0JtY205dElGd2lMaTR2WTI5dWRISmhZM1J6TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnWENJdUxpOXphR0Z5WldRdmIzWmxjbkpwWkdWelhDSTdYRzVwYlhCdmNuUWdleUIwZVhCbElFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ0I5SUdaeWIyMGdYQ0l1TGk5amIyNTBjbUZqZEhNdlEyOXVkSEpoWTNSRGIyNTBaWGgwWENJN1hHNWNibVY0Y0c5eWRDQjBlWEJsSUZKbGMyOXNkbVZ5Um5WdVkzUnBiMjQ4VkQ0Z1BTQW9YRzRnSUcxdlpHVnNPaUJEYjI1emRISjFZM1J2Y2p4TmIyUmxiRHhoYm5rK1BpeGNiaUFnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThZVzU1UGx4dUtTQTlQaUJRY205dGFYTmxQRlErSUh3Z1ZEdGNibHh1Wlhod2IzSjBJR052Ym5OMElFUmxabUYxYkhSRGIyNTBjbUZqZEZKbGMyOXNkbVZ5SUQwZ0tGeHVJQ0J0YjJSbGJEb2dRMjl1YzNSeWRXTjBiM0k4VFc5a1pXdzhZVzU1UGo0c1hHNGdJQzh2SUdWemJHbHVkQzFrYVhOaFlteGxMVzVsZUhRdGJHbHVaU0JBZEhsd1pYTmpjbWx3ZEMxbGMyeHBiblF2Ym04dGRXNTFjMlZrTFhaaGNuTmNiaUFnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThZVzU1UGx4dUtTQTlQaUI3WEc0Z0lISmxkSFZ5YmlCdGIyUmxiQzV1WVcxbElDc2dYQ0pEYjI1MGNtRmpkRndpTzF4dWZUdGNibHh1Wlhod2IzSjBJSFI1Y0dVZ1EyaGhhVzVqYjJSbFRXVjBZV1JoZEdFZ1BTQjdYRzRnSUhKbGMyOXNkbVZ5T2lCemRISnBibWNnZkNCU1pYTnZiSFpsY2taMWJtTjBhVzl1UEhOMGNtbHVaejQ3WEc1OU8xeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdZMjl1ZEhKaFkzUW9jbVZ6YjJ4MlpYSTZJR0Z1ZVNrZ2UxeHVJQ0JqYjI1emRDQnRaWFJoT2lCRGFHRnBibU52WkdWTlpYUmhaR0YwWVNBOUlIc2djbVZ6YjJ4MlpYSWdmVHRjYmlBZ2NtVjBkWEp1SUcxbGRHRmtZWFJoS0VaaFluSnBZMDF2WkdWc1MyVjVjeTVEVDA1VVVrRkRWQ3dnYldWMFlTazdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCamFHRnBibU52WkdVb2NtVnpiMngyWlhJNklHRnVlU2tnZTF4dUlDQmpiMjV6ZENCdFpYUmhPaUJEYUdGcGJtTnZaR1ZOWlhSaFpHRjBZU0E5SUhzZ2NtVnpiMngyWlhJZ2ZUdGNiaUFnY21WMGRYSnVJRzFsZEdGa1lYUmhLRVpoWW5KcFkwMXZaR1ZzUzJWNWN5NURTRUZKVGtOUFJFVXNJRzFsZEdFcE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnWTJoaGJtNWxiQ2h5WlhOdmJIWmxjam9nWVc1NUtTQjdYRzRnSUdOdmJuTjBJRzFsZEdFNklFTm9ZV2x1WTI5a1pVMWxkR0ZrWVhSaElEMGdleUJ5WlhOdmJIWmxjaUI5TzF4dUlDQnlaWFIxY200Z2JXVjBZV1JoZEdFb1JtRmljbWxqVFc5a1pXeExaWGx6TGtOSVFVNU9SVXdzSUcxbGRHRXBPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJGZUhSeVlXTjBjeUIwYUdVZ1RWTlFJRWxFSUdaeWIyMGdaV2wwYUdWeUlHRWdjM1J5YVc1bklHOXlJRU5zYVdWdWRFbGtaVzUwYVhSNUlHOWlhbVZqZEZ4dUlDb2dRSEJoY21GdElHbGtaVzUwYVhSNUlDMGdWR2hsSUdsa1pXNTBhWFI1SUhaaGJIVmxJSGRvYVdOb0lHTmhiaUJpWlNCaElITjBjbWx1WnlCTlUxQWdTVVFnYjNJZ1EyeHBaVzUwU1dSbGJuUnBkSGtnYjJKcVpXTjBYRzRnS2lCQWNtVjBkWEp1Y3lCVWFHVWdUVk5RSUVsRUlHRnpJR0VnYzNSeWFXNW5MQ0J2Y2lCMWJtUmxabWx1WldRZ2FXWWdibTkwSUdGMllXbHNZV0pzWlZ4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdaWGgwY21GamRFMXpjRWxrS0Z4dUlDQnBaR1Z1ZEdsMGVUb2djM1J5YVc1bklId2dRMnhwWlc1MFNXUmxiblJwZEhrZ2ZDQjFibVJsWm1sdVpXUmNiaWs2SUhOMGNtbHVaeUI4SUhWdVpHVm1hVzVsWkNCN1hHNGdJR2xtSUNnaGFXUmxiblJwZEhrcElISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJR2xtSUNoMGVYQmxiMllnYVdSbGJuUnBkSGtnUFQwOUlGd2ljM1J5YVc1blhDSXBJSEpsZEhWeWJpQnBaR1Z1ZEdsMGVUdGNiaUFnY21WMGRYSnVJR2xrWlc1MGFYUjVMbWRsZEUxVFVFbEVLQ2s3WEc1OVhHNWNiaThxS2x4dUlDb2dSR1ZqYjNKaGRHOXlJR1p2Y2lCdFlYSnJhVzVuSUcxbGRHaHZaSE1nZEdoaGRDQnlaWEYxYVhKbElHOTNibVZ5YzJocGNDQmhkWFJvYjNKcGVtRjBhVzl1TGx4dUlDb2dRMmhsWTJ0eklIUm9aU0J2ZDI1bGNpQnZaaUIwYUdVZ2RHOXJaVzRnWW1WbWIzSmxJR0ZzYkc5M2FXNW5JSFJvWlNCdFpYUm9iMlFnZEc4Z1ltVWdaWGhsWTNWMFpXUXVYRzRnS2x4dUlDb2dRR1Y0WVcxd2JHVmNiaUFxSUdCZ1lIUjVjR1Z6WTNKcGNIUmNiaUFxSUdOc1lYTnpJRlJ2YTJWdVEyOXVkSEpoWTNRZ1pYaDBaVzVrY3lCRGIyNTBjbUZqZENCN1hHNGdLaUFnSUVCUGQyNWxjaWdwWEc0Z0tpQWdJR0Z6ZVc1aklFMXBiblFvWTNSNE9pQkRiMjUwWlhoMExDQmhiVzkxYm5RNklHNTFiV0psY2lrZ2UxeHVJQ29nSUNBZ0lDOHZJRTFwYm5RZ2RHOXJaVzRnYkc5bmFXTmNiaUFxSUNBZ2ZWeHVJQ29nZlZ4dUlDb2dZR0JnWEc0Z0tseHVJQ29nUUhKbGRIVnlibk1nZTAxbGRHaHZaRVJsWTI5eVlYUnZjbjBnUVNCdFpYUm9iMlFnWkdWamIzSmhkRzl5SUhSb1lYUWdZMmhsWTJ0eklHOTNibVZ5YzJocGNDQmhkWFJvYjNKcGVtRjBhVzl1TGx4dUlDb3ZYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdUM2R1WlhJb0tTQjdYRzRnSUhKbGRIVnliaUJtZFc1amRHbHZiaUFvWEc0Z0lDQWdkR0Z5WjJWME9pQmhibmtzWEc0Z0lDQWdjSEp2Y0dWeWRIbExaWGs2SUhOMGNtbHVaeXhjYmlBZ0lDQmtaWE5qY21sd2RHOXlPaUJRY205d1pYSjBlVVJsYzJOeWFYQjBiM0pjYmlBZ0tTQjdYRzRnSUNBZ1kyOXVjM1FnYjNKcFoybHVZV3hOWlhSb2IyUWdQU0JrWlhOamNtbHdkRzl5TG5aaGJIVmxPMXh1WEc0Z0lDQWdaR1Z6WTNKcGNIUnZjaTUyWVd4MVpTQTlJR0Z6ZVc1aklHWjFibU4wYVc5dUlDaGNiaUFnSUNBZ0lIUm9hWE02SUVaaFluSnBZMFZTUXpJd1EyOXVkSEpoWTNRc1hHNGdJQ0FnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBZ0lDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1kzUjRPaUJJVEVOdmJuUmxlSFFnUFNCaGNtZHpXekJkTzF4dUlDQWdJQ0FnWTI5dWMzUWdZV052ZFc1MFNXUWdQU0JqZEhndVkyeHBaVzUwU1dSbGJuUnBkSGt1WjJWMFNVUW9LVHRjYmx4dUlDQWdJQ0FnWTI5dWMzUWdjMlZzWldOMElEMGdZWGRoYVhRZ0tIUm9hWE1nWVhNZ1JtRmljbWxqUlZKRE1qQkRiMjUwY21GamRDbGJYRzRnSUNBZ0lDQWdJRndpZEc5clpXNVNaWEJ2YzJsMGIzSjVYQ0pjYmlBZ0lDQWdJRjB1YzJWc1pXTjBLQ2s3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJSFJ2YTJWdWN5QTlJR0YzWVdsMElITmxiR1ZqZEM1bGVHVmpkWFJsS0dOMGVDazdYRzVjYmlBZ0lDQWdJR2xtSUNoMGIydGxibk11YkdWdVozUm9JRDA5SURBcElIdGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRTV2ZEVadmRXNWtSWEp5YjNJb1hDSk9ieUIwYjJ0bGJuTWdZWFpoYVdGc1lteGxYQ0lwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9kRzlyWlc1ekxteGxibWQwYUNBK0lERXBJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9ZRlJ2SUcxaGJua2dkRzlyWlc0Z1lYWmhhV3hoWW14bElEb2dKSHQwYjJ0bGJuTXViR1Z1WjNSb2ZXQXBPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0JwWmlBb2RHOXJaVzV6V3pCZExtOTNibVZ5SUNFOUlHRmpiM1Z1ZEVsa0tTQjdYRzRnSUNBZ0lDQWdJSFJvY205M0lHNWxkeUJCZFhSb2IzSnBlbUYwYVc5dVJYSnliM0lvWEc0Z0lDQWdJQ0FnSUNBZ1lGVnpaWElnYm05MElHRjFkR2h2Y21sNlpXUWdkRzhnY25WdUlDUjdjSEp2Y0dWeWRIbExaWGw5SUc5dUlIUm9aU0IwYjJ0bGJtQmNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnY21WMGRYSnVJR0YzWVdsMElHOXlhV2RwYm1Gc1RXVjBhRzlrTG1Gd2NHeDVLSFJvYVhNc0lHRnlaM01wTzF4dUlDQWdJSDA3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdaR1Z6WTNKcGNIUnZjanRjYmlBZ2ZUdGNibjFjYmx4dVpYaHdiM0owSUdGemVXNWpJR1oxYm1OMGFXOXVJRzkzYm1Wa1FubFBia055WldGMFpUeGNiaUFnVFNCbGVIUmxibVJ6SUUxdlpHVnNQR0p2YjJ4bFlXNCtMRnh1SUNCU0lHVjRkR1Z1WkhNZ1VtVndienhOUGl4Y2JpQWdWaXhjYmo0b1hHNGdJSFJvYVhNNklGSXNYRzRnSUdOdmJuUmxlSFE2SUVOdmJuUmxlSFJQWmp4U1BpeGNiaUFnWkdGMFlUb2dWaXhjYmlBZ2EyVjVPaUJyWlhsdlppQk5MRnh1SUNCdGIyUmxiRG9nVFZ4dUtUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJR052Ym5OMElIc2djM1IxWWlCOUlEMGdZMjl1ZEdWNGRDQmhjeUJoYm5rN1hHNWNiaUFnWTI5dWMzUWdZV3hzYjNkSFpXNWxjbUYwYVc5dVQzWmxjbkpwWkdVZ1BWeHVJQ0FnSUdOdmJuUmxlSFF1WjJWMFQzSlZibVJsWm1sdVpXUW9YQ0poYkd4dmQwZGxibVZ5WVhScGIyNVBkbVZ5Y21sa1pWd2lLU0I4ZkNCbVlXeHpaVHRjYmx4dUlDQmpiMjV6ZENCamNtVmhkRzl5SUQwZ1lYZGhhWFFnYzNSMVlpNW5aWFJEY21WaGRHOXlLQ2s3WEc0Z0lHeGxkQ0J2ZDI1bGNpQTlJR055WldGMGIzSXViWE53YVdRN1hHNGdJR052Ym5SbGVIUXViRzluWjJWeUxtbHVabThvWEc0Z0lDQWdZRVY0Y0dWamRHVmtJRzF6Y0dsa0lIUnZJR0psSUNSN2JXOWtaV3hiYTJWNVhYMGdmQ0FrZTI5M2JtVnlmUzRnWEZ4dUlGVnphVzVuSUdGc2JHOTNSMlZ1WlhKaGRHbHZiazkyWlhKeWFXUmxPaUFrZTJGc2JHOTNSMlZ1WlhKaGRHbHZiazkyWlhKeWFXUmxmV0JjYmlBZ0tUdGNibHh1SUNCcFppQW9ZV3hzYjNkSFpXNWxjbUYwYVc5dVQzWmxjbkpwWkdVcElHOTNibVZ5SUQwZ2JXOWtaV3hiYTJWNVhTQS9JRzF2WkdWc1cydGxlVjBnT2lCdmQyNWxjanRjYmx4dUlDQmpiMjV6ZENCelpYUlBkMjVsWkVKNVMyVjVWbUZzZFdVZ1BTQm1kVzVqZEdsdmJpQThUU0JsZUhSbGJtUnpJRTF2WkdWc1BpaGNiaUFnSUNCMFlYSm5aWFE2SUUwc1hHNGdJQ0FnY0hKdmNHVnlkSGxMWlhrNklITjBjbWx1Wnl4Y2JpQWdJQ0IyWVd4MVpUb2djM1J5YVc1bklId2diblZ0WW1WeUlId2dZbWxuYVc1MFhHNGdJQ2tnZTF4dUlDQWdJRTlpYW1WamRDNWtaV1pwYm1WUWNtOXdaWEowZVNoMFlYSm5aWFFzSUhCeWIzQmxjblI1UzJWNUxDQjdYRzRnSUNBZ0lDQmxiblZ0WlhKaFlteGxPaUIwY25WbExGeHVJQ0FnSUNBZ2QzSnBkR0ZpYkdVNklHWmhiSE5sTEZ4dUlDQWdJQ0FnWTI5dVptbG5kWEpoWW14bE9pQjBjblZsTEZ4dUlDQWdJQ0FnZG1Gc2RXVTZJSFpoYkhWbExGeHVJQ0FnSUgwcE8xeHVJQ0I5TzF4dVhHNGdJSE5sZEU5M2JtVmtRbmxMWlhsV1lXeDFaU2h0YjJSbGJDd2dhMlY1SUdGeklITjBjbWx1Wnl3Z2IzZHVaWElwTzF4dWZWeHVYRzVsZUhCdmNuUWdablZ1WTNScGIyNGdiM2R1WldSQ2VTZ3BJSHRjYmlBZ1puVnVZM1JwYjI0Z2IzZHVaV1JDZVNncElIdGNiaUFnSUNCeVpYUjFjbTRnWm5WdVkzUnBiMjRnS0c5aWFqb2dZVzU1TENCaGRIUnlhV0oxZEdVL09pQmhibmtwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJoY0hCc2VTaGNiaUFnSUNBZ0lDQWdjbVZ4ZFdseVpXUW9LU3hjYmlBZ0lDQWdJQ0FnWjJWdVpYSmhkR1ZrS0Nrc1hHNGdJQ0FnSUNBZ0lISmxZV1J2Ym14NUtDa3NYRzRnSUNBZ0lDQWdJRzl1UTNKbFlYUmxLRzkzYm1Wa1FubFBia055WldGMFpTa3NYRzRnSUNBZ0lDQWdJSEJ5YjNCTlpYUmhaR0YwWVNoY2JpQWdJQ0FnSUNBZ0lDQk5aWFJoWkdGMFlTNXJaWGtvUm1GaWNtbGpUVzlrWld4TFpYbHpMa1pCUWxKSlF5d2dSbUZpY21salRXOWtaV3hMWlhsekxrOVhUa1ZFWDBKWktTeGNiaUFnSUNBZ0lDQWdJQ0JoZEhSeWFXSjFkR1ZjYmlBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnS1Nodlltb3NJR0YwZEhKcFluVjBaU2s3WEc0Z0lDQWdmVHRjYmlBZ2ZWeHVYRzRnSUhKbGRIVnliaUJFWldOdmNtRjBhVzl1TG1admNpaEdZV0p5YVdOTmIyUmxiRXRsZVhNdVQxZE9SVVJmUWxrcFhHNGdJQ0FnTG1SbFptbHVaU2g3WEc0Z0lDQWdJQ0JrWldOdmNtRjBiM0k2SUc5M2JtVmtRbmtzWEc0Z0lDQWdJQ0JoY21kek9pQmJYU3hjYmlBZ0lDQjlLVnh1SUNBZ0lDNWhjSEJzZVNncE8xeHVmVnh1WEc1bGVIQnZjblFnWVhONWJtTWdablZ1WTNScGIyNGdkSEpoYm5OaFkzUnBiMjVKWkU5dVEzSmxZWFJsUEZ4dUlDQk5JR1Y0ZEdWdVpITWdUVzlrWld3OFltOXZiR1ZoYmo0c1hHNGdJRklnWlhoMFpXNWtjeUJTWlhCdlBFMCtMRnh1SUNCV0xGeHVQaWhjYmlBZ2RHaHBjem9nVWl4Y2JpQWdZMjl1ZEdWNGREb2dRMjl1ZEdWNGRFOW1QRkkrTEZ4dUlDQmtZWFJoT2lCV0xGeHVJQ0JyWlhrNklHdGxlVzltSUUwc1hHNGdJRzF2WkdWc09pQk5YRzRwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ1kyOXVjM1FnZXlCemRIVmlJSDBnUFNCamIyNTBaWGgwSUdGeklHRnVlVHRjYmlBZ2JXOWtaV3hiYTJWNVhTQTlJSE4wZFdJdVoyVjBWSGhKUkNncE8xeHVmVnh1WEc1bGVIQnZjblFnWm5WdVkzUnBiMjRnZEhKaGJuTmhZM1JwYjI1SlpDZ3BJSHRjYmlBZ1puVnVZM1JwYjI0Z2RISmhibk5oWTNScGIyNUpaQ2dwSUh0Y2JpQWdJQ0J5WlhSMWNtNGdablZ1WTNScGIyNGdLRzlpYWpvZ1lXNTVMQ0JoZEhSeWFXSjFkR1UvT2lCaGJua3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhjSEJzZVNoY2JpQWdJQ0FnSUNBZ2NtVnhkV2x5WldRb0tTeGNiaUFnSUNBZ0lDQWdjbVZoWkc5dWJIa29LU3hjYmlBZ0lDQWdJQ0FnYjI1RGNtVmhkR1VvZEhKaGJuTmhZM1JwYjI1SlpFOXVRM0psWVhSbEtTeGNiaUFnSUNBZ0lDQWdiMjVWY0dSaGRHVW9kSEpoYm5OaFkzUnBiMjVKWkU5dVEzSmxZWFJsS1N4Y2JpQWdJQ0FnSUNBZ2NISnZjRTFsZEdGa1lYUmhLRnh1SUNBZ0lDQWdJQ0FnSUUxbGRHRmtZWFJoTG10bGVTaGNiaUFnSUNBZ0lDQWdJQ0FnSUVaaFluSnBZMDF2WkdWc1MyVjVjeTVHUVVKU1NVTXNYRzRnSUNBZ0lDQWdJQ0FnSUNCaGRIUnlhV0oxZEdVc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JHWVdKeWFXTk5iMlJsYkV0bGVYTXVWRkpCVGxOQlExUkpUMDVmU1VSY2JpQWdJQ0FnSUNBZ0lDQXBMRnh1SUNBZ0lDQWdJQ0FnSUdGMGRISnBZblYwWlZ4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBcEtHOWlhaXdnWVhSMGNtbGlkWFJsS1R0Y2JpQWdJQ0I5TzF4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUVSbFkyOXlZWFJwYjI0dVptOXlLRVpoWW5KcFkwMXZaR1ZzUzJWNWN5NVVVa0ZPVTBGRFZFbFBUbDlKUkNsY2JpQWdJQ0F1WkdWbWFXNWxLSHRjYmlBZ0lDQWdJR1JsWTI5eVlYUnZjam9nZEhKaGJuTmhZM1JwYjI1SlpDeGNiaUFnSUNBZ0lHRnlaM002SUZ0ZExGeHVJQ0FnSUgwcFhHNGdJQ0FnTG1Gd2NHeDVLQ2s3WEc1OVhHNWNibVY0Y0c5eWRDQjBlWEJsSUUxcGNuSnZja052Ym1ScGRHbHZiaUE5SUNodGMzQTZJSE4wY21sdVp5a2dQVDRnWW05dmJHVmhianRjYmx4dVpYaHdiM0owSUhSNWNHVWdUV2x5Y205eVRXVjBZV1JoZEdFZ1BTQjdYRzRnSUdOdmJtUnBkR2x2Ymo4NklFMXBjbkp2Y2tOdmJtUnBkR2x2Ymp0Y2JpQWdjbVZ6YjJ4MlpYSTZJRU52Ykd4bFkzUnBiMjVTWlhOdmJIWmxjaUI4SUhOMGNtbHVaenRjYmlBZ2JYTndTV1E2SUhOMGNtbHVaenRjYm4wN1hHNWNibVY0Y0c5eWRDQmhjM2x1WXlCbWRXNWpkR2x2YmlCbGRtRnNUV2x5Y205eVRXVjBZV1JoZEdFOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdiVzlrWld3NklFMHNYRzRnSUhKbGMyOXNkbVZ5T2lCMWJtUmxabWx1WldRZ2ZDQnpkSEpwYm1jZ2ZDQkRiMnhzWldOMGFXOXVVbVZ6YjJ4MlpYSXNYRzRnSUdOMGVEb2dRMjl1ZEdWNGREeEdZV0p5YVdORGIyNTBjbUZqZEVac1lXZHpQbHh1S1NCN1hHNGdJR3hsZENCamIyeHNaV04wYVc5dU9pQkRiMnhzWldOMGFXOXVVbVZ6YjJ4MlpYSWdmQ0J6ZEhKcGJtY2dmQ0IxYm1SbFptbHVaV1FnUFNCeVpYTnZiSFpsY2p0Y2JpQWdhV1lnS0hSNWNHVnZaaUJqYjJ4c1pXTjBhVzl1SUNFOVBTQmNJbk4wY21sdVoxd2lLU0I3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdOdmJuTjBJRzkzYm1WeUlEMWNiaUFnSUNBZ0lDQWdUVzlrWld3dWIzZHVaWEpQWmlodGIyUmxiQ2tnZkh3Z1kzUjRMbWRsZENoY0luTjBkV0pjSWlrdVoyVjBRM0psWVhSdmNpZ3BMblJ2VTNSeWFXNW5LQ2s3WEc0Z0lDQWdJQ0JwWmlBb2NtVnpiMngyWlhJZ0ppWWdkSGx3Wlc5bUlISmxjMjlzZG1WeUlEMDlQU0JjSW1aMWJtTjBhVzl1WENJcFhHNGdJQ0FnSUNBZ0lHTnZiR3hsWTNScGIyNGdQU0JoZDJGcGRDQnlaWE52YkhabGNpaHRiMlJsYkN3Z2IzZHVaWElzSUdOMGVDazdYRzRnSUNBZ2ZTQmpZWFJqYUNBb1pUb2dkVzVyYm05M2Jpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1lFWmhhV3hsWkNCMGJ5QnlaWE52YkhabElHTnZiR3hsWTNScGIyNGdiV2x5Y205eUlHNWhiV1U2SUNSN1pYMWdLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JwWmlBb0lXTnZiR3hsWTNScGIyNGdmSHdnZEhsd1pXOW1JR052Ykd4bFkzUnBiMjRnSVQwOUlGd2ljM1J5YVc1blhDSXBYRzRnSUNBZ2RHaHliM2NnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvWEc0Z0lDQWdJQ0JnVG04Z1kyOXNiR1ZqZEdsdmJpQm1iM1Z1WkNCdGIyUmxiQ0FrZTIxdlpHVnNMbU52Ym5OMGNuVmpkRzl5TG01aGJXVjlZRnh1SUNBZ0lDazdYRzRnSUhKbGRIVnliaUJqYjJ4c1pXTjBhVzl1TzF4dWZWeHVYRzVsZUhCdmNuUWdZWE41Ym1NZ1puVnVZM1JwYjI0Z1kzSmxZWFJsVFdseWNtOXlTR0Z1Wkd4bGNqeGNiaUFnVFNCbGVIUmxibVJ6SUUxdlpHVnNMRnh1SUNCU0lHVjRkR1Z1WkhNZ1VtVndiM05wZEc5eWVUeE5MQ0JoYm5rK0xGeHVQaWhjYmlBZ2RHaHBjem9nVWl4Y2JpQWdZMjl1ZEdWNGREb2dRMjl1ZEdWNGREeEdZV0p5YVdORGIyNTBjbUZqZEVac1lXZHpQaXhjYmlBZ1pHRjBZVG9nVFdseWNtOXlUV1YwWVdSaGRHRXNYRzRnSUd0bGVUb2dhMlY1YjJZZ1RTeGNiaUFnYlc5a1pXdzZJRTFjYmlrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQmpiMjV6ZENCamIyeHNaV04wYVc5dUlEMGdZWGRoYVhRZ1pYWmhiRTFwY25KdmNrMWxkR0ZrWVhSaEtHMXZaR1ZzTENCa1lYUmhMbkpsYzI5c2RtVnlMQ0JqYjI1MFpYaDBLVHRjYmlBZ1kyOXVjM1FnWm1GaWNtbGpRM1I0SUQwZ1kyOXVkR1Y0ZENCaGN5QkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFE3WEc0Z0lHTnZibk4wSUhOdmRYSmpaVTF2WkdWc0lEMGdiVzlrWld3N1hHNGdJQzh2SUZCMWRDQnRhWEp5YjNJZ1pteGhaM01nWkdseVpXTjBiSGtnYjI0Z1kyOXVkR1Y0ZENCemJ5QmhaR0Z3ZEdWeUxuQnlaWEJoY21Vb0tTQmhibVFnWVdSaGNIUmxjaTVqY21WaGRHVW9LU0JqWVc0Z2MyVmxJSFJvWlcxY2JpQWdabUZpY21salEzUjRMbkIxZENoY0ltMXBjbkp2Y2x3aUlHRnpJR0Z1ZVN3Z2RISjFaU2s3WEc0Z0lHWmhZbkpwWTBOMGVDNXdkWFFvWENKdGFYSnliM0pEYjJ4c1pXTjBhVzl1WENJZ1lYTWdZVzU1TENCamIyeHNaV04wYVc5dUtUdGNiaUFnZEhKNUlIdGNiaUFnSUNCamIyNXpkQ0J5WlhCdklEMGdkR2hwY3k1dmRtVnljbWxrWlNoY2JpQWdJQ0FnSUU5aWFtVmpkQzVoYzNOcFoyNG9lMzBzSUNoMGFHbHpJR0Z6SUdGdWVTa3VYMjkyWlhKeWFXUmxjeXdnZTF4dUlDQWdJQ0FnSUNCdGFYSnliM0k2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJRzFwY25KdmNrTnZiR3hsWTNScGIyNDZJR052Ykd4bFkzUnBiMjRzWEc0Z0lDQWdJQ0FnSUdsbmJtOXlaVlpoYkdsa1lYUnBiMjQ2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJR2xuYm05eVpVaGhibVJzWlhKek9pQjBjblZsTEZ4dUlDQWdJQ0FnZlNCaGN5QmhibmtwWEc0Z0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCdGFYSnliM0lnUFNCaGQyRnBkQ0J5WlhCdkxtTnlaV0YwWlNoemIzVnlZMlZOYjJSbGJDd2dZMjl1ZEdWNGRDazdYRzRnSUNBZ1kyOXVkR1Y0ZEM1c2IyZG5aWEl1YVc1bWJ5aGNiaUFnSUNBZ0lHQk5hWEp5YjNJZ1ptOXlJQ1I3VFc5a1pXd3VkR0ZpYkdWT1lXMWxLSFJvYVhNdVkyeGhjM01wZlNCamNtVmhkR1ZrSUhkcGRHZ2dKSHROYjJSbGJDNXdheWh0YjJSbGJDa2dZWE1nYzNSeWFXNW5mVG9nSkh0dGFYSnliM0piVFc5a1pXd3VjR3NvYlc5a1pXd3BYWDFnWEc0Z0lDQWdLVHRjYmlBZ2ZTQm1hVzVoYkd4NUlIdGNiaUFnSUNBdkx5QkRiR1ZoYmlCMWNDQnRhWEp5YjNJZ1pteGhaM01nWm5KdmJTQmpiMjUwWlhoMFhHNGdJQ0FnWm1GaWNtbGpRM1I0TG5CMWRDaGNJbTFwY25KdmNsd2lJR0Z6SUdGdWVTd2dkVzVrWldacGJtVmtLVHRjYmlBZ0lDQm1ZV0p5YVdORGRIZ3VjSFYwS0Z3aWJXbHljbTl5UTI5c2JHVmpkR2x2Ymx3aUlHRnpJR0Z1ZVN3Z2RXNWtaV1pwYm1Wa0tUdGNiaUFnZlZ4dWZWeHVYRzVsZUhCdmNuUWdZWE41Ym1NZ1puVnVZM1JwYjI0Z2RYQmtZWFJsVFdseWNtOXlTR0Z1Wkd4bGNqeGNiaUFnVFNCbGVIUmxibVJ6SUUxdlpHVnNMRnh1SUNCU0lHVjRkR1Z1WkhNZ1VtVndiM05wZEc5eWVUeE5MQ0JoYm5rK0xGeHVQaWhjYmlBZ2RHaHBjem9nVWl4Y2JpQWdZMjl1ZEdWNGREb2dRMjl1ZEdWNGREeEdZV0p5YVdORGIyNTBjbUZqZEVac1lXZHpQaXhjYmlBZ1pHRjBZVG9nVFdseWNtOXlUV1YwWVdSaGRHRXNYRzRnSUd0bGVUb2dhMlY1YjJZZ1RTeGNiaUFnYlc5a1pXdzZJRTFjYmlrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQmpiMjV6ZENCamIyeHNaV04wYVc5dUlEMGdZWGRoYVhRZ1pYWmhiRTFwY25KdmNrMWxkR0ZrWVhSaEtHMXZaR1ZzTENCa1lYUmhMbkpsYzI5c2RtVnlMQ0JqYjI1MFpYaDBLVHRjYmlBZ1kyOXVjM1FnWm1GaWNtbGpRM1I0SUQwZ1kyOXVkR1Y0ZENCaGN5QkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFE3WEc0Z0lHTnZibk4wSUhOdmRYSmpaVTF2WkdWc0lEMGdiVzlrWld3N1hHNGdJR1poWW5KcFkwTjBlQzV3ZFhRb1hDSnRhWEp5YjNKY0lpQmhjeUJoYm5rc0lIUnlkV1VwTzF4dUlDQm1ZV0p5YVdORGRIZ3VjSFYwS0Z3aWJXbHljbTl5UTI5c2JHVmpkR2x2Ymx3aUlHRnpJR0Z1ZVN3Z1kyOXNiR1ZqZEdsdmJpazdYRzRnSUhSeWVTQjdYRzRnSUNBZ1kyOXVjM1FnY21Wd2J5QTlJSFJvYVhNdWIzWmxjbkpwWkdVb1hHNGdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENBb2RHaHBjeUJoY3lCaGJua3BMbDl2ZG1WeWNtbGtaWE1zSUh0Y2JpQWdJQ0FnSUNBZ2JXbHljbTl5T2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0J0YVhKeWIzSkRiMnhzWldOMGFXOXVPaUJqYjJ4c1pXTjBhVzl1TEZ4dUlDQWdJQ0FnSUNCcFoyNXZjbVZXWVd4cFpHRjBhVzl1T2lCMGNuVmxMRnh1SUNBZ0lDQWdJQ0JwWjI1dmNtVklZVzVrYkdWeWN6b2dkSEoxWlN4Y2JpQWdJQ0FnSUNBZ1lYQndiSGxWY0dSaGRHVldZV3hwWkdGMGFXOXVPaUJtWVd4elpTeGNiaUFnSUNBZ0lDQWdiV1Z5WjJWR2IzSlZjR1JoZEdVNklHWmhiSE5sTEZ4dUlDQWdJQ0FnZlNCaGN5QmhibmtwWEc0Z0lDQWdLVHRjYmlBZ0lDQmhkMkZwZENCeVpYQnZMblZ3WkdGMFpTaHpiM1Z5WTJWTmIyUmxiQ3dnWTI5dWRHVjRkQ2s3WEc0Z0lDQWdZMjl1ZEdWNGRDNXNiMmRuWlhJdWFXNW1ieWhjYmlBZ0lDQWdJR0JOYVhKeWIzSWdabTl5SUNSN1RXOWtaV3d1ZEdGaWJHVk9ZVzFsS0hSb2FYTXVZMnhoYzNNcGZTQjFjR1JoZEdWa09pQWtleWh0YjJSbGJDQmhjeUJoYm5rcFcwMXZaR1ZzTG5CcktHMXZaR1ZzS1YxOVlGeHVJQ0FnSUNrN1hHNGdJSDBnWm1sdVlXeHNlU0I3WEc0Z0lDQWdabUZpY21salEzUjRMbkIxZENoY0ltMXBjbkp2Y2x3aUlHRnpJR0Z1ZVN3Z2RXNWtaV1pwYm1Wa0tUdGNiaUFnSUNCbVlXSnlhV05EZEhndWNIVjBLRndpYldseWNtOXlRMjlzYkdWamRHbHZibHdpSUdGeklHRnVlU3dnZFc1a1pXWnBibVZrS1R0Y2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1lYTjVibU1nWm5WdVkzUnBiMjRnWkdWc1pYUmxUV2x5Y205eVNHRnVaR3hsY2p4Y2JpQWdUU0JsZUhSbGJtUnpJRTF2WkdWc0xGeHVJQ0JTSUdWNGRHVnVaSE1nVW1Wd2IzTnBkRzl5ZVR4TkxDQmhibmsrTEZ4dVBpaGNiaUFnZEdocGN6b2dVaXhjYmlBZ1kyOXVkR1Y0ZERvZ1EyOXVkR1Y0ZER4R1lXSnlhV05EYjI1MGNtRmpkRVpzWVdkelBpeGNiaUFnWkdGMFlUb2dUV2x5Y205eVRXVjBZV1JoZEdFc1hHNGdJR3RsZVRvZ2EyVjViMllnVFN4Y2JpQWdiVzlrWld3NklFMWNiaWs2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNCamIyNXpkQ0JqYjJ4c1pXTjBhVzl1SUQwZ1lYZGhhWFFnWlhaaGJFMXBjbkp2Y2sxbGRHRmtZWFJoS0cxdlpHVnNMQ0JrWVhSaExuSmxjMjlzZG1WeUxDQmpiMjUwWlhoMEtUdGNiaUFnWTI5dWMzUWdabUZpY21salEzUjRJRDBnWTI5dWRHVjRkQ0JoY3lCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUTdYRzRnSUdaaFluSnBZME4wZUM1d2RYUW9YQ0p0YVhKeWIzSmNJaUJoY3lCaGJua3NJSFJ5ZFdVcE8xeHVJQ0JtWVdKeWFXTkRkSGd1Y0hWMEtGd2liV2x5Y205eVEyOXNiR1ZqZEdsdmJsd2lJR0Z6SUdGdWVTd2dZMjlzYkdWamRHbHZiaWs3WEc0Z0lHWmhZbkpwWTBOMGVDNXdkWFFvWENKelpXZHlaV2RoZEdWa1hDSWdZWE1nWVc1NUxDQmpiMnhzWldOMGFXOXVLVHRjYmlBZ2RISjVJSHRjYmlBZ0lDQmpiMjV6ZENCd2ExQnliM0FnUFNCTmIyUmxiQzV3YXlodGIyUmxiQ2tnWVhNZ2EyVjViMllnVFR0Y2JpQWdJQ0JqYjI1emRDQnBaQ0E5SUcxdlpHVnNXM0JyVUhKdmNGMDdYRzRnSUNBZ1kyOXVjM1FnY21Wd2J5QTlJSFJvYVhNdWIzWmxjbkpwWkdVb1hHNGdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENBb2RHaHBjeUJoY3lCaGJua3BMbDl2ZG1WeWNtbGtaWE1zSUh0Y2JpQWdJQ0FnSUNBZ2MyVm5jbVZuWVhSbFpEb2dZMjlzYkdWamRHbHZiaXhjYmlBZ0lDQWdJQ0FnYldseWNtOXlPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQnBaMjV2Y21WV1lXeHBaR0YwYVc5dU9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNCcFoyNXZjbVZJWVc1a2JHVnljem9nZEhKMVpTeGNiaUFnSUNBZ0lIMGdZWE1nWVc1NUtWeHVJQ0FnSUNrN1hHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHRjNZV2wwSUhKbGNHOHVaR1ZzWlhSbEtHbGtJR0Z6SUdGdWVTd2dZMjl1ZEdWNGRDazdYRzRnSUNBZ2ZTQmpZWFJqYUNCN1hHNGdJQ0FnSUNBdkx5Qk5ZWGtnWVd4eVpXRmtlU0JpWlNCa1pXeGxkR1ZrSUdKNUlHRmtZWEIwWlhJdVpHVnNaWFJsVTJWbmNtVm5ZWFJsWkVOdmJHeGxZM1JwYjI1elhHNGdJQ0FnZlZ4dUlDQWdJR052Ym5SbGVIUXViRzluWjJWeUxtbHVabThvWEc0Z0lDQWdJQ0JnVFdseWNtOXlJR1p2Y2lBa2UwMXZaR1ZzTG5SaFlteGxUbUZ0WlNoMGFHbHpMbU5zWVhOektYMGdaR1ZzWlhSbFpEb2dKSHRUZEhKcGJtY29hV1FwZldCY2JpQWdJQ0FwTzF4dUlDQjlJR1pwYm1Gc2JIa2dlMXh1SUNBZ0lHWmhZbkpwWTBOMGVDNXdkWFFvWENKdGFYSnliM0pjSWlCaGN5QmhibmtzSUhWdVpHVm1hVzVsWkNrN1hHNGdJQ0FnWm1GaWNtbGpRM1I0TG5CMWRDaGNJbTFwY25KdmNrTnZiR3hsWTNScGIyNWNJaUJoY3lCaGJua3NJSFZ1WkdWbWFXNWxaQ2s3WEc0Z0lDQWdabUZpY21salEzUjRMbkIxZENoY0luTmxaM0psWjJGMFpXUmNJaUJoY3lCaGJua3NJSFZ1WkdWbWFXNWxaQ2s3WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdGemVXNWpJR1oxYm1OMGFXOXVJRzFwY25KdmNsZHlhWFJsUjNWaGNtUThYRzRnSUUwZ1pYaDBaVzVrY3lCTmIyUmxiQ3hjYmlBZ1VpQmxlSFJsYm1SeklGSmxjRzl6YVhSdmNuazhUU3dnWVc1NVBpeGNiajRvWEc0Z0lIUm9hWE02SUZJc1hHNGdJR052Ym5SbGVIUTZJRU52Ym5SbGVIUThSbUZpY21salEyOXVkSEpoWTNSR2JHRm5jejRzWEc0Z0lHUmhkR0U2SUUxcGNuSnZjazFsZEdGa1lYUmhMRnh1SUNBdkx5QmxjMnhwYm5RdFpHbHpZV0pzWlMxdVpYaDBMV3hwYm1VZ1FIUjVjR1Z6WTNKcGNIUXRaWE5zYVc1MEwyNXZMWFZ1ZFhObFpDMTJZWEp6WEc0Z0lHdGxlVG9nYTJWNWIyWWdUU3hjYmlBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVieTExYm5WelpXUXRkbUZ5YzF4dUlDQnRiMlJsYkRvZ1RWeHVLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUdOdmJuTjBJRzF6Y0NBOUlHVjRkSEpoWTNSTmMzQkpaQ2hjYmlBZ0lDQmpiMjUwWlhoMExtZGxkQ2hjSW1sa1pXNTBhWFI1WENJcElHRnpJSE4wY21sdVp5QjhJRU5zYVdWdWRFbGtaVzUwYVhSNUlId2dkVzVrWldacGJtVmtYRzRnSUNrN1hHNGdJR2xtSUNnaGJYTndLU0J5WlhSMWNtNDdYRzRnSUdsbUlDaHRjM0FnUFQwOUlHUmhkR0V1YlhOd1NXUWdmSHdnS0dSaGRHRXVZMjl1WkdsMGFXOXVJQ1ltSUdSaGRHRXVZMjl1WkdsMGFXOXVLRzF6Y0NrcEtTQjdYRzRnSUNBZ2RHaHliM2NnYm1WM0lFRjFkR2h2Y21sNllYUnBiMjVGY25KdmNpaGNiaUFnSUNBZ0lHQlBjbWRoYm1sNllYUnBiMjRnSkh0dGMzQjlJR2x6SUc1dmRDQmhkWFJvYjNKcGVtVmtJSFJ2SUcxdlpHbG1lU0J0YVhKeWIzSmxaQ0JrWVhSaFlGeHVJQ0FnSUNrN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHRnplVzVqSUdaMWJtTjBhVzl1SUhKbFlXUk5hWEp5YjNKSVlXNWtiR1Z5UEZ4dUlDQk5JR1Y0ZEdWdVpITWdUVzlrWld3c1hHNGdJRklnWlhoMFpXNWtjeUJTWlhCdmMybDBiM0o1UEUwc0lHRnVlVDRzWEc0K0tGeHVJQ0IwYUdsek9pQlNMRnh1SUNCamIyNTBaWGgwT2lCRGIyNTBaWGgwUEVaaFluSnBZME52Ym5SeVlXTjBSbXhoWjNNK0xGeHVJQ0JrWVhSaE9pQk5hWEp5YjNKTlpYUmhaR0YwWVN4Y2JpQWdhMlY1T2lCclpYbHZaaUJOTEZ4dUlDQnRiMlJsYkRvZ1RWeHVLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUdOdmJuTjBJRzF6Y0NBOUlHVjRkSEpoWTNSTmMzQkpaQ2hjYmlBZ0lDQmpiMjUwWlhoMExtZGxkQ2hjSW1sa1pXNTBhWFI1WENJcElHRnpJSE4wY21sdVp5QjhJRU5zYVdWdWRFbGtaVzUwYVhSNUlId2dkVzVrWldacGJtVmtYRzRnSUNrN1hHNWNiaUFnYVdZZ0tDRnRjM0FwSUhKbGRIVnlianRjYmx4dUlDQmpiMjV6ZENCamIyeHNaV04wYVc5dUlEMGdZWGRoYVhRZ1pYWmhiRTFwY25KdmNrMWxkR0ZrWVhSaEtHMXZaR1ZzTENCa1lYUmhMbkpsYzI5c2RtVnlMQ0JqYjI1MFpYaDBLVHRjYmlBZ1kyOXVjM1FnWm1GaWNtbGpRM1I0SUQwZ1kyOXVkR1Y0ZENCaGN5QkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFE3WEc0Z0lHTnZibk4wSUcxaGRHTm9aWE1nUFNCdGMzQWdQVDA5SUdSaGRHRXViWE53U1dRZ2ZId2dLR1JoZEdFdVkyOXVaR2wwYVc5dUlDWW1JR1JoZEdFdVkyOXVaR2wwYVc5dUtHMXpjQ2twTzF4dVhHNGdJR2xtSUNodFlYUmphR1Z6S1NCN1hHNGdJQ0FnWTI5dWRHVjRkQzVzYjJkblpYSXVhVzVtYnloY2JpQWdJQ0FnSUdCTmFYSnliM0lnY21WaFpEb2dUVk5RSUNSN2JYTndmU0J0WVhSamFHVnpMQ0J5YjNWMGFXNW5JSEpsWVdSeklIUnZJRzFwY25KdmNpQmpiMnhzWldOMGFXOXVJQ1I3WTI5c2JHVmpkR2x2Ym4xZ1hHNGdJQ0FnS1R0Y2JpQWdJQ0F2THlCU2IzVjBaU0J5WldGa2N5QmxlR05zZFhOcGRtVnNlU0IwYUhKdmRXZG9JSFJvWlNCdGFYSnliM0lnWTI5c2JHVmpkR2x2Ymx4dUlDQWdJR1poWW5KcFkwTjBlQzV3ZFhRb1hDSnRhWEp5YjNKY0lpQmhjeUJoYm5rc0lIUnlkV1VwTzF4dUlDQWdJR1poWW5KcFkwTjBlQzV3ZFhRb1hDSnRhWEp5YjNKRGIyeHNaV04wYVc5dVhDSWdZWE1nWVc1NUxDQmpiMnhzWldOMGFXOXVLVHRjYmlBZ0lDQm1ZV0p5YVdORGRIZ3VjSFYwS0Z3aVpuVnNiSGxUWldkeVpXZGhkR1ZrWENJc0lIUnlkV1VwTzF4dUlDQWdJR1poWW5KcFkwTjBlQzV5WldGa1JuSnZiU2hqYjJ4c1pXTjBhVzl1S1R0Y2JpQWdmVnh1SUNBdkx5QlhhR1Z1SUUxVFVDQmtiMlZ6SUU1UFZDQnRZWFJqYUN3Z2JtOXliV0ZzSUhKbFlXUWdabXh2ZHlEaWdKUWdZV3hzSUdSaGRHRWdhWE1nYVc0Z2NIVmliR2xqSUhOMFlYUmxYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCdGFYSnliM0lvWEc0Z0lHTnZiR3hsWTNScGIyNDZJRU52Ykd4bFkzUnBiMjVTWlhOdmJIWmxjaUI4SUhOMGNtbHVaeXhjYmlBZ2JYTndTV1JQY2tOdmJtUnBkR2x2Ymo4NklITjBjbWx1WnlCOElFMXBjbkp2Y2tOdmJtUnBkR2x2Yml4Y2JpQWdZMjl1WkdsMGFXOXVQem9nVFdseWNtOXlRMjl1WkdsMGFXOXVYRzRwSUh0Y2JpQWdZMjl1YzNRZ2FYTkRiMjVrYVhScGIyNVBibXg1SUQxY2JpQWdJQ0IwZVhCbGIyWWdiWE53U1dSUGNrTnZibVJwZEdsdmJpQWhQVDBnWENKemRISnBibWRjSWlBbUppQkNiMjlzWldGdUtHMXpjRWxrVDNKRGIyNWthWFJwYjI0cE8xeHVJQ0JqYjI1emRDQnRjM0JKWkNBOUlHbHpRMjl1WkdsMGFXOXVUMjVzZVZ4dUlDQWdJRDhnZFc1a1pXWnBibVZrWEc0Z0lDQWdPaUFvYlhOd1NXUlBja052Ym1ScGRHbHZiaUJoY3lCemRISnBibWNnZkNCMWJtUmxabWx1WldRcE8xeHVJQ0JqYjI1emRDQmpiMjVrSUQwZ2FYTkRiMjVrYVhScGIyNVBibXg1WEc0Z0lDQWdQeUFvYlhOd1NXUlBja052Ym1ScGRHbHZiaUJoY3lCTmFYSnliM0pEYjI1a2FYUnBiMjRwWEc0Z0lDQWdPaUJqYjI1a2FYUnBiMjQ3WEc1Y2JpQWdablZ1WTNScGIyNGdiV2x5Y205eUtGeHVJQ0FnSUhKbGMyOXNkbVZ5T2lCRGIyeHNaV04wYVc5dVVtVnpiMngyWlhJZ2ZDQnpkSEpwYm1jc1hHNGdJQ0FnYlhOd1NXUTZJSE4wY21sdVp5eGNiaUFnSUNCamIyNWthWFJwYjI0L09pQk5hWEp5YjNKRGIyNWthWFJwYjI1Y2JpQWdLU0I3WEc0Z0lDQWdZMjl1YzNRZ2JXVjBZVG9nVFdseWNtOXlUV1YwWVdSaGRHRWdQU0I3WEc0Z0lDQWdJQ0JqYjI1a2FYUnBiMjQ2SUdOdmJtUnBkR2x2Yml4Y2JpQWdJQ0FnSUcxemNFbGtPaUJ0YzNCSlpDeGNiaUFnSUNBZ0lISmxjMjlzZG1WeU9pQnlaWE52YkhabGNpeGNiaUFnSUNCOU8xeHVJQ0FnSUhKbGRIVnliaUJoY0hCc2VTaGNiaUFnSUNBZ0lHMWxkR0ZrWVhSaEtGeHVJQ0FnSUNBZ0lDQk5aWFJoWkdGMFlTNXJaWGtvUm1GaWNtbGpUVzlrWld4TFpYbHpMa1pCUWxKSlF5d2dSbUZpY21salRXOWtaV3hMWlhsekxrMUpVbEpQVWlrc1hHNGdJQ0FnSUNBZ0lHMWxkR0ZjYmlBZ0lDQWdJQ2tzWEc0Z0lDQWdJQ0F2THlCU1pXRmtJR2hoYm1Sc1pYSWdjblZ1Y3lCbFlYSnNlU0FvY0hKcGIzSnBkSGtnTXpBcElIUnZJSE5sZENCMWNDQmpiMjUwWlhoMElHSmxabTl5WlNCaGJua2djbVZoWkhOY2JpQWdJQ0FnSUc5dVVtVmhaQ2h5WldGa1RXbHljbTl5U0dGdVpHeGxjaUJoY3lCaGJua3NJRzFsZEdFc0lIc2djSEpwYjNKcGRIazZJRE13SUgwcExGeHVJQ0FnSUNBZ0x5OGdWM0pwZEdVZ1ozVmhjbVJ6SU9LQWxDQnlaV3BsWTNRZ2JXRjBZMmhwYm1jZ1RWTlFjeUJpWldadmNtVWdZVzU1SUhCeWIyTmxjM05wYm1kY2JpQWdJQ0FnSUc5dVEzSmxZWFJsS0cxcGNuSnZjbGR5YVhSbFIzVmhjbVFnWVhNZ1lXNTVMQ0J0WlhSaExDQjdJSEJ5YVc5eWFYUjVPaUF5TUNCOUtTeGNiaUFnSUNBZ0lHOXVWWEJrWVhSbEtHMXBjbkp2Y2xkeWFYUmxSM1ZoY21RZ1lYTWdZVzU1TENCdFpYUmhMQ0I3SUhCeWFXOXlhWFI1T2lBeU1DQjlLU3hjYmlBZ0lDQWdJRzl1UkdWc1pYUmxLRzFwY25KdmNsZHlhWFJsUjNWaGNtUWdZWE1nWVc1NUxDQnRaWFJoTENCN0lIQnlhVzl5YVhSNU9pQXlNQ0I5S1N4Y2JpQWdJQ0FnSUM4dklFMXBjbkp2Y2lCemVXNWpJR2hoYm1Sc1pYSnpJT0tBbENCM2NtbDBaU0JtZFd4c0lHMXZaR1ZzSUdGbWRHVnlJRzkwYUdWeUlHaGhibVJzWlhKeklDaHdjbWx2Y21sMGVTQXhNREFwWEc0Z0lDQWdJQ0J2YmtOeVpXRjBaU2hqY21WaGRHVk5hWEp5YjNKSVlXNWtiR1Z5SUdGeklHRnVlU3dnYldWMFlTd2dleUJ3Y21sdmNtbDBlVG9nTVRBd0lIMHBMRnh1SUNBZ0lDQWdiMjVWY0dSaGRHVW9kWEJrWVhSbFRXbHljbTl5U0dGdVpHeGxjaUJoY3lCaGJua3NJRzFsZEdFc0lIc2djSEpwYjNKcGRIazZJREV3TUNCOUtTeGNiaUFnSUNBZ0lHOXVSR1ZzWlhSbEtHUmxiR1YwWlUxcGNuSnZja2hoYm1Sc1pYSWdZWE1nWVc1NUxDQnRaWFJoTENCN0lIQnlhVzl5YVhSNU9pQXhNREFnZlNsY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ2NtVjBkWEp1SUVSbFkyOXlZWFJwYjI0dVptOXlLRVpoWW5KcFkwMXZaR1ZzUzJWNWN5NU5TVkpTVDFJcFhHNGdJQ0FnTG1SbFptbHVaU2g3WEc0Z0lDQWdJQ0JrWldOdmNtRjBiM0k2SUcxcGNuSnZjaXhjYmlBZ0lDQWdJR0Z5WjNNNklGdGpiMnhzWldOMGFXOXVMQ0J0YzNCSlpDd2dZMjl1WkYwc1hHNGdJQ0FnZlNsY2JpQWdJQ0F1WVhCd2JIa29LVHRjYm4xY2JseHVaWGh3YjNKMElIUjVjR1VnUTI5c2JHVmpkR2x2YmxKbGMyOXNkbVZ5SUQwZ1BFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJRzF2WkdWc09pQk5JSHdnUTI5dWMzUnlkV04wYjNJOFRUNHNYRzRnSUcxemNEODZJSE4wY21sdVp5eGNiaUFnTGk0dVlYSm5jem9nWVc1NVcxMWNiaWtnUFQ0Z2MzUnlhVzVuTzF4dVhHNWxlSEJ2Y25RZ1kyOXVjM1FnVFc5a1pXeERiMnhzWldOMGFXOXVPaUJEYjJ4c1pXTjBhVzl1VW1WemIyeDJaWElnUFNBOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdiVzlrWld3NklFMGdmQ0JEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnYlhOd1NXUS9PaUJ6ZEhKcGJtZGNiaWtnUFQ0Z2UxeHVJQ0JqYjI1emRDQnZjbWRPWVcxbElEMWNiaUFnSUNCdGMzQkpaQ0I4ZkNBb2RIbHdaVzltSUcxdlpHVnNJQ0U5UFNCY0ltWjFibU4wYVc5dVhDSWdQeUJOYjJSbGJDNXZkMjVsY2s5bUtHMXZaR1ZzS1NBNklIVnVaR1ZtYVc1bFpDazdYRzRnSUdOdmJuTjBJR052Ym5OMGNpQTlJSFI1Y0dWdlppQnRiMlJsYkNBOVBUMGdYQ0ptZFc1amRHbHZibHdpSUQ4Z2JXOWtaV3dnT2lCdGIyUmxiQzVqYjI1emRISjFZM1J2Y2p0Y2JpQWdhV1lnS0NGdmNtZE9ZVzFsS1Z4dUlDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtGeHVJQ0FnSUNBZ1lFMXZaR1ZzSUNSN1kyOXVjM1J5TG01aGJXVjlJR2x6SUc1dmRDQnZkMjVsWkNCaWVTQmhibmtnYjNKbllXNXBlbUYwYVc5dUxpQmthV1FnZVc5MUlIVnpaU0JBYjNkdVpXUkNlU2dwSUNodmNpQndjbTkyYVdSbElIUm9aU0J1WVcxbEtUOWdYRzRnSUNBZ0tUdGNiaUFnY21WMGRYSnVJR0FrZTNSdlVHRnpZMkZzUTJGelpTaGpiMjV6ZEhJdWJtRnRaU2w5Skh0dmNtZE9ZVzFsSUQ4Z2RHOVFZWE5qWVd4RFlYTmxLRzl5WjA1aGJXVXBJRG9nWENKY0luMWdPMXh1ZlR0Y2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlFNWhiV1Z6Y0dGalpVTnZiR3hsWTNScGIyNG9ibUZ0WlhOd1lXTmxPaUJ6ZEhKcGJtY3BPaUJEYjJ4c1pXTjBhVzl1VW1WemIyeDJaWElnZTF4dUlDQnlaWFIxY200Z1BFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b2JXOWtaV3c2SUUwZ2ZDQkRiMjV6ZEhKMVkzUnZjanhOUGl3Z2JYTndTV1EvT2lCemRISnBibWNwSUQwK0lIdGNiaUFnSUNCamIyNXpkQ0J2Y21kT1lXMWxJRDFjYmlBZ0lDQWdJRzF6Y0Vsa0lIeDhJQ2gwZVhCbGIyWWdiVzlrWld3Z0lUMDlJRndpWm5WdVkzUnBiMjVjSWlBL0lFMXZaR1ZzTG05M2JtVnlUMllvYlc5a1pXd3BJRG9nZFc1a1pXWnBibVZrS1R0Y2JpQWdJQ0JqYjI1emRDQmpiMjV6ZEhJZ1BTQjBlWEJsYjJZZ2JXOWtaV3dnUFQwOUlGd2lablZ1WTNScGIyNWNJaUEvSUcxdlpHVnNJRG9nYlc5a1pXd3VZMjl1YzNSeWRXTjBiM0k3WEc0Z0lDQWdhV1lnS0NGdmNtZE9ZVzFsS1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJR0JOYjJSbGJDQWtlMk52Ym5OMGNpNXVZVzFsZlNCcGN5QnViM1FnYjNkdVpXUWdZbmtnWVc1NUlHOXlaMkZ1YVhwaGRHbHZiaTRnWkdsa0lIbHZkU0IxYzJVZ1FHOTNibVZrUW5rb0tTQW9iM0lnY0hKdmRtbGtaU0IwYUdVZ2JtRnRaU2svWUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdZQ1I3Ym1GdFpYTndZV05sZlNSN2IzSm5UbUZ0WlNBL0lIUnZVR0Z6WTJGc1EyRnpaU2h2Y21kT1lXMWxLU0E2SUZ3aVhDSjlZRHRjYmlBZ2ZUdGNibjFjYmx4dVpYaHdiM0owSUdOdmJuTjBJRWx0Y0d4cFkybDBVSEpwZG1GMFpVTnZiR3hsWTNScGIyNDZJRU52Ykd4bFkzUnBiMjVTWlhOdmJIWmxjaUE5SUR4TklHVjRkR1Z1WkhNZ1RXOWtaV3crS0Z4dUlDQnRiMlJsYkRvZ1RTQjhJRU52Ym5OMGNuVmpkRzl5UEUwK0xGeHVJQ0J0YzNCSlpEODZJSE4wY21sdVoxeHVLU0E5UGlCN1hHNGdJR052Ym5OMElHOXlaMDVoYldVZ1BWeHVJQ0FnSUcxemNFbGtJSHg4SUNoMGVYQmxiMllnYlc5a1pXd2dJVDA5SUZ3aVpuVnVZM1JwYjI1Y0lpQS9JRTF2WkdWc0xtOTNibVZ5VDJZb2JXOWtaV3dwSURvZ2RXNWtaV1pwYm1Wa0tUdGNiaUFnYVdZZ0tDRnZjbWRPWVcxbEtWeHVJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRnh1SUNBZ0lDQWdZRTF2WkdWc0lDUjdiVzlrWld3dVkyOXVjM1J5ZFdOMGIzSXVibUZ0WlgwZ2FYTWdibTkwSUc5M2JtVmtJR0o1SUdGdWVTQnZjbWRoYm1sNllYUnBiMjR1SUdScFpDQjViM1VnZFhObElFQnZkMjVsWkVKNUtDa2dLRzl5SUhCeWIzWnBaR1VnZEdobElHNWhiV1VwUDJCY2JpQWdJQ0FwTzF4dUlDQnlaWFIxY200Z1lGOWZKSHQwYjFCaGMyTmhiRU5oYzJVb2IzSm5UbUZ0WlNsOVVISnBkbUYwWlVOdmJHeGxZM1JwYjI1Z08xeHVmVHRjYmx4dVpYaHdiM0owSUhSNWNHVWdVMlZuY21WbllYUmxaRVJoZEdGTlpYUmhaR0YwWVNBOUlIdGNiaUFnWTI5c2JHVmpkR2x2Ym5NNklITjBjbWx1WnlCOElFTnZiR3hsWTNScGIyNVNaWE52YkhabGNqdGNibjA3WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRkJ5YVc5eWFYUjVJR1p2Y2lCbFlYSnNlU0JqYjJ4c1pXTjBhVzl1SUdWNGRISmhZM1JwYjI0Z0tHSmxabTl5WlNCd2F5Qm5aVzVsY21GMGFXOXVJR0YwSUhCeWFXOXlhWFI1SURZd0tWeHVJQ29nUUhOMWJXMWhjbmtnVkdocGN5QndjbWx2Y21sMGVTQmxibk4xY21WeklHTnZiR3hsWTNScGIyNXpJR0Z5WlNCeVpXZHBjM1JsY21Wa0lHbHVJR052Ym5SbGVIUWdZbVZtYjNKbElHRnVlU0J6WlhGMVpXNWpaVnh1SUNvZ2IzQmxjbUYwYVc5dWN5QnZZMk4xY2l3Z1lXeHNiM2RwYm1jZ2MyVnhkV1Z1WTJWeklIUnZJR0psSUhKbGNHeHBZMkYwWldRZ2RHOGdjSEpwZG1GMFpTOXphR0Z5WldRZ1kyOXNiR1ZqZEdsdmJuTXVYRzRnS2k5Y2JtVjRjRzl5ZENCamIyNXpkQ0JUUlVkU1JVZEJWRVZFWDBOUFRFeEZRMVJKVDA1ZlJWaFVVa0ZEVkVsUFRsOVFVa2xQVWtsVVdTQTlJRE0xTzF4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z1lYQndiSGxUWldkeVpXZGhkR2x2Ymtac1lXZHpQRTBnWlhoMFpXNWtjeUJOYjJSbGJENG9YRzRnSUdOc1lYcDZPaUJOTEZ4dUlDQmpiMnhzWldOMGFXOXVjem9nYzNSeWFXNW5XMTBzWEc0Z0lHTjBlRG9nWVc1NVhHNHBJSHRjYmlBZ0x5OGdVbVZuYVhOMFpYSWdZMjlzYkdWamRHbHZibk1nWldGeWJIa2dkWE5wYm1jZ2NtVmhaRVp5YjIwZ0xTQjBhR2x6SUdGc2JHOTNjeUJ6WlhGMVpXNWpaU0JqYjJSbFhHNGdJQzh2SUhSdklHdHViM2NnZDJocFkyZ2dZMjlzYkdWamRHbHZibk1nZEc4Z2NtVndiR2xqWVhSbElIUnZJR1IxY21sdVp5QndheUJuWlc1bGNtRjBhVzl1WEc0Z0lHbG1JQ2hqYjJ4c1pXTjBhVzl1Y3k1c1pXNW5kR2dnUGlBd0tTQjdYRzRnSUNBZ0tHTjBlQ0JoY3lCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXBMbkpsWVdSR2NtOXRLR052Ykd4bFkzUnBiMjV6S1R0Y2JpQWdmVnh1WEc0Z0lDOHZJRU5vWldOcklHbG1JRzF2WkdWc0lHbHpJR1oxYkd4NUlITmxaM0psWjJGMFpXUWdLR0ZzYkNCdWIyNHRjR3NnY0hKdmNHVnlkR2xsY3lCaGNtVWdjSEpwZG1GMFpTOXphR0Z5WldRdmRISmhibk5wWlc1MEtTNWNiaUFnTHk4Z1ZYTmxJRTF2WkdWc0xuTmxaM0psWjJGMFpTZ3BJSGRvYVdOb0lHbHpJSFJvWlNCallXNXZibWxqWVd3Z2QyRjVJSFJ2SUdSbGRHVnliV2x1WlNCM2FHRjBKM01nZEhKaGJuTnBaVzUwTEZ4dUlDQXZMeUJ5WVhSb1pYSWdkR2hoYmlCeVpXRmthVzVuSUVSQ1MyVjVjeTVVVWtGT1UwbEZUbFFnYldWMFlXUmhkR0VnZDJocFkyZ2diV0Y1SUc1dmRDQmhZMk4xYlhWc1lYUmxJR052Y25KbFkzUnNlVnh1SUNBdkx5QjNhR1Z1SUdOc1lYTnpMV3hsZG1Wc0lFQndjbWwyWVhSbFJHRjBZU0JoY0hCc2FXVnpJR1JsWTI5eVlYUnZjbk1nYVhSbGNtRjBhWFpsYkhrdVhHNGdJR2xtSUNnaFkzUjRMbWx6Um5Wc2JIbFRaV2R5WldkaGRHVmtJQ1ltSUdOdmJHeGxZM1JwYjI1ekxteGxibWQwYUNrZ2UxeHVJQ0FnSUdsbUlDZ2hhR0Z6VUhWaWJHbGpVSEp2Y0dWeWRHbGxjeWhqYkdGNmVpNWpiMjV6ZEhKMVkzUnZjaUJoY3lCRGIyNXpkSEoxWTNSdmNqeE5QaWtwSUh0Y2JpQWdJQ0FnSUdOMGVDNXRZWEpyUm5Wc2JIbFRaV2R5WldkaGRHVmtLQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0JoYzNsdVl5Qm1kVzVqZEdsdmJpQmhjSEJzZVUxcGNuSnZja1pzWVdkelBFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJR05zWVhwNk9pQkRiMjV6ZEhKMVkzUnZjanhOUGl4Y2JpQWdiWE53T2lCemRISnBibWNnZkNCMWJtUmxabWx1WldRc1hHNGdJR04wZURvZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBYRzRwSUh0Y2JpQWdhV1lnS0NGdGMzQXBJSEpsZEhWeWJqdGNiaUFnWTI5dWMzUWdiV2x5Y205eVRXVjBZU0E5SUUxdlpHVnNMbTFwY25KdmNtVmtRWFFvWTJ4aGVub3BPMXh1SUNCcFppQW9JVzFwY25KdmNrMWxkR0VwSUhKbGRIVnlianRjYmlBZ1kyOXVjM1FnYldGMFkyaGxjeUE5WEc0Z0lDQWdiWE53SUQwOVBTQnRhWEp5YjNKTlpYUmhMbTF6Y0Vsa0lIeDhYRzRnSUNBZ0tHMXBjbkp2Y2sxbGRHRXVZMjl1WkdsMGFXOXVJQ1ltSUcxcGNuSnZjazFsZEdFdVkyOXVaR2wwYVc5dUtHMXpjQ2twTzF4dUlDQnBaaUFvSVcxaGRHTm9aWE1wSUhKbGRIVnlianRjYmlBZ1kyOXVjM1FnWTI5c2JHVmpkR2x2YmlBOUlHRjNZV2wwSUdWMllXeE5hWEp5YjNKTlpYUmhaR0YwWVNoY2JpQWdJQ0J1WlhjZ1kyeGhlbm9vS1N4Y2JpQWdJQ0J0YVhKeWIzSk5aWFJoTG5KbGMyOXNkbVZ5TEZ4dUlDQWdJR04wZUZ4dUlDQXBPMXh1SUNBdkx5Qk5hWEp5YjNJZ1RWTlFJRzFoZEdOb1pYTWc0b0NVSUhKdmRYUmxJSEpsWVdSeklHVjRZMngxYzJsMlpXeDVJSFJvY205MVoyZ2dkR2hsSUcxcGNuSnZjbHh1SUNBdkx5QmpiMnhzWldOMGFXOXVMaUJEYkdWaGNpQmhibmtnY0hKbGRtbHZkWE5zZVNCeVpXZHBjM1JsY21Wa0lHTnZiR3hsWTNScGIyNXpJSE52SUhGMVpYSnBaWE5jYmlBZ0x5OGdaMjhnVDA1TVdTQjBieUIwYUdVZ2JXbHljbTl5TENCdWIzUWdkRzhnZEdobElISmxaM1ZzWVhJZ2NISnBkbUYwWlM5emFHRnlaV1FnYjI1bGN5NWNiaUFnWTNSNExuQjFkQ2hjSW5ObFozSmxaMkYwWlZKbFlXUmNJaXdnZFc1a1pXWnBibVZrS1R0Y2JpQWdZM1I0TG5CMWRDaGNJbk5sWjNKbFoyRjBaVkpsWVdSVGRHRmphMXdpTENCMWJtUmxabWx1WldRcE8xeHVJQ0JqZEhndWNIVjBLRndpWm5Wc2JIbFRaV2R5WldkaGRHVmtYQ0lzSUhSeWRXVXBPMXh1SUNCamRIZ3VjSFYwS0Z3aWJXbHljbTl5WENJZ1lYTWdZVzU1TENCMGNuVmxLVHRjYmlBZ1kzUjRMbkIxZENoY0ltMXBjbkp2Y2tOdmJHeGxZM1JwYjI1Y0lpQmhjeUJoYm5rc0lHTnZiR3hsWTNScGIyNHBPMXh1SUNCamRIZ3VjbVZoWkVaeWIyMG9ZMjlzYkdWamRHbHZiaWs3WEc1OVhHNWNibVoxYm1OMGFXOXVJR2hoYzFCMVlteHBZMUJ5YjNCbGNuUnBaWE04VFNCbGVIUmxibVJ6SUUxdlpHVnNQaWhqYkdGNmVqb2dRMjl1YzNSeWRXTjBiM0k4VFQ0cE9pQmliMjlzWldGdUlIdGNiaUFnWTI5dWMzUWdZWFIwY21saWRYUmxjeUE5SUUxbGRHRmtZWFJoTG1kbGRFRjBkSEpwWW5WMFpYTW9ZMnhoZW5vcElIeDhJRnRkTzF4dUlDQmpiMjV6ZENCd2F5QTlJRTF2WkdWc0xuQnJLR05zWVhwNktUdGNiaUFnWTI5dWMzUWdkSEpoYm5OcFpXNTBUV1YwWVNBOUlFMWxkR0ZrWVhSaExtZGxkQ2hqYkdGNmVpQmhjeUJoYm5rc0lFUkNTMlY1Y3k1VVVrRk9VMGxGVGxRcElIeDhJSHQ5TzF4dUlDQmpiMjV6ZENCd2NtbDJZWFJsVFdWMFlTQTlYRzRnSUNBZ1RXVjBZV1JoZEdFdVoyVjBLR05zWVhwNklHRnpJR0Z1ZVN3Z1RXVjBZV1JoZEdFdWEyVjVLRVpoWW5KcFkwMXZaR1ZzUzJWNWN5NVFVa2xXUVZSRktTa2dmSHdnZTMwN1hHNGdJR052Ym5OMElITm9ZWEpsWkUxbGRHRWdQVnh1SUNBZ0lFMWxkR0ZrWVhSaExtZGxkQ2hqYkdGNmVpQmhjeUJoYm5rc0lFMWxkR0ZrWVhSaExtdGxlU2hHWVdKeWFXTk5iMlJsYkV0bGVYTXVVMGhCVWtWRUtTa2dmSHdnZTMwN1hHNWNiaUFnY21WMGRYSnVJR0YwZEhKcFluVjBaWE11YzI5dFpTZ29ZWFIwY2lrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2hoZEhSeUlEMDlQU0J3YXlrZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lHbG1JQ2hoZEhSeUlHbHVJSFJ5WVc1emFXVnVkRTFsZEdFcElISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQnBaaUFvWVhSMGNpQnBiaUJ3Y21sMllYUmxUV1YwWVNrZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lHbG1JQ2hoZEhSeUlHbHVJSE5vWVhKbFpFMWxkR0VwSUhKbGRIVnliaUJtWVd4elpUdGNiaUFnSUNCeVpYUjFjbTRnZEhKMVpUdGNiaUFnZlNrN1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFVmhjbXg1SUdoaGJtUnNaWElnZEc4Z1pYaDBjbUZqZENCaGJtUWdjbVZuYVhOMFpYSWdZMjlzYkdWamRHbHZibk1nYVc0Z1kyOXVkR1Y0ZEZ4dUlDb2dRSE4xYlcxaGNua2dVblZ1Y3lCM2FYUm9JSEJ5YVc5eWFYUjVJRHdnTkRBZ2RHOGdaWGgwY21GamRDQmpiMnhzWldOMGFXOXVJRzVoYldWeklHSmxabTl5WlNCd2F5Qm5aVzVsY21GMGFXOXVJQ2h3Y21sdmNtbDBlU0EyTUNrdVhHNGdLaUJVYUdseklHRnNiRzkzY3lCR1lXSnlhV05EYjI1MGNtRmpkRk5sY1hWbGJtTmxJSFJ2SUd0dWIzY2dkMmhwWTJnZ1kyOXNiR1ZqZEdsdmJuTWdkRzhnY21Wd2JHbGpZWFJsSUhSdkxseHVJQ29nUUhSbGJYQnNZWFJsSUUwZ0xTQlVlWEJsSUhSb1lYUWdaWGgwWlc1a2N5Qk5iMlJsYkZ4dUlDb2dRSEJoY21GdElIdERiMjUwWlhoMFQyWThVbVZ3YjNOcGRHOXllVHhOTENCaGJuaytQbjBnWTI5dWRHVjRkQ0F0SUZSb1pTQmxlR1ZqZFhScGIyNGdZMjl1ZEdWNGRGeHVJQ29nUUhCaGNtRnRJSHRUWldkeVpXZGhkR1ZrUkdGMFlVMWxkR0ZrWVhSaElId2dVMlZuY21WbllYUmxaRVJoZEdGTlpYUmhaR0YwWVZ0ZGZTQmtZWFJoSUMwZ1ZHaGxJSE5sWjNKbFoyRjBaV1FnWkdGMFlTQnRaWFJoWkdGMFlWeHVJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtY2dmQ0J6ZEhKcGJtZGJYWDBnYTJWNWN5QXRJRlJvWlNCd2NtOXdaWEowZVNCclpYa29jeWtnWW1WcGJtY2djMlZuY21WbllYUmxaRnh1SUNvZ1FIQmhjbUZ0SUh0TmZTQnRiMlJsYkNBdElGUm9aU0J0YjJSbGJDQnBibk4wWVc1alpWeHVJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHgyYjJsa1BuMWNiaUFxTDF4dVpYaHdiM0owSUdGemVXNWpJR1oxYm1OMGFXOXVJR1Y0ZEhKaFkzUlRaV2R5WldkaGRHVmtRMjlzYkdWamRHbHZibk04VFNCbGVIUmxibVJ6SUUxdlpHVnNQaWhjYmlBZ2RHaHBjem9nVW1Wd2IzTnBkRzl5ZVR4TkxDQmhibmsrTEZ4dUlDQmpiMjUwWlhoME9pQkRiMjUwWlhoMFQyWThkSGx3Wlc5bUlIUm9hWE0rTEZ4dUlDQmtZWFJoT2lCVFpXZHlaV2RoZEdWa1JHRjBZVTFsZEdGa1lYUmhJSHdnVTJWbmNtVm5ZWFJsWkVSaGRHRk5aWFJoWkdGMFlWdGRMRnh1SUNCclpYbHpPaUJyWlhsdlppQk5JSHdnS0d0bGVXOW1JRTBwVzEwc1hHNGdJRzF2WkdWc09pQk5YRzRwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ1kyOXVjM1FnWkdGMFlVRnljbUY1SUQwZ0tGeHVJQ0FnSUVGeWNtRjVMbWx6UVhKeVlYa29aR0YwWVNrZ1B5QmtZWFJoSURvZ1cyUmhkR0ZkWEc0Z0lDa2dZWE1nVTJWbmNtVm5ZWFJsWkVSaGRHRk5aWFJoWkdGMFlWdGRPMXh1WEc0Z0lHTnZibk4wSUcwZ1BWeHVJQ0FnSUdOdmJuUmxlSFF1WjJWMFQzSlZibVJsWm1sdVpXUW9YQ0poYkd4dmQwZGxibVZ5WVhScGIyNVBkbVZ5Y21sa1pWd2lLU0I4ZkNCbVlXeHpaVnh1SUNBZ0lDQWdQeUJqYjI1MFpYaDBMbWRsZEU5eVZXNWtaV1pwYm1Wa0tGd2liM2R1WlhKUGRtVnljbWxrWlZ3aUtWeHVJQ0FnSUNBZ09pQjFibVJsWm1sdVpXUTdYRzVjYmlBZ1kyOXVjM1FnYlhOd0lEMWNiaUFnSUNCdElIeDhJRTF2WkdWc0xtOTNibVZ5VDJZb2JXOWtaV3dwSUh4OElHVjRkSEpoWTNSTmMzQkpaQ2hqYjI1MFpYaDBMbWRsZENoY0ltbGtaVzUwYVhSNVhDSXBLVHRjYmx4dUlDQnBaaUFvSVcxemNDa2dlMXh1SUNBZ0lDOHZJRU5oYmlkMElHVjRkSEpoWTNRZ1kyOXNiR1ZqZEdsdmJuTWdkMmwwYUc5MWRDQk5VMUFzSUhkcGJHd2dZbVVnWTJGMVoyaDBJR0o1SUd4aGRHVnlJR2hoYm1Sc1pYSnpYRzRnSUNBZ2NtVjBkWEp1TzF4dUlDQjlYRzVjYmlBZ1kyOXVjM1FnWTI5c2JHVmpkR2x2Ym5NNklITjBjbWx1WjF0ZElEMGdXMTA3WEc0Z0lHWnZjaUFvWTI5dWMzUWdiV1YwWVdSaGRHRWdiMllnWkdGMFlVRnljbUY1S1NCN1hHNGdJQ0FnWTI5dWMzUWdZMjlzYkdWamRHbHZibEpsYzI5c2RtVnlJRDBnYldWMFlXUmhkR0V1WTI5c2JHVmpkR2x2Ym5NN1hHNGdJQ0FnWTI5dWMzUWdZMjlzYkdWamRHbHZiaUE5WEc0Z0lDQWdJQ0IwZVhCbGIyWWdZMjlzYkdWamRHbHZibEpsYzI5c2RtVnlJRDA5UFNCY0luTjBjbWx1WjF3aVhHNGdJQ0FnSUNBZ0lEOGdZMjlzYkdWamRHbHZibEpsYzI5c2RtVnlYRzRnSUNBZ0lDQWdJRG9nWTI5c2JHVmpkR2x2YmxKbGMyOXNkbVZ5S0cxdlpHVnNMQ0J0YzNBc0lHTnZiblJsZUhRcE8xeHVJQ0FnSUdsbUlDaGpiMnhzWldOMGFXOXVJQ1ltSUNGamIyeHNaV04wYVc5dWN5NXBibU5zZFdSbGN5aGpiMnhzWldOMGFXOXVLU2tnZTF4dUlDQWdJQ0FnWTI5c2JHVmpkR2x2Ym5NdWNIVnphQ2hqYjJ4c1pXTjBhVzl1S1R0Y2JpQWdJQ0I5WEc0Z0lIMWNiaUFnWVhCd2JIbFRaV2R5WldkaGRHbHZia1pzWVdkektHMXZaR1ZzTENCamIyeHNaV04wYVc5dWN5d2dZMjl1ZEdWNGRDazdYRzVjYmlBZ0x5OGdVM1J2Y21VZ2MyVm5jbVZuWVhScGIyNGdiV1YwWVdSaGRHRWdjR1Z5TFhObGNYVmxibU5sSUhOdklFWmhZbkpwWTBOdmJuUnlZV04wVTJWeGRXVnVZMlVnWTJGdUlHUmxZMmxrWlZ4dUlDQXZMeUIzYUdWeVpTQjBieUJ6ZEc5eVpTOXlaWEJzYVdOaGRHVWdjMlZ4ZFdWdVkyVWdjbVZqYjNKa2N5QW9jSFZpYkdsaklIWnpJSEJ5YVhaaGRHVXZjMmhoY21Wa0tTNWNiaUFnTHk5Y2JpQWdMeThnTFNCZ1FIQnJLQ2xnSUhObGNYVmxibU5sY3lCMWMyVWdkR2hsSUhOb1lYSmxaQ0J1WVcxbElHQWtlM1JoWW14bGZWOXdhMkFnS0c1dklHbGtJR052YlhCdmJtVnVkQ2t1WEc0Z0lDOHZJQzBnWUVCelpYRjFaVzVqWlNncFlDQXZJSEJsY25OcGMzUmxiblFnWUVCMlpYSnphVzl1S0hSeWRXVXBZQ0J6WlhGMVpXNWpaWE1nWVhKbElIQmxjaTF0YjJSbGJDMXBibk4wWVc1alpUcGNiaUFnTHk4Z0lDQmdKSHQwWVdKc1pYMWZKSHRwWkgxZkpIdHdjbTl3WlhKMGVYMWdMbHh1SUNCamIyNXpkQ0JyWlhsQmNuSmhlU0E5SUNoQmNuSmhlUzVwYzBGeWNtRjVLR3RsZVhNcElEOGdhMlY1Y3lBNklGdHJaWGx6WFNrZ1lYTWdLR3RsZVc5bUlFMHBXMTA3WEc0Z0lHTnZibk4wSUhCclMyVjVJRDBnVFc5a1pXd3VjR3NvYlc5a1pXd3VZMjl1YzNSeWRXTjBiM0lnWVhNZ1lXNTVLU0JoY3lCclpYbHZaaUJOTzF4dUlDQmpiMjV6ZENCd2ExTmxjVTVoYldVZ1BTQk5iMlJsYkM1elpYRjFaVzVqWlU1aGJXVW9iVzlrWld3c0lGd2ljR3RjSWlrN1hHNWNiaUFnWTI5dWMzUWdhV1JXWVd4MVpTQTlJQ2h0YjJSbGJDQmhjeUJoYm5rcFczQnJTMlY1SUdGeklHRnVlVjA3WEc0Z0lHTnZibk4wSUdOaGJrSjFhV3hrVUdWeVNXNXpkR0Z1WTJVZ1BWeHVJQ0FnSUhSNWNHVnZaaUJwWkZaaGJIVmxJQ0U5UFNCY0luVnVaR1ZtYVc1bFpGd2lJQ1ltSUdsa1ZtRnNkV1VnSVQwOUlHNTFiR3c3WEc1Y2JpQWdMeThnUVd4M1lYbHpJSFZ1YVc5dUlHTnZiR3hsWTNScGIyNXpJR1p2Y2lCMGFHVWdjR3NnYzJWeGRXVnVZMlVnZDJobGJpQjBhR1VnYlc5a1pXd2dkWE5sY3lCelpXZHlaV2RoZEdWa0lHUmhkR0V1WEc0Z0lDaGpiMjUwWlhoMElHRnpJR0Z1ZVNrdWMyVjBVMlZ4ZFdWdVkyVlRaV2R5WldkaGRHbHZiaWhjYmlBZ0lDQndhMU5sY1U1aGJXVXNYRzRnSUNBZ0tHTnZiblJsZUhRZ1lYTWdZVzU1S1M1cGMwWjFiR3g1VTJWbmNtVm5ZWFJsWkN4Y2JpQWdJQ0JqYjJ4c1pXTjBhVzl1YzF4dUlDQXBPMXh1WEc0Z0lDOHZJRVp2Y2lCd1pYSXRjSEp2Y0dWeWRIa2djMlZ4ZFdWdVkyVnpMQ0J2Ym14NUlISmxaMmx6ZEdWeUlIZG9aVzRnZDJVZ1kyRnVJR052YlhCMWRHVWdZVzRnYVdRdGMyTnZjR1ZrSUc1aGJXVXVYRzRnSUM4dklGUm9hWE1nYTJWbGNITWdjMlZ4ZFdWdVkyVnpJR052Ym5OMGNtRnBibVZrSUhSdklIUm9aU0JqYjJ4c1pXTjBhVzl1Y3lCMGFHVWdZWFIwY21saWRYUmxJR1Y0YVhOMGN5QnBiaTVjYmlBZ2FXWWdLR05oYmtKMWFXeGtVR1Z5U1c1emRHRnVZMlVwSUh0Y2JpQWdJQ0JtYjNJZ0tHTnZibk4wSUdzZ2IyWWdhMlY1UVhKeVlYa3BJSHRjYmlBZ0lDQWdJR052Ym5OMElIQnliM0JUWlhGT1lXMWxJRDBnVFc5a1pXd3VjMlZ4ZFdWdVkyVk9ZVzFsS0cxdlpHVnNMQ0JUZEhKcGJtY29hV1JXWVd4MVpTa3NJRk4wY21sdVp5aHJLU2s3WEc0Z0lDQWdJQ0FvWTI5dWRHVjRkQ0JoY3lCaGJua3BMbk5sZEZObGNYVmxibU5sVTJWbmNtVm5ZWFJwYjI0b1hHNGdJQ0FnSUNBZ0lIQnliM0JUWlhGT1lXMWxMRnh1SUNBZ0lDQWdJQ0FvWTI5dWRHVjRkQ0JoY3lCaGJua3BMbWx6Um5Wc2JIbFRaV2R5WldkaGRHVmtMRnh1SUNBZ0lDQWdJQ0JqYjJ4c1pXTjBhVzl1YzF4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdGemVXNWpJR1oxYm1OMGFXOXVJSE5sWjNKbFoyRjBaV1JFWVhSaFQyNURjbVZoZEdVOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdkR2hwY3pvZ1VtVndiM05wZEc5eWVUeE5MQ0JoYm5rK0xGeHVJQ0JqYjI1MFpYaDBPaUJEYjI1MFpYaDBUMlk4ZEhsd1pXOW1JSFJvYVhNK0xGeHVJQ0JrWVhSaE9pQlRaV2R5WldkaGRHVmtSR0YwWVUxbGRHRmtZWFJoSUh3Z1UyVm5jbVZuWVhSbFpFUmhkR0ZOWlhSaFpHRjBZVnRkTEZ4dUlDQnJaWGx6T2lCclpYbHZaaUJOSUh3Z0tHdGxlVzltSUUwcFcxMHNYRzRnSUcxdlpHVnNPaUJOWEc0cE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdZMjl1YzNRZ1pHRjBZVUZ5Y21GNUlEMGdLRnh1SUNBZ0lFRnljbUY1TG1selFYSnlZWGtvWkdGMFlTa2dQeUJrWVhSaElEb2dXMlJoZEdGZFhHNGdJQ2tnWVhNZ1UyVm5jbVZuWVhSbFpFUmhkR0ZOWlhSaFpHRjBZVnRkTzF4dUlDQmpiMjV6ZENCclpYbEJjbkpoZVNBOUlDaEJjbkpoZVM1cGMwRnljbUY1S0d0bGVYTXBJRDhnYTJWNWN5QTZJRnRyWlhselhTa2dZWE1nS0d0bGVXOW1JRTBwVzEwN1hHNGdJR2xtSUNoclpYbEJjbkpoZVM1c1pXNW5kR2dnSVQwOUlHUmhkR0ZCY25KaGVTNXNaVzVuZEdncFhHNGdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQmdVMlZuY21WbllYUmxaQ0JrWVhSaElHdGxlWE1nWVc1a0lHMWxkR0ZrWVhSaElHeGxibWQwYUNCdGFYTnRZWFJqYUdCY2JpQWdJQ0FwTzF4dVhHNGdJR052Ym5OMElHMXpjQ0E5WEc0Z0lDQWdUVzlrWld3dWIzZHVaWEpQWmlodGIyUmxiQ2tnZkh4Y2JpQWdJQ0JsZUhSeVlXTjBUWE53U1dRb1hHNGdJQ0FnSUNCamIyNTBaWGgwTG1kbGRDaGNJbWxrWlc1MGFYUjVYQ0lwSUdGeklITjBjbWx1WnlCOElFTnNhV1Z1ZEVsa1pXNTBhWFI1SUh3Z2RXNWtaV1pwYm1Wa1hHNGdJQ0FnS1R0Y2JpQWdhV1lnS0NGdGMzQXBYRzRnSUNBZ2RHaHliM2NnYm1WM0lGWmhiR2xrWVhScGIyNUZjbkp2Y2loY2JpQWdJQ0FnSUdCVWFHVnlaU2R6SUc1dklHRnpjMmxuYm1Wa0lHOXlaMkZ1YVhwaGRHbHZiaUJtYjNJZ2JXOWtaV3dnSkh0dGIyUmxiQzVqYjI1emRISjFZM1J2Y2k1dVlXMWxmV0JjYmlBZ0lDQXBPMXh1WEc0Z0lHTnZibk4wSUdOdmJHeGxZM1JwYjI1U1pYTnZiSFpsY2lBOUlHUmhkR0ZCY25KaGVWc3dYUzVqYjJ4c1pXTjBhVzl1Y3p0Y2JpQWdZMjl1YzNRZ1kyOXNiR1ZqZEdsdmJpQTlYRzRnSUNBZ2RIbHdaVzltSUdOdmJHeGxZM1JwYjI1U1pYTnZiSFpsY2lBOVBUMGdYQ0p6ZEhKcGJtZGNJbHh1SUNBZ0lDQWdQeUJqYjJ4c1pXTjBhVzl1VW1WemIyeDJaWEpjYmlBZ0lDQWdJRG9nWTI5c2JHVmpkR2x2YmxKbGMyOXNkbVZ5S0cxdlpHVnNMQ0J0YzNBc0lHTnZiblJsZUhRcE8xeHVYRzRnSUM4dklGWmhiR2xrWVhSbElHRnNiQ0JyWlhseklISmxjMjlzZG1VZ2RHOGdkR2hsSUhOaGJXVWdZMjlzYkdWamRHbHZibHh1SUNCclpYbEJjbkpoZVM1bWIzSkZZV05vS0NoZmF5d2dhU2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR01nUFZ4dUlDQWdJQ0FnZEhsd1pXOW1JR1JoZEdGQmNuSmhlVnRwWFM1amIyeHNaV04wYVc5dWN5QTlQVDBnWENKemRISnBibWRjSWx4dUlDQWdJQ0FnSUNBL0lHUmhkR0ZCY25KaGVWdHBYUzVqYjJ4c1pXTjBhVzl1YzF4dUlDQWdJQ0FnSUNBNklHUmhkR0ZCY25KaGVWdHBYUzVqYjJ4c1pXTjBhVzl1Y3lodGIyUmxiQ3dnYlhOd0xDQmpiMjUwWlhoMEtUdGNiaUFnSUNCcFppQW9ZeUFoUFQwZ1kyOXNiR1ZqZEdsdmJpbGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QlZibk4xY0hCdmNuUmxaRVZ5Y205eUtGeHVJQ0FnSUNBZ0lDQmdVMlZuY21WbllYUmxaQ0JrWVhSaElHTnZiR3hsWTNScGIyNGdiV2x6YldGMFkyZzZJQ1I3WTMwZ2RuTWdKSHRqYjJ4c1pXTjBhVzl1ZldCY2JpQWdJQ0FnSUNrN1hHNGdJSDBwTzF4dVhHNGdJR052Ym5OMElHdGxlVk4wY21sdVozTWdQU0JyWlhsQmNuSmhlUzV0WVhBb0tHdGxlU2tnUFQ0Z1UzUnlhVzVuS0d0bGVTa3BPMXh1SUNBdkx5QlRkRzl5WlNCMGFHVWdjMlZuY21WbllYUmxaQ0J0YjJSbGJDRGlnSlFnY0hKbGNHRnlaU2dwSUhkcGJHd2dabWxzZEdWeUlIUnZJR052Ykd4bFkzUnBiMjR0YzNCbFkybG1hV01nWm1sbGJHUnpYRzRnSUNoamIyNTBaWGgwSUdGeklFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ2t1ZDNKcGRHVlVieWhqYjJ4c1pXTjBhVzl1TENCclpYbFRkSEpwYm1kektUdGNibjFjYmx4dVpYaHdiM0owSUdGemVXNWpJR1oxYm1OMGFXOXVJSE5sWjNKbFoyRjBaV1JFWVhSaFQyNVNaV0ZrUEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lIUm9hWE02SUZKbGNHOXphWFJ2Y25rOFRTd2dZVzU1UGl4Y2JpQWdZMjl1ZEdWNGREb2dRMjl1ZEdWNGREeEdZV0p5YVdOR2JHRm5jejRzWEc0Z0lHUmhkR0U2SUZObFozSmxaMkYwWldSRVlYUmhUV1YwWVdSaGRHRWdmQ0JUWldkeVpXZGhkR1ZrUkdGMFlVMWxkR0ZrWVhSaFcxMHNYRzRnSUd0bGVYTTZJR3RsZVc5bUlFMGdmQ0FvYTJWNWIyWWdUU2xiWFN4Y2JpQWdiVzlrWld3NklFMWNiaWs2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNCamIyNXpkQ0JrWVhSaFFYSnlZWGtnUFNBb1hHNGdJQ0FnUVhKeVlYa3VhWE5CY25KaGVTaGtZWFJoS1NBL0lHUmhkR0VnT2lCYlpHRjBZVjFjYmlBZ0tTQmhjeUJUWldkeVpXZGhkR1ZrUkdGMFlVMWxkR0ZrWVhSaFcxMDdYRzRnSUdOdmJuTjBJR3RsZVVGeWNtRjVJRDBnS0VGeWNtRjVMbWx6UVhKeVlYa29hMlY1Y3lrZ1B5QnJaWGx6SURvZ1cydGxlWE5kS1NCaGN5QW9hMlY1YjJZZ1RTbGJYVHRjYmlBZ2FXWWdLR3RsZVVGeWNtRjVMbXhsYm1kMGFDQWhQVDBnWkdGMFlVRnljbUY1TG14bGJtZDBhQ2xjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY2JpQWdJQ0FnSUdCVFpXZHlaV2RoZEdWa0lHUmhkR0VnYTJWNWN5QmhibVFnYldWMFlXUmhkR0VnYkdWdVozUm9JRzFwYzIxaGRHTm9ZRnh1SUNBZ0lDazdYRzVjYmlBZ1kyOXVjM1FnYlNBOVhHNGdJQ0FnWTI5dWRHVjRkQzVuWlhSUGNsVnVaR1ZtYVc1bFpDaGNJbUZzYkc5M1IyVnVaWEpoZEdsdmJrOTJaWEp5YVdSbFhDSXBJSHg4SUdaaGJITmxYRzRnSUNBZ0lDQS9JR052Ym5SbGVIUXVaMlYwVDNKVmJtUmxabWx1WldRb1hDSnZkMjVsY2s5MlpYSnlhV1JsWENJcFhHNGdJQ0FnSUNBNklIVnVaR1ZtYVc1bFpEdGNibHh1SUNCamIyNXpkQ0J0YzNBZ1BWeHVJQ0FnSUcwZ2ZId2dUVzlrWld3dWIzZHVaWEpQWmlodGIyUmxiQ2tnZkh3Z1pYaDBjbUZqZEUxemNFbGtLR052Ym5SbGVIUXVaMlYwS0Z3aWFXUmxiblJwZEhsY0lpa3BPMXh1SUNCcFppQW9JVzF6Y0NsY2JpQWdJQ0IwYUhKdmR5QnVaWGNnVm1Gc2FXUmhkR2x2YmtWeWNtOXlLRnh1SUNBZ0lDQWdZRlJvWlhKbEozTWdibThnWVhOemFXZHVaV1FnYjNKbllXNXBlbUYwYVc5dUlHWnZjaUJ0YjJSbGJDQWtlMjF2WkdWc0xtTnZibk4wY25WamRHOXlMbTVoYldWOVlGeHVJQ0FnSUNrN1hHNWNiaUFnWTI5dWMzUWdZMjlzYkdWamRHbHZibEpsYzI5c2RtVnlJRDBnWkdGMFlVRnljbUY1V3pCZExtTnZiR3hsWTNScGIyNXpPMXh1SUNCamIyNXpkQ0JqYjJ4c1pXTjBhVzl1SUQxY2JpQWdJQ0IwZVhCbGIyWWdZMjlzYkdWamRHbHZibEpsYzI5c2RtVnlJRDA5UFNCY0luTjBjbWx1WjF3aVhHNGdJQ0FnSUNBL0lHTnZiR3hsWTNScGIyNVNaWE52YkhabGNseHVJQ0FnSUNBZ09pQmhkMkZwZENCamIyeHNaV04wYVc5dVVtVnpiMngyWlhJb2JXOWtaV3dzSUcxemNDd2dZMjl1ZEdWNGRDazdYRzVjYmlBZ0tHTnZiblJsZUhRZ1lYTWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwS1M1eVpXRmtSbkp2YlNoamIyeHNaV04wYVc5dUtUdGNibjFjYmx4dVpYaHdiM0owSUdGemVXNWpJR1oxYm1OMGFXOXVJSE5sWjNKbFoyRjBaV1JFWVhSaFQyNVZjR1JoZEdVOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdkR2hwY3pvZ1VtVndiM05wZEc5eWVUeE5MQ0JoYm5rK0xGeHVJQ0JqYjI1MFpYaDBPaUJEYjI1MFpYaDBUMlk4ZEhsd1pXOW1JSFJvYVhNK0xGeHVJQ0JrWVhSaE9pQlRaV2R5WldkaGRHVmtSR0YwWVUxbGRHRmtZWFJoSUh3Z1UyVm5jbVZuWVhSbFpFUmhkR0ZOWlhSaFpHRjBZVnRkTEZ4dUlDQnJaWGs2SUd0bGVXOW1JRTBnZkNBb2EyVjViMllnVFNsYlhTeGNiaUFnYlc5a1pXdzZJRTBzWEc0Z0lDOHZJR1Z6YkdsdWRDMWthWE5oWW14bExXNWxlSFF0YkdsdVpTQkFkSGx3WlhOamNtbHdkQzFsYzJ4cGJuUXZibTh0ZFc1MWMyVmtMWFpoY25OY2JpQWdiMnhrVFc5a1pXdzZJRTFjYmlrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQmpiMjV6ZENCa1lYUmhRWEp5WVhrZ1BTQW9YRzRnSUNBZ1FYSnlZWGt1YVhOQmNuSmhlU2hrWVhSaEtTQS9JR1JoZEdFZ09pQmJaR0YwWVYxY2JpQWdLU0JoY3lCVFpXZHlaV2RoZEdWa1JHRjBZVTFsZEdGa1lYUmhXMTA3WEc0Z0lHTnZibk4wSUd0bGVVRnljbUY1SUQwZ0tFRnljbUY1TG1selFYSnlZWGtvYTJWNUtTQS9JR3RsZVNBNklGdHJaWGxkS1NCaGN5QW9hMlY1YjJZZ1RTbGJYVHRjYmlBZ2FXWWdLR3RsZVVGeWNtRjVMbXhsYm1kMGFDQWhQVDBnWkdGMFlVRnljbUY1TG14bGJtZDBhQ2xjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY2JpQWdJQ0FnSUdCVFpXZHlaV2RoZEdWa0lHUmhkR0VnYTJWNWN5QmhibVFnYldWMFlXUmhkR0VnYkdWdVozUm9JRzFwYzIxaGRHTm9ZRnh1SUNBZ0lDazdYRzVjYmlBZ1kyOXVjM1FnYlhOd0lEMWNiaUFnSUNCTmIyUmxiQzV2ZDI1bGNrOW1LRzF2WkdWc0tTQjhmRnh1SUNBZ0lHVjRkSEpoWTNSTmMzQkpaQ2hjYmlBZ0lDQWdJR052Ym5SbGVIUXVaMlYwS0Z3aWFXUmxiblJwZEhsY0lpa2dZWE1nYzNSeWFXNW5JSHdnUTJ4cFpXNTBTV1JsYm5ScGRIa2dmQ0IxYm1SbFptbHVaV1JjYmlBZ0lDQXBPMXh1SUNCcFppQW9JVzF6Y0NsY2JpQWdJQ0IwYUhKdmR5QnVaWGNnVm1Gc2FXUmhkR2x2YmtWeWNtOXlLRnh1SUNBZ0lDQWdZRlJvWlhKbEozTWdibThnWVhOemFXZHVaV1FnYjNKbllXNXBlbUYwYVc5dUlHWnZjaUJ0YjJSbGJDQWtlMjF2WkdWc0xtTnZibk4wY25WamRHOXlMbTVoYldWOVlGeHVJQ0FnSUNrN1hHNWNiaUFnWTI5dWMzUWdZMjlzYkdWamRHbHZibEpsYzI5c2RtVnlJRDBnWkdGMFlVRnljbUY1V3pCZExtTnZiR3hsWTNScGIyNXpPMXh1SUNCamIyNXpkQ0JqYjJ4c1pXTjBhVzl1SUQxY2JpQWdJQ0IwZVhCbGIyWWdZMjlzYkdWamRHbHZibEpsYzI5c2RtVnlJRDA5UFNCY0luTjBjbWx1WjF3aVhHNGdJQ0FnSUNBL0lHTnZiR3hsWTNScGIyNVNaWE52YkhabGNseHVJQ0FnSUNBZ09pQmpiMnhzWldOMGFXOXVVbVZ6YjJ4MlpYSW9iVzlrWld3c0lHMXpjQ3dnWTI5dWRHVjRkQ2s3WEc1Y2JpQWdhMlY1UVhKeVlYa3VabTl5UldGamFDZ29heXdnYVNrZ1BUNGdlMXh1SUNBZ0lHTnZibk4wSUdNZ1BWeHVJQ0FnSUNBZ2RIbHdaVzltSUdSaGRHRkJjbkpoZVZ0cFhTNWpiMnhzWldOMGFXOXVjeUE5UFQwZ1hDSnpkSEpwYm1kY0lseHVJQ0FnSUNBZ0lDQS9JR1JoZEdGQmNuSmhlVnRwWFM1amIyeHNaV04wYVc5dWMxeHVJQ0FnSUNBZ0lDQTZJR1JoZEdGQmNuSmhlVnRwWFM1amIyeHNaV04wYVc5dWN5aHRiMlJsYkN3Z2JYTndMQ0JqYjI1MFpYaDBLVHRjYmlBZ0lDQnBaaUFvWXlBaFBUMGdZMjlzYkdWamRHbHZiaWxjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJWYm5OMWNIQnZjblJsWkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JnVTJWbmNtVm5ZWFJsWkNCa1lYUmhJR052Ykd4bFkzUnBiMjRnYldsemJXRjBZMmc2SUNSN1kzMGdkbk1nSkh0amIyeHNaV04wYVc5dWZXQmNiaUFnSUNBZ0lDazdYRzRnSUgwcE8xeHVYRzRnSUdOdmJuTjBJR3RsZVZOMGNtbHVaM01nUFNBb2EyVjVRWEp5WVhrZ1lYTWdLR3RsZVc5bUlFMHBXMTBwTG0xaGNDZ29hMlY1S1NBOVBpQlRkSEpwYm1jb2EyVjVLU2s3WEc0Z0lDOHZJRk4wYjNKbElIUm9aU0J2Y21sbmFXNWhiQ0J0YjJSbGJDRGlnSlFnY0hKbGNHRnlaU2dwSUhkcGJHd2dabWxzZEdWeUlIUnZJR052Ykd4bFkzUnBiMjR0YzNCbFkybG1hV01nWm1sbGJHUnpYRzRnSUNoamIyNTBaWGgwSUdGeklFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ2t1ZDNKcGRHVlVieWhqYjJ4c1pXTjBhVzl1TENCclpYbFRkSEpwYm1kektUdGNibjFjYmx4dVpYaHdiM0owSUdGemVXNWpJR1oxYm1OMGFXOXVJSE5sWjNKbFoyRjBaV1JFWVhSaFQyNUVaV3hsZEdVOFhHNGdJRTBnWlhoMFpXNWtjeUJOYjJSbGJDeGNiaUFnVWlCbGVIUmxibVJ6SUZKbGNHOXphWFJ2Y25rOFRTd2dZVzU1UGl4Y2JpQWdWaUJsZUhSbGJtUnpJRk5sWjNKbFoyRjBaV1JFWVhSaFRXVjBZV1JoZEdFc1hHNCtLRnh1SUNCMGFHbHpPaUJTTEZ4dUlDQmpiMjUwWlhoME9pQkRiMjUwWlhoMFQyWThVajRzWEc0Z0lHUmhkR0U2SUZZZ2ZDQldXMTBzWEc0Z0lHdGxlVG9nS0d0bGVXOW1JRTBwVzEwc1hHNGdJRzF2WkdWc09pQk5YRzRwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ1kyOXVjM1FnWkdGMFlVRnljbUY1SUQwZ0tFRnljbUY1TG1selFYSnlZWGtvWkdGMFlTa2dQeUJrWVhSaElEb2dXMlJoZEdGZEtTQmhjeUJXVzEwN1hHNGdJR052Ym5OMElHdGxlVUZ5Y21GNUlEMGdLRUZ5Y21GNUxtbHpRWEp5WVhrb2EyVjVLU0EvSUd0bGVTQTZJRnRyWlhsZEtTQmhjeUFvYTJWNWIyWWdUU2xiWFR0Y2JpQWdhV1lnS0d0bGVVRnljbUY1TG14bGJtZDBhQ0FoUFQwZ1pHRjBZVUZ5Y21GNUxteGxibWQwYUNsY2JpQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNiaUFnSUNBZ0lHQlRaV2R5WldkaGRHVmtJR1JoZEdFZ2EyVjVjeUJoYm1RZ2JXVjBZV1JoZEdFZ2JHVnVaM1JvSUcxcGMyMWhkR05vWUZ4dUlDQWdJQ2s3WEc1Y2JpQWdZMjl1YzNRZ2JTQTlYRzRnSUNBZ1kyOXVkR1Y0ZEM1blpYUlBjbFZ1WkdWbWFXNWxaQ2hjSW1Gc2JHOTNSMlZ1WlhKaGRHbHZiazkyWlhKeWFXUmxYQ0lwSUh4OElHWmhiSE5sWEc0Z0lDQWdJQ0EvSUdOdmJuUmxlSFF1WjJWMFQzSlZibVJsWm1sdVpXUW9YQ0p2ZDI1bGNrOTJaWEp5YVdSbFhDSXBYRzRnSUNBZ0lDQTZJSFZ1WkdWbWFXNWxaRHRjYmx4dUlDQmpiMjV6ZENCdGMzQWdQVnh1SUNBZ0lHMGdmSHhjYmlBZ0lDQk5iMlJsYkM1dmQyNWxjazltS0cxdlpHVnNLU0I4ZkZ4dUlDQWdJR1Y0ZEhKaFkzUk5jM0JKWkNoY2JpQWdJQ0FnSUdOdmJuUmxlSFF1WjJWMEtGd2lhV1JsYm5ScGRIbGNJaWtnWVhNZ2MzUnlhVzVuSUh3Z1EyeHBaVzUwU1dSbGJuUnBkSGtnZkNCMWJtUmxabWx1WldSY2JpQWdJQ0FwTzF4dUlDQnBaaUFvSVcxemNDbGNiaUFnSUNCMGFISnZkeUJ1WlhjZ1ZtRnNhV1JoZEdsdmJrVnljbTl5S0Z4dUlDQWdJQ0FnWUZSb1pYSmxKM01nYm04Z1lYTnphV2R1WldRZ2IzSm5ZVzVwZW1GMGFXOXVJR1p2Y2lCdGIyUmxiQ0FrZTIxdlpHVnNMbU52Ym5OMGNuVmpkRzl5TG01aGJXVjlZRnh1SUNBZ0lDazdYRzVjYmlBZ1kyOXVjM1FnWTI5c2JHVmpkR2x2YmxKbGMyOXNkbVZ5SUQwZ1pHRjBZVUZ5Y21GNVd6QmRMbU52Ykd4bFkzUnBiMjV6TzF4dUlDQmpiMjV6ZENCamIyeHNaV04wYVc5dUlEMWNiaUFnSUNCMGVYQmxiMllnWTI5c2JHVmpkR2x2YmxKbGMyOXNkbVZ5SUQwOVBTQmNJbk4wY21sdVoxd2lYRzRnSUNBZ0lDQS9JR052Ykd4bFkzUnBiMjVTWlhOdmJIWmxjbHh1SUNBZ0lDQWdPaUJqYjJ4c1pXTjBhVzl1VW1WemIyeDJaWElvYlc5a1pXd3NJRzF6Y0N3Z1kyOXVkR1Y0ZENrN1hHNWNiaUFnS0dOdmJuUmxlSFFnWVhNZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBLUzV5WldGa1JuSnZiU2hqYjJ4c1pXTjBhVzl1S1R0Y2JuMWNibHh1Wm5WdVkzUnBiMjRnYzJWbmNtVm5ZWFJsWkNoY2JpQWdZMjlzYkdWamRHbHZiam9nYzNSeWFXNW5JSHdnUTI5c2JHVmpkR2x2YmxKbGMyOXNkbVZ5TEZ4dUlDQjBlWEJsT2lCR1lXSnlhV05OYjJSbGJFdGxlWE11VUZKSlZrRlVSU0I4SUVaaFluSnBZMDF2WkdWc1MyVjVjeTVUU0VGU1JVUXNYRzRnSUdacGJIUmxjajg2SUNod2NtOXdUbUZ0WlRvZ2MzUnlhVzVuS1NBOVBpQmliMjlzWldGdVhHNHBJSHRjYmlBZ2NtVjBkWEp1SUdaMWJtTjBhVzl1SUdsdWJtVnlVMlZuY21WbllYUmxaQ2gwWVhKblpYUTZJRzlpYW1WamRDd2djSEp2Y0dWeWRIbExaWGsvT2lCaGJua3BJSHRjYmlBZ0lDQm1kVzVqZEdsdmJpQnpaV2R5WldkaGRHVmtSR1ZqS0hSaGNtZGxkRG9nYjJKcVpXTjBMQ0J3Y205d1pYSjBlVXRsZVQ4NklHRnVlU2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdhMlY1SUQwZ1RXVjBZV1JoZEdFdWEyVjVLSFI1Y0dVc0lIQnliM0JsY25SNVMyVjVLVHRjYmlBZ0lDQWdJR052Ym5OMElHTnZibk4wY2pvZ1EyOXVjM1J5ZFdOMGIzSWdQU0IwWVhKblpYUXVZMjl1YzNSeWRXTjBiM0lnWVhNZ1EyOXVjM1J5ZFdOMGIzSTdYRzVjYmlBZ0lDQWdJR052Ym5OMElHMWxkR0VnUFNCTlpYUmhaR0YwWVM1blpYUW9ZMjl1YzNSeUlHRnpJRU52Ym5OMGNuVmpkRzl5TENCclpYa3BJSHg4SUh0OU8xeHVJQ0FnSUNBZ1kyOXVjM1FnWTI5c2JHVmpkR2x2Ym5NZ1BTQnVaWGNnVTJWMEtHMWxkR0V1WTI5c2JHVmpkR2x2Ym5NZ2ZId2dXMTBwTzF4dUlDQWdJQ0FnWTI5c2JHVmpkR2x2Ym5NdVlXUmtLR052Ykd4bFkzUnBiMjRwTzF4dUlDQWdJQ0FnYldWMFlTNWpiMnhzWldOMGFXOXVjeUE5SUZzdUxpNWpiMnhzWldOMGFXOXVjMTA3WEc0Z0lDQWdJQ0JOWlhSaFpHRjBZUzV6WlhRb1kyOXVjM1J5SUdGeklFTnZibk4wY25WamRHOXlMQ0JyWlhrc0lHMWxkR0VwTzF4dVhHNGdJQ0FnSUNCamIyNXpkQ0JqYjI1emRISk5aWFJoSUQwZ1RXVjBZV1JoZEdFdVoyVjBLR052Ym5OMGNpQmhjeUJEYjI1emRISjFZM1J2Y2l3Z2RIbHdaU2tnZkh3Z2UzMDdYRzRnSUNBZ0lDQmpiMjV6ZENCamIyNXpkSEpEYjJ4c1pXTjBhVzl1Y3lBOUlHNWxkeUJUWlhRb1kyOXVjM1J5VFdWMFlTNWpiMnhzWldOMGFXOXVjeUI4ZkNCYlhTazdYRzRnSUNBZ0lDQmpiMjV6ZEhKRGIyeHNaV04wYVc5dWN5NWhaR1FvWTI5c2JHVmpkR2x2YmlrN1hHNGdJQ0FnSUNCamIyNXpkSEpOWlhSaExtTnZiR3hsWTNScGIyNXpJRDBnV3k0dUxtTnZibk4wY2tOdmJHeGxZM1JwYjI1elhUdGNiaUFnSUNBZ0lFMWxkR0ZrWVhSaExuTmxkQ2hqYjI1emRISWdZWE1nUTI5dWMzUnlkV04wYjNJc0lIUjVjR1VzSUdOdmJuTjBjazFsZEdFcE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCMGNtRnVjMmxsYm5STlpYUmhJRDFjYmlBZ0lDQWdJQ0FnVFdWMFlXUmhkR0V1WjJWMEtHTnZibk4wY2lCaGN5QkRiMjV6ZEhKMVkzUnZjaXdnUkVKTFpYbHpMbFJTUVU1VFNVVk9WQ2tnZkh3Z2UzMDdYRzRnSUNBZ0lDQmpiMjV6ZENCMWNHUmhkR1ZrVkhKaGJuTnBaVzUwVFdWMFlTQTlJSHRjYmlBZ0lDQWdJQ0FnTGk0dWRISmhibk5wWlc1MFRXVjBZU3hjYmlBZ0lDQWdJQ0FnVzNCeWIzQmxjblI1UzJWNUlHRnpJR0Z1ZVYwNklIdDlMRnh1SUNBZ0lDQWdmVHRjYmlBZ0lDQWdJRTFsZEdGa1lYUmhMbk5sZENoY2JpQWdJQ0FnSUNBZ1kyOXVjM1J5SUdGeklFTnZibk4wY25WamRHOXlMRnh1SUNBZ0lDQWdJQ0JFUWt0bGVYTXVWRkpCVGxOSlJVNVVMRnh1SUNBZ0lDQWdJQ0IxY0dSaGRHVmtWSEpoYm5OcFpXNTBUV1YwWVZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQmtaV056T2lCaGJubGJYU0E5SUZ0ZE8xeHVJQ0FnSUdsbUlDZ2hjSEp2Y0dWeWRIbExaWGtwSUh0Y2JpQWdJQ0FnSUM4dklHUmxZMjl5WVhSbFpDQmhkQ0IwYUdVZ1kyeGhjM01nYkdWMlpXeGNiaUFnSUNBZ0lHTnZibk4wSUhCeWIzQmxjblJwWlhNZ1BTQk5aWFJoWkdGMFlTNW5aWFJCZEhSeWFXSjFkR1Z6S0hSaGNtZGxkQ0JoY3lCRGIyNXpkSEoxWTNSdmNpazdYRzRnSUNBZ0lDQndjbTl3WlhKMGFXVnpQeTVtYjNKRllXTm9LQ2h3S1NBOVBpQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaFptbHNkR1Z5SUh4OElHWnBiSFJsY2lod0tTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhObFozSmxaMkYwWldRb1kyOXNiR1ZqZEdsdmJpd2dkSGx3WlNrb0tIUmhjbWRsZENCaGN5QmhibmtwTG5CeWIzUnZkSGx3WlN3Z2NDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSFJoY21kbGREdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnWTI5dWMzUWdaM0p2ZFhCT1lXMWxJRDFjYmlBZ0lDQWdJQ0FnZEhsd1pXOW1JR052Ykd4bFkzUnBiMjRnUFQwOUlGd2ljM1J5YVc1blhDSWdQeUJqYjJ4c1pXTjBhVzl1SURvZ1kyOXNiR1ZqZEdsdmJpNTBiMU4wY21sdVp5Z3BPMXh1SUNBZ0lDQWdMeThnVlhObElHUnBabVpsY21WdWRDQm5jbTkxY0NCdVlXMWxjeUJtYjNJZ1pYaDBjbUZqZEdsdmJpQjJjeUJrWVhSaElHaGhibVJzWlhKeklIUnZJSEJ5WlhabGJuUWdiV1Z5WjJsdVoxeHVJQ0FnSUNBZ1kyOXVjM1FnWlhoMGNtRmpkRWR5YjNWd1RtRnRaU0E5SUdBa2UyZHliM1Z3VG1GdFpYMDZaWGgwY21GamRHQTdYRzRnSUNBZ0lDQmpiMjV6ZENCa1lYUmhSM0p2ZFhCT1lXMWxJRDBnWUNSN1ozSnZkWEJPWVcxbGZUcGtZWFJoWUR0Y2JpQWdJQ0FnSUdOdmJuTjBJR1ZoY214NVJYaDBjbUZqZEdsdmJrMWxkR0VnUFNCN0lHTnZiR3hsWTNScGIyNXpPaUJqYjJ4c1pXTjBhVzl1SUgwN1hHNGdJQ0FnSUNCamIyNXpkQ0JsWVhKc2VVVjRkSEpoWTNScGIyNUhjbTkxY0ZOdmNuUWdQU0I3WEc0Z0lDQWdJQ0FnSUhCeWFXOXlhWFI1T2lCVFJVZFNSVWRCVkVWRVgwTlBURXhGUTFSSlQwNWZSVmhVVWtGRFZFbFBUbDlRVWtsUFVrbFVXU3hjYmlBZ0lDQWdJQ0FnWjNKdmRYQTZJR1Y0ZEhKaFkzUkhjbTkxY0U1aGJXVXNYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lDQWdaR1ZqY3k1d2RYTm9LRnh1SUNBZ0lDQWdJQ0J3Y205d0tDa3NYRzRnSUNBZ0lDQWdJSFJ5WVc1emFXVnVkQ2dwTEZ4dUlDQWdJQ0FnSUNCelpXZHlaV2RoZEdWa1JHVmpMRnh1SUNBZ0lDQWdJQ0F2THlCRllYSnNlU0JsZUhSeVlXTjBhVzl1SUdoaGJtUnNaWEp6SUMwZ2NuVnVJRUpGUms5U1JTQndheUJuWlc1bGNtRjBhVzl1SUNod2NtbHZjbWwwZVNBMk1DbGNiaUFnSUNBZ0lDQWdMeThnVkdocGN5Qmxibk4xY21WeklHTnZiR3hsWTNScGIyNXpJR0Z5WlNCeVpXZHBjM1JsY21Wa0lHbHVJR052Ym5SbGVIUWdabTl5SUhObGNYVmxibU5sSUhKbGNHeHBZMkYwYVc5dVhHNGdJQ0FnSUNBZ0lDOHZJRmRsSUhKbFoybHpkR1Z5SUdadmNpQmxZV05vSUc5d1pYSmhkR2x2YmlCbGVIQnNhV05wZEd4NUlIUnZJR1Z1YzNWeVpTQndjbTl3WlhJZ2FHRnVaR3hsY2lCc2IyOXJkWEJjYmlBZ0lDQWdJQ0FnYjI0b1hHNGdJQ0FnSUNBZ0lDQWdSRUpQY0dWeVlYUnBiMjV6TGtGTVRDeGNiaUFnSUNBZ0lDQWdJQ0JsZUhSeVlXTjBVMlZuY21WbllYUmxaRU52Ykd4bFkzUnBiMjV6SUdGeklHRnVlU3hjYmlBZ0lDQWdJQ0FnSUNCbFlYSnNlVVY0ZEhKaFkzUnBiMjVOWlhSaExGeHVJQ0FnSUNBZ0lDQWdJR1ZoY214NVJYaDBjbUZqZEdsdmJrZHliM1Z3VTI5eWRGeHVJQ0FnSUNBZ0lDQXBMRnh1SUNBZ0lDQWdJQ0F2THlCTllXbHVJR2hoYm1Sc1pYSnpJR1p2Y2lCelpXZHlaV2RoZEdWa0lHUmhkR0VnYjNCbGNtRjBhVzl1Y3lBb2NISnBiM0pwZEhrZ09UVXBYRzRnSUNBZ0lDQWdJRzl1UTNKbFlYUmxLRnh1SUNBZ0lDQWdJQ0FnSUhObFozSmxaMkYwWldSRVlYUmhUMjVEY21WaGRHVXNYRzRnSUNBZ0lDQWdJQ0FnZXlCamIyeHNaV04wYVc5dWN6b2dZMjlzYkdWamRHbHZiaUI5TEZ4dUlDQWdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhCeWFXOXlhWFI1T2lBNU5TeGNiaUFnSUNBZ0lDQWdJQ0FnSUdkeWIzVndPaUJrWVhSaFIzSnZkWEJPWVcxbExGeHVJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnS1N4Y2JpQWdJQ0FnSUNBZ2IyNVNaV0ZrS0Z4dUlDQWdJQ0FnSUNBZ0lITmxaM0psWjJGMFpXUkVZWFJoVDI1U1pXRmtJR0Z6SUdGdWVTeGNiaUFnSUNBZ0lDQWdJQ0I3SUdOdmJHeGxZM1JwYjI1ek9pQmpiMnhzWldOMGFXOXVJSDBzWEc0Z0lDQWdJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY0hKcGIzSnBkSGs2SURrMUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnWjNKdmRYQTZJR1JoZEdGSGNtOTFjRTVoYldVc1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnSUNCdmJsVndaR0YwWlNoY2JpQWdJQ0FnSUNBZ0lDQnpaV2R5WldkaGRHVmtSR0YwWVU5dVZYQmtZWFJsSUdGeklHRnVlU3hjYmlBZ0lDQWdJQ0FnSUNCN0lHTnZiR3hsWTNScGIyNXpPaUJqYjJ4c1pXTjBhVzl1SUgwc1hHNGdJQ0FnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NISnBiM0pwZEhrNklEazFMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1ozSnZkWEE2SUdSaGRHRkhjbTkxY0U1aGJXVXNYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBcExGeHVJQ0FnSUNBZ0lDQnZia1JsYkdWMFpTaGNiaUFnSUNBZ0lDQWdJQ0J6WldkeVpXZGhkR1ZrUkdGMFlVOXVSR1ZzWlhSbElHRnpJR0Z1ZVN4Y2JpQWdJQ0FnSUNBZ0lDQjdJR052Ykd4bFkzUnBiMjV6T2lCamIyeHNaV04wYVc5dUlIMHNYRzRnSUNBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdjSEpwYjNKcGRIazZJRGsxTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaM0p2ZFhBNklHUmhkR0ZIY205MWNFNWhiV1VzWEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQXBYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnWVhCd2JIa29MaTR1WkdWamN5a29kR0Z5WjJWMExDQndjbTl3WlhKMGVVdGxlU2s3WEc0Z0lIMDdYRzU5WEc1Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCd2NtbDJZWFJsUkdGMFlTaGNiaUFnWTI5c2JHVmpkR2x2YmpvZ2MzUnlhVzVuSUh3Z1EyOXNiR1ZqZEdsdmJsSmxjMjlzZG1WeUlEMGdTVzF3YkdsamFYUlFjbWwyWVhSbFEyOXNiR1ZqZEdsdmJseHVLU0I3WEc0Z0lHWjFibU4wYVc5dUlIQnlhWFpoZEdWRVlYUmhLR052Ykd4bFkzUnBiMjQ2SUhOMGNtbHVaeUI4SUVOdmJHeGxZM1JwYjI1U1pYTnZiSFpsY2lrZ2UxeHVJQ0FnSUhKbGRIVnliaUJ6WldkeVpXZGhkR1ZrS0dOdmJHeGxZM1JwYjI0c0lFWmhZbkpwWTAxdlpHVnNTMlY1Y3k1UVVrbFdRVlJGS1R0Y2JpQWdmVnh1WEc0Z0lISmxkSFZ5YmlCRVpXTnZjbUYwYVc5dUxtWnZjaWhHWVdKeWFXTk5iMlJsYkV0bGVYTXVVRkpKVmtGVVJTbGNiaUFnSUNBdVpHVm1hVzVsS0h0Y2JpQWdJQ0FnSUdSbFkyOXlZWFJ2Y2pvZ2NISnBkbUYwWlVSaGRHRXNYRzRnSUNBZ0lDQmhjbWR6T2lCYlkyOXNiR1ZqZEdsdmJsMHNYRzRnSUNBZ2ZTbGNiaUFnSUNBdVlYQndiSGtvS1R0Y2JuMWNibHh1Wlhod2IzSjBJR1oxYm1OMGFXOXVJSE5vWVhKbFpFUmhkR0VvWTI5c2JHVmpkR2x2YmpvZ2MzUnlhVzVuSUh3Z1EyOXNiR1ZqZEdsdmJsSmxjMjlzZG1WeUtTQjdYRzRnSUdaMWJtTjBhVzl1SUhOb1lYSmxaRVJoZEdFb1kyOXNiR1ZqZEdsdmJqb2djM1J5YVc1bklId2dRMjlzYkdWamRHbHZibEpsYzI5c2RtVnlLU0I3WEc0Z0lDQWdjbVYwZFhKdUlITmxaM0psWjJGMFpXUW9ZMjlzYkdWamRHbHZiaXdnUm1GaWNtbGpUVzlrWld4TFpYbHpMbE5JUVZKRlJDazdYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdSR1ZqYjNKaGRHbHZiaTVtYjNJb1JtRmljbWxqVFc5a1pXeExaWGx6TGxOSVFWSkZSQ2xjYmlBZ0lDQXVaR1ZtYVc1bEtIdGNiaUFnSUNBZ0lHUmxZMjl5WVhSdmNqb2djMmhoY21Wa1JHRjBZU3hjYmlBZ0lDQWdJR0Z5WjNNNklGdGpiMnhzWldOMGFXOXVYU3hjYmlBZ0lDQjlLVnh1SUNBZ0lDNWhjSEJzZVNncE8xeHVmVnh1SWwxOSJdfQ==
|
|
616
|
+
//# sourceMappingURL=decorators.js.map
|
|
617
|
+
//# sourceMappingURL=decorators.cjs.map
|