@decaf-ts/for-fabric 0.12.0 → 0.12.1
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 +3797 -2
- package/dist/for-fabric.js +3901 -2
- package/lib/cjs/bin/cli.cjs +2 -2
- package/lib/cjs/cli-module.cjs +28 -3
- package/lib/cjs/cli-utils.cjs +2 -2
- package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
- package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
- package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
- package/lib/cjs/client/FabricClientRepository.cjs +2 -2
- package/lib/cjs/client/FabricClientStatement.cjs +2 -2
- package/lib/cjs/client/collections/generation.cjs +2 -2
- package/lib/cjs/client/collections/index.cjs +2 -2
- package/lib/cjs/client/constants.cjs +2 -2
- package/lib/cjs/client/crypto.cjs +2 -2
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
- package/lib/cjs/client/erc20/index.cjs +2 -2
- package/lib/cjs/client/fabric-fs.cjs +2 -2
- package/lib/cjs/client/fabric-hsm.cjs +2 -2
- package/lib/cjs/client/ids/id-extraction.cjs +2 -2
- package/lib/cjs/client/ids/index.cjs +2 -2
- package/lib/cjs/client/index.cjs +2 -2
- package/lib/cjs/client/indexes/generation.cjs +2 -2
- package/lib/cjs/client/indexes/index.cjs +2 -2
- package/lib/cjs/client/logging.cjs +2 -2
- package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
- package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
- package/lib/cjs/client/services/constants.cjs +2 -2
- package/lib/cjs/client/services/index.cjs +2 -2
- package/lib/cjs/client/types.cjs +2 -2
- package/lib/cjs/client/utils.cjs +2 -2
- package/lib/cjs/contract/Address.cjs +2 -2
- package/lib/cjs/contract/AddressContract.cjs +2 -2
- package/lib/cjs/contract/AuditContract.cjs +2 -2
- package/lib/cjs/contract/BatchContract.cjs +2 -2
- package/lib/cjs/contract/MarketContract.cjs +2 -2
- package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
- package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
- package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/Product.cjs +2 -2
- package/lib/cjs/contract/ProductContract.cjs +2 -2
- package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
- package/lib/cjs/contract/User.cjs +2 -2
- package/lib/cjs/contract/UserContract.cjs +2 -2
- package/lib/cjs/contract/index.cjs +2 -2
- package/lib/cjs/contract/logging-context.cjs +2 -2
- package/lib/cjs/contract/models/Audit.cjs +2 -2
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
- package/lib/cjs/contract/models/BaseModel.cjs +2 -2
- package/lib/cjs/contract/models/Batch.cjs +2 -2
- package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
- package/lib/cjs/contract/models/History.cjs +2 -2
- package/lib/cjs/contract/models/Leaflet.cjs +2 -2
- package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/Market.cjs +2 -2
- package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
- package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
- package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/Product.cjs +2 -2
- package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
- package/lib/cjs/contract/models/constants.cjs +2 -2
- package/lib/cjs/contract/models/decorators-private.cjs +2 -2
- package/lib/cjs/contract/models/decorators.cjs +2 -2
- package/lib/cjs/contract/models/gtin.cjs +2 -2
- package/lib/cjs/contract/models/history-dec.cjs +2 -2
- package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
- package/lib/cjs/contracts/ContractContext.cjs +2 -2
- package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
- package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
- package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
- package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
- package/lib/cjs/contracts/MigrationContract.cjs +2 -2
- package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
- package/lib/cjs/contracts/auth/decorators.cjs +2 -2
- package/lib/cjs/contracts/auth/index.cjs +2 -2
- package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
- package/lib/cjs/contracts/crud/index.cjs +2 -2
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
- package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
- package/lib/cjs/contracts/erc20/index.cjs +2 -2
- package/lib/cjs/contracts/erc20/models.cjs +2 -2
- package/lib/cjs/contracts/index.cjs +2 -2
- package/lib/cjs/contracts/logging.cjs +2 -2
- package/lib/cjs/contracts/overrides.cjs +2 -2
- package/lib/cjs/contracts/types.cjs +2 -2
- package/lib/cjs/contracts/uuid.cjs +2 -2
- package/lib/cjs/index.cjs +2 -2
- package/lib/cjs/shared/ClientSerializer.cjs +2 -2
- package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/constants.cjs +2 -2
- package/lib/cjs/shared/decorators.cjs +2 -2
- package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
- package/lib/cjs/shared/erc20/index.cjs +2 -2
- package/lib/cjs/shared/errors.cjs +2 -2
- package/lib/cjs/shared/events.cjs +2 -2
- package/lib/cjs/shared/fabric-types.cjs +2 -2
- package/lib/cjs/shared/index.cjs +2 -2
- package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
- package/lib/cjs/shared/interfaces/index.cjs +2 -2
- package/lib/cjs/shared/math.cjs +2 -2
- package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/Identity.cjs +2 -2
- package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
- package/lib/cjs/shared/model/index.cjs +2 -2
- package/lib/cjs/shared/overrides/Model.cjs +2 -2
- package/lib/cjs/shared/overrides/index.cjs +2 -2
- package/lib/cjs/shared/overrides/overrides.cjs +2 -2
- package/lib/cjs/shared/types.cjs +2 -2
- package/lib/cjs/version.cjs +3 -3
- package/lib/esm/bin/cli.js +1 -1
- package/lib/esm/cli-module.js +27 -2
- package/lib/esm/cli-utils.js +1 -1
- package/lib/esm/client/FabricClientAdapter.js +1 -1
- package/lib/esm/client/FabricClientDispatch.js +1 -1
- package/lib/esm/client/FabricClientPaginator.js +1 -1
- package/lib/esm/client/FabricClientRepository.js +1 -1
- package/lib/esm/client/FabricClientStatement.js +1 -1
- package/lib/esm/client/collections/generation.js +1 -1
- package/lib/esm/client/collections/index.js +1 -1
- package/lib/esm/client/constants.js +1 -1
- package/lib/esm/client/crypto.js +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
- package/lib/esm/client/erc20/index.js +1 -1
- package/lib/esm/client/fabric-fs.js +1 -1
- package/lib/esm/client/fabric-hsm.js +1 -1
- package/lib/esm/client/ids/id-extraction.js +1 -1
- package/lib/esm/client/ids/index.js +1 -1
- package/lib/esm/client/index.js +1 -1
- package/lib/esm/client/indexes/generation.js +1 -1
- package/lib/esm/client/indexes/index.js +1 -1
- package/lib/esm/client/logging.js +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
- package/lib/esm/client/services/FabricIdentityService.js +1 -1
- package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
- package/lib/esm/client/services/constants.js +1 -1
- package/lib/esm/client/services/index.js +1 -1
- package/lib/esm/client/types.js +1 -1
- package/lib/esm/client/utils.js +1 -1
- package/lib/esm/contract/Address.js +1 -1
- package/lib/esm/contract/AddressContract.js +1 -1
- package/lib/esm/contract/AuditContract.js +1 -1
- package/lib/esm/contract/BatchContract.js +1 -1
- package/lib/esm/contract/MarketContract.js +1 -1
- package/lib/esm/contract/OtherAuditContract.js +1 -1
- package/lib/esm/contract/OtherBatchContract.js +1 -1
- package/lib/esm/contract/OtherMarketContract.js +1 -1
- package/lib/esm/contract/OtherProductContract.js +1 -1
- package/lib/esm/contract/OtherProductImageContract.js +1 -1
- package/lib/esm/contract/OtherProductSharedContract.js +1 -1
- package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
- package/lib/esm/contract/Product.js +1 -1
- package/lib/esm/contract/ProductContract.js +1 -1
- package/lib/esm/contract/ProductStrengthContract.js +1 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
- package/lib/esm/contract/User.js +1 -1
- package/lib/esm/contract/UserContract.js +1 -1
- package/lib/esm/contract/index.js +1 -1
- package/lib/esm/contract/logging-context.js +1 -1
- package/lib/esm/contract/models/Audit.js +1 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
- package/lib/esm/contract/models/BaseModel.js +1 -1
- package/lib/esm/contract/models/Batch.js +1 -1
- package/lib/esm/contract/models/GtinOwner.js +1 -1
- package/lib/esm/contract/models/History.js +1 -1
- package/lib/esm/contract/models/Leaflet.js +1 -1
- package/lib/esm/contract/models/LeafletFile.js +1 -1
- package/lib/esm/contract/models/Market.js +1 -1
- package/lib/esm/contract/models/OtherAudit.js +1 -1
- package/lib/esm/contract/models/OtherBatchShared.js +1 -1
- package/lib/esm/contract/models/OtherLeaflet.js +1 -1
- package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
- package/lib/esm/contract/models/OtherMarket.js +1 -1
- package/lib/esm/contract/models/OtherProduct.js +1 -1
- package/lib/esm/contract/models/OtherProductImage.js +1 -1
- package/lib/esm/contract/models/OtherProductShared.js +1 -1
- package/lib/esm/contract/models/OtherProductStrength.js +1 -1
- package/lib/esm/contract/models/Product.js +1 -1
- package/lib/esm/contract/models/ProductStrength.js +1 -1
- package/lib/esm/contract/models/SegregatedDocument.js +1 -1
- package/lib/esm/contract/models/constants.js +1 -1
- package/lib/esm/contract/models/decorators-private.js +1 -1
- package/lib/esm/contract/models/decorators.js +1 -1
- package/lib/esm/contract/models/gtin.js +1 -1
- package/lib/esm/contract/models/history-dec.js +1 -1
- package/lib/esm/contracts/ContractAdapter.js +1 -1
- package/lib/esm/contracts/ContractContext.js +1 -1
- package/lib/esm/contracts/FabricContractDispatch.js +1 -1
- package/lib/esm/contracts/FabricContractPaginator.js +1 -1
- package/lib/esm/contracts/FabricContractRepository.js +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
- package/lib/esm/contracts/FabricContractSequence.js +1 -1
- package/lib/esm/contracts/FabricContractStatement.js +1 -1
- package/lib/esm/contracts/MigrationContract.js +1 -1
- package/lib/esm/contracts/PrivateSequence.js +1 -1
- package/lib/esm/contracts/auth/decorators.js +1 -1
- package/lib/esm/contracts/auth/index.js +1 -1
- package/lib/esm/contracts/crud/crud-contract.js +1 -1
- package/lib/esm/contracts/crud/index.js +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
- package/lib/esm/contracts/erc20/erc20contract.js +1 -1
- package/lib/esm/contracts/erc20/index.js +1 -1
- package/lib/esm/contracts/erc20/models.js +1 -1
- package/lib/esm/contracts/index.js +1 -1
- package/lib/esm/contracts/logging.js +1 -1
- package/lib/esm/contracts/overrides.js +1 -1
- package/lib/esm/contracts/types.js +1 -1
- package/lib/esm/contracts/uuid.js +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/shared/ClientSerializer.js +1 -1
- package/lib/esm/shared/DeterministicSerializer.js +1 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
- package/lib/esm/shared/constants.js +1 -1
- package/lib/esm/shared/decorators.js +1 -1
- package/lib/esm/shared/erc20/erc20-constants.js +1 -1
- package/lib/esm/shared/erc20/index.js +1 -1
- package/lib/esm/shared/errors.js +1 -1
- package/lib/esm/shared/events.js +1 -1
- package/lib/esm/shared/fabric-types.js +1 -1
- package/lib/esm/shared/index.js +1 -1
- package/lib/esm/shared/interfaces/Checkable.js +1 -1
- package/lib/esm/shared/interfaces/index.js +1 -1
- package/lib/esm/shared/math.js +1 -1
- package/lib/esm/shared/model/FabricBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
- package/lib/esm/shared/model/Identity.js +1 -1
- package/lib/esm/shared/model/IdentityCredentials.js +1 -1
- package/lib/esm/shared/model/index.js +1 -1
- package/lib/esm/shared/overrides/Model.js +1 -1
- package/lib/esm/shared/overrides/index.js +1 -1
- package/lib/esm/shared/overrides/overrides.js +1 -1
- package/lib/esm/shared/types.js +1 -1
- package/lib/esm/version.js +2 -2
- package/lib/types/version.d.cts +1 -1
- package/lib/types/version.d.mts +1 -1
- package/package.json +7 -7
- package/dist/for-fabric.cjs.map +0 -1
- package/dist/for-fabric.js.map +0 -1
- package/lib/cjs/bin/cli.cjs.map +0 -1
- package/lib/cjs/cli-module.cjs.map +0 -1
- package/lib/cjs/cli-utils.cjs.map +0 -1
- package/lib/cjs/client/FabricClientAdapter.cjs.map +0 -1
- package/lib/cjs/client/FabricClientDispatch.cjs.map +0 -1
- package/lib/cjs/client/FabricClientPaginator.cjs.map +0 -1
- package/lib/cjs/client/FabricClientRepository.cjs.map +0 -1
- package/lib/cjs/client/FabricClientStatement.cjs.map +0 -1
- package/lib/cjs/client/collections/generation.cjs.map +0 -1
- package/lib/cjs/client/collections/index.cjs.map +0 -1
- package/lib/cjs/client/constants.cjs.map +0 -1
- package/lib/cjs/client/crypto.cjs.map +0 -1
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +0 -1
- package/lib/cjs/client/erc20/index.cjs.map +0 -1
- package/lib/cjs/client/fabric-fs.cjs.map +0 -1
- package/lib/cjs/client/fabric-hsm.cjs.map +0 -1
- package/lib/cjs/client/ids/id-extraction.cjs.map +0 -1
- package/lib/cjs/client/ids/index.cjs.map +0 -1
- package/lib/cjs/client/index.cjs.map +0 -1
- package/lib/cjs/client/indexes/generation.cjs.map +0 -1
- package/lib/cjs/client/indexes/index.cjs.map +0 -1
- package/lib/cjs/client/logging.cjs.map +0 -1
- package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +0 -1
- package/lib/cjs/client/services/FabricIdentityService.cjs.map +0 -1
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +0 -1
- package/lib/cjs/client/services/constants.cjs.map +0 -1
- package/lib/cjs/client/services/index.cjs.map +0 -1
- package/lib/cjs/client/types.cjs.map +0 -1
- package/lib/cjs/client/utils.cjs.map +0 -1
- package/lib/cjs/contract/Address.cjs.map +0 -1
- package/lib/cjs/contract/AddressContract.cjs.map +0 -1
- package/lib/cjs/contract/AuditContract.cjs.map +0 -1
- package/lib/cjs/contract/BatchContract.cjs.map +0 -1
- package/lib/cjs/contract/MarketContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherAuditContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherBatchContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherMarketContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductImageContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductSharedContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +0 -1
- package/lib/cjs/contract/Product.cjs.map +0 -1
- package/lib/cjs/contract/ProductContract.cjs.map +0 -1
- package/lib/cjs/contract/ProductStrengthContract.cjs.map +0 -1
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +0 -1
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +0 -1
- package/lib/cjs/contract/User.cjs.map +0 -1
- package/lib/cjs/contract/UserContract.cjs.map +0 -1
- package/lib/cjs/contract/index.cjs.map +0 -1
- package/lib/cjs/contract/logging-context.cjs.map +0 -1
- package/lib/cjs/contract/models/Audit.cjs.map +0 -1
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +0 -1
- package/lib/cjs/contract/models/BaseModel.cjs.map +0 -1
- package/lib/cjs/contract/models/Batch.cjs.map +0 -1
- package/lib/cjs/contract/models/GtinOwner.cjs.map +0 -1
- package/lib/cjs/contract/models/History.cjs.map +0 -1
- package/lib/cjs/contract/models/Leaflet.cjs.map +0 -1
- package/lib/cjs/contract/models/LeafletFile.cjs.map +0 -1
- package/lib/cjs/contract/models/Market.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherAudit.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherBatchShared.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherLeaflet.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherMarket.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProduct.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProductImage.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProductShared.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProductStrength.cjs.map +0 -1
- package/lib/cjs/contract/models/Product.cjs.map +0 -1
- package/lib/cjs/contract/models/ProductStrength.cjs.map +0 -1
- package/lib/cjs/contract/models/SegregatedDocument.cjs.map +0 -1
- package/lib/cjs/contract/models/constants.cjs.map +0 -1
- package/lib/cjs/contract/models/decorators-private.cjs.map +0 -1
- package/lib/cjs/contract/models/decorators.cjs.map +0 -1
- package/lib/cjs/contract/models/gtin.cjs.map +0 -1
- package/lib/cjs/contract/models/history-dec.cjs.map +0 -1
- package/lib/cjs/contracts/ContractAdapter.cjs.map +0 -1
- package/lib/cjs/contracts/ContractContext.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractDispatch.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractPaginator.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractRepository.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractSequence.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractStatement.cjs.map +0 -1
- package/lib/cjs/contracts/MigrationContract.cjs.map +0 -1
- package/lib/cjs/contracts/PrivateSequence.cjs.map +0 -1
- package/lib/cjs/contracts/auth/decorators.cjs.map +0 -1
- package/lib/cjs/contracts/auth/index.cjs.map +0 -1
- package/lib/cjs/contracts/crud/crud-contract.cjs.map +0 -1
- package/lib/cjs/contracts/crud/index.cjs.map +0 -1
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +0 -1
- package/lib/cjs/contracts/erc20/erc20contract.cjs.map +0 -1
- package/lib/cjs/contracts/erc20/index.cjs.map +0 -1
- package/lib/cjs/contracts/erc20/models.cjs.map +0 -1
- package/lib/cjs/contracts/index.cjs.map +0 -1
- package/lib/cjs/contracts/logging.cjs.map +0 -1
- package/lib/cjs/contracts/overrides.cjs.map +0 -1
- package/lib/cjs/contracts/types.cjs.map +0 -1
- package/lib/cjs/contracts/uuid.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/shared/ClientSerializer.cjs.map +0 -1
- package/lib/cjs/shared/DeterministicSerializer.cjs.map +0 -1
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +0 -1
- package/lib/cjs/shared/constants.cjs.map +0 -1
- package/lib/cjs/shared/decorators.cjs.map +0 -1
- package/lib/cjs/shared/erc20/erc20-constants.cjs.map +0 -1
- package/lib/cjs/shared/erc20/index.cjs.map +0 -1
- package/lib/cjs/shared/errors.cjs.map +0 -1
- package/lib/cjs/shared/events.cjs.map +0 -1
- package/lib/cjs/shared/fabric-types.cjs.map +0 -1
- package/lib/cjs/shared/index.cjs.map +0 -1
- package/lib/cjs/shared/interfaces/Checkable.cjs.map +0 -1
- package/lib/cjs/shared/interfaces/index.cjs.map +0 -1
- package/lib/cjs/shared/math.cjs.map +0 -1
- package/lib/cjs/shared/model/FabricBaseModel.cjs.map +0 -1
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +0 -1
- package/lib/cjs/shared/model/Identity.cjs.map +0 -1
- package/lib/cjs/shared/model/IdentityCredentials.cjs.map +0 -1
- package/lib/cjs/shared/model/index.cjs.map +0 -1
- package/lib/cjs/shared/overrides/Model.cjs.map +0 -1
- package/lib/cjs/shared/overrides/index.cjs.map +0 -1
- package/lib/cjs/shared/overrides/overrides.cjs.map +0 -1
- package/lib/cjs/shared/types.cjs.map +0 -1
- package/lib/cjs/version.cjs.map +0 -1
- package/lib/esm/bin/cli.js.map +0 -1
- package/lib/esm/cli-module.js.map +0 -1
- package/lib/esm/cli-utils.js.map +0 -1
- package/lib/esm/client/FabricClientAdapter.js.map +0 -1
- package/lib/esm/client/FabricClientDispatch.js.map +0 -1
- package/lib/esm/client/FabricClientPaginator.js.map +0 -1
- package/lib/esm/client/FabricClientRepository.js.map +0 -1
- package/lib/esm/client/FabricClientStatement.js.map +0 -1
- package/lib/esm/client/collections/generation.js.map +0 -1
- package/lib/esm/client/collections/index.js.map +0 -1
- package/lib/esm/client/constants.js.map +0 -1
- package/lib/esm/client/crypto.js.map +0 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +0 -1
- package/lib/esm/client/erc20/index.js.map +0 -1
- package/lib/esm/client/fabric-fs.js.map +0 -1
- package/lib/esm/client/fabric-hsm.js.map +0 -1
- package/lib/esm/client/ids/id-extraction.js.map +0 -1
- package/lib/esm/client/ids/index.js.map +0 -1
- package/lib/esm/client/index.js.map +0 -1
- package/lib/esm/client/indexes/generation.js.map +0 -1
- package/lib/esm/client/indexes/index.js.map +0 -1
- package/lib/esm/client/logging.js.map +0 -1
- package/lib/esm/client/services/FabricEnrollmentService.js.map +0 -1
- package/lib/esm/client/services/FabricIdentityService.js.map +0 -1
- package/lib/esm/client/services/RegistrationRequestBuilder.js.map +0 -1
- package/lib/esm/client/services/constants.js.map +0 -1
- package/lib/esm/client/services/index.js.map +0 -1
- package/lib/esm/client/types.js.map +0 -1
- package/lib/esm/client/utils.js.map +0 -1
- package/lib/esm/contract/Address.js.map +0 -1
- package/lib/esm/contract/AddressContract.js.map +0 -1
- package/lib/esm/contract/AuditContract.js.map +0 -1
- package/lib/esm/contract/BatchContract.js.map +0 -1
- package/lib/esm/contract/MarketContract.js.map +0 -1
- package/lib/esm/contract/OtherAuditContract.js.map +0 -1
- package/lib/esm/contract/OtherBatchContract.js.map +0 -1
- package/lib/esm/contract/OtherMarketContract.js.map +0 -1
- package/lib/esm/contract/OtherProductContract.js.map +0 -1
- package/lib/esm/contract/OtherProductImageContract.js.map +0 -1
- package/lib/esm/contract/OtherProductSharedContract.js.map +0 -1
- package/lib/esm/contract/OtherProductStrengthContract.js.map +0 -1
- package/lib/esm/contract/Product.js.map +0 -1
- package/lib/esm/contract/ProductContract.js.map +0 -1
- package/lib/esm/contract/ProductStrengthContract.js.map +0 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +0 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +0 -1
- package/lib/esm/contract/User.js.map +0 -1
- package/lib/esm/contract/UserContract.js.map +0 -1
- package/lib/esm/contract/index.js.map +0 -1
- package/lib/esm/contract/logging-context.js.map +0 -1
- package/lib/esm/contract/models/Audit.js.map +0 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js.map +0 -1
- package/lib/esm/contract/models/BaseModel.js.map +0 -1
- package/lib/esm/contract/models/Batch.js.map +0 -1
- package/lib/esm/contract/models/GtinOwner.js.map +0 -1
- package/lib/esm/contract/models/History.js.map +0 -1
- package/lib/esm/contract/models/Leaflet.js.map +0 -1
- package/lib/esm/contract/models/LeafletFile.js.map +0 -1
- package/lib/esm/contract/models/Market.js.map +0 -1
- package/lib/esm/contract/models/OtherAudit.js.map +0 -1
- package/lib/esm/contract/models/OtherBatchShared.js.map +0 -1
- package/lib/esm/contract/models/OtherLeaflet.js.map +0 -1
- package/lib/esm/contract/models/OtherLeafletFile.js.map +0 -1
- package/lib/esm/contract/models/OtherMarket.js.map +0 -1
- package/lib/esm/contract/models/OtherProduct.js.map +0 -1
- package/lib/esm/contract/models/OtherProductImage.js.map +0 -1
- package/lib/esm/contract/models/OtherProductShared.js.map +0 -1
- package/lib/esm/contract/models/OtherProductStrength.js.map +0 -1
- package/lib/esm/contract/models/Product.js.map +0 -1
- package/lib/esm/contract/models/ProductStrength.js.map +0 -1
- package/lib/esm/contract/models/SegregatedDocument.js.map +0 -1
- package/lib/esm/contract/models/constants.js.map +0 -1
- package/lib/esm/contract/models/decorators-private.js.map +0 -1
- package/lib/esm/contract/models/decorators.js.map +0 -1
- package/lib/esm/contract/models/gtin.js.map +0 -1
- package/lib/esm/contract/models/history-dec.js.map +0 -1
- package/lib/esm/contracts/ContractAdapter.js.map +0 -1
- package/lib/esm/contracts/ContractContext.js.map +0 -1
- package/lib/esm/contracts/FabricContractDispatch.js.map +0 -1
- package/lib/esm/contracts/FabricContractPaginator.js.map +0 -1
- package/lib/esm/contracts/FabricContractRepository.js.map +0 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
- package/lib/esm/contracts/FabricContractSequence.js.map +0 -1
- package/lib/esm/contracts/FabricContractStatement.js.map +0 -1
- package/lib/esm/contracts/MigrationContract.js.map +0 -1
- package/lib/esm/contracts/PrivateSequence.js.map +0 -1
- package/lib/esm/contracts/auth/decorators.js.map +0 -1
- package/lib/esm/contracts/auth/index.js.map +0 -1
- package/lib/esm/contracts/crud/crud-contract.js.map +0 -1
- package/lib/esm/contracts/crud/index.js.map +0 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +0 -1
- package/lib/esm/contracts/erc20/erc20contract.js.map +0 -1
- package/lib/esm/contracts/erc20/index.js.map +0 -1
- package/lib/esm/contracts/erc20/models.js.map +0 -1
- package/lib/esm/contracts/index.js.map +0 -1
- package/lib/esm/contracts/logging.js.map +0 -1
- package/lib/esm/contracts/overrides.js.map +0 -1
- package/lib/esm/contracts/types.js.map +0 -1
- package/lib/esm/contracts/uuid.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/shared/ClientSerializer.js.map +0 -1
- package/lib/esm/shared/DeterministicSerializer.js.map +0 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js.map +0 -1
- package/lib/esm/shared/constants.js.map +0 -1
- package/lib/esm/shared/decorators.js.map +0 -1
- package/lib/esm/shared/erc20/erc20-constants.js.map +0 -1
- package/lib/esm/shared/erc20/index.js.map +0 -1
- package/lib/esm/shared/errors.js.map +0 -1
- package/lib/esm/shared/events.js.map +0 -1
- package/lib/esm/shared/fabric-types.js.map +0 -1
- package/lib/esm/shared/index.js.map +0 -1
- package/lib/esm/shared/interfaces/Checkable.js.map +0 -1
- package/lib/esm/shared/interfaces/index.js.map +0 -1
- package/lib/esm/shared/math.js.map +0 -1
- package/lib/esm/shared/model/FabricBaseModel.js.map +0 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
- package/lib/esm/shared/model/Identity.js.map +0 -1
- package/lib/esm/shared/model/IdentityCredentials.js.map +0 -1
- package/lib/esm/shared/model/index.js.map +0 -1
- package/lib/esm/shared/overrides/Model.js.map +0 -1
- package/lib/esm/shared/overrides/index.js.map +0 -1
- package/lib/esm/shared/overrides/overrides.js.map +0 -1
- package/lib/esm/shared/types.js.map +0 -1
- package/lib/esm/version.js.map +0 -1
|
@@ -1364,5 +1364,5 @@ __decorate([
|
|
|
1364
1364
|
], FabricClientAdapter.prototype, "view", null);
|
|
1365
1365
|
FabricClientAdapter.decoration();
|
|
1366
1366
|
core_1.Adapter.setCurrent(constants_js_1.FabricFlavour);
|
|
1367
|
-
//# sourceMappingURL=FabricClientAdapter.js.map
|
|
1368
|
-
//# sourceMappingURL=FabricClientAdapter.js.map
|
|
1367
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50QWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvRmFicmljQ2xpZW50QWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsd0NBQTZCO0FBQzdCLE9BQU8sRUFDTCxXQUFXLEdBR1osTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFDTCxLQUFLLEdBR04sTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQU0xRCxPQUFPLEVBQ0wsT0FBTyxFQU9QLFlBQVksRUFDWixZQUFZLEdBQ2IsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxJQUFJLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRSxPQUFPLEVBQ0wsV0FBVyxFQUNYLFNBQVMsRUFDVCwwQkFBMEIsRUFDMUIsUUFBUSxJQUFJLFVBQVUsR0FDdkIsdUJBQW9CO0FBQ3JCLE9BQU8sRUFFTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLGFBQWEsRUFDYixlQUFlLEVBRWYsZUFBZSxHQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFDTCxPQUFPLEVBQ1AsT0FBTyxFQUVQLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsY0FBYyxFQUNkLGNBQWMsRUFDZCxhQUFhLEVBQ2IsV0FBVyxFQUNYLGVBQWUsRUFDZixVQUFVLEVBRVYsZ0JBQWdCLEdBUWpCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQ0FBNEI7QUFDcEQs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QUFJLGFBQWEsQ0FBQyxHQUFHLENBQU0sQ0FBQztJQUNyQyxDQUFDOztBQTVtQ2M7SUFGZCxLQUFLLEVBQUU7SUFDUCxLQUFLLEVBQUU7O3FFQU1rQixPQUFPOztpREF1Q2hDO0FBSUs7SUFGTCxLQUFLLEVBQUU7SUFDUCxLQUFLLEVBQUU7OzZDQUdrQixPQUFPOztzREFlaEM7QUFXSztJQUZMLEtBQUssRUFBRTtJQUNQLEtBQUssRUFBRTs7cURBSWtCLE9BQU87OytDQWdCaEM7QUE0Qks7SUFGTCxLQUFLLEVBQUU7SUFDUCxLQUFLLEVBQUU7O3FFQU1rQixPQUFPOztpREF3Q2hDO0FBV2M7SUFGZCxLQUFLLEVBQUU7SUFDUCxLQUFLLEVBQUU7O3FEQUlrQixPQUFPOztpREE4QmhDO0FBNEJLO0lBREwsS0FBSyxFQUFFOztpRUFHSSxDQUFDLG9CQUFELENBQUMsd0NBRWEsT0FBTzs7OENBd0NoQztBQWFLO0lBREwsS0FBSyxFQUFFOzs2REFLa0IsT0FBTzs7K0NBd0JoQztBQTB5QkgsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDakMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIi4uL3NoYXJlZC9vdmVycmlkZXNcIjtcbmltcG9ydCB7XG4gIENvdWNoREJLZXlzLFxuICB0eXBlIE1hbmdvUXVlcnksXG4gIHR5cGUgVmlld1Jlc3BvbnNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBDbGllbnQgfSBmcm9tIFwiQGdycGMvZ3JwYy1qc1wiO1xuaW1wb3J0ICogYXMgZ3JwYyBmcm9tIFwiQGdycGMvZ3JwYy1qc1wiO1xuaW1wb3J0IHtcbiAgTW9kZWwsXG4gIHR5cGUgTW9kZWxDb25zdHJ1Y3RvcixcbiAgdHlwZSBTZXJpYWxpemVyLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBkZWJ1ZywgZmluYWwsIExvZ2dpbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7XG4gIHR5cGUgUGVlckNvbmZpZyxcbiAgdHlwZSBTZWdyZWdhdGVkTW9kZWwsXG4gIHR5cGUgTXNwRGV0YWlscyxcbn0gZnJvbSBcIi4uL3NoYXJlZC90eXBlc1wiO1xuaW1wb3J0IHtcbiAgY29ubmVjdCxcbiAgdHlwZSBDb25uZWN0T3B0aW9ucyxcbiAgR2F0ZXdheSxcbiAgTmV0d29yayxcbiAgUHJvcG9zYWxPcHRpb25zLFxuICBDb250cmFjdCBhcyBDb250cmFrdCxcbiAgdHlwZSBTaWduZXIsXG4gIEdhdGV3YXlFcnJvcixcbiAgRW5kb3JzZUVycm9yLFxufSBmcm9tIFwiQGh5cGVybGVkZ2VyL2ZhYnJpYy1nYXRld2F5XCI7XG5pbXBvcnQgeyBHYXRld2F5IGFzIExlZ2FjeUdhdGV3YXksIFdhbGxldHMgfSBmcm9tIFwiZmFicmljLW5ldHdvcmtcIjtcbmltcG9ydCB0eXBlIHsgRW5kb3JzZXIgfSBmcm9tIFwiZmFicmljLWNvbW1vblwiO1xuaW1wb3J0IHtcbiAgZ2V0SWRlbnRpdHksXG4gIGdldFNpZ25lcixcbiAgZ2V0Rmlyc3REaXJGaWxlTmFtZUNvbnRlbnQsXG4gIHJlYWRGaWxlIGFzIHJlYWRGc0ZpbGUsXG59IGZyb20gXCIuL2ZhYnJpYy1mc1wiO1xuaW1wb3J0IHtcbiAgQmFzZUVycm9yLFxuICBJbnRlcm5hbEVycm9yLFxuICBPcGVyYXRpb25LZXlzLFxuICBTZXJpYWxpemF0aW9uRXJyb3IsXG4gIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyxcbiAgTm90Rm91bmRFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgQmFkUmVxdWVzdEVycm9yLFxuICB0eXBlIFByaW1hcnlLZXlUeXBlLFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQ29udGV4dCxcbiAgQWRhcHRlcixcbiAgdHlwZSBBZGFwdGVyRmxhZ3MsXG4gIEF1dGhvcml6YXRpb25FcnJvcixcbiAgQ29ubmVjdGlvbkVycm9yLFxuICBGb3JiaWRkZW5FcnJvcixcbiAgTWlncmF0aW9uRXJyb3IsXG4gIE9ic2VydmVyRXJyb3IsXG4gIFBhZ2luZ0Vycm9yLFxuICBQZXJzaXN0ZW5jZUtleXMsXG4gIFF1ZXJ5RXJyb3IsXG4gIFJlcG9zaXRvcnksXG4gIFVuc3VwcG9ydGVkRXJyb3IsXG4gIFN0YXRlbWVudCxcbiAgdHlwZSBQcmVwYXJlZFN0YXRlbWVudCxcbiAgUGFnaW5hdG9yLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIENvbnRleHR1YWxBcmdzLFxuICB0eXBlIFByZXBhcmVkTW9kZWwsXG4gIEFsbE9wZXJhdGlvbktleXMsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgRmFicmljRmxhdm91ciB9IGZyb20gXCIuLi9zaGFyZWQvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBDbGllbnRTZXJpYWxpemVyIH0gZnJvbSBcIi4uL3NoYXJlZC9DbGllbnRTZXJpYWxpemVyXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnREaXNwYXRjaCB9IGZyb20gXCIuL0ZhYnJpY0NsaWVudERpc3BhdGNoXCI7XG4vLyBpbXBvcnQgeyBIU01TaWduZXJGYWN0b3J5Q3VzdG9tIH0gZnJvbSBcIi4vZmFicmljLWhzbVwiO1xuaW1wb3J0IHsgdHlwZSBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50U3RhdGVtZW50IH0gZnJvbSBcIi4vRmFicmljQ2xpZW50U3RhdGVtZW50XCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRQYWdpbmF0b3IgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRQYWdpbmF0b3JcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRSZXBvc2l0b3J5XCI7XG5pbXBvcnQge1xuICBFbmRvcnNlbWVudEVycm9yLFxuICBFbmRvcnNlbWVudFBvbGljeUVycm9yLFxuICBNdmNjUmVhZENvbmZsaWN0RXJyb3IsXG4gIFBoYW50b21SZWFkQ29uZmxpY3RFcnJvcixcbiAgVHJhbnNhY3Rpb25UaW1lb3V0RXJyb3IsXG59IGZyb20gXCIuLi9zaGFyZWQvZXJyb3JzXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRGbGFncyB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyBEZWZhdWx0RmFicmljQ2xpZW50RmxhZ3MgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCB7IENyeXB0b1V0aWxzIH0gZnJvbSBcIi4vY3J5cHRvXCI7XG5pbXBvcnQgeyBleHRyYWN0SWRzIH0gZnJvbSBcIi4vaWRzL2lkLWV4dHJhY3Rpb25cIjtcbmltcG9ydCB7IElkZW50aXR5IH0gZnJvbSBcIi4uL3NoYXJlZC9pbmRleFwiO1xuXG50eXBlIExlZ2FjeVBlZXJUYXJnZXQgPSB7XG4gIG1zcElkOiBzdHJpbmc7XG4gIHBlZXJFbmRwb2ludDogc3RyaW5nO1xuICBwZWVySG9zdEFsaWFzPzogc3RyaW5nO1xuICB0bHNDZXJ0Pzogc3RyaW5nIHwgQnVmZmVyO1xufTtcblxudHlwZSBMZWdhY3lQZWVyV2l0aE5hbWUgPSBMZWdhY3lQZWVyVGFyZ2V0ICYgeyBuYW1lOiBzdHJpbmcgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya3NcbiAqIEBzdW1tYXJ5IFRoZSBGYWJyaWNBZGFwdGVyIGV4dGVuZHMgQ291Y2hEQkFkYXB0ZXIgdG8gcHJvdmlkZSBhIHNlYW1sZXNzIGludGVyZmFjZSBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya3MuXG4gKiBJdCBoYW5kbGVzIGNvbm5lY3Rpb24gbWFuYWdlbWVudCwgdHJhbnNhY3Rpb24gc3VibWlzc2lvbiwgYW5kIENSVUQgb3BlcmF0aW9ucyBhZ2FpbnN0IEZhYnJpYyBjaGFpbmNvZGUuXG4gKiBAdGVtcGxhdGUgUGVlckNvbmZpZyAtIENvbmZpZ3VyYXRpb24gdHlwZSBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gKiBAdGVtcGxhdGUgRmFicmljRmxhZ3MgLSBGbGFncyBzcGVjaWZpYyB0byBGYWJyaWMgb3BlcmF0aW9uc1xuICogQHRlbXBsYXRlIENvbnRleHQ8RmFicmljRmxhZ3M+IC0gQ29udGV4dCB0eXBlIGNvbnRhaW5pbmcgRmFicmljLXNwZWNpZmljIGZsYWdzXG4gKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIEZhYnJpYyBwZWVyXG4gKiBAcGFyYW0gYWxpYXMgLSBPcHRpb25hbCBhbGlhcyBmb3IgdGhlIGFkYXB0ZXIgaW5zdGFuY2VcbiAqIEBjbGFzcyBGYWJyaWNDbGllbnRBZGFwdGVyXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgbmV3IEZhYnJpY0FkYXB0ZXIgaW5zdGFuY2VcbiAqIGNvbnN0IGNvbmZpZzogUGVlckNvbmZpZyA9IHtcbiAqICAgbXNwSWQ6ICdPcmcxTVNQJyxcbiAqICAgcGVlckVuZHBvaW50OiAnbG9jYWxob3N0OjcwNTEnLFxuICogICBjaGFubmVsTmFtZTogJ215Y2hhbm5lbCcsXG4gKiAgIGNoYWluY29kZU5hbWU6ICdteWNjJyxcbiAqICAgY29udHJhY3ROYW1lOiAnbXljb250cmFjdCcsXG4gKiAgIHRsc0NlcnRQYXRoOiAnL3BhdGgvdG8vdGxzL2NlcnQnLFxuICogICBjZXJ0RGlyZWN0b3J5UGF0aDogJy9wYXRoL3RvL2NlcnQvZGlyJyxcbiAqICAga2V5RGlyZWN0b3J5UGF0aDogJy9wYXRoL3RvL2tleS9kaXInXG4gKiB9O1xuICpcbiAqIGNvbnN0IGFkYXB0ZXIgPSBuZXcgRmFicmljQWRhcHRlcihjb25maWcsICdvcmcxLWFkYXB0ZXInKTtcbiAqXG4gKiAvLyBVc2UgdGhlIGFkYXB0ZXIgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgRmFicmljIG5ldHdvcmtcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFkYXB0ZXIucmVhZCgndXNlcnMnLCAndXNlcjEnLCBteVNlcmlhbGl6ZXIpO1xuICogYGBgXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICogICBwYXJ0aWNpcGFudCBGYWJyaWNBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IEdhdGV3YXlcbiAqICAgcGFydGljaXBhbnQgTmV0d29ya1xuICogICBwYXJ0aWNpcGFudCBDb250cmFjdFxuICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAqXG4gKiAgIENsaWVudC0+PkZhYnJpY0FkYXB0ZXI6IGNyZWF0ZSh0YWJsZU5hbWUsIGlkLCBtb2RlbCwgdHJhbnNpZW50LCBzZXJpYWxpemVyKVxuICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogc3VibWl0VHJhbnNhY3Rpb24oT3BlcmF0aW9uS2V5cy5DUkVBVEUsIFtzZXJpYWxpemVkTW9kZWxdLCB0cmFuc2llbnQpXG4gKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjb25uZWN0KClcbiAqICAgR2F0ZXdheS0+Pk5ldHdvcms6IGdldE5ldHdvcmsoY2hhbm5lbE5hbWUpXG4gKiAgIE5ldHdvcmstPj5Db250cmFjdDogZ2V0Q29udHJhY3QoY2hhaW5jb2RlTmFtZSwgY29udHJhY3ROYW1lKVxuICogICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IHN1Ym1pdChhcGksIHByb3Bvc2FsT3B0aW9ucylcbiAqICAgQ29udHJhY3QtPj5DaGFpbmNvZGU6IGludm9rZVxuICogICBDaGFpbmNvZGUtLT4+Q29udHJhY3Q6IHJlc3BvbnNlXG4gKiAgIENvbnRyYWN0LS0+PkZhYnJpY0FkYXB0ZXI6IHJlc3VsdFxuICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogZGVjb2RlKHJlc3VsdClcbiAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IHNlcmlhbGl6ZXIuZGVzZXJpYWxpemUoZGVjb2RlZFJlc3VsdClcbiAqICAgRmFicmljQWRhcHRlci0tPj5DbGllbnQ6IGRlc2VyaWFsaXplZFJlc3VsdFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50QWRhcHRlciBleHRlbmRzIEFkYXB0ZXI8XG4gIFBlZXJDb25maWcsXG4gIENsaWVudCxcbiAgTWFuZ29RdWVyeSxcbiAgQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz5cbj4ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN0YXRpYyB0ZXh0IGRlY29kZXIgZm9yIGNvbnZlcnRpbmcgVWludDhBcnJheSB0byBzdHJpbmdcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoXCJ1dGY4XCIpO1xuXG4gIHByaXZhdGUgc3RhdGljIHNlcmlhbGl6ZXIgPSBuZXcgQ2xpZW50U2VyaWFsaXplcigpO1xuXG4gIHByb3RlY3RlZCBzdGF0aWMgbG9nID0gTG9nZ2luZy5mb3IoRmFicmljQ2xpZW50QWRhcHRlcik7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcmlhbGl6ZXI6IFNlcmlhbGl6ZXI8YW55PiA9XG4gICAgRmFicmljQ2xpZW50QWRhcHRlci5zZXJpYWxpemVyO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBGYWJyaWNBZGFwdGVyIGluc3RhbmNlXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGEgbmV3IGFkYXB0ZXIgZm9yIGludGVyYWN0aW5nIHdpdGggYSBIeXBlcmxlZGdlciBGYWJyaWMgbmV0d29ya1xuICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIENvbmZpZ3VyYXRpb24gZm9yIGNvbm5lY3RpbmcgdG8gYSBGYWJyaWMgcGVlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gW2FsaWFzXSAtIE9wdGlvbmFsIGFsaWFzIGZvciB0aGUgYWRhcHRlciBpbnN0YW5jZVxuICAgKi9cbiAgY29uc3RydWN0b3IoY29uZmlnOiBQZWVyQ29uZmlnLCBhbGlhcz86IHN0cmluZykge1xuICAgIHN1cGVyKFxuICAgICAgT2JqZWN0LmFzc2lnbih7fSwgRGVmYXVsdEZhYnJpY0NsaWVudEZsYWdzLCBjb25maWcpLFxuICAgICAgRmFicmljRmxhdm91cixcbiAgICAgIGFsaWFzXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIFN0YXRlbWVudDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIG92ZXJyaWRlcz86IFBhcnRpYWw8QWRhcHRlckZsYWdzPlxuICApOiBTdGF0ZW1lbnQ8TSwgRmFicmljQ2xpZW50QWRhcHRlciwgYW55LCBNYW5nb1F1ZXJ5PiB7XG4gICAgcmV0dXJuIG5ldyBGYWJyaWNDbGllbnRTdGF0ZW1lbnQodGhpcywgb3ZlcnJpZGVzKTtcbiAgfVxuXG4gIFBhZ2luYXRvcjxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIHF1ZXJ5OiBQcmVwYXJlZFN0YXRlbWVudDxhbnk+IHwgTWFuZ29RdWVyeSxcbiAgICBzaXplOiBudW1iZXIsXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+XG4gICk6IFBhZ2luYXRvcjxNLCBhbnksIE1hbmdvUXVlcnk+IHtcbiAgICByZXR1cm4gbmV3IEZhYnJpY0NsaWVudFBhZ2luYXRvcih0aGlzLCBxdWVyeSwgc2l6ZSwgY2xhenopO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGZsYWdzPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb3BlcmF0aW9uOiBPcGVyYXRpb25LZXlzIHwgc3RyaW5nLFxuICAgIG1vZGVsOiBDb25zdHJ1Y3RvcjxNPiB8IENvbnN0cnVjdG9yPE0+W10gfCB1bmRlZmluZWQsXG4gICAgZmxhZ3M6IFBhcnRpYWw8RmFicmljQ2xpZW50RmxhZ3M+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RmFicmljQ2xpZW50RmxhZ3M+IHtcbiAgICBjb25zdCBtZXJnZWRGbGFncyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY29uZmlnLCBmbGFncyk7XG4gICAgY29uc3QgZiA9IE9iamVjdC5hc3NpZ24oXG4gICAgICBhd2FpdCBzdXBlci5mbGFncyhvcGVyYXRpb24sIG1vZGVsLCBtZXJnZWRGbGFncywgLi4uYXJncylcbiAgICApO1xuICAgIHJldHVybiBmO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY29udGV4dDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIG9wZXJhdGlvbjogKCguLi5hcmdzOiBhbnlbXSkgPT4gYW55KSB8IEFsbE9wZXJhdGlvbktleXMsXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPEZhYnJpY0NsaWVudEZsYWdzPixcbiAgICBtb2RlbDogQ29uc3RydWN0b3I8TT4gfCBDb25zdHJ1Y3RvcjxNPltdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0PGFueT4+XG4gICk6IFByb21pc2U8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5jb250ZXh0KTtcbiAgICBsb2cuc2lsbHkoXG4gICAgICBgY3JlYXRpbmcgbmV3IGNvbnRleHQgZm9yICR7b3BlcmF0aW9ufSBvcGVyYXRpb24gb24gJHttb2RlbCA/IChBcnJheS5pc0FycmF5KG1vZGVsKSA/IG1vZGVsLm1hcCgobSkgPT4gTW9kZWwudGFibGVOYW1lKG0pKSA6IE1vZGVsLnRhYmxlTmFtZShtb2RlbCkpIDogXCJub1wifSB0YWJsZSAke292ZXJyaWRlcyAmJiBPYmplY3Qua2V5cyhvdmVycmlkZXMpID8gT2JqZWN0LmtleXMob3ZlcnJpZGVzKS5sZW5ndGggOiBcIm5vXCJ9IHdpdGggZmxhZyBvdmVycmlkZXNgXG4gICAgKTtcbiAgICBsZXQgY3R4ID0gYXJncy5wb3AoKTtcbiAgICBpZiAodHlwZW9mIGN0eCAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhKGN0eCBpbnN0YW5jZW9mIENvbnRleHQpKSB7XG4gICAgICBhcmdzLnB1c2goY3R4KTtcbiAgICAgIGN0eCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBvdmVycmlkZXMgPSBjdHhcbiAgICAgID8gT2JqZWN0LmFzc2lnbih7fSwgY3R4LnRvT3ZlcnJpZGVzKCksIG92ZXJyaWRlcylcbiAgICAgIDogb3ZlcnJpZGVzO1xuICAgIGNvbnN0IGZsYWdzID0gYXdhaXQgdGhpcy5mbGFncyhcbiAgICAgIHR5cGVvZiBvcGVyYXRpb24gPT09IFwic3RyaW5nXCIgPyBvcGVyYXRpb24gOiBvcGVyYXRpb24ubmFtZSxcbiAgICAgIG1vZGVsLFxuICAgICAgb3ZlcnJpZGVzIGFzIFBhcnRpYWw8RmFicmljQ2xpZW50RmxhZ3M+LFxuICAgICAgLi4uWy4uLmFyZ3MsIGN0eF0uZmlsdGVyKEJvb2xlYW4pXG4gICAgKTtcblxuICAgIGlmIChjdHgpIHtcbiAgICAgIGlmICghKGN0eCBpbnN0YW5jZW9mIHRoaXMuQ29udGV4dCkpIHtcbiAgICAgICAgY29uc3QgbmV3Q3R4ID0gbmV3IHRoaXMuQ29udGV4dCgpLmFjY3VtdWxhdGUoe1xuICAgICAgICAgIC4uLmN0eFtcImNhY2hlXCJdLFxuICAgICAgICAgIC4uLmZsYWdzLFxuICAgICAgICAgIHBhcmVudENvbnRleHQ6IGN0eCxcbiAgICAgICAgfSkgYXMgYW55O1xuICAgICAgICBjdHguYWNjdW11bGF0ZSh7XG4gICAgICAgICAgY2hpbGRDb250ZXh0czogW1xuICAgICAgICAgICAgLi4uKGN0eC5nZXRPclVuZGVmaW5lZChcImNoaWxkQ29udGV4dHNcIikgfHwgW10pLFxuICAgICAgICAgICAgbmV3Q3R4LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3Q3R4O1xuICAgICAgfVxuICAgICAgY29uc3QgY3VycmVudE9wID0gY3R4LmdldE9yVW5kZWZpbmVkKFwib3BlcmF0aW9uXCIpO1xuICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3R4LmdldE9yVW5kZWZpbmVkKFwiYWZmZWN0ZWRUYWJsZXNcIik7XG4gICAgICBpZiAoXG4gICAgICAgICFjdXJyZW50T3AgfHxcbiAgICAgICAgY3VycmVudE9wICE9PSBvcGVyYXRpb24gfHxcbiAgICAgICAgKG1vZGVsICYmIG1vZGVsICE9PSBjdXJyZW50TW9kZWwpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgbmV3Q3R4ID0gbmV3IHRoaXMuQ29udGV4dCgpLmFjY3VtdWxhdGUoe1xuICAgICAgICAgIC4uLmN0eFtcImNhY2hlXCJdLFxuICAgICAgICAgIC4uLmZsYWdzLFxuICAgICAgICAgIHBhcmVudENvbnRleHQ6IGN0eCxcbiAgICAgICAgfSkgYXMgYW55O1xuXG4gICAgICAgIGN0eC5hY2N1bXVsYXRlKHtcbiAgICAgICAgICBjaGlsZENvbnRleHRzOiBbXG4gICAgICAgICAgICAuLi4oY3R4LmdldE9yVW5kZWZpbmVkKFwiY2hpbGRDb250ZXh0c1wiKSB8fCBbXSksXG4gICAgICAgICAgICBuZXdDdHgsXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXdDdHg7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3R4LmFjY3VtdWxhdGUoZmxhZ3MpIGFzIGFueTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IHRoaXMuQ29udGV4dCgpLmFjY3VtdWxhdGUoe1xuICAgICAgLi4uZmxhZ3MsXG4gICAgfSkgYXMgYW55O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZWNvZGVzIGEgVWludDhBcnJheSB0byBhIHN0cmluZ1xuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBiaW5hcnkgZGF0YSByZWNlaXZlZCBmcm9tIEZhYnJpYyB0byBhIHN0cmluZyB1c2luZyBVVEYtOCBlbmNvZGluZ1xuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGRhdGEgLSBUaGUgYmluYXJ5IGRhdGEgdG8gZGVjb2RlXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGRlY29kZWQgc3RyaW5nXG4gICAqL1xuICBkZWNvZGUoZGF0YTogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEZhYnJpY0NsaWVudEFkYXB0ZXIuZGVjb2Rlci5kZWNvZGUoZGF0YSk7XG4gIH1cblxuICBvdmVycmlkZSByZXBvc2l0b3J5PFxuICAgIFIgZXh0ZW5kcyBSZXBvc2l0b3J5PFxuICAgICAgYW55LFxuICAgICAgQWRhcHRlcjxQZWVyQ29uZmlnLCBDbGllbnQsIE1hbmdvUXVlcnksIENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICAgID4sXG4gID4oKTogQ29uc3RydWN0b3I8Uj4ge1xuICAgIHJldHVybiBGYWJyaWNDbGllbnRSZXBvc2l0b3J5IGFzIHVua25vd24gYXMgQ29uc3RydWN0b3I8Uj47XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlUHJlZml4PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICk6IFtDb25zdHJ1Y3RvcjxNPiwgUHJpbWFyeUtleVR5cGUsIFJlY29yZDxzdHJpbmcsIGFueT4sIC4uLmFueVtdLCBDb250ZXh0XSB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZVByZWZpeCk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgIE9iamVjdC5hc3NpZ24ocmVjb3JkLCBtb2RlbCk7XG4gICAgcmV0dXJuIFtjbGF6eiwgaWQsIHJlY29yZCwgLi4uY3R4QXJnc107XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByZXBhcmVzIG11bHRpcGxlIHJlY29yZHMgZm9yIGNyZWF0aW9uXG4gICAqIEBzdW1tYXJ5IEFkZHMgbmVjZXNzYXJ5IENvdWNoREIgZmllbGRzIHRvIG11bHRpcGxlIHJlY29yZHMgYmVmb3JlIGNyZWF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGVcbiAgICogQHBhcmFtIHtzdHJpbmdbXXxudW1iZXJbXX0gaWRzIC0gVGhlIElEcyBvZiB0aGUgcmVjb3Jkc1xuICAgKiBAcGFyYW0gbW9kZWxzIC0gVGhlIG1vZGVscyB0byBwcmVwYXJlXG4gICAqIEByZXR1cm4gQSB0dXBsZSBjb250YWluaW5nIHRoZSB0YWJsZU5hbWUsIGlkcywgYW5kIHByZXBhcmVkIHJlY29yZHNcbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gSWYgaWRzIGFuZCBtb2RlbHMgYXJyYXlzIGhhdmUgZGlmZmVyZW50IGxlbmd0aHNcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVBbGxQcmVmaXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWRzOiBzdHJpbmdbXSB8IG51bWJlcltdLFxuICAgIG1vZGVsczogUmVjb3JkPHN0cmluZywgYW55PltdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBpZiAoaWRzLmxlbmd0aCAhPT0gbW9kZWxzLmxlbmd0aClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiSWRzIGFuZCBtb2RlbHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiKTtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlQWxsUHJlZml4KTtcbiAgICBjb25zdCByZWNvcmRzID0gaWRzLm1hcCgoaWQsIGNvdW50KSA9PiB7XG4gICAgICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSB0YWJsZU5hbWU7XG4gICAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWxzW2NvdW50XSk7XG4gICAgICByZXR1cm4gcmVjb3JkO1xuICAgIH0pO1xuICAgIHJldHVybiBbY2xhenosIGlkcywgcmVjb3JkcywgLi4uY3R4QXJnc107XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlQWxsUHJlZml4PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkczogUHJpbWFyeUtleVR5cGVbXSxcbiAgICBtb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICkge1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZUFsbFByZWZpeCk7XG4gICAgY29uc3QgcmVjb3JkcyA9IGlkcy5tYXAoKCkgPT4ge1xuICAgICAgY29uc3QgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NsYXp6LCBpZHMsIHJlY29yZHMsIC4uLmN0eEFyZ3NdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIG11bHRpcGxlIHJlY29yZHMgaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb25cbiAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIGNyZWF0ZSBtdWx0aXBsZSByZWNvcmRzIGluIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ1tdIHwgbnVtYmVyW119IGlkcyAtIEFycmF5IG9mIHJlY29yZCBpZGVudGlmaWVyc1xuICAgKiBAcGFyYW0ge0FycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+fSBtb2RlbHMgLSBBcnJheSBvZiByZWNvcmQgZGF0YVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBjcmVhdGVkIHJlY29yZHNcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIGNyZWF0ZUFsbDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZHM6IFByaW1hcnlLZXlUeXBlW10sXG4gICAgbW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W10sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgLy9IRVJFIVxuICAgIGNvbnN0IGN0eEFyZ3MgPSBbLi4uKGFyZ3MgYXMgdW5rbm93biBhcyBhbnlbXSldO1xuICAgIGNvbnN0IHRyYW5zaWVudCA9IGN0eEFyZ3Muc2hpZnQoKSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KFxuICAgICAgY3R4QXJncyBhcyBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj4sXG4gICAgICB0aGlzLmNyZWF0ZUFsbFxuICAgICk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcblxuICAgIGxvZy5pbmZvKGBhZGRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy52ZXJib3NlKGBwa3M6ICR7aWRzfWApO1xuICAgIGNvbnN0IGhhc1RyYW5zaWVudCA9IHRyYW5zaWVudCAmJiBPYmplY3Qua2V5cyh0cmFuc2llbnQpLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgbmVlZHNGdWxsUGF5bG9hZCA9XG4gICAgICBoYXNUcmFuc2llbnQgfHwgdGhpcy5zaG91bGRGb3JjZUdhdGV3YXlIeWRyYXRpb24oY3R4KTtcbiAgICBjb25zdCB0cmFuc2llbnRQYXlsb2FkID0gaGFzVHJhbnNpZW50ID8geyBbdGFibGVOYW1lXTogdHJhbnNpZW50IH0gOiB7fTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc3VibWl0VHJhbnNhY3Rpb24oXG4gICAgICBjdHgsXG4gICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuQ1JFQVRFX0FMTCxcbiAgICAgIFtcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgbW9kZWxzLm1hcCgobSkgPT4gdGhpcy5zZXJpYWxpemVyLnNlcmlhbGl6ZShtLCBjbGF6ei5uYW1lKSlcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgICB0cmFuc2llbnRQYXlsb2FkIGFzIGFueSxcbiAgICAgIHRoaXMuZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpLFxuICAgICAgY2xhenoubmFtZVxuICAgICk7XG5cbiAgICBsZXQgcmVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W107XG4gICAgdHJ5IHtcbiAgICAgIHJlcyA9IEpTT04ucGFyc2UodGhpcy5kZWNvZGUocmVzdWx0KSkubWFwKChyOiBhbnkpID0+IEpTT04ucGFyc2UocikpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5zaG91bGRSZWZyZXNoQWZ0ZXJXcml0ZShcbiAgICAgICAgY2xhenosXG4gICAgICAgIGN0eCxcbiAgICAgICAgbmVlZHNGdWxsUGF5bG9hZCxcbiAgICAgICAgcmVzWzBdW01vZGVsLnBrKGNsYXp6KSBhcyBzdHJpbmddIHx8IGlkc1swXVxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMucmVhZEFsbChcbiAgICAgICAgY2xhenosXG4gICAgICAgIGV4dHJhY3RJZHMoXG4gICAgICAgICAgY2xhenosXG4gICAgICAgICAgbW9kZWxzLm1hcCgobSwgaSkgPT5cbiAgICAgICAgICAgIE1vZGVsLm1lcmdlKE9iamVjdC5hc3NpZ24oe30sIG0gYXMgYW55LCB0cmFuc2llbnRbaV0gfHwge30pLCByZXNbaV0pXG4gICAgICAgICAgKSxcbiAgICAgICAgICBpZHNcbiAgICAgICAgKSxcbiAgICAgICAgY3R4XG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlYWRzIG11bHRpcGxlIHJlY29yZHMgaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb25cbiAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIHJlYWQgbXVsdGlwbGUgcmVjb3JkcyBmcm9tIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ1tdIHwgbnVtYmVyW119IGlkcyAtIEFycmF5IG9mIHJlY29yZCBpZGVudGlmaWVycyB0byByZWFkXG4gICAqIEByZXR1cm4ge1Byb21pc2U8QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgcmV0cmlldmVkIHJlY29yZHNcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHJlYWRBbGw8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWRzOiBQcmltYXJ5S2V5VHlwZVtdLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT5bXT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVhZEFsbCk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBsb2cuaW5mbyhgcmVhZGluZyAke2lkcy5sZW5ndGh9IGVudHJpZXMgdG8gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgbG9nLnZlcmJvc2UoYHBrczogJHtpZHN9YCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLlJFQURfQUxMLFxuICAgICAgW0pTT04uc3RyaW5naWZ5KGlkcyldLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgY2xhenoubmFtZVxuICAgICk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuZGVjb2RlKHJlc3VsdCkpLm1hcCgocjogYW55KSA9PiBKU09OLnBhcnNlKHIpKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBtdWx0aXBsZSByZWNvcmRzIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byB1cGRhdGUgbXVsdGlwbGUgcmVjb3JkcyBpbiB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmdbXSB8IG51bWJlcltdfSBpZHMgLSBBcnJheSBvZiByZWNvcmQgaWRlbnRpZmllcnNcbiAgICogQHBhcmFtIHtBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gbW9kZWxzIC0gQXJyYXkgb2YgdXBkYXRlZCByZWNvcmQgZGF0YVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB1cGRhdGVkIHJlY29yZHNcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZUFsbDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZHM6IFByaW1hcnlLZXlUeXBlW10sXG4gICAgbW9kZWxzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W10sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgY29uc3QgY3R4QXJncyA9IFsuLi4oYXJncyBhcyB1bmtub3duIGFzIGFueVtdKV07XG4gICAgY29uc3QgdHJhbnNpZW50ID0gY3R4QXJncy5zaGlmdCgpIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoXG4gICAgICBjdHhBcmdzIGFzIENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PixcbiAgICAgIHRoaXMudXBkYXRlQWxsXG4gICAgKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGxvZy5pbmZvKGB1cGRhdGluZyAke2lkcy5sZW5ndGh9IGVudHJpZXMgdG8gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgbG9nLnZlcmJvc2UoYHBrczogJHtpZHN9YCk7XG4gICAgY29uc3QgaGFzVHJhbnNpZW50ID0gdHJhbnNpZW50ICYmIE9iamVjdC5rZXlzKHRyYW5zaWVudCkubGVuZ3RoID4gMDtcbiAgICBjb25zdCBuZWVkc0Z1bGxQYXlsb2FkID1cbiAgICAgIGhhc1RyYW5zaWVudCB8fCB0aGlzLnNob3VsZEZvcmNlR2F0ZXdheUh5ZHJhdGlvbihjdHgpO1xuICAgIGNvbnN0IHRyYW5zaWVudFBheWxvYWQgPSBoYXNUcmFuc2llbnQgPyB7IFt0YWJsZU5hbWVdOiB0cmFuc2llbnQgfSA6IHt9O1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihcbiAgICAgIGN0eCxcbiAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLFxuICAgICAgW1xuICAgICAgICBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBtb2RlbHMubWFwKChtKSA9PiB0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG0sIGNsYXp6Lm5hbWUpKVxuICAgICAgICApLFxuICAgICAgXSxcbiAgICAgIHRyYW5zaWVudFBheWxvYWQgYXMgYW55LFxuICAgICAgdGhpcy5nZXRFbmRvcnNpbmdPcmdhbml6YXRpb25zKGN0eCksXG4gICAgICBjbGF6ei5uYW1lXG4gICAgKTtcblxuICAgIGxldCByZXM6IGFueTtcbiAgICB0cnkge1xuICAgICAgcmVzID0gSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXN1bHQpKS5tYXAoKHI6IGFueSkgPT4gSlNPTi5wYXJzZShyKSk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaG91bGRSZWZyZXNoQWZ0ZXJXcml0ZShjbGF6eiwgY3R4LCBuZWVkc0Z1bGxQYXlsb2FkLCBpZHNbMF0pKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWFkQWxsKFxuICAgICAgICBjbGF6eixcbiAgICAgICAgZXh0cmFjdElkcyhcbiAgICAgICAgICBjbGF6eixcbiAgICAgICAgICBtb2RlbHMubWFwKChtLCBpKSA9PlxuICAgICAgICAgICAgTW9kZWwubWVyZ2UoT2JqZWN0LmFzc2lnbih7fSwgbSBhcyBhbnksIHRyYW5zaWVudFtpXSB8fCB7fSksIHJlc1tpXSlcbiAgICAgICAgICApLFxuICAgICAgICAgIGlkc1xuICAgICAgICApLFxuICAgICAgICBjdHhcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gZGVsZXRlIG11bHRpcGxlIHJlY29yZHMgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+fSBpZHMgLSBBcnJheSBvZiByZWNvcmQgaWRlbnRpZmllcnMgdG8gZGVsZXRlXG4gICAqIEBwYXJhbSB7U2VyaWFsaXplcjxhbnk+fSBzZXJpYWxpemVyIC0gU2VyaWFsaXplciBmb3IgdGhlIG1vZGVsIGRhdGFcbiAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBkZWxldGVkIHJlY29yZHNcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIGRlbGV0ZUFsbDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZHM6IFByaW1hcnlLZXlUeXBlW10sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55PltdPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCwgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5kZWxldGVBbGwpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG5cbiAgICBjb25zdCBuZWVkc0Z1bGxQYXlsb2FkID1cbiAgICAgIE1vZGVsLmlzVHJhbnNpZW50KGNsYXp6KSB8fCB0aGlzLnNob3VsZEZvcmNlR2F0ZXdheUh5ZHJhdGlvbihjdHgpO1xuICAgIGxldCByZXN1bHQ6IGFueTtcbiAgICBjb25zdCBzaG91bGRIeWRyYXRlID0gdGhpcy5zaG91bGRSZWZyZXNoQWZ0ZXJXcml0ZShcbiAgICAgIGNsYXp6LFxuICAgICAgY3R4LFxuICAgICAgbmVlZHNGdWxsUGF5bG9hZCxcbiAgICAgIGlkc1swXVxuICAgICk7XG4gICAgaWYgKHNob3VsZEh5ZHJhdGUpIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMucmVhZEFsbChjbGF6eiwgaWRzLCAuLi5jdHhBcmdzKTtcbiAgICB9XG5cbiAgICBsb2cuaW5mbyhgZGVsZXRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy52ZXJib3NlKGBwa3M6ICR7aWRzfWApO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc3VibWl0VHJhbnNhY3Rpb24oXG4gICAgICBjdHgsXG4gICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTCxcbiAgICAgIFtKU09OLnN0cmluZ2lmeShpZHMpXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHRoaXMuZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpLFxuICAgICAgY2xhenoubmFtZVxuICAgICk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBzaG91bGRIeWRyYXRlXG4gICAgICAgID8gcmVzdWx0XG4gICAgICAgIDogSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXMpKS5tYXAoKHI6IGFueSkgPT4gSlNPTi5wYXJzZShyKSk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByZXBhcmVzIGEgbW9kZWwgZm9yIHBlcnNpc3RlbmNlXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGEgbW9kZWwgaW5zdGFuY2UgaW50byBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgZGF0YWJhc2Ugc3RvcmFnZSxcbiAgICogaGFuZGxpbmcgY29sdW1uIG1hcHBpbmcgYW5kIHNlcGFyYXRpbmcgdHJhbnNpZW50IHByb3BlcnRpZXNcbiAgICogQHRlbXBsYXRlIE0gLSBUaGUgbW9kZWwgdHlwZVxuICAgKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIGluc3RhbmNlIHRvIHByZXBhcmVcbiAgICogQHBhcmFtIHBrIC0gVGhlIHByaW1hcnkga2V5IHByb3BlcnR5IG5hbWVcbiAgICogQHJldHVybiBUaGUgcHJlcGFyZWQgZGF0YVxuICAgKi9cbiAgb3ZlcnJpZGUgcHJlcGFyZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIG1vZGVsOiBNLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBTZWdyZWdhdGVkTW9kZWw8TT4gJiBQcmVwYXJlZE1vZGVsIHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnByZXBhcmUpO1xuICAgIGNvbnN0IHNwbGl0ID0gTW9kZWwuc2VncmVnYXRlKG1vZGVsKTtcbiAgICBpZiAoKG1vZGVsIGFzIGFueSlbUGVyc2lzdGVuY2VLZXlzLk1FVEFEQVRBXSkge1xuICAgICAgbG9nLnNpbGx5KFxuICAgICAgICBgUGFzc2luZyBhbG9uZyBwZXJzaXN0ZW5jZSBtZXRhZGF0YSBmb3IgJHsobW9kZWwgYXMgYW55KVtQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEFdfWBcbiAgICAgICk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc3BsaXQubW9kZWwsIFBlcnNpc3RlbmNlS2V5cy5NRVRBREFUQSwge1xuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiAobW9kZWwgYXMgYW55KVtQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEFdLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgbWlycm9yTWV0YSA9IE1vZGVsLm1pcnJvcmVkQXQobW9kZWwpO1xuICAgIGlmIChtaXJyb3JNZXRhKSB7XG4gICAgICBjb25zdCBtaXJyb3JNc3AgPSBtaXJyb3JNZXRhLm1zcElkO1xuICAgICAgaWYgKCFtaXJyb3JNc3ApIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBtaXJyb3IgTVNQIGNvdWxkIGJlIGZvdW5kYCk7XG4gICAgICBsZXQgbXNwcyA9IHRoaXMuZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpIHx8IFtdO1xuICAgICAgbXNwcyA9IEFycmF5LmlzQXJyYXkobXNwcykgPyBtc3BzIDogW21zcHNdO1xuICAgICAgY29uc3QgbWVyZ2VkID0gWy4uLm5ldyBTZXQoWy4uLm1zcHMsIG1pcnJvck1zcF0pXTtcbiAgICAgIGN0eC5hY2N1bXVsYXRlKHtcbiAgICAgICAgZW5kb3JzaW5nT3JnczogbWVyZ2VkLFxuICAgICAgICBlbmRvcnNpbmdPcmdhbml6YXRpb25zOiBtZXJnZWQsXG4gICAgICAgIGxlZ2FjeTogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICByZWNvcmQ6IHNwbGl0Lm1vZGVsLFxuICAgICAgbW9kZWw6IHNwbGl0Lm1vZGVsLFxuICAgICAgaWQ6IG1vZGVsW01vZGVsLnBrKG1vZGVsLmNvbnN0cnVjdG9yIGFzIENvbnN0cnVjdG9yPE0+KV0gYXMgc3RyaW5nLFxuICAgICAgdHJhbnNpZW50OiBzcGxpdC50cmFuc2llbnQsXG4gICAgICBwcml2YXRlczogc3BsaXQucHJpdmF0ZXMsXG4gICAgICBzaGFyZWQ6IHNwbGl0LnNoYXJlZCxcbiAgICB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgcmV2ZXJ0PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgdHJhbnNpZW50PzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKTogTSB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZXZlcnQpO1xuICAgIGlmIChcbiAgICAgIHRyYW5zaWVudCAmJlxuICAgICAgdGhpcy5zaG91bGRSZWJ1aWxkV2l0aFRyYW5zaWVudChcbiAgICAgICAgY3R4LFxuICAgICAgICBjdHguZ2V0T3JVbmRlZmluZWQoXCJvcGVyYXRpb25cIikgYXMgc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgICApXG4gICAgKSB7XG4gICAgICBsb2cudmVyYm9zZShcbiAgICAgICAgYHJlLWFkZGluZyB0cmFuc2llbnQgcHJvcGVydGllczogJHtPYmplY3Qua2V5cyh0cmFuc2llbnQpLmpvaW4oXCIsIFwiKX1gXG4gICAgICApO1xuICAgICAgT2JqZWN0LmVudHJpZXModHJhbnNpZW50IGFzIFJlY29yZDxzdHJpbmcsIGFueT4pXG4gICAgICAgIC5maWx0ZXIoKFssIHZdKSA9PiB0eXBlb2YgdiAhPT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgLmZvckVhY2goKFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgICBpZiAoa2V5IGluIG9iaiAmJiAob2JqIGFzIGFueSlba2V5XSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgbG9nLndhcm4oXG4gICAgICAgICAgICAgIGBvdmVyd3JpdGluZyBleGlzdGluZyAke2tleX0uIGlmIHRoaXMgaXMgbm90IGEgZGVmYXVsdCB2YWx1ZSwgdGhpcyBtYXkgcG9zZSBhIHByb2JsZW1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIChvYmogYXMgTSlba2V5IGFzIGtleW9mIE1dID0gdmFsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgKGNsYXp6IGFzIENvbnN0cnVjdG9yPE0+KShvYmopO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkUmVidWlsZFdpdGhUcmFuc2llbnQoXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPixcbiAgICBvcGVyYXRpb24/OiBzdHJpbmdcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjdHgpIHJldHVybiBmYWxzZTtcbiAgICBpZiAoY3R4LmdldE9yVW5kZWZpbmVkKFwicmVidWlsZFdpdGhUcmFuc2llbnRcIikpIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IGNoaWxkUmVidWlsZCA9XG4gICAgICB0eXBlb2YgKGN0eCBhcyBhbnkpLmdldEZyb21DaGlsZHJlbiA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gKGN0eCBhcyBhbnkpLmdldEZyb21DaGlsZHJlbihcInJlYnVpbGRXaXRoVHJhbnNpZW50XCIpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGlmIChjaGlsZFJlYnVpbGQpIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IHJlc29sdmVkT3AgPSB0aGlzLnJlc29sdmVPcGVyYXRpb24oY3R4LCBvcGVyYXRpb24pO1xuICAgIGlmICghcmVzb2x2ZWRPcCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IG9wID0gcmVzb2x2ZWRPcC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIG9wLmluY2x1ZGVzKFwicmVhZFwiKSB8fFxuICAgICAgb3AuaW5jbHVkZXMoXCJmaW5kXCIpIHx8XG4gICAgICBvcC5pbmNsdWRlcyhcInF1ZXJ5XCIpIHx8XG4gICAgICBvcC5pbmNsdWRlcyhcInN0YXRlbWVudFwiKSB8fFxuICAgICAgb3AuaW5jbHVkZXMoXCJwYWdlXCIpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZU9wZXJhdGlvbihcbiAgICBjdHg6IENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+LFxuICAgIG9wZXJhdGlvbj86IHN0cmluZ1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmIChvcGVyYXRpb24pIHJldHVybiBvcGVyYXRpb247XG4gICAgaWYgKHR5cGVvZiAoY3R4IGFzIGFueSkuZ2V0RnJvbUNoaWxkcmVuID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiAoY3R4IGFzIGFueSkuZ2V0RnJvbUNoaWxkcmVuKFwib3BlcmF0aW9uXCIpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRSZWZyZXNoQWZ0ZXJXcml0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBjdHg6IENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+LFxuICAgIGhhc1RyYW5zaWVudDogYm9vbGVhbixcbiAgICBpZD86IFByaW1hcnlLZXlUeXBlXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmICghaGFzVHJhbnNpZW50KSByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcGsgPSBNb2RlbC5wayhjbGF6eik7XG4gICAgY29uc3QgY29tcG9zZWQgPSBNb2RlbC5jb21wb3NlZChjbGF6eiwgcGspO1xuICAgIGNvbnN0IGdlbmVyYXRlZCA9IE1vZGVsLmdlbmVyYXRlZChjbGF6eiwgcGspO1xuICAgIGNvbnN0IGhhc0lkID0gaWQgIT09IHVuZGVmaW5lZCAmJiBpZCAhPT0gbnVsbDtcbiAgICBpZiAoIWhhc0lkICYmIGNvbXBvc2VkKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoIWhhc0lkICYmIGdlbmVyYXRlZCkge1xuICAgICAgY3R4LmxvZ2dlci53YXJuKFxuICAgICAgICBgQ2Fubm90IHJlZnJlc2ggcmVjb3JkIHdpdGggcHJpdmF0ZSBnZW5lcmF0ZWQgcHJpbWFyeSBrZXlgXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gaGFzSWQ7XG4gIH1cblxuICBwcml2YXRlIGdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPlxuICApOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZGlyZWN0ID1cbiAgICAgIGN0eC5nZXRPclVuZGVmaW5lZChcImVuZG9yc2luZ09yZ3NcIikgfHxcbiAgICAgIChjdHguZ2V0T3JVbmRlZmluZWQoXCJlbmRvcnNpbmdPcmdzXCIpIGFzIHN0cmluZ1tdIHwgdW5kZWZpbmVkKTtcbiAgICBpZiAoZGlyZWN0ICYmIGRpcmVjdC5sZW5ndGgpIHJldHVybiBkaXJlY3Q7XG4gICAgcmV0dXJuIChcbiAgICAgIChjdHguZ2V0RnJvbUNoaWxkcmVuKFwiZW5kb3JzaW5nT3Jnc1wiKSBhcyBzdHJpbmdbXSB8IHVuZGVmaW5lZCkgfHxcbiAgICAgIChjdHguZ2V0RnJvbUNoaWxkcmVuKFwiZW5kb3JzaW5nT3Jnc1wiKSBhcyBzdHJpbmdbXSB8IHVuZGVmaW5lZClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRGb3JjZUdhdGV3YXlIeWRyYXRpb24oXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGN0eDogQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz5cbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5jb25maWcuYWxsb3dHYXRld2F5T3ZlcnJpZGU7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBzaW5nbGUgcmVjb3JkXG4gICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBjcmVhdGUgYSByZWNvcmQgaW4gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZS9jb2xsZWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllclxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG1vZGVsIC0gVGhlIHJlY29yZCBkYXRhXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHJhbnNpZW50IC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY3JlYXRlZCByZWNvcmRcbiAgICovXG4gIEBkZWJ1ZygpXG4gIEBmaW5hbCgpXG4gIG92ZXJyaWRlIGFzeW5jIGNyZWF0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgdHJhbnNpZW50OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIGNvbnN0IGN0eEFyZ3MgPSBbLi4uKGFyZ3MgYXMgdW5rbm93biBhcyBhbnlbXSldO1xuICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KFxuICAgICAgY3R4QXJncyBhcyBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj4sXG4gICAgICB0aGlzLmNyZWF0ZVxuICAgICk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBsb2cudmVyYm9zZShgYWRkaW5nIGVudHJ5IHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgIGxvZy5kZWJ1ZyhgcGs6ICR7aWR9YCk7XG4gICAgY29uc3QgaGFzVHJhbnNpZW50ID0gdHJhbnNpZW50ICYmIE9iamVjdC5rZXlzKHRyYW5zaWVudCkubGVuZ3RoID4gMDtcbiAgICBjb25zdCBuZWVkc0Z1bGxQYXlsb2FkID1cbiAgICAgIGhhc1RyYW5zaWVudCB8fCB0aGlzLnNob3VsZEZvcmNlR2F0ZXdheUh5ZHJhdGlvbihjdHgpO1xuICAgIGNvbnN0IHRyYW5zaWVudFBheWxvYWQgPSBoYXNUcmFuc2llbnQgPyB7IFt0YWJsZU5hbWVdOiB0cmFuc2llbnQgfSA6IHt9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuc3VibWl0VHJhbnNhY3Rpb24oXG4gICAgICBjdHgsXG4gICAgICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAgICAgIFt0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG1vZGVsLCBjbGF6ei5uYW1lKV0sXG4gICAgICB0cmFuc2llbnRQYXlsb2FkIGFzIGFueSxcbiAgICAgIHRoaXMuZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpLFxuICAgICAgY2xhenoubmFtZVxuICAgICk7XG4gICAgY29uc3QgZGVzZXJpYWxpemVkID0gdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHRoaXMuZGVjb2RlKHJlc3VsdCkpO1xuICAgIGlmICh0aGlzLnNob3VsZFJlZnJlc2hBZnRlcldyaXRlKGNsYXp6LCBjdHgsIG5lZWRzRnVsbFBheWxvYWQsIGlkKSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVhZChcbiAgICAgICAgY2xhenosXG4gICAgICAgIGV4dHJhY3RJZHMoXG4gICAgICAgICAgY2xhenosXG4gICAgICAgICAgTW9kZWwubWVyZ2UoXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHt9LCBtb2RlbCwgdHJhbnNpZW50IHx8IHt9KSxcbiAgICAgICAgICAgIGRlc2VyaWFsaXplZCxcbiAgICAgICAgICAgIGNsYXp6XG4gICAgICAgICAgKSxcbiAgICAgICAgICBpZFxuICAgICAgICApLFxuICAgICAgICBjdHhcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkZXNlcmlhbGl6ZWQ7XG4gIH1cblxuICBAZGVidWcoKVxuICBAZmluYWwoKVxuICBhc3luYyBoZWFsdGhjaGVjazxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5oZWFsdGhjaGVjayk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcblxuICAgIGxvZy52ZXJib3NlKGByZWFkaW5nIGVudHJ5IGZyb20gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgXCJoZWFsdGhjaGVja1wiLFxuICAgICAgW10sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBjbGF6ei5uYW1lXG4gICAgKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXN1bHQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgYSBzaW5nbGUgcmVjb3JkXG4gICAqIEBzdW1tYXJ5IEV2YWx1YXRlcyBhIHRyYW5zYWN0aW9uIHRvIHJlYWQgYSByZWNvcmQgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXRyaWV2ZWQgcmVjb3JkXG4gICAqL1xuICBAZGVidWcoKVxuICBAZmluYWwoKVxuICBhc3luYyByZWFkPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZWFkKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuXG4gICAgbG9nLnZlcmJvc2UoYHJlYWRpbmcgZW50cnkgZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICBsb2cuZGVidWcoYHBrOiAke2lkfWApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXZhbHVhdGVUcmFuc2FjdGlvbihcbiAgICAgIGN0eCxcbiAgICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICAgIFtpZC50b1N0cmluZygpXSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNsYXp6Lm5hbWVcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUodGhpcy5kZWNvZGUocmVzdWx0KSk7XG4gIH1cblxuICB1cGRhdGVQcmVmaXg8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlUHJlZml4KTtcbiAgICBjb25zdCByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgIC8vIHJlY29yZFtDb3VjaERCS2V5cy5JRF0gPSB0aGlzLmdlbmVyYXRlSWQodGFibGVOYW1lLCBpZCk7XG4gICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsKTtcbiAgICByZXR1cm4gW2NsYXp6LCBpZCwgcmVjb3JkLCAuLi5jdHhBcmdzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBhIHNpbmdsZSByZWNvcmRcbiAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIHVwZGF0ZSBhIHJlY29yZCBpbiB0aGUgRmFicmljIGxlZGdlclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHJlY29yZCBpZGVudGlmaWVyXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgdXBkYXRlZCByZWNvcmQgZGF0YVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHVwZGF0ZWQgcmVjb3JkXG4gICAqL1xuICBAZGVidWcoKVxuICBAZmluYWwoKVxuICBhc3luYyB1cGRhdGU8TSBleHRlbmRzIE1vZGVsPihcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TT4sXG4gICAgaWQ6IFByaW1hcnlLZXlUeXBlLFxuICAgIG1vZGVsOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHRyYW5zaWVudDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCBjdHhBcmdzID0gWy4uLihhcmdzIGFzIHVua25vd24gYXMgYW55W10pXTtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChcbiAgICAgIGN0eEFyZ3MgYXMgQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+LFxuICAgICAgdGhpcy51cGRhdGVcbiAgICApO1xuICAgIGxvZy5pbmZvKGBDTElFTlQgVVBEQVRFIGNsYXNzIDogJHt0eXBlb2YgY2xhenp9YCk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBsb2cudmVyYm9zZShgdXBkYXRpbmcgZW50cnkgdG8gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICBjb25zdCBoYXNUcmFuc2llbnQgPSB0cmFuc2llbnQgJiYgT2JqZWN0LmtleXModHJhbnNpZW50KS5sZW5ndGggPiAwO1xuICAgIGNvbnN0IG5lZWRzRnVsbFBheWxvYWQgPVxuICAgICAgaGFzVHJhbnNpZW50IHx8IHRoaXMuc2hvdWxkRm9yY2VHYXRld2F5SHlkcmF0aW9uKGN0eCk7XG4gICAgY29uc3QgdHJhbnNpZW50UGF5bG9hZCA9IGhhc1RyYW5zaWVudCA/IHsgW3RhYmxlTmFtZV06IHRyYW5zaWVudCB9IDoge307XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihcbiAgICAgIGN0eCxcbiAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgW3RoaXMuc2VyaWFsaXplci5zZXJpYWxpemUobW9kZWwsIGNsYXp6Lm5hbWUgfHwgY2xhenopXSwgLy8gVE9ETyBzaG91bGQgYmUgcmVjZXZpbmcgY2xhc3MgYnV0IGlzIHJlY2VpdmluZyBzdHJpbmdcbiAgICAgIHRyYW5zaWVudFBheWxvYWQgYXMgYW55LFxuICAgICAgdGhpcy5nZXRFbmRvcnNpbmdPcmdhbml6YXRpb25zKGN0eCksXG4gICAgICBjbGF6ei5uYW1lXG4gICAgKTtcbiAgICBjb25zdCBkZXNlcmlhbGl6ZWQgPSB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUodGhpcy5kZWNvZGUocmVzdWx0KSk7XG4gICAgaWYgKHRoaXMuc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoY2xhenosIGN0eCwgbmVlZHNGdWxsUGF5bG9hZCwgaWQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWFkKFxuICAgICAgICBjbGF6eixcbiAgICAgICAgZXh0cmFjdElkcyhcbiAgICAgICAgICBjbGF6eixcbiAgICAgICAgICBNb2RlbC5tZXJnZShcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oe30sIG1vZGVsLCB0cmFuc2llbnQgfHwge30pLFxuICAgICAgICAgICAgZGVzZXJpYWxpemVkLFxuICAgICAgICAgICAgY2xhenpcbiAgICAgICAgICApLFxuICAgICAgICAgIGlkXG4gICAgICAgICksXG4gICAgICAgIGN0eFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGRlc2VyaWFsaXplZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhIHNpbmdsZSByZWNvcmRcbiAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIGRlbGV0ZSBhIHJlY29yZCBmcm9tIHRoZSBGYWJyaWMgbGVkZ2VyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgcmVjb3JkIGlkZW50aWZpZXIgdG8gZGVsZXRlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBkZWxldGVkIHJlY29yZFxuICAgKi9cbiAgQGRlYnVnKClcbiAgQGZpbmFsKClcbiAgb3ZlcnJpZGUgYXN5bmMgZGVsZXRlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5kZWxldGUpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgY29uc3QgbmVlZHNGdWxsUGF5bG9hZCA9XG4gICAgICBNb2RlbC5pc1RyYW5zaWVudChjbGF6eikgfHwgdGhpcy5zaG91bGRGb3JjZUdhdGV3YXlIeWRyYXRpb24oY3R4KTtcbiAgICBsZXQgcmVzdWx0OiBhbnk7XG4gICAgY29uc3Qgc2hvdWxkSHlkcmF0ZSA9IHRoaXMuc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoXG4gICAgICBjbGF6eixcbiAgICAgIGN0eCxcbiAgICAgIG5lZWRzRnVsbFBheWxvYWQsXG4gICAgICBpZFxuICAgICk7XG4gICAgaWYgKHNob3VsZEh5ZHJhdGUpIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMucmVhZChjbGF6eiwgaWQsIGN0eCk7XG4gICAgfVxuXG4gICAgbG9nLnZlcmJvc2UoYGRlbGV0aW5nIGVudHJ5IGZyb20gJHt0YWJsZU5hbWV9IHRhYmxlYCk7XG4gICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnN1Ym1pdFRyYW5zYWN0aW9uKFxuICAgICAgY3R4LFxuICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICBbaWQudG9TdHJpbmcoKV0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB0aGlzLmdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoY3R4KSxcbiAgICAgIGNsYXp6Lm5hbWVcbiAgICApO1xuICAgIHJldHVybiBzaG91bGRIeWRyYXRlXG4gICAgICA/IHJlc3VsdFxuICAgICAgOiB0aGlzLnNlcmlhbGl6ZXIuZGVzZXJpYWxpemUodGhpcy5kZWNvZGUocmVzKSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgcmF3IHF1ZXJ5IGFnYWluc3QgdGhlIEZhYnJpYyBsZWRnZXJcbiAgICogQHN1bW1hcnkgRXZhbHVhdGVzIGEgdHJhbnNhY3Rpb24gdG8gcGVyZm9ybSBhIHF1ZXJ5IHVzaW5nIE1hbmdvIFF1ZXJ5IHN5bnRheFxuICAgKiBAdGVtcGxhdGUgViAtIFRoZSByZXR1cm4gdHlwZVxuICAgKiBAcGFyYW0ge01hbmdvUXVlcnl9IHJhd0lucHV0IC0gVGhlIE1hbmdvIFF1ZXJ5IHRvIGV4ZWN1dGVcbiAgICogQHBhcmFtIHtib29sZWFufSBwcm9jZXNzIC0gV2hldGhlciB0byBwcm9jZXNzIHRoZSByZXN1bHRcbiAgICogQHJldHVybiB7UHJvbWlzZTxWPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHF1ZXJ5IHJlc3VsdFxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAgICogICBwYXJ0aWNpcGFudCBGYWJyaWNBZGFwdGVyXG4gICAqICAgcGFydGljaXBhbnQgQ29udHJhY3RcbiAgICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAgICpcbiAgICogICBDbGllbnQtPj5GYWJyaWNBZGFwdGVyOiByYXcocmF3SW5wdXQsIHByb2Nlc3MpXG4gICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IEpTT04uc3RyaW5naWZ5KHJhd0lucHV0KVxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBldmFsdWF0ZVRyYW5zYWN0aW9uKFwicXVlcnlcIiwgW2lucHV0XSlcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IGV2YWx1YXRlKFwicXVlcnlcIiwgcHJvcG9zYWxPcHRpb25zKVxuICAgKiAgIENvbnRyYWN0LT4+Q2hhaW5jb2RlOiBpbnZva2VcbiAgICogICBDaGFpbmNvZGUtLT4+Q29udHJhY3Q6IHJlc3BvbnNlXG4gICAqICAgQ29udHJhY3QtLT4+RmFicmljQWRhcHRlcjogcmVzdWx0XG4gICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IEpTT04ucGFyc2UoZGVjb2RlKHJlc3VsdCkpXG4gICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IFByb2Nlc3MgcmVzdWx0IGJhc2VkIG9uIHR5cGVcbiAgICogICBGYWJyaWNBZGFwdGVyLS0+PkNsaWVudDogcHJvY2Vzc2VkIHJlc3VsdFxuICAgKi9cbiAgQGRlYnVnKClcbiAgYXN5bmMgcmF3PFYsIEQgZXh0ZW5kcyBib29sZWFuPihcbiAgICByYXdJbnB1dDogTWFuZ29RdWVyeSxcbiAgICBkb2NzT25seTogRCA9IHRydWUgYXMgRCxcbiAgICBjbGF6ejogTW9kZWxDb25zdHJ1Y3Rvcjxhbnk+LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBQcm9taXNlPFY+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJhdyk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gY2xhenoubmFtZTtcbiAgICBsb2cuaW5mbyhgUGVyZm9ybWluZyByYXcgc3RhdGVtZW50IG9uIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKGNsYXp6KX1gKTtcbiAgICBsZXQgdHJhbnNhY3Rpb25SZXN1bHQ6IGFueTtcbiAgICB0cnkge1xuICAgICAgdHJhbnNhY3Rpb25SZXN1bHQgPSBhd2FpdCB0aGlzLmV2YWx1YXRlVHJhbnNhY3Rpb24oXG4gICAgICAgIGN0eCxcbiAgICAgICAgXCJyYXdcIixcbiAgICAgICAgW0pTT04uc3RyaW5naWZ5KHJhd0lucHV0KSwgZG9jc09ubHldLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgdGFibGVOYW1lXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG4gICAgbGV0IHJlc3VsdDogYW55O1xuICAgIHRyeSB7XG4gICAgICByZXN1bHQgPSBKU09OLnBhcnNlKHRoaXMuZGVjb2RlKHRyYW5zYWN0aW9uUmVzdWx0KSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGBGYWlsZWQgdG8gcHJvY2VzcyByZXN1bHQ6ICR7ZX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJzZVJlY29yZCA9IChyZWNvcmQ6IFJlY29yZDxhbnksIGFueT4pID0+IHtcbiAgICAgIGlmIChNb2RlbC5pc01vZGVsKHJlY29yZCkpIHJldHVybiBNb2RlbC5idWlsZChyZWNvcmQpO1xuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9O1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgaWYgKCFyZXN1bHQubGVuZ3RoKSByZXR1cm4gcmVzdWx0IGFzIFY7XG4gICAgICBjb25zdCBlbCA9IHJlc3VsdFswXTtcbiAgICAgIGlmIChNb2RlbC5pc01vZGVsKGVsKSlcbiAgICAgICAgLy8gaWYgdGhlIGZpcnN0IG9uZSBpcyBhIG1vZGVsLCBhbGwgYXJlIG1vZGVsc1xuICAgICAgICByZXR1cm4gcmVzdWx0Lm1hcCgoZWwpID0+IE1vZGVsLmJ1aWxkKGVsKSkgYXMgVjtcbiAgICAgIHJldHVybiByZXN1bHQgYXMgVjtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyc2VSZWNvcmQocmVzdWx0IGFzIGFueSkgYXMgVjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSBDb3VjaERCIHZpZXcgcXVlcnkgYWdhaW5zdCB0aGUgRmFicmljIGNoYWluY29kZVxuICAgKiBAc3VtbWFyeSBFdmFsdWF0ZXMgYSB0cmFuc2FjdGlvbiB0byBxdWVyeSBhIGRlc2lnbiBkb2N1bWVudCB2aWV3XG4gICAqIEB0ZW1wbGF0ZSBSIC0gVGhlIHZpZXcgcmVzcG9uc2UgdHlwZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gZGRvYyAtIERlc2lnbiBkb2N1bWVudCBuYW1lXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2aWV3TmFtZSAtIFZpZXcgbmFtZVxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG9wdGlvbnMgLSBWaWV3IHF1ZXJ5IG9wdGlvbnNcbiAgICogQHBhcmFtIHsuLi5Db250ZXh0dWFsQXJnczxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj59IGFyZ3MgLSBPcHRpb25hbCBjb250ZXh0dWFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPFZpZXdSZXNwb25zZTxSPj59IFRoZSB2aWV3IHJlc3BvbnNlXG4gICAqL1xuICBAZGVidWcoKVxuICBhc3luYyB2aWV3PFI+KFxuICAgIGRkb2M6IHN0cmluZyxcbiAgICB2aWV3TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICk6IFByb21pc2U8Vmlld1Jlc3BvbnNlPFI+PiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy52aWV3KTtcbiAgICBsb2cuaW5mbyhgUXVlcnlpbmcgdmlldyAke2Rkb2N9LyR7dmlld05hbWV9YCk7XG4gICAgbGV0IHRyYW5zYWN0aW9uUmVzdWx0OiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIHRyYW5zYWN0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKFxuICAgICAgICBjdHgsXG4gICAgICAgIFwidmlld1wiLFxuICAgICAgICBbZGRvYywgdmlld05hbWUsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMpXSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHVuZGVmaW5lZFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfVxuICAgIGxldCByZXN1bHQ6IFZpZXdSZXNwb25zZTxSPjtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gSlNPTi5wYXJzZSh0aGlzLmRlY29kZSh0cmFuc2FjdGlvblJlc3VsdCkpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgRmFpbGVkIHRvIHByb2Nlc3MgdmlldyByZXN1bHQ6ICR7ZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyBvciBjcmVhdGVzIGEgZ1JQQyBjbGllbnQgZm9yIHRoZSBGYWJyaWMgcGVlclxuICAgKiBAc3VtbWFyeSBSZXR1cm5zIGEgY2FjaGVkIGNsaWVudCBvciBjcmVhdGVzIGEgbmV3IG9uZSBpZiBub25lIGV4aXN0c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPENsaWVudD59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBnUlBDIGNsaWVudFxuICAgKi9cbiAgb3ZlcnJpZGUgZ2V0Q2xpZW50KCk6IENsaWVudCB7XG4gICAgaWYgKCF0aGlzLl9jbGllbnQpXG4gICAgICB0aGlzLl9jbGllbnQgPSBGYWJyaWNDbGllbnRBZGFwdGVyLmdldENsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgcmV0dXJuIHRoaXMuX2NsaWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyBhIEdhdGV3YXkgaW5zdGFuY2UgZm9yIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKiBAc3VtbWFyeSBDcmVhdGVzIGEgbmV3IEdhdGV3YXkgaW5zdGFuY2UgdXNpbmcgdGhlIGN1cnJlbnQgY2xpZW50XG4gICAqIEByZXR1cm4ge1Byb21pc2U8R2F0ZXdheT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBHYXRld2F5IGluc3RhbmNlXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgR2F0ZXdheShjdHg6IENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+KTogUHJvbWlzZTxHYXRld2F5PiB7XG4gICAgcmV0dXJuIEZhYnJpY0NsaWVudEFkYXB0ZXIuZ2V0R2F0ZXdheShjdHgsIHRoaXMuY29uZmlnLCB0aGlzLmNsaWVudCk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRyYWN0TmFtZShjbGFzc05hbWU/OiBzdHJpbmcpIHtcbiAgICBpZiAoIWNsYXNzTmFtZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gYCR7Y2xhc3NOYW1lfUNvbnRyYWN0YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyBhIENvbnRyYWN0IGluc3RhbmNlIGZvciB0aGUgRmFicmljIGNoYWluY29kZVxuICAgKiBAc3VtbWFyeSBDcmVhdGVzIGEgbmV3IENvbnRyYWN0IGluc3RhbmNlIHVzaW5nIHRoZSBjdXJyZW50IEdhdGV3YXlcbiAgICogQHJldHVybiB7UHJvbWlzZTxDb250cmFrdD59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBDb250cmFjdCBpbnN0YW5jZVxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIENvbnRyYWN0KFxuICAgIGN0eDogQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4sXG4gICAgY29udHJhY3ROYW1lPzogc3RyaW5nXG4gICk6IFByb21pc2U8Q29udHJha3Q+IHtcbiAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5nZXRDb250cmFjdChcbiAgICAgIGF3YWl0IHRoaXMuR2F0ZXdheShjdHgpLFxuICAgICAgdGhpcy5jb25maWcsXG4gICAgICBjb250cmFjdE5hbWVcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlcyBhIHRyYW5zYWN0aW9uIG9uIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKiBAc3VtbWFyeSBTdWJtaXRzIG9yIGV2YWx1YXRlcyBhIHRyYW5zYWN0aW9uIG9uIHRoZSBGYWJyaWMgY2hhaW5jb2RlXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcGkgLSBUaGUgY2hhaW5jb2RlIGZ1bmN0aW9uIHRvIGNhbGxcbiAgICogQHBhcmFtIHtib29sZWFufSBzdWJtaXQgLSBXaGV0aGVyIHRvIHN1Ym1pdCAodHJ1ZSkgb3IgZXZhbHVhdGUgKGZhbHNlKSB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHthbnlbXX0gW2FyZ3NdIC0gQXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGNoYWluY29kZSBmdW5jdGlvblxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFt0cmFuc2llbnREYXRhXSAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBbZW5kb3JzaW5nT3JnYW5pemF0aW9uc10gLSBPcmdhbml6YXRpb25zIHRoYXQgbXVzdCBlbmRvcnNlIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFVpbnQ4QXJyYXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgdHJhbnNhY3Rpb24gcmVzdWx0XG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IEZhYnJpY0FkYXB0ZXJcbiAgICogICBwYXJ0aWNpcGFudCBHYXRld2F5XG4gICAqICAgcGFydGljaXBhbnQgQ29udHJhY3RcbiAgICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAgICpcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+R2F0ZXdheTogY29ubmVjdCgpXG4gICAqICAgRmFicmljQWRhcHRlci0+PkNvbnRyYWN0OiBnZXRDb250cmFjdCgpXG4gICAqICAgYWx0IHN1Ym1pdCB0cmFuc2FjdGlvblxuICAgKiAgICAgRmFicmljQWRhcHRlci0+PkNvbnRyYWN0OiBzdWJtaXQoYXBpLCBwcm9wb3NhbE9wdGlvbnMpXG4gICAqICAgZWxzZSBldmFsdWF0ZSB0cmFuc2FjdGlvblxuICAgKiAgICAgRmFicmljQWRhcHRlci0+PkNvbnRyYWN0OiBldmFsdWF0ZShhcGksIHByb3Bvc2FsT3B0aW9ucylcbiAgICogICBlbmRcbiAgICogICBDb250cmFjdC0+PkNoYWluY29kZTogaW52b2tlXG4gICAqICAgQ2hhaW5jb2RlLS0+PkNvbnRyYWN0OiByZXNwb25zZVxuICAgKiAgIENvbnRyYWN0LS0+PkZhYnJpY0FkYXB0ZXI6IHJlc3VsdFxuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjbG9zZSgpXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgdHJhbnNhY3Rpb24oXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPixcbiAgICBhcGk6IHN0cmluZyxcbiAgICBzdWJtaXQgPSB0cnVlLFxuICAgIGFyZ3M/OiBhbnlbXSxcbiAgICB0cmFuc2llbnREYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge30sXG4gICAgZW5kb3JzaW5nT3JnYW5pemF0aW9ucz86IHN0cmluZ1tdLFxuICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy50cmFuc2FjdGlvbik7XG4gICAgY29uc3QgZ2F0ZXdheSA9IGF3YWl0IHRoaXMuR2F0ZXdheShjdHgpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb250cmFjdCA9IGF3YWl0IHRoaXMuQ29udHJhY3QoXG4gICAgICAgIGN0eCxcbiAgICAgICAgdGhpcy5nZXRDb250cmFjdE5hbWUoY2xhc3NOYW1lKVxuICAgICAgKTtcbiAgICAgIGxvZy52ZXJib3NlKFxuICAgICAgICBgJHtzdWJtaXQgPyBcIlN1Ym1pdFwiIDogXCJFdmFsdWF0ZVwifXRpbmcgdHJhbnNhY3Rpb24gJHt0aGlzLmdldENvbnRyYWN0TmFtZShjbGFzc05hbWUpIHx8IHRoaXMuY29uZmlnLmNvbnRyYWN0TmFtZX0uJHthcGl9YFxuICAgICAgKTtcbiAgICAgIGxvZy5kZWJ1ZyhgYXJnczogJHthcmdzPy5tYXAoKGEpID0+IGEudG9TdHJpbmcoKSkuam9pbihcIlxcblwiKSB8fCBcIm5vbmVcIn1gKTtcbiAgICAgIGNvbnN0IG1ldGhvZCA9IHN1Ym1pdCA/IGNvbnRyYWN0LnN1Ym1pdCA6IGNvbnRyYWN0LmV2YWx1YXRlO1xuXG4gICAgICBlbmRvcnNpbmdPcmdhbml6YXRpb25zID0gZW5kb3JzaW5nT3JnYW5pemF0aW9ucz8ubGVuZ3RoXG4gICAgICAgID8gZW5kb3JzaW5nT3JnYW5pemF0aW9uc1xuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHByb3Bvc2FsT3B0aW9uczogUHJvcG9zYWxPcHRpb25zID0ge1xuICAgICAgICBhcmd1bWVudHM6IGFyZ3MgfHwgW10sXG4gICAgICAgIHRyYW5zaWVudERhdGE6IE9iamVjdC5lbnRyaWVzKHRyYW5zaWVudERhdGEpLnJlZHVjZShcbiAgICAgICAgICAoYWNjLCBba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgICAgICBhY2Nba2V5XSA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgIH0sXG4gICAgICAgICAge30gYXMgdHlwZW9mIHRyYW5zaWVudERhdGFcbiAgICAgICAgKSxcbiAgICAgICAgZW5kb3JzaW5nT3JnYW5pemF0aW9uczogY3R4LmdldE9yVW5kZWZpbmVkKFwiYWxsb3dNYW51YWxFbmRvcnNpbmdPcmdzXCIpXG4gICAgICAgICAgPyBlbmRvcnNpbmdPcmdhbml6YXRpb25zIHx8IHVuZGVmaW5lZFxuICAgICAgICAgIDogdW5kZWZpbmVkLCAvLyBtc3BJZCBsaXN0XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgbWV0aG9kLmNhbGwoY29udHJhY3QsIGFwaSwgcHJvcG9zYWxPcHRpb25zKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2cuZGVidWcoYENsb3NpbmcgJHt0aGlzLmNvbmZpZy5tc3BJZH0gZ2F0ZXdheSBjb25uZWN0aW9uYCk7XG4gICAgICBnYXRld2F5LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRVc2VMZWdhY3lHYXRld2F5KGN0eDogQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFjdHguZ2V0T3JVbmRlZmluZWQoXCJsZWdhY3lcIikgJiYgISF0aGlzLmNvbmZpZy5hbGxvd0dhdGV3YXlPdmVycmlkZTtcbiAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZUxlZ2FjeUFyZ3MoYXJncz86IGFueVtdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiAoYXJncyB8fCBbXSkubWFwKChhcmcpID0+XG4gICAgICB0eXBlb2YgYXJnID09PSBcInN0cmluZ1wiID8gYXJnIDogSlNPTi5zdHJpbmdpZnkoYXJnKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTGVnYWN5VHJhbnNpZW50KFxuICAgIHRyYW5zaWVudERhdGE/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gICk6IFJlY29yZDxzdHJpbmcsIEJ1ZmZlcj4gfCB1bmRlZmluZWQge1xuICAgIGlmICghdHJhbnNpZW50RGF0YSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModHJhbnNpZW50RGF0YSk7XG4gICAgaWYgKCFlbnRyaWVzLmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBtYXA6IFJlY29yZDxzdHJpbmcsIEJ1ZmZlcj4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBlbnRyaWVzKSB7XG4gICAgICBtYXBba2V5XSA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgfVxuICAgIHJldHVybiBtYXA7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVMZWdhY3lNc3BDb3VudCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGNvbmZpZ3VyZWQgPSB0aGlzLmNvbmZpZy5sZWdhY3lNc3BDb3VudCA/PyAxO1xuICAgIGNvbnN0IHBhcnNlZCA9IE51bWJlcihjb25maWd1cmVkKTtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShwYXJzZWQpIHx8IHBhcnNlZCA8IDEpIHJldHVybiAxO1xuICAgIHJldHVybiBNYXRoLmZsb29yKHBhcnNlZCk7XG4gIH1cblxuICBwcml2YXRlIHBpY2tMZWdhY3lDYW5kaWRhdGVzKFxuICAgIGNhbmRpZGF0ZXM6IE1zcERldGFpbHNbXSxcbiAgICBsaW1pdDogbnVtYmVyXG4gICk6IE1zcERldGFpbHNbXSB7XG4gICAgaWYgKCFjYW5kaWRhdGVzLmxlbmd0aCB8fCBsaW1pdCA8PSAwKSByZXR1cm4gW107XG4gICAgY29uc3QgYXZhaWxhYmxlID0gWy4uLmNhbmRpZGF0ZXNdO1xuICAgIGNvbnN0IHRhcmdldCA9IE1hdGgubWluKGxpbWl0LCBhdmFpbGFibGUubGVuZ3RoKTtcbiAgICBjb25zdCBwaWNrZWQ6IE1zcERldGFpbHNbXSA9IFtdO1xuICAgIHdoaWxlIChwaWNrZWQubGVuZ3RoIDwgdGFyZ2V0ICYmIGF2YWlsYWJsZS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGlkeCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGF2YWlsYWJsZS5sZW5ndGgpO1xuICAgICAgY29uc3QgW3NlbGVjdGlvbl0gPSBhdmFpbGFibGUuc3BsaWNlKGlkeCwgMSk7XG4gICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgIHBpY2tlZC5wdXNoKHNlbGVjdGlvbik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwaWNrZWQ7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTGVnYWN5UGVlckNvbmZpZ3MoXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPlxuICApOiBMZWdhY3lQZWVyVGFyZ2V0W10ge1xuICAgIGNvbnN0IHBlZXJzOiBMZWdhY3lQZWVyVGFyZ2V0W10gPSBbXG4gICAgICB7XG4gICAgICAgIG1zcElkOiB0aGlzLmNvbmZpZy5tc3BJZCxcbiAgICAgICAgcGVlckVuZHBvaW50OiB0aGlzLmNvbmZpZy5wZWVyRW5kcG9pbnQsXG4gICAgICAgIHBlZXJIb3N0QWxpYXM6IHRoaXMuY29uZmlnLnBlZXJIb3N0QWxpYXMsXG4gICAgICAgIHRsc0NlcnQ6IHRoaXMuY29uZmlnLnRsc0NlcnQsXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBsZXQgZW5kb3JzaW5nT3JncyA9IHRoaXMuZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpIHx8IFtdO1xuICAgIGVuZG9yc2luZ09yZ3MgPSBBcnJheS5pc0FycmF5KGVuZG9yc2luZ09yZ3MpXG4gICAgICA/IGVuZG9yc2luZ09yZ3NcbiAgICAgIDogW2VuZG9yc2luZ09yZ3NdO1xuICAgIGNvbnN0IGVuZG9yc2VycyA9XG4gICAgICBlbmRvcnNpbmdPcmdzLmZpbHRlcigob3JnKTogb3JnIGlzIHN0cmluZyA9PiBCb29sZWFuKG9yZykpIHx8IFtdO1xuICAgIGNvbnN0IGV4dHJhcyA9IGVuZG9yc2Vycy5maWx0ZXIoKG9yZykgPT4gb3JnICE9PSB0aGlzLmNvbmZpZy5tc3BJZCk7XG4gICAgaWYgKCFleHRyYXMubGVuZ3RoKSByZXR1cm4gcGVlcnM7XG5cbiAgICBjb25zdCBtYXAgPSB0aGlzLmNvbmZpZy5tc3BNYXA7XG4gICAgY29uc3QgbGVnYWN5Q291bnQgPSB0aGlzLnJlc29sdmVMZWdhY3lNc3BDb3VudCgpO1xuICAgIGZvciAoY29uc3QgbXNwIG9mIGV4dHJhcykge1xuICAgICAgY29uc3QgY2FuZGlkYXRlcyA9IG1hcD8uW21zcF07XG4gICAgICBpZiAoIWNhbmRpZGF0ZXM/Lmxlbmd0aCkge1xuICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgICAgICBgTm8gcGVlciBtYXBwaW5nIGF2YWlsYWJsZSBmb3IgTVNQICR7bXNwfS4gUHJvdmlkZSBpdCB2aWEgY29uZmlnLm1zcE1hcGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNlbGVjdGlvbnMgPSB0aGlzLnBpY2tMZWdhY3lDYW5kaWRhdGVzKGNhbmRpZGF0ZXMsIGxlZ2FjeUNvdW50KTtcbiAgICAgIGlmICghc2VsZWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICAgICAgYE5vIHZhbGlkIHBlZXIgbWFwcGluZyBhdmFpbGFibGUgZm9yIE1TUCAke21zcH0uIFByb3ZpZGUgaXQgdmlhIGNvbmZpZy5tc3BNYXBgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGNob2ljZSBvZiBzZWxlY3Rpb25zKSB7XG4gICAgICAgIGlmICghY2hvaWNlLmVuZHBvaW50KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXG4gICAgICAgICAgICBgSW52YWxpZCBwZWVyIG1hcHBpbmcgZm9yIE1TUCAke21zcH06IG1pc3NpbmcgZW5kcG9pbnRgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBwZWVycy5wdXNoKHtcbiAgICAgICAgICBtc3BJZDogbXNwLFxuICAgICAgICAgIHBlZXJFbmRwb2ludDogY2hvaWNlLmVuZHBvaW50LFxuICAgICAgICAgIHBlZXJIb3N0QWxpYXM6IGNob2ljZS5hbGlhcyxcbiAgICAgICAgICB0bHNDZXJ0OiBjaG9pY2UudGxzQ2VydCB8fCB0aGlzLmNvbmZpZy50bHNDZXJ0LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGVlcnM7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHN1Ym1pdExlZ2FjeVdpdGhFeHBsaWNpdEVuZG9yc2VycyhcbiAgICBjdHg6IENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+LFxuICAgIGZjbjogc3RyaW5nLFxuICAgIGFyZ3M6IHN0cmluZ1tdLFxuICAgIHRyYW5zaWVudE1hcDogUmVjb3JkPHN0cmluZywgQnVmZmVyPiB8IHVuZGVmaW5lZCxcbiAgICBwZWVyQ29uZmlnczogTGVnYWN5UGVlclRhcmdldFtdLFxuICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICApOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5zdWJtaXRMZWdhY3lXaXRoRXhwbGljaXRFbmRvcnNlcnMpO1xuICAgIGNvbnN0IHBlZXJzID0gdGhpcy5ub3JtYWxpemVMZWdhY3lQZWVycyhwZWVyQ29uZmlncyk7XG4gICAgY29uc3QgaWRlbnRpdHlNYXRlcmlhbCA9IGF3YWl0IHRoaXMucmVzb2x2ZUxlZ2FjeUlkZW50aXR5TWF0ZXJpYWwoKTtcbiAgICBjb25zdCB3YWxsZXQgPSBhd2FpdCBXYWxsZXRzLm5ld0luTWVtb3J5V2FsbGV0KCk7XG4gICAgY29uc3QgaWRlbnRpdHlMYWJlbCA9IGAke3RoaXMuY29uZmlnLm1zcElkfS1sZWdhY3lgO1xuICAgIGF3YWl0IHdhbGxldC5wdXQoaWRlbnRpdHlMYWJlbCwge1xuICAgICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgY2VydGlmaWNhdGU6IGlkZW50aXR5TWF0ZXJpYWwuY2VydGlmaWNhdGUsXG4gICAgICAgIHByaXZhdGVLZXk6IGlkZW50aXR5TWF0ZXJpYWwucHJpdmF0ZUtleSxcbiAgICAgIH0sXG4gICAgICBtc3BJZDogdGhpcy5jb25maWcubXNwSWQsXG4gICAgICB0eXBlOiBcIlguNTA5XCIsXG4gICAgfSBhcyBJZGVudGl0eSk7XG5cbiAgICBjb25zdCBjb25uZWN0aW9uUHJvZmlsZSA9IGF3YWl0IHRoaXMuYnVpbGRMZWdhY3lDb25uZWN0aW9uUHJvZmlsZShwZWVycyk7XG4gICAgY29uc3QgZ2F0ZXdheSA9IG5ldyBMZWdhY3lHYXRld2F5KCk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZ2F0ZXdheS5jb25uZWN0KGNvbm5lY3Rpb25Qcm9maWxlLCB7XG4gICAgICAgIGlkZW50aXR5OiBpZGVudGl0eUxhYmVsLFxuICAgICAgICB3YWxsZXQsXG4gICAgICAgIGRpc2NvdmVyeToge1xuICAgICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgYXNMb2NhbGhvc3Q6IHRoaXMuc2hvdWxkVHJlYXRQZWVyc0FzTG9jYWxob3N0KHBlZXJzKSxcbiAgICAgICAgfSxcbiAgICAgICAgdGxzSW5mbzoge1xuICAgICAgICAgIGNlcnRpZmljYXRlOiBpZGVudGl0eU1hdGVyaWFsLmNlcnRpZmljYXRlLFxuICAgICAgICAgIGtleTogaWRlbnRpdHlNYXRlcmlhbC5wcml2YXRlS2V5LFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG5ldHdvcmsgPSBhd2FpdCBnYXRld2F5LmdldE5ldHdvcmsodGhpcy5jb25maWcuY2hhbm5lbCk7XG4gICAgICBjb25zdCBjb250cmFjdCA9IG5ldHdvcmsuZ2V0Q29udHJhY3QoXG4gICAgICAgIHRoaXMuY29uZmlnLmNoYWluY29kZU5hbWUsXG4gICAgICAgIHRoaXMuZ2V0Q29udHJhY3ROYW1lKGNsYXNzTmFtZSlcbiAgICAgICk7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IGNvbnRyYWN0LmNyZWF0ZVRyYW5zYWN0aW9uKGZjbik7XG5cbiAgICAgIGlmICh0cmFuc2llbnRNYXApIHtcbiAgICAgICAgdHJhbnNhY3Rpb24uc2V0VHJhbnNpZW50KHRyYW5zaWVudE1hcCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGVuZG9yc2VycyA9IHBlZXJzXG4gICAgICAgIC5tYXAoKHBlZXIpID0+IG5ldHdvcmsuZ2V0Q2hhbm5lbCgpLmdldEVuZG9yc2VyKHBlZXIubmFtZSkpXG4gICAgICAgIC5maWx0ZXIoKGVuZG9yc2VyKTogZW5kb3JzZXIgaXMgRW5kb3JzZXIgPT4gQm9vbGVhbihlbmRvcnNlcikpO1xuICAgICAgaWYgKGVuZG9yc2Vycy5sZW5ndGgpIHtcbiAgICAgICAgdHJhbnNhY3Rpb24uc2V0RW5kb3JzaW5nUGVlcnMoZW5kb3JzZXJzKTtcbiAgICAgIH1cblxuICAgICAgbG9nLnZlcmJvc2UoXG4gICAgICAgIGBMZWdhY3kgc3VibWl0dGluZyAke3RoaXMuZ2V0Q29udHJhY3ROYW1lKGNsYXNzTmFtZSkgfHwgdGhpcy5jb25maWcuY29udHJhY3ROYW1lfS4ke2Zjbn0gdmlhIHBlZXJzICR7cGVlcnMubWFwKChwKSA9PiBwLnBlZXJFbmRwb2ludCkuam9pbihcIiwgXCIpfWBcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRyYW5zYWN0aW9uLnN1Ym1pdCguLi5hcmdzKTtcbiAgICAgIHJldHVybiBVaW50OEFycmF5LmZyb20ocmVzdWx0KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgZ2F0ZXdheS5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVMZWdhY3lQZWVycyhcbiAgICBwZWVyczogTGVnYWN5UGVlclRhcmdldFtdXG4gICk6IExlZ2FjeVBlZXJXaXRoTmFtZVtdIHtcbiAgICBjb25zdCBkZWR1cGVkID0gbmV3IE1hcDxzdHJpbmcsIExlZ2FjeVBlZXJXaXRoTmFtZT4oKTtcbiAgICBjb25zdCBhZGRQZWVyID0gKHBlZXI6IExlZ2FjeVBlZXJUYXJnZXQpID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGAke3BlZXIucGVlckVuZHBvaW50fXwke3BlZXIucGVlckhvc3RBbGlhcyB8fCBcIlwifWA7XG4gICAgICBpZiAoZGVkdXBlZC5oYXMoa2V5KSkgcmV0dXJuO1xuICAgICAgY29uc3QgbmFtZSA9IGBwZWVyLSR7cGVlci5tc3BJZH0tJHtkZWR1cGVkLnNpemV9YDtcbiAgICAgIGRlZHVwZWQuc2V0KGtleSwge1xuICAgICAgICAuLi5wZWVyLFxuICAgICAgICBuYW1lLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHBlZXJzLmZvckVhY2goYWRkUGVlcik7XG4gICAgYWRkUGVlcih7XG4gICAgICBtc3BJZDogdGhpcy5jb25maWcubXNwSWQsXG4gICAgICBwZWVyRW5kcG9pbnQ6IHRoaXMuY29uZmlnLnBlZXJFbmRwb2ludCxcbiAgICAgIHBlZXJIb3N0QWxpYXM6IHRoaXMuY29uZmlnLnBlZXJIb3N0QWxpYXMsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gQXJyYXkuZnJvbShkZWR1cGVkLnZhbHVlcygpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzb2x2ZUxlZ2FjeUlkZW50aXR5TWF0ZXJpYWwoKTogUHJvbWlzZTx7XG4gICAgY2VydGlmaWNhdGU6IHN0cmluZztcbiAgICBwcml2YXRlS2V5OiBzdHJpbmc7XG4gIH0+IHtcbiAgICBjb25zdCBjZXJ0aWZpY2F0ZSA9IGF3YWl0IHRoaXMucmVhZFBlbUlucHV0KFxuICAgICAgdGhpcy5jb25maWcuY2VydENlcnRPckRpcmVjdG9yeVBhdGhcbiAgICApO1xuICAgIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCB0aGlzLnJlYWRQZW1JbnB1dChcbiAgICAgIHRoaXMuY29uZmlnLmtleUNlcnRPckRpcmVjdG9yeVBhdGhcbiAgICApO1xuICAgIHJldHVybiB7IGNlcnRpZmljYXRlLCBwcml2YXRlS2V5IH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGJ1aWxkTGVnYWN5Q29ubmVjdGlvblByb2ZpbGUocGVlcnM6IExlZ2FjeVBlZXJXaXRoTmFtZVtdKSB7XG4gICAgY29uc3QgcGVlckVudHJpZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBjb25zdCBjaGFubmVsUGVlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBjb25zdCBvcmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgZm9yIChjb25zdCBwZWVyIG9mIHBlZXJzKSB7XG4gICAgICBjb25zdCB0bHNQZW0gPSBhd2FpdCB0aGlzLnJlYWRQZW1JbnB1dChcbiAgICAgICAgcGVlci50bHNDZXJ0IHx8IHRoaXMuY29uZmlnLnRsc0NlcnRcbiAgICAgICk7XG4gICAgICBjb25zdCBob3N0bmFtZSA9XG4gICAgICAgIHBlZXIucGVlckhvc3RBbGlhcyB8fCB0aGlzLmV4dHJhY3RIb3N0KHBlZXIucGVlckVuZHBvaW50KTtcbiAgICAgIHBlZXJFbnRyaWVzW3BlZXIubmFtZV0gPSB7XG4gICAgICAgIHVybDogdGhpcy5lbnN1cmVHcnBjVXJsKHBlZXIucGVlckVuZHBvaW50KSxcbiAgICAgICAgdGxzQ0FDZXJ0czogeyBwZW06IHRsc1BlbSB9LFxuICAgICAgICBncnBjT3B0aW9uczoge1xuICAgICAgICAgIFwic3NsLXRhcmdldC1uYW1lLW92ZXJyaWRlXCI6IGhvc3RuYW1lLFxuICAgICAgICAgIGhvc3RuYW1lT3ZlcnJpZGU6IGhvc3RuYW1lLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIGNoYW5uZWxQZWVyc1twZWVyLm5hbWVdID0ge1xuICAgICAgICBlbmRvcnNpbmdQZWVyOiB0cnVlLFxuICAgICAgICBjaGFpbmNvZGVRdWVyeTogdHJ1ZSxcbiAgICAgICAgbGVkZ2VyUXVlcnk6IHRydWUsXG4gICAgICAgIGV2ZW50U291cmNlOiB0cnVlLFxuICAgICAgfTtcbiAgICAgIG9yZ3NbcGVlci5tc3BJZF0gPSBvcmdzW3BlZXIubXNwSWRdIHx8IHtcbiAgICAgICAgbXNwaWQ6IHBlZXIubXNwSWQsXG4gICAgICAgIHBlZXJzOiBbXSxcbiAgICAgIH07XG4gICAgICBvcmdzW3BlZXIubXNwSWRdLnBlZXJzLnB1c2gocGVlci5uYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogXCJsZWdhY3ktbWFudWFsXCIsXG4gICAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXG4gICAgICBjbGllbnQ6IHtcbiAgICAgICAgb3JnYW5pemF0aW9uOiB0aGlzLmNvbmZpZy5tc3BJZCxcbiAgICAgIH0sXG4gICAgICBvcmdhbml6YXRpb25zOiBvcmdzLFxuICAgICAgcGVlcnM6IHBlZXJFbnRyaWVzLFxuICAgICAgb3JkZXJlcnM6IHt9LFxuICAgICAgY2hhbm5lbHM6IHtcbiAgICAgICAgW3RoaXMuY29uZmlnLmNoYW5uZWxdOiB7XG4gICAgICAgICAgcGVlcnM6IGNoYW5uZWxQZWVycyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkVHJlYXRQZWVyc0FzTG9jYWxob3N0KHBlZXJzOiBMZWdhY3lQZWVyV2l0aE5hbWVbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwZWVycy5ldmVyeSgocGVlcikgPT4gdGhpcy5pc0xvY2FsRW5kcG9pbnQocGVlci5wZWVyRW5kcG9pbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNMb2NhbEVuZHBvaW50KGVuZHBvaW50OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5leHRyYWN0SG9zdChlbmRwb2ludCkudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gaG9zdCA9PT0gXCJsb2NhbGhvc3RcIiB8fCBob3N0ID09PSBcIjEyNy4wLjAuMVwiO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0SG9zdChlbmRwb2ludDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBzYW5pdGl6ZWQgPSBlbmRwb2ludC5yZXBsYWNlKC9eZ3JwY3M/OlxcL1xcLy8sIFwiXCIpO1xuICAgIHJldHVybiBzYW5pdGl6ZWQuc3BsaXQoXCI6XCIpWzBdO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVHcnBjVXJsKGVuZHBvaW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICgvXmdycGNzPzpcXC9cXC8vaS50ZXN0KGVuZHBvaW50KSkgcmV0dXJuIGVuZHBvaW50O1xuICAgIHJldHVybiBgZ3JwY3M6Ly8ke2VuZHBvaW50fWA7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlYWRQZW1JbnB1dChzb3VyY2U/OiBzdHJpbmcgfCBCdWZmZXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghc291cmNlKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk1pc3NpbmcgY2VydGlmaWNhdGUgb3Iga2V5IG1hdGVyaWFsXCIpO1xuICAgIGlmIChCdWZmZXIuaXNCdWZmZXIoc291cmNlKSkgcmV0dXJuIHNvdXJjZS50b1N0cmluZyhcInV0ZjhcIik7XG4gICAgY29uc3QgdHJpbW1lZCA9IHNvdXJjZS50cmltKCk7XG4gICAgaWYgKC8tLS0tLUJFR0lOIFtBLVogXSstLS0tLS8udGVzdCh0cmltbWVkKSkgcmV0dXJuIHRyaW1tZWQ7XG4gICAgY29uc3Qgc3RhdHMgPSBhd2FpdCBmcy5wcm9taXNlcy5zdGF0KHNvdXJjZSkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICBpZiAoc3RhdHM/LmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgIHJldHVybiBhd2FpdCBnZXRGaXJzdERpckZpbGVOYW1lQ29udGVudChzb3VyY2UpO1xuICAgIH1cbiAgICByZXR1cm4gKGF3YWl0IHJlYWRGc0ZpbGUoc291cmNlKSkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUGFyc2VzIGFuIGVycm9yIGludG8gYSBCYXNlRXJyb3JcbiAgICogQHN1bW1hcnkgQ29udmVydHMgYW55IGVycm9yIGludG8gYSBzdGFuZGFyZGl6ZWQgQmFzZUVycm9yXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBzdHJpbmd9IGVyciAtIFRoZSBlcnJvciB0byBwYXJzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3JlYXNvbl0gLSBPcHRpb25hbCByZWFzb24gZm9yIHRoZSBlcnJvclxuICAgKiBAcmV0dXJuIHtCYXNlRXJyb3J9IFRoZSBwYXJzZWQgZXJyb3JcbiAgICovXG4gIG92ZXJyaWRlIHBhcnNlRXJyb3I8RSBleHRlbmRzIEJhc2VFcnJvcj4oZXJyOiBFcnJvciB8IHN0cmluZyk6IEUge1xuICAgIHJldHVybiBGYWJyaWNDbGllbnRBZGFwdGVyLnBhcnNlRXJyb3I8RT4oZXJyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKiBAc3VtbWFyeSBFeGVjdXRlcyBhIHRyYW5zYWN0aW9uIHRoYXQgbW9kaWZpZXMgdGhlIGxlZGdlciBzdGF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpIC0gVGhlIGNoYWluY29kZSBmdW5jdGlvbiB0byBjYWxsXG4gICAqIEBwYXJhbSB7YW55W119IFthcmdzXSAtIEFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBjaGFpbmNvZGUgZnVuY3Rpb25cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBbdHJhbnNpZW50RGF0YV0gLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gW2VuZG9yc2luZ09yZ2FuaXphdGlvbnNdIC0gT3JnYW5pemF0aW9ucyB0aGF0IG11c3QgZW5kb3JzZSB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxVaW50OEFycmF5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHRyYW5zYWN0aW9uIHJlc3VsdFxuICAgKi9cbiAgYXN5bmMgc3VibWl0VHJhbnNhY3Rpb24oXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPixcbiAgICBhcGk6IHN0cmluZyxcbiAgICBhcmdzPzogYW55W10sXG4gICAgdHJhbnNpZW50RGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgZW5kb3JzaW5nT3JnYW5pemF0aW9ucz86IEFycmF5PHN0cmluZz4sXG4gICAgY2xhc3NOYW1lPzogc3RyaW5nXG4gICk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIGlmICh0aGlzLnNob3VsZFVzZUxlZ2FjeUdhdGV3YXkoY3R4KSkge1xuICAgICAgY29uc3QgbGVnYWN5QXJncyA9IHRoaXMucHJlcGFyZUxlZ2FjeUFyZ3MoYXJncyk7XG4gICAgICBjb25zdCB0cmFuc2llbnRNYXAgPSB0aGlzLmJ1aWxkTGVnYWN5VHJhbnNpZW50KHRyYW5zaWVudERhdGEpO1xuICAgICAgY29uc3QgcGVlckNvbmZpZ3MgPSB0aGlzLmJ1aWxkTGVnYWN5UGVlckNvbmZpZ3MoY3R4KTtcbiAgICAgIHJldHVybiB0aGlzLnN1Ym1pdExlZ2FjeVdpdGhFeHBsaWNpdEVuZG9yc2VycyhcbiAgICAgICAgY3R4LFxuICAgICAgICBhcGksXG4gICAgICAgIGxlZ2FjeUFyZ3MsXG4gICAgICAgIHRyYW5zaWVudE1hcCxcbiAgICAgICAgcGVlckNvbmZpZ3MsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24oXG4gICAgICBjdHgsXG4gICAgICBhcGksXG4gICAgICB0cnVlLFxuICAgICAgYXJncyxcbiAgICAgIHRyYW5zaWVudERhdGEsXG4gICAgICBlbmRvcnNpbmdPcmdhbml6YXRpb25zLFxuICAgICAgY2xhc3NOYW1lXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXZhbHVhdGVzIGEgdHJhbnNhY3Rpb24gb24gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqIEBzdW1tYXJ5IEV4ZWN1dGVzIGEgdHJhbnNhY3Rpb24gdGhhdCBkb2VzIG5vdCBtb2RpZnkgdGhlIGxlZGdlciBzdGF0ZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpIC0gVGhlIGNoYWluY29kZSBmdW5jdGlvbiB0byBjYWxsXG4gICAqIEBwYXJhbSB7YW55W119IFthcmdzXSAtIEFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBjaGFpbmNvZGUgZnVuY3Rpb25cbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBbdHJhbnNpZW50RGF0YV0gLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7QXJyYXk8c3RyaW5nPn0gW2VuZG9yc2luZ09yZ2FuaXphdGlvbnNdIC0gT3JnYW5pemF0aW9ucyB0aGF0IG11c3QgZW5kb3JzZSB0aGUgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxVaW50OEFycmF5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHRyYW5zYWN0aW9uIHJlc3VsdFxuICAgKi9cbiAgYXN5bmMgZXZhbHVhdGVUcmFuc2FjdGlvbihcbiAgICBjdHg6IENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+LFxuICAgIGFwaTogc3RyaW5nLFxuICAgIGFyZ3M/OiBhbnlbXSxcbiAgICB0cmFuc2llbnREYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBlbmRvcnNpbmdPcmdhbml6YXRpb25zPzogQXJyYXk8c3RyaW5nPixcbiAgICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24oXG4gICAgICBjdHgsXG4gICAgICBhcGksXG4gICAgICBmYWxzZSxcbiAgICAgIGFyZ3MsXG4gICAgICB0cmFuc2llbnREYXRhLFxuICAgICAgZW5kb3JzaW5nT3JnYW5pemF0aW9ucyxcbiAgICAgIGNsYXNzTmFtZVxuICAgICk7XG4gIH1cblxuICBhc3luYyBtaWdyYXRlKFxuICAgIHJlZmVyZW5jZTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChbYXJnc10sIFBlcnNpc3RlbmNlS2V5cy5NSUdSQVRJT04sIHRydWUpXG4gICAgKS5mb3IodGhpcy5taWdyYXRlKTtcbiAgICByZXR1cm4gdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihcbiAgICAgIGN0eEFyZ3NbMF0gYXMgQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4sXG4gICAgICBcIm1pZ3JhdGVcIixcbiAgICAgIFtyZWZlcmVuY2UsIGFyZ3NdLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU2h1dHMgZG93biB0aGUgY29ubmVjdGlvbiB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgQ2xvc2VzIHRoZSBhY3RpdmUgZGlzcGF0Y2ggKHdoaWNoIGluIHR1cm4gY2xvc2VzIGFueSBnYXRld2F5XG4gICAqIGV2ZW50IHN1YnNjcmlwdGlvbikgdmlhIHRoZSBiYXNlIGNsYXNzLCB0aGVuIGNsb3NlcyB0aGUgZ1JQQyBjbGllbnQuXG4gICAqIFdvcmtzIGNvcnJlY3RseSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgYHN5bnRoZXRpY0V2ZW50c2AgaXMgZW5hYmxlZC5cbiAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gYWxsIGNvbm5lY3Rpb25zIGFyZSBjbG9zZWRcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHNodXRkb3duKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPj5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gQmFzZSBjbGFzcyBoYW5kbGVzIGRpc3BhdGNoLmNsb3NlKCkgaW50ZXJuYWxseS5cbiAgICBhd2FpdCBzdXBlci5zaHV0ZG93biguLi5hcmdzKTtcbiAgICBpZiAodGhpcy5jbGllbnQpIHtcbiAgICAgIHRoaXMubG9nLnZlcmJvc2UoYENsb3NpbmcgJHt0aGlzLmNvbmZpZy5tc3BJZH0gZ2F0ZXdheSBjbGllbnRgKTtcbiAgICAgIHRoaXMuY2xpZW50LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgQ29udHJhY3QgaW5zdGFuY2UgZnJvbSBhIEdhdGV3YXlcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIGEgY2hhaW5jb2RlIGNvbnRyYWN0IGZyb20gdGhlIHNwZWNpZmllZCBuZXR3b3JrXG4gICAqIEBwYXJhbSB7R2F0ZXdheX0gZ2F0ZXdheSAtIFRoZSBHYXRld2F5IGluc3RhbmNlXG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gVGhlIHBlZXIgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJuIHtDb250cmFrdH0gVGhlIENvbnRyYWN0IGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgZ2V0Q29udHJhY3QoXG4gICAgZ2F0ZXdheTogR2F0ZXdheSxcbiAgICBjb25maWc6IFBlZXJDb25maWcsXG4gICAgY29udHJhY3ROYW1lPzogc3RyaW5nXG4gICk6IENvbnRyYWt0IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5nZXRDb250cmFjdCk7XG4gICAgY29uc3QgbmV0d29yayA9IHRoaXMuZ2V0TmV0d29yayhnYXRld2F5LCBjb25maWcuY2hhbm5lbCk7XG4gICAgbGV0IGNvbnRyYWN0OiBDb250cmFrdDtcbiAgICB0cnkge1xuICAgICAgbG9nLmRlYnVnKFxuICAgICAgICBgUmV0cmlldmluZyBjaGFpbmNvZGUgJHtjb25maWcuY2hhaW5jb2RlTmFtZX0gY29udHJhY3QgJHtjb250cmFjdE5hbWUgfHwgY29uZmlnLmNvbnRyYWN0TmFtZX0gZnJvbSBuZXR3b3JrICR7Y29uZmlnLmNoYW5uZWx9YFxuICAgICAgKTtcbiAgICAgIGNvbnRyYWN0TmFtZSA9IGNvbnRyYWN0TmFtZSA/IGNvbnRyYWN0TmFtZSA6IGNvbmZpZy5jb250cmFjdE5hbWU7XG4gICAgICBjb250cmFjdCA9IG5ldHdvcmsuZ2V0Q29udHJhY3QoY29uZmlnLmNoYWluY29kZU5hbWUsIGNvbnRyYWN0TmFtZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgfVxuICAgIHJldHVybiBjb250cmFjdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyBhIE5ldHdvcmsgaW5zdGFuY2UgZnJvbSBhIEdhdGV3YXlcbiAgICogQHN1bW1hcnkgQ29ubmVjdHMgdG8gYSBzcGVjaWZpYyBjaGFubmVsIG9uIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKiBAcGFyYW0ge0dhdGV3YXl9IGdhdGV3YXkgLSBUaGUgR2F0ZXdheSBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hhbm5lbE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgY2hhbm5lbCB0byBjb25uZWN0IHRvXG4gICAqIEByZXR1cm4ge05ldHdvcmt9IFRoZSBOZXR3b3JrIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgZ2V0TmV0d29yayhnYXRld2F5OiBHYXRld2F5LCBjaGFubmVsTmFtZTogc3RyaW5nKTogTmV0d29yayB7XG4gICAgY29uc3QgbG9nID0gTG9nZ2luZy5mb3IodGhpcy5nZXROZXR3b3JrKTtcbiAgICBsZXQgbmV0d29yazogTmV0d29yaztcbiAgICB0cnkge1xuICAgICAgbG9nLmRlYnVnKGBDb25uZWN0aW5nIHRvIGNoYW5uZWwgJHtjaGFubmVsTmFtZX1gKTtcbiAgICAgIG5ldHdvcmsgPSBnYXRld2F5LmdldE5ldHdvcmsoY2hhbm5lbE5hbWUpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXR3b3JrO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXRzIGEgR2F0ZXdheSBpbnN0YW5jZSBmb3IgY29ubmVjdGluZyB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICogQHN1bW1hcnkgQ3JlYXRlcyBhIEdhdGV3YXkgdXNpbmcgdGhlIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb24gYW5kIGNsaWVudFxuICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIFRoZSBwZWVyIGNvbmZpZ3VyYXRpb25cbiAgICogQHBhcmFtIHtDbGllbnR9IFtjbGllbnRdIC0gT3B0aW9uYWwgZ1JQQyBjbGllbnQsIHdpbGwgYmUgY3JlYXRlZCBpZiBub3QgcHJvdmlkZWRcbiAgICogQHJldHVybiB7UHJvbWlzZTxHYXRld2F5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIEdhdGV3YXkgaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRHYXRld2F5KFxuICAgIGN0eDogQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4sXG4gICAgY29uZmlnOiBQZWVyQ29uZmlnLFxuICAgIGNsaWVudD86IENsaWVudFxuICApIHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0Q29ubmVjdGlvbihcbiAgICAgIGNsaWVudCB8fCAoYXdhaXQgdGhpcy5nZXRDbGllbnQoY29uZmlnKSksXG4gICAgICBjb25maWcsXG4gICAgICBjdHhcbiAgICApKSBhcyBHYXRld2F5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgZ1JQQyBjbGllbnQgZm9yIGNvbm5lY3RpbmcgdG8gYSBGYWJyaWMgcGVlclxuICAgKiBAc3VtbWFyeSBJbml0aWFsaXplcyBhIGNsaWVudCB3aXRoIFRMUyBjcmVkZW50aWFscyBmb3Igc2VjdXJlIGNvbW11bmljYXRpb25cbiAgICogQHBhcmFtIHtQZWVyQ29uZmlnfSBjb25maWcgLSBUaGUgcGVlciBjb25maWd1cmF0aW9uXG4gICAqIEByZXR1cm4ge0NsaWVudH0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGdSUEMgY2xpZW50XG4gICAqL1xuICBzdGF0aWMgZ2V0Q2xpZW50KGNvbmZpZzogUGVlckNvbmZpZyk6IENsaWVudCB7XG4gICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuZ2V0Q2xpZW50KTtcbiAgICBsb2cuZGVidWcoYGdlbmVyYXRpbmcgVExTIGNyZWRlbnRpYWxzIGZvciBtc3AgJHtjb25maWcubXNwSWR9YCk7XG4gICAgbGV0IHBhdGhPckNlcnQ6IHN0cmluZyB8IEJ1ZmZlciA9IGNvbmZpZy50bHNDZXJ0IGFzIHN0cmluZyB8IEJ1ZmZlcjtcblxuICAgIGlmICh0eXBlb2YgcGF0aE9yQ2VydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgaWYgKFxuICAgICAgICBwYXRoT3JDZXJ0Lm1hdGNoKFxuICAgICAgICAgIC8tLS0tLUJFR0lOIChDRVJUSUZJQ0FURXxLRVl8UFJJVkFURSBLRVkpLS0tLS0uKz8tLS0tLUVORCBcXDEtLS0tLSQvZ21zXG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBwYXRoT3JDZXJ0ID0gQnVmZmVyLmZyb20ocGF0aE9yQ2VydCwgXCJ1dGY4XCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBwYXRoT3JDZXJ0ID0gQnVmZmVyLmZyb20oZnMucmVhZEZpbGVTeW5jKHBhdGhPckNlcnQsIFwidXRmOFwiKSk7XG4gICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gcmVhZCB0aGUgdGxzIGNlcnRpZmljYXRlIGZyb20gJHtwYXRoT3JDZXJ0fTogJHtlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdGxzQ3JlZGVudGlhbHMgPSBncnBjLmNyZWRlbnRpYWxzLmNyZWF0ZVNzbChwYXRoT3JDZXJ0KTtcbiAgICBsb2cuZGVidWcoYGdlbmVyYXRpbmcgR2F0ZXdheSBDbGllbnQgZm9yIHVybCAke2NvbmZpZy5wZWVyRW5kcG9pbnR9YCk7XG4gICAgcmV0dXJuIG5ldyBDbGllbnQoY29uZmlnLnBlZXJFbmRwb2ludCwgdGxzQ3JlZGVudGlhbHMsIHtcbiAgICAgIFwiZ3JwYy5tYXhfcmVjZWl2ZV9tZXNzYWdlX2xlbmd0aFwiOiAoY29uZmlnLnNpemVMaW1pdCB8fCAxNSkgKiAxMDI0ICogMTAyNCxcbiAgICAgIFwiZ3JwYy5tYXhfc2VuZF9tZXNzYWdlX2xlbmd0aFwiOiAoY29uZmlnLnNpemVMaW1pdCB8fCAxNSkgKiAxMDI0ICogMTAyNCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXN0YWJsaXNoZXMgYSBjb25uZWN0aW9uIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgKiBAc3VtbWFyeSBDcmVhdGVzIGEgR2F0ZXdheSBjb25uZWN0aW9uIHdpdGggaWRlbnRpdHkgYW5kIHNpZ25lclxuICAgKiBAcGFyYW0ge0NsaWVudH0gY2xpZW50IC0gVGhlIGdSUEMgY2xpZW50XG4gICAqIEBwYXJhbSB7UGVlckNvbmZpZ30gY29uZmlnIC0gVGhlIHBlZXIgY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJuIHtQcm9taXNlPEdhdGV3YXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29ubmVjdGVkIEdhdGV3YXlcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gICAqICAgcGFydGljaXBhbnQgRmFicmljQWRhcHRlclxuICAgKiAgIHBhcnRpY2lwYW50IElkZW50aXR5XG4gICAqICAgcGFydGljaXBhbnQgU2lnbmVyXG4gICAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICAgKlxuICAgKiAgIENhbGxlci0+PkZhYnJpY0FkYXB0ZXI6IGdldENvbm5lY3Rpb24oY2xpZW50LCBjb25maWcpXG4gICAqICAgRmFicmljQWRhcHRlci0+PklkZW50aXR5OiBnZXRJZGVudGl0eShtc3BJZCwgY2VydERpcmVjdG9yeVBhdGgpXG4gICAqICAgSWRlbnRpdHktLT4+RmFicmljQWRhcHRlcjogaWRlbnRpdHlcbiAgICogICBGYWJyaWNBZGFwdGVyLT4+U2lnbmVyOiBnZXRTaWduZXIoa2V5RGlyZWN0b3J5UGF0aClcbiAgICogICBTaWduZXItLT4+RmFicmljQWRhcHRlcjogc2lnbmVyXG4gICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IENyZWF0ZSBDb25uZWN0T3B0aW9uc1xuICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjb25uZWN0KG9wdGlvbnMpXG4gICAqICAgR2F0ZXdheS0tPj5GYWJyaWNBZGFwdGVyOiBnYXRld2F5XG4gICAqICAgRmFicmljQWRhcHRlci0tPj5DYWxsZXI6IGdhdGV3YXlcbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRDb25uZWN0aW9uKFxuICAgIGNsaWVudDogQ2xpZW50LFxuICAgIGNvbmZpZzogUGVlckNvbmZpZyxcbiAgICBjdHg6IENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+XG4gICkge1xuICAgIGNvbnN0IGxvZyA9IExvZ2dpbmcuZm9yKHRoaXMuZ2V0Q29ubmVjdGlvbik7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYFJldHJpZXZpbmcgUGVlciBJZGVudGl0eSBmb3IgJHtjb25maWcubXNwSWR9IHVuZGVyICR7Y29uZmlnLmNlcnRDZXJ0T3JEaXJlY3RvcnlQYXRofWBcbiAgICApO1xuICAgIGNvbnN0IGlkZW50aXR5ID0gYXdhaXQgZ2V0SWRlbnRpdHkoXG4gICAgICBjb25maWcubXNwSWQsXG4gICAgICBjb25maWcuY2VydENlcnRPckRpcmVjdG9yeVBhdGggYXMgYW55XG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgbG9nLmRlYnVnKFxuICAgICAgICBgcHJlcGFyaW5nIHRyYW5zYWN0aW9uIHNpZ25lciBmb3IgJHtDcnlwdG9VdGlscy5mYWJyaWNJZEZyb21DZXJ0aWZpY2F0ZShpZGVudGl0eS5jcmVkZW50aWFscy50b1N0cmluZygpKX1gXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGV4dHJhY3QgRmFicmljIElEIGZyb20gY2VydGlmaWNhdGVgLCBlIGFzIEVycm9yKTtcbiAgICB9XG5cbiAgICBsZXQgc2lnbmVyOiBTaWduZXI7XG4gICAgY29uc3QgY2xvc2UgPSAoKSA9PiB7fTtcbiAgICBpZiAoIWNvbmZpZy5oc20pIHtcbiAgICAgIHNpZ25lciA9IGF3YWl0IGdldFNpZ25lcihjb25maWcua2V5Q2VydE9yRGlyZWN0b3J5UGF0aCBhcyBhbnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjb25zdCBoc20gPSBuZXcgSFNNU2lnbmVyRmFjdG9yeUN1c3RvbShjb25maWcuaHNtLmxpYnJhcnkpO1xuICAgICAgLy8gY29uc3QgaWRlbnRpZmllciA9IGhzbS5nZXRTS0lGcm9tQ2VydGlmaWNhdGVQYXRoKFxuICAgICAgLy8gICBjb25maWcuY2VydENlcnRPckRpcmVjdG9yeVBhdGggYXMgYW55XG4gICAgICAvLyApO1xuICAgICAgLy8gY29uc3QgcGtjczExU2lnbmVyID0gaHNtLm5ld1NpZ25lcih7XG4gICAgICAvLyAgIGxhYmVsOiBjb25maWcuaHNtLnRva2VuTGFiZWwgYXMgc3RyaW5nLFxuICAgICAgLy8gICBwaW46IFN0cmluZyhjb25maWcuaHNtLnBpbikgYXMgc3RyaW5nLFxuICAgICAgLy8gICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgLy8gICAvLyB1c2VyVHlwZTogMSAvKkNLVV9VU0VSICovLFxuICAgICAgLy8gfSk7XG4gICAgICAvLyBzaWduZXIgPSBwa2NzMTFTaWduZXIuc2lnbmVyO1xuICAgICAgLy8gY2xvc2UgPSBwa2NzMTFTaWduZXIuY2xvc2U7XG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcIkhTTSBOT1QgSU1QTEVNRU5URURcIik7XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGNsaWVudCxcbiAgICAgIGlkZW50aXR5OiBpZGVudGl0eSxcbiAgICAgIHNpZ25lcjogc2lnbmVyLFxuICAgICAgLy8gRGVmYXVsdCB0aW1lb3V0cyBmb3IgZGlmZmVyZW50IGdSUEMgY2FsbHNcbiAgICAgIGV2YWx1YXRlT3B0aW9uczogKCkgPT4ge1xuICAgICAgICByZXR1cm4geyBkZWFkbGluZTogRGF0ZS5ub3coKSArIDEwMDAgKiBjdHguZ2V0KFwiZXZhbHVhdGVUaW1lb3V0XCIpIH07IC8vIGRlZmF1bHRzIHRvIDUgc2Vjb25kc1xuICAgICAgfSxcbiAgICAgIGVuZG9yc2VPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IGRlYWRsaW5lOiBEYXRlLm5vdygpICsgMTAwMCAqIGN0eC5nZXQoXCJlbmRvcnNlVGltZW91dFwiKSB9OyAvLyBkZWZhdWx0cyB0byAxNSBzZWNvbmRzXG4gICAgICB9LFxuICAgICAgc3VibWl0T3B0aW9uczogKCkgPT4ge1xuICAgICAgICByZXR1cm4geyBkZWFkbGluZTogRGF0ZS5ub3coKSArIDEwMDAgKiBjdHguZ2V0KFwic3VibWl0VGltZW91dFwiKSB9OyAvLyBkZWZhdWx0cyB0byA1IHNlY29uZHNcbiAgICAgIH0sXG4gICAgICBjb21taXRTdGF0dXNPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7IGRlYWRsaW5lOiBEYXRlLm5vdygpICsgMTAwMCAqIGN0eC5nZXQoXCJjb21taXRUaW1lb3V0XCIpIH07IC8vIGRlZmF1bHRzIHRvIDEgbWludXRlXG4gICAgICB9LFxuICAgIH0gYXMgQ29ubmVjdE9wdGlvbnM7XG5cbiAgICBsb2cuZGVidWcoYENvbm5lY3RpbmcgdG8gJHtjb25maWcubXNwSWR9YCk7XG4gICAgY29uc3QgZ2F0ZXdheSA9IGNvbm5lY3Qob3B0aW9ucyk7XG5cbiAgICAvLyBUT0RPOiByZXBsYWNlP1xuICAgIGlmIChjb25maWcuaHNtKSB7XG4gICAgICBnYXRld2F5LmNsb3NlID0gbmV3IFByb3h5KGdhdGV3YXkuY2xvc2UsIHtcbiAgICAgICAgYXBwbHkodGFyZ2V0OiAoKSA9PiB2b2lkLCB0aGlzQXJnOiBhbnksIGFyZ0FycmF5OiBhbnlbXSk6IGFueSB7XG4gICAgICAgICAgUmVmbGVjdC5hcHBseSh0YXJnZXQsIHRoaXNBcmcsIGFyZ0FycmF5KTtcbiAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdhdGV3YXk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRGlzcGF0Y2ggaW5zdGFuY2UgZm9yIHRoZSBGYWJyaWMgY2xpZW50LlxuICAgKiBAc3VtbWFyeSBUaGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBhIG5ldyBGYWJyaWNDbGllbnREaXNwYXRjaCBpbnN0YW5jZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGludGVyYWN0IHdpdGggdGhlIEZhYnJpYyBuZXR3b3JrLlxuICAgKiBAcmV0dXJucyB7RGlzcGF0Y2h9IEEgbmV3IERpc3BhdGNoIGluc3RhbmNlIGNvbmZpZ3VyZWQgZm9yIHRoZSBGYWJyaWMgY2xpZW50LlxuICAgKiBAcmVtYXJrcyBUaGUgRGlzcGF0Y2ggaW5zdGFuY2UgaXMgdXNlZCB0byBlbmNhcHN1bGF0ZSB0aGUgbG9naWMgZm9yIGludGVyYWN0aW5nIHdpdGggdGhlIEZhYnJpYyBuZXR3b3JrLCBzdWNoIGFzIHN1Ym1pdHRpbmcgdHJhbnNhY3Rpb25zIG9yIHF1ZXJ5aW5nIGRhdGEuXG4gICAqIEBleGFtcGxlXG4gICAqIGNvbnN0IGZhYnJpY0Rpc3BhdGNoID0gZmFicmljQ2xpZW50QWRhcHRlci5EaXNwYXRjaCgpO1xuICAgKiBmYWJyaWNEaXNwYXRjaC5zdWJtaXRUcmFuc2FjdGlvbignY3JlYXRlUHJvZHVjdCcsIHsgbmFtZTogJ1Byb2R1Y3QgQScsIHByaWNlOiAxMDAgfSk7XG4gICAqL1xuICBvdmVycmlkZSBEaXNwYXRjaCgpOiBGYWJyaWNDbGllbnREaXNwYXRjaCB7XG4gICAgcmV0dXJuIG5ldyBGYWJyaWNDbGllbnRBZGFwdGVyW1wiX2Jhc2VEaXNwYXRjaFwiXSh0aGlzLmNsaWVudCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhbiBlcnJvciBpbnRvIGEgQmFzZUVycm9yXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGFueSBlcnJvciBpbnRvIGEgc3RhbmRhcmRpemVkIEJhc2VFcnJvciB1c2luZyB0aGUgcGFyZW50IGNsYXNzIGltcGxlbWVudGF0aW9uXG4gICAqIEBwYXJhbSB7RXJyb3IgfCBzdHJpbmd9IGVyciAtIFRoZSBlcnJvciB0byBwYXJzZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3JlYXNvbl0gLSBPcHRpb25hbCByZWFzb24gZm9yIHRoZSBlcnJvclxuICAgKiBAcmV0dXJuIHtCYXNlRXJyb3J9IFRoZSBwYXJzZWQgZXJyb3JcbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgcGFyc2VFcnJvcjxFIGV4dGVuZHMgQmFzZUVycm9yPihcbiAgICBlcnI6IEVycm9yIHwgc3RyaW5nIHwgR2F0ZXdheUVycm9yXG4gICk6IEUge1xuICAgIC8vIGlmIChcbiAgICAvLyAgIE1JU1NJTkdfUFJJVkFURV9EQVRBX1JFR0VYLnRlc3QoXG4gICAgLy8gICAgIHR5cGVvZiBlcnIgPT09IFwic3RyaW5nXCIgPyBlcnIgOiBlcnIubWVzc2FnZVxuICAgIC8vICAgKVxuICAgIC8vIClcbiAgICAvLyAgIHJldHVybiBuZXcgVW5hdXRob3JpemVkUHJpdmF0ZURhdGFBY2Nlc3MoZXJyKSBhcyBFO1xuXG4gICAgbGV0IG1zZyA9IHR5cGVvZiBlcnIgPT09IFwic3RyaW5nXCIgPyBlcnIgOiBlcnIubWVzc2FnZTtcbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgR2F0ZXdheUVycm9yICYmIGVyci5kZXRhaWxzLmxlbmd0aCAmJiBlcnIuY29kZSA9PT0gMTApIHtcbiAgICAgIG1zZyA9IGAke2Vyci5kZXRhaWxzWzBdLm1lc3NhZ2V9YDtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBlcnIgaW5zdGFuY2VvZiBFbmRvcnNlRXJyb3IgJiZcbiAgICAgIGVyci5kZXRhaWxzLmxlbmd0aCAmJlxuICAgICAgZXJyLmNvZGUgPT09IDEwICYmXG4gICAgICBlcnIuZGV0YWlsc1swXS5tZXNzYWdlPy5pbmNsdWRlcyhVbnN1cHBvcnRlZEVycm9yLm5hbWUpXG4gICAgKSB7XG4gICAgICBtc2cgPSBgJHtlcnIuZGV0YWlsc1swXS5tZXNzYWdlfWA7XG4gICAgfVxuXG4gICAgaWYgKG1zZy5pbmNsdWRlcyhcIk1WQ0NfUkVBRF9DT05GTElDVFwiKSlcbiAgICAgIHJldHVybiBuZXcgTXZjY1JlYWRDb25mbGljdEVycm9yKGVycikgYXMgRTtcblxuICAgIGlmIChtc2cuaW5jbHVkZXMoXCJERUFETElORV9FWENFRURFRFwiKSlcbiAgICAgIHJldHVybiBuZXcgVHJhbnNhY3Rpb25UaW1lb3V0RXJyb3IoZXJyKSBhcyBFO1xuXG4gICAgaWYgKG1zZy5pbmNsdWRlcyhcIkVORE9SU0VNRU5UX1BPTElDWV9GQUlMVVJFXCIpKVxuICAgICAgcmV0dXJuIG5ldyBFbmRvcnNlbWVudFBvbGljeUVycm9yKGVycikgYXMgRTtcblxuICAgIGlmIChtc2cuaW5jbHVkZXMoXCJQSEFOVE9NX1JFQURfQ09ORkxJQ1RcIikpXG4gICAgICByZXR1cm4gbmV3IFBoYW50b21SZWFkQ29uZmxpY3RFcnJvcihlcnIpIGFzIEU7XG5cbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IgJiYgKGVyciBhcyBhbnkpLmNvZGUpIHtcbiAgICAgIHN3aXRjaCAoKGVyciBhcyBhbnkpLmNvZGUpIHtcbiAgICAgICAgY2FzZSA5OlxuICAgICAgICAgIHJldHVybiBuZXcgRW5kb3JzZW1lbnRFcnJvcihlcnIpIGFzIEU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1zZy5pbmNsdWRlcyhWYWxpZGF0aW9uRXJyb3IubmFtZSkpXG4gICAgICByZXR1cm4gbmV3IFZhbGlkYXRpb25FcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhOb3RGb3VuZEVycm9yLm5hbWUpKSByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IoZXJyKSBhcyBFO1xuICAgIGlmIChtc2cuaW5jbHVkZXMoQ29uZmxpY3RFcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBDb25mbGljdEVycm9yKGVycikgYXMgRTtcbiAgICBpZiAobXNnLmluY2x1ZGVzKEJhZFJlcXVlc3RFcnJvci5uYW1lKSlcbiAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKGVycikgYXMgRTtcbiAgICBpZiAobXNnLmluY2x1ZGVzKFF1ZXJ5RXJyb3IubmFtZSkpIHJldHVybiBuZXcgUXVlcnlFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhQYWdpbmdFcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBQYWdpbmdFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhVbnN1cHBvcnRlZEVycm9yLm5hbWUpKVxuICAgICAgcmV0dXJuIG5ldyBVbnN1cHBvcnRlZEVycm9yKGVycikgYXMgRTtcbiAgICBpZiAobXNnLmluY2x1ZGVzKE1pZ3JhdGlvbkVycm9yLm5hbWUpKSByZXR1cm4gbmV3IE1pZ3JhdGlvbkVycm9yKGVycikgYXMgRTtcbiAgICBpZiAobXNnLmluY2x1ZGVzKE9ic2VydmVyRXJyb3IubmFtZSkpIHJldHVybiBuZXcgT2JzZXJ2ZXJFcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhBdXRob3JpemF0aW9uRXJyb3IubmFtZSkpXG4gICAgICByZXR1cm4gbmV3IEF1dGhvcml6YXRpb25FcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhGb3JiaWRkZW5FcnJvci5uYW1lKSkgcmV0dXJuIG5ldyBGb3JiaWRkZW5FcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhDb25uZWN0aW9uRXJyb3IubmFtZSkpXG4gICAgICByZXR1cm4gbmV3IENvbm5lY3Rpb25FcnJvcihlcnIpIGFzIEU7XG4gICAgaWYgKG1zZy5pbmNsdWRlcyhTZXJpYWxpemF0aW9uRXJyb3IubmFtZSkpXG4gICAgICByZXR1cm4gbmV3IFNlcmlhbGl6YXRpb25FcnJvcihlcnIpIGFzIEU7XG4gICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKGVycikgYXMgRTtcbiAgfVxufVxuXG5GYWJyaWNDbGllbnRBZGFwdGVyLmRlY29yYXRpb24oKTtcbkFkYXB0ZXIuc2V0Q3VycmVudChGYWJyaWNGbGF2b3VyKTtcbiJdfQ==
|
|
1368
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50QWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkZhYnJpY0NsaWVudEFkYXB0ZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FB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QkFBbUIsRUFBRSxPQUFPLENBQUM7Q0FDM0MsRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9DLFVBQVUsQ0FBQztJQUNQLElBQUEsZUFBSyxHQUFFO0lBQ1AsVUFBVSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUM7SUFDbkMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBTyxDQUFDLENBQUM7SUFDbEUsVUFBVSxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQztDQUMzQyxFQUFFLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDaEQsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7QUFDakMsY0FBTyxDQUFDLFVBQVUsQ0FBQyw0QkFBYSxDQUFDLENBQUM7QUFDbEMsc2w2SUFBc2w2SSIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG52YXIgX2E7XG5pbXBvcnQgXCIuLy4uL3NoYXJlZC9vdmVycmlkZXMvaW5kZXguanNcIjtcbmltcG9ydCB7IENvdWNoREJLZXlzLCB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7IENsaWVudCB9IGZyb20gXCJAZ3JwYy9ncnBjLWpzXCI7XG5pbXBvcnQgKiBhcyBncnBjIGZyb20gXCJAZ3JwYy9ncnBjLWpzXCI7XG5pbXBvcnQgeyBNb2RlbCwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBkZWJ1ZywgZmluYWwsIExvZ2dpbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IGNvbm5lY3QsIEdhdGV3YXlFcnJvciwgRW5kb3JzZUVycm9yLCB9IGZyb20gXCJAaHlwZXJsZWRnZXIvZmFicmljLWdhdGV3YXlcIjtcbmltcG9ydCB7IEdhdGV3YXkgYXMgTGVnYWN5R2F0ZXdheSwgV2FsbGV0cyB9IGZyb20gXCJmYWJyaWMtbmV0d29ya1wiO1xuaW1wb3J0IHsgZ2V0SWRlbnRpdHksIGdldFNpZ25lciwgZ2V0Rmlyc3REaXJGaWxlTmFtZUNvbnRlbnQsIHJlYWRGaWxlIGFzIHJlYWRGc0ZpbGUsIH0gZnJvbSBcIi4vZmFicmljLWZzLmpzXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yLCBPcGVyYXRpb25LZXlzLCBTZXJpYWxpemF0aW9uRXJyb3IsIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cywgTm90Rm91bmRFcnJvciwgQ29uZmxpY3RFcnJvciwgQmFkUmVxdWVzdEVycm9yLCBWYWxpZGF0aW9uRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb250ZXh0LCBBZGFwdGVyLCBBdXRob3JpemF0aW9uRXJyb3IsIENvbm5lY3Rpb25FcnJvciwgRm9yYmlkZGVuRXJyb3IsIE1pZ3JhdGlvbkVycm9yLCBPYnNlcnZlckVycm9yLCBQYWdpbmdFcnJvciwgUGVyc2lzdGVuY2VLZXlzLCBRdWVyeUVycm9yLCBVbnN1cHBvcnRlZEVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgRmFicmljRmxhdm91ciB9IGZyb20gXCIuLy4uL3NoYXJlZC9jb25zdGFudHMuanNcIjtcbmltcG9ydCB7IENsaWVudFNlcmlhbGl6ZXIgfSBmcm9tIFwiLi8uLi9zaGFyZWQvQ2xpZW50U2VyaWFsaXplci5qc1wiO1xuaW1wb3J0IHsgRmFicmljQ2xpZW50U3RhdGVtZW50IH0gZnJvbSBcIi4vRmFicmljQ2xpZW50U3RhdGVtZW50LmpzXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRQYWdpbmF0b3IgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRQYWdpbmF0b3IuanNcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRSZXBvc2l0b3J5LmpzXCI7XG5pbXBvcnQgeyBFbmRvcnNlbWVudEVycm9yLCBFbmRvcnNlbWVudFBvbGljeUVycm9yLCBNdmNjUmVhZENvbmZsaWN0RXJyb3IsIFBoYW50b21SZWFkQ29uZmxpY3RFcnJvciwgVHJhbnNhY3Rpb25UaW1lb3V0RXJyb3IsIH0gZnJvbSBcIi4vLi4vc2hhcmVkL2Vycm9ycy5qc1wiO1xuaW1wb3J0IHsgRGVmYXVsdEZhYnJpY0NsaWVudEZsYWdzIH0gZnJvbSBcIi4vY29uc3RhbnRzLmpzXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgeyBDcnlwdG9VdGlscyB9IGZyb20gXCIuL2NyeXB0by5qc1wiO1xuaW1wb3J0IHsgZXh0cmFjdElkcyB9IGZyb20gXCIuL2lkcy9pZC1leHRyYWN0aW9uLmpzXCI7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBZGFwdGVyIGZvciBpbnRlcmFjdGluZyB3aXRoIEh5cGVybGVkZ2VyIEZhYnJpYyBuZXR3b3Jrc1xuICogQHN1bW1hcnkgVGhlIEZhYnJpY0FkYXB0ZXIgZXh0ZW5kcyBDb3VjaERCQWRhcHRlciB0byBwcm92aWRlIGEgc2VhbWxlc3MgaW50ZXJmYWNlIGZvciBpbnRlcmFjdGluZyB3aXRoIEh5cGVybGVkZ2VyIEZhYnJpYyBuZXR3b3Jrcy5cbiAqIEl0IGhhbmRsZXMgY29ubmVjdGlvbiBtYW5hZ2VtZW50LCB0cmFuc2FjdGlvbiBzdWJtaXNzaW9uLCBhbmQgQ1JVRCBvcGVyYXRpb25zIGFnYWluc3QgRmFicmljIGNoYWluY29kZS5cbiAqIEB0ZW1wbGF0ZSBQZWVyQ29uZmlnIC0gQ29uZmlndXJhdGlvbiB0eXBlIGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAqIEB0ZW1wbGF0ZSBGYWJyaWNGbGFncyAtIEZsYWdzIHNwZWNpZmljIHRvIEZhYnJpYyBvcGVyYXRpb25zXG4gKiBAdGVtcGxhdGUgQ29udGV4dDxGYWJyaWNGbGFncz4gLSBDb250ZXh0IHR5cGUgY29udGFpbmluZyBGYWJyaWMtc3BlY2lmaWMgZmxhZ3NcbiAqIEBwYXJhbSBjb25maWcgLSBDb25maWd1cmF0aW9uIGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAqIEBwYXJhbSBhbGlhcyAtIE9wdGlvbmFsIGFsaWFzIGZvciB0aGUgYWRhcHRlciBpbnN0YW5jZVxuICogQGNsYXNzIEZhYnJpY0NsaWVudEFkYXB0ZXJcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDcmVhdGUgYSBuZXcgRmFicmljQWRhcHRlciBpbnN0YW5jZVxuICogY29uc3QgY29uZmlnOiBQZWVyQ29uZmlnID0ge1xuICogICBtc3BJZDogJ09yZzFNU1AnLFxuICogICBwZWVyRW5kcG9pbnQ6ICdsb2NhbGhvc3Q6NzA1MScsXG4gKiAgIGNoYW5uZWxOYW1lOiAnbXljaGFubmVsJyxcbiAqICAgY2hhaW5jb2RlTmFtZTogJ215Y2MnLFxuICogICBjb250cmFjdE5hbWU6ICdteWNvbnRyYWN0JyxcbiAqICAgdGxzQ2VydFBhdGg6ICcvcGF0aC90by90bHMvY2VydCcsXG4gKiAgIGNlcnREaXJlY3RvcnlQYXRoOiAnL3BhdGgvdG8vY2VydC9kaXInLFxuICogICBrZXlEaXJlY3RvcnlQYXRoOiAnL3BhdGgvdG8va2V5L2RpcidcbiAqIH07XG4gKlxuICogY29uc3QgYWRhcHRlciA9IG5ldyBGYWJyaWNBZGFwdGVyKGNvbmZpZywgJ29yZzEtYWRhcHRlcicpO1xuICpcbiAqIC8vIFVzZSB0aGUgYWRhcHRlciB0byBpbnRlcmFjdCB3aXRoIHRoZSBGYWJyaWMgbmV0d29ya1xuICogY29uc3QgcmVzdWx0ID0gYXdhaXQgYWRhcHRlci5yZWFkKCd1c2VycycsICd1c2VyMScsIG15U2VyaWFsaXplcik7XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IEZhYnJpY0FkYXB0ZXJcbiAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICogICBwYXJ0aWNpcGFudCBOZXR3b3JrXG4gKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gKiAgIHBhcnRpY2lwYW50IENoYWluY29kZVxuICpcbiAqICAgQ2xpZW50LT4+RmFicmljQWRhcHRlcjogY3JlYXRlKHRhYmxlTmFtZSwgaWQsIG1vZGVsLCB0cmFuc2llbnQsIHNlcmlhbGl6ZXIpXG4gKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBzdWJtaXRUcmFuc2FjdGlvbihPcGVyYXRpb25LZXlzLkNSRUFURSwgW3NlcmlhbGl6ZWRNb2RlbF0sIHRyYW5zaWVudClcbiAqICAgRmFicmljQWRhcHRlci0+PkdhdGV3YXk6IGNvbm5lY3QoKVxuICogICBHYXRld2F5LT4+TmV0d29yazogZ2V0TmV0d29yayhjaGFubmVsTmFtZSlcbiAqICAgTmV0d29yay0+PkNvbnRyYWN0OiBnZXRDb250cmFjdChjaGFpbmNvZGVOYW1lLCBjb250cmFjdE5hbWUpXG4gKiAgIEZhYnJpY0FkYXB0ZXItPj5Db250cmFjdDogc3VibWl0KGFwaSwgcHJvcG9zYWxPcHRpb25zKVxuICogICBDb250cmFjdC0+PkNoYWluY29kZTogaW52b2tlXG4gKiAgIENoYWluY29kZS0tPj5Db250cmFjdDogcmVzcG9uc2VcbiAqICAgQ29udHJhY3QtLT4+RmFicmljQWRhcHRlcjogcmVzdWx0XG4gKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBkZWNvZGUocmVzdWx0KVxuICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogc2VyaWFsaXplci5kZXNlcmlhbGl6ZShkZWNvZGVkUmVzdWx0KVxuICogICBGYWJyaWNBZGFwdGVyLS0+PkNsaWVudDogZGVzZXJpYWxpemVkUmVzdWx0XG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDbGllbnRBZGFwdGVyIGV4dGVuZHMgQWRhcHRlciB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFN0YXRpYyB0ZXh0IGRlY29kZXIgZm9yIGNvbnZlcnRpbmcgVWludDhBcnJheSB0byBzdHJpbmdcbiAgICAgKi9cbiAgICBzdGF0aWMgeyB0aGlzLmRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoXCJ1dGY4XCIpOyB9XG4gICAgc3RhdGljIHsgdGhpcy5zZXJpYWxpemVyID0gbmV3IENsaWVudFNlcmlhbGl6ZXIoKTsgfVxuICAgIHN0YXRpYyB7IHRoaXMubG9nID0gTG9nZ2luZy5mb3IoRmFicmljQ2xpZW50QWRhcHRlcik7IH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBGYWJyaWNBZGFwdGVyIGluc3RhbmNlXG4gICAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBuZXcgYWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhIEh5cGVybGVkZ2VyIEZhYnJpYyBuZXR3b3JrXG4gICAgICogQHBhcmFtIHtQZWVyQ29uZmlnfSBjb25maWcgLSBDb25maWd1cmF0aW9uIGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2FsaWFzXSAtIE9wdGlvbmFsIGFsaWFzIGZvciB0aGUgYWRhcHRlciBpbnN0YW5jZVxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGNvbmZpZywgYWxpYXMpIHtcbiAgICAgICAgc3VwZXIoT2JqZWN0LmFzc2lnbih7fSwgRGVmYXVsdEZhYnJpY0NsaWVudEZsYWdzLCBjb25maWcpLCBGYWJyaWNGbGF2b3VyLCBhbGlhcyk7XG4gICAgICAgIHRoaXMuc2VyaWFsaXplciA9IEZhYnJpY0NsaWVudEFkYXB0ZXIuc2VyaWFsaXplcjtcbiAgICB9XG4gICAgU3RhdGVtZW50KG92ZXJyaWRlcykge1xuICAgICAgICByZXR1cm4gbmV3IEZhYnJpY0NsaWVudFN0YXRlbWVudCh0aGlzLCBvdmVycmlkZXMpO1xuICAgIH1cbiAgICBQYWdpbmF0b3IocXVlcnksIHNpemUsIGNsYXp6KSB7XG4gICAgICAgIHJldHVybiBuZXcgRmFicmljQ2xpZW50UGFnaW5hdG9yKHRoaXMsIHF1ZXJ5LCBzaXplLCBjbGF6eik7XG4gICAgfVxuICAgIGFzeW5jIGZsYWdzKG9wZXJhdGlvbiwgbW9kZWwsIGZsYWdzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IG1lcmdlZEZsYWdzID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb25maWcsIGZsYWdzKTtcbiAgICAgICAgY29uc3QgZiA9IE9iamVjdC5hc3NpZ24oYXdhaXQgc3VwZXIuZmxhZ3Mob3BlcmF0aW9uLCBtb2RlbCwgbWVyZ2VkRmxhZ3MsIC4uLmFyZ3MpKTtcbiAgICAgICAgcmV0dXJuIGY7XG4gICAgfVxuICAgIGFzeW5jIGNvbnRleHQob3BlcmF0aW9uLCBvdmVycmlkZXMsIG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmNvbnRleHQpO1xuICAgICAgICBsb2cuc2lsbHkoYGNyZWF0aW5nIG5ldyBjb250ZXh0IGZvciAke29wZXJhdGlvbn0gb3BlcmF0aW9uIG9uICR7bW9kZWwgPyAoQXJyYXkuaXNBcnJheShtb2RlbCkgPyBtb2RlbC5tYXAoKG0pID0+IE1vZGVsLnRhYmxlTmFtZShtKSkgOiBNb2RlbC50YWJsZU5hbWUobW9kZWwpKSA6IFwibm9cIn0gdGFibGUgJHtvdmVycmlkZXMgJiYgT2JqZWN0LmtleXMob3ZlcnJpZGVzKSA/IE9iamVjdC5rZXlzKG92ZXJyaWRlcykubGVuZ3RoIDogXCJub1wifSB3aXRoIGZsYWcgb3ZlcnJpZGVzYCk7XG4gICAgICAgIGxldCBjdHggPSBhcmdzLnBvcCgpO1xuICAgICAgICBpZiAodHlwZW9mIGN0eCAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhKGN0eCBpbnN0YW5jZW9mIENvbnRleHQpKSB7XG4gICAgICAgICAgICBhcmdzLnB1c2goY3R4KTtcbiAgICAgICAgICAgIGN0eCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBvdmVycmlkZXMgPSBjdHhcbiAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbih7fSwgY3R4LnRvT3ZlcnJpZGVzKCksIG92ZXJyaWRlcylcbiAgICAgICAgICAgIDogb3ZlcnJpZGVzO1xuICAgICAgICBjb25zdCBmbGFncyA9IGF3YWl0IHRoaXMuZmxhZ3ModHlwZW9mIG9wZXJhdGlvbiA9PT0gXCJzdHJpbmdcIiA/IG9wZXJhdGlvbiA6IG9wZXJhdGlvbi5uYW1lLCBtb2RlbCwgb3ZlcnJpZGVzLCAuLi5bLi4uYXJncywgY3R4XS5maWx0ZXIoQm9vbGVhbikpO1xuICAgICAgICBpZiAoY3R4KSB7XG4gICAgICAgICAgICBpZiAoIShjdHggaW5zdGFuY2VvZiB0aGlzLkNvbnRleHQpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q3R4ID0gbmV3IHRoaXMuQ29udGV4dCgpLmFjY3VtdWxhdGUoe1xuICAgICAgICAgICAgICAgICAgICAuLi5jdHhbXCJjYWNoZVwiXSxcbiAgICAgICAgICAgICAgICAgICAgLi4uZmxhZ3MsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudENvbnRleHQ6IGN0eCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjdHguYWNjdW11bGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkQ29udGV4dHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihjdHguZ2V0T3JVbmRlZmluZWQoXCJjaGlsZENvbnRleHRzXCIpIHx8IFtdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0N0eCxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3Q3R4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY3VycmVudE9wID0gY3R4LmdldE9yVW5kZWZpbmVkKFwib3BlcmF0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudE1vZGVsID0gY3R4LmdldE9yVW5kZWZpbmVkKFwiYWZmZWN0ZWRUYWJsZXNcIik7XG4gICAgICAgICAgICBpZiAoIWN1cnJlbnRPcCB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnRPcCAhPT0gb3BlcmF0aW9uIHx8XG4gICAgICAgICAgICAgICAgKG1vZGVsICYmIG1vZGVsICE9PSBjdXJyZW50TW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3Q3R4ID0gbmV3IHRoaXMuQ29udGV4dCgpLmFjY3VtdWxhdGUoe1xuICAgICAgICAgICAgICAgICAgICAuLi5jdHhbXCJjYWNoZVwiXSxcbiAgICAgICAgICAgICAgICAgICAgLi4uZmxhZ3MsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudENvbnRleHQ6IGN0eCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjdHguYWNjdW11bGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkQ29udGV4dHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihjdHguZ2V0T3JVbmRlZmluZWQoXCJjaGlsZENvbnRleHRzXCIpIHx8IFtdKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0N0eCxcbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3Q3R4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGN0eC5hY2N1bXVsYXRlKGZsYWdzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IHRoaXMuQ29udGV4dCgpLmFjY3VtdWxhdGUoe1xuICAgICAgICAgICAgLi4uZmxhZ3MsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVjb2RlcyBhIFVpbnQ4QXJyYXkgdG8gYSBzdHJpbmdcbiAgICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBiaW5hcnkgZGF0YSByZWNlaXZlZCBmcm9tIEZhYnJpYyB0byBhIHN0cmluZyB1c2luZyBVVEYtOCBlbmNvZGluZ1xuICAgICAqIEBwYXJhbSB7VWludDhBcnJheX0gZGF0YSAtIFRoZSBiaW5hcnkgZGF0YSB0byBkZWNvZGVcbiAgICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBkZWNvZGVkIHN0cmluZ1xuICAgICAqL1xuICAgIGRlY29kZShkYXRhKSB7XG4gICAgICAgIHJldHVybiBGYWJyaWNDbGllbnRBZGFwdGVyLmRlY29kZXIuZGVjb2RlKGRhdGEpO1xuICAgIH1cbiAgICByZXBvc2l0b3J5KCkge1xuICAgICAgICByZXR1cm4gRmFicmljQ2xpZW50UmVwb3NpdG9yeTtcbiAgICB9XG4gICAgY3JlYXRlUHJlZml4KGNsYXp6LCBpZCwgbW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmNyZWF0ZVByZWZpeCk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHt9O1xuICAgICAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgICAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWwpO1xuICAgICAgICByZXR1cm4gW2NsYXp6LCBpZCwgcmVjb3JkLCAuLi5jdHhBcmdzXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByZXBhcmVzIG11bHRpcGxlIHJlY29yZHMgZm9yIGNyZWF0aW9uXG4gICAgICogQHN1bW1hcnkgQWRkcyBuZWNlc3NhcnkgQ291Y2hEQiBmaWVsZHMgdG8gbXVsdGlwbGUgcmVjb3JkcyBiZWZvcmUgY3JlYXRpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXXxudW1iZXJbXX0gaWRzIC0gVGhlIElEcyBvZiB0aGUgcmVjb3Jkc1xuICAgICAqIEBwYXJhbSBtb2RlbHMgLSBUaGUgbW9kZWxzIHRvIHByZXBhcmVcbiAgICAgKiBAcmV0dXJuIEEgdHVwbGUgY29udGFpbmluZyB0aGUgdGFibGVOYW1lLCBpZHMsIGFuZCBwcmVwYXJlZCByZWNvcmRzXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gSWYgaWRzIGFuZCBtb2RlbHMgYXJyYXlzIGhhdmUgZGlmZmVyZW50IGxlbmd0aHNcbiAgICAgKi9cbiAgICBjcmVhdGVBbGxQcmVmaXgoY2xhenosIGlkcywgbW9kZWxzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGlmIChpZHMubGVuZ3RoICE9PSBtb2RlbHMubGVuZ3RoKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJJZHMgYW5kIG1vZGVscyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoXCIpO1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlQWxsUHJlZml4KTtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IGlkcy5tYXAoKGlkLCBjb3VudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkID0ge307XG4gICAgICAgICAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihyZWNvcmQsIG1vZGVsc1tjb3VudF0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBbY2xhenosIGlkcywgcmVjb3JkcywgLi4uY3R4QXJnc107XG4gICAgfVxuICAgIHVwZGF0ZUFsbFByZWZpeChjbGF6eiwgaWRzLCBtb2RlbHMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGVBbGxQcmVmaXgpO1xuICAgICAgICBjb25zdCByZWNvcmRzID0gaWRzLm1hcCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWNvcmQgPSB7fTtcbiAgICAgICAgICAgIHJlY29yZFtDb3VjaERCS2V5cy5UQUJMRV0gPSB0YWJsZU5hbWU7XG4gICAgICAgICAgICByZXR1cm4gcmVjb3JkO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFtjbGF6eiwgaWRzLCByZWNvcmRzLCAuLi5jdHhBcmdzXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBjcmVhdGUgbXVsdGlwbGUgcmVjb3JkcyBpbiB0aGUgRmFicmljIGxlZGdlclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0gaWRzIC0gQXJyYXkgb2YgcmVjb3JkIGlkZW50aWZpZXJzXG4gICAgICogQHBhcmFtIHtBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gbW9kZWxzIC0gQXJyYXkgb2YgcmVjb3JkIGRhdGFcbiAgICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNyZWF0ZWQgcmVjb3Jkc1xuICAgICAqL1xuICAgIGFzeW5jIGNyZWF0ZUFsbChjbGF6eiwgaWRzLCBtb2RlbHMsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgICAgIC8vSEVSRSFcbiAgICAgICAgY29uc3QgY3R4QXJncyA9IFsuLi5hcmdzXTtcbiAgICAgICAgY29uc3QgdHJhbnNpZW50ID0gY3R4QXJncy5zaGlmdCgpO1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChjdHhBcmdzLCB0aGlzLmNyZWF0ZUFsbCk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGxvZy5pbmZvKGBhZGRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgICAgICBsb2cudmVyYm9zZShgcGtzOiAke2lkc31gKTtcbiAgICAgICAgY29uc3QgaGFzVHJhbnNpZW50ID0gdHJhbnNpZW50ICYmIE9iamVjdC5rZXlzKHRyYW5zaWVudCkubGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgbmVlZHNGdWxsUGF5bG9hZCA9IGhhc1RyYW5zaWVudCB8fCB0aGlzLnNob3VsZEZvcmNlR2F0ZXdheUh5ZHJhdGlvbihjdHgpO1xuICAgICAgICBjb25zdCB0cmFuc2llbnRQYXlsb2FkID0gaGFzVHJhbnNpZW50ID8geyBbdGFibGVOYW1lXTogdHJhbnNpZW50IH0gOiB7fTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMLCBbXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShtb2RlbHMubWFwKChtKSA9PiB0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG0sIGNsYXp6Lm5hbWUpKSksXG4gICAgICAgIF0sIHRyYW5zaWVudFBheWxvYWQsIHRoaXMuZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpLCBjbGF6ei5uYW1lKTtcbiAgICAgICAgbGV0IHJlcztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlcyA9IEpTT04ucGFyc2UodGhpcy5kZWNvZGUocmVzdWx0KSkubWFwKChyKSA9PiBKU09OLnBhcnNlKHIpKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zaG91bGRSZWZyZXNoQWZ0ZXJXcml0ZShjbGF6eiwgY3R4LCBuZWVkc0Z1bGxQYXlsb2FkLCByZXNbMF1bTW9kZWwucGsoY2xhenopXSB8fCBpZHNbMF0pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkQWxsKGNsYXp6LCBleHRyYWN0SWRzKGNsYXp6LCBtb2RlbHMubWFwKChtLCBpKSA9PiBNb2RlbC5tZXJnZShPYmplY3QuYXNzaWduKHt9LCBtLCB0cmFuc2llbnRbaV0gfHwge30pLCByZXNbaV0pKSwgaWRzKSwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgbXVsdGlwbGUgcmVjb3JkcyBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvblxuICAgICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byByZWFkIG11bHRpcGxlIHJlY29yZHMgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nW10gfCBudW1iZXJbXX0gaWRzIC0gQXJyYXkgb2YgcmVjb3JkIGlkZW50aWZpZXJzIHRvIHJlYWRcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHJldHJpZXZlZCByZWNvcmRzXG4gICAgICovXG4gICAgYXN5bmMgcmVhZEFsbChjbGF6eiwgaWRzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVhZEFsbCk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGxvZy5pbmZvKGByZWFkaW5nICR7aWRzLmxlbmd0aH0gZW50cmllcyB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYHBrczogJHtpZHN9YCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXZhbHVhdGVUcmFuc2FjdGlvbihjdHgsIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5SRUFEX0FMTCwgW0pTT04uc3RyaW5naWZ5KGlkcyldLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY2xhenoubmFtZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXN1bHQpKS5tYXAoKHIpID0+IEpTT04ucGFyc2UocikpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIG11bHRpcGxlIHJlY29yZHMgaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb25cbiAgICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gdXBkYXRlIG11bHRpcGxlIHJlY29yZHMgaW4gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdIHwgbnVtYmVyW119IGlkcyAtIEFycmF5IG9mIHJlY29yZCBpZGVudGlmaWVyc1xuICAgICAqIEBwYXJhbSB7QXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj59IG1vZGVscyAtIEFycmF5IG9mIHVwZGF0ZWQgcmVjb3JkIGRhdGFcbiAgICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IHRyYW5zaWVudCAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHVwZGF0ZWQgcmVjb3Jkc1xuICAgICAqL1xuICAgIGFzeW5jIHVwZGF0ZUFsbChjbGF6eiwgaWRzLCBtb2RlbHMsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKGlkcy5sZW5ndGggIT09IG1vZGVscy5sZW5ndGgpXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIklkcyBhbmQgbW9kZWxzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIik7XG4gICAgICAgIGNvbnN0IGN0eEFyZ3MgPSBbLi4uYXJnc107XG4gICAgICAgIGNvbnN0IHRyYW5zaWVudCA9IGN0eEFyZ3Muc2hpZnQoKTtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoY3R4QXJncywgdGhpcy51cGRhdGVBbGwpO1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgICAgICBsb2cuaW5mbyhgdXBkYXRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgICAgICBsb2cudmVyYm9zZShgcGtzOiAke2lkc31gKTtcbiAgICAgICAgY29uc3QgaGFzVHJhbnNpZW50ID0gdHJhbnNpZW50ICYmIE9iamVjdC5rZXlzKHRyYW5zaWVudCkubGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgbmVlZHNGdWxsUGF5bG9hZCA9IGhhc1RyYW5zaWVudCB8fCB0aGlzLnNob3VsZEZvcmNlR2F0ZXdheUh5ZHJhdGlvbihjdHgpO1xuICAgICAgICBjb25zdCB0cmFuc2llbnRQYXlsb2FkID0gaGFzVHJhbnNpZW50ID8geyBbdGFibGVOYW1lXTogdHJhbnNpZW50IH0gOiB7fTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLCBbXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShtb2RlbHMubWFwKChtKSA9PiB0aGlzLnNlcmlhbGl6ZXIuc2VyaWFsaXplKG0sIGNsYXp6Lm5hbWUpKSksXG4gICAgICAgIF0sIHRyYW5zaWVudFBheWxvYWQsIHRoaXMuZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpLCBjbGF6ei5uYW1lKTtcbiAgICAgICAgbGV0IHJlcztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlcyA9IEpTT04ucGFyc2UodGhpcy5kZWNvZGUocmVzdWx0KSkubWFwKChyKSA9PiBKU09OLnBhcnNlKHIpKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zaG91bGRSZWZyZXNoQWZ0ZXJXcml0ZShjbGF6eiwgY3R4LCBuZWVkc0Z1bGxQYXlsb2FkLCBpZHNbMF0pKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkQWxsKGNsYXp6LCBleHRyYWN0SWRzKGNsYXp6LCBtb2RlbHMubWFwKChtLCBpKSA9PiBNb2RlbC5tZXJnZShPYmplY3QuYXNzaWduKHt9LCBtLCB0cmFuc2llbnRbaV0gfHwge30pLCByZXNbaV0pKSwgaWRzKSwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBtdWx0aXBsZSByZWNvcmRzIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uXG4gICAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIGRlbGV0ZSBtdWx0aXBsZSByZWNvcmRzIGZyb20gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD59IGlkcyAtIEFycmF5IG9mIHJlY29yZCBpZGVudGlmaWVycyB0byBkZWxldGVcbiAgICAgKiBAcGFyYW0ge1NlcmlhbGl6ZXI8YW55Pn0gc2VyaWFsaXplciAtIFNlcmlhbGl6ZXIgZm9yIHRoZSBtb2RlbCBkYXRhXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBkZWxldGVkIHJlY29yZHNcbiAgICAgKi9cbiAgICBhc3luYyBkZWxldGVBbGwoY2xhenosIGlkcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4LCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmRlbGV0ZUFsbCk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGNvbnN0IG5lZWRzRnVsbFBheWxvYWQgPSBNb2RlbC5pc1RyYW5zaWVudChjbGF6eikgfHwgdGhpcy5zaG91bGRGb3JjZUdhdGV3YXlIeWRyYXRpb24oY3R4KTtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgY29uc3Qgc2hvdWxkSHlkcmF0ZSA9IHRoaXMuc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoY2xhenosIGN0eCwgbmVlZHNGdWxsUGF5bG9hZCwgaWRzWzBdKTtcbiAgICAgICAgaWYgKHNob3VsZEh5ZHJhdGUpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMucmVhZEFsbChjbGF6eiwgaWRzLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBsb2cuaW5mbyhgZGVsZXRpbmcgJHtpZHMubGVuZ3RofSBlbnRyaWVzIHRvICR7dGFibGVOYW1lfSB0YWJsZWApO1xuICAgICAgICBsb2cudmVyYm9zZShgcGtzOiAke2lkc31gKTtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5ERUxFVEVfQUxMLCBbSlNPTi5zdHJpbmdpZnkoaWRzKV0sIHVuZGVmaW5lZCwgdGhpcy5nZXRFbmRvcnNpbmdPcmdhbml6YXRpb25zKGN0eCksIGNsYXp6Lm5hbWUpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIHNob3VsZEh5ZHJhdGVcbiAgICAgICAgICAgICAgICA/IHJlc3VsdFxuICAgICAgICAgICAgICAgIDogSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXMpKS5tYXAoKHIpID0+IEpTT04ucGFyc2UocikpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgU2VyaWFsaXphdGlvbkVycm9yKGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQcmVwYXJlcyBhIG1vZGVsIGZvciBwZXJzaXN0ZW5jZVxuICAgICAqIEBzdW1tYXJ5IENvbnZlcnRzIGEgbW9kZWwgaW5zdGFuY2UgaW50byBhIGZvcm1hdCBzdWl0YWJsZSBmb3IgZGF0YWJhc2Ugc3RvcmFnZSxcbiAgICAgKiBoYW5kbGluZyBjb2x1bW4gbWFwcGluZyBhbmQgc2VwYXJhdGluZyB0cmFuc2llbnQgcHJvcGVydGllc1xuICAgICAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGVcbiAgICAgKiBAcGFyYW0ge019IG1vZGVsIC0gVGhlIG1vZGVsIGluc3RhbmNlIHRvIHByZXBhcmVcbiAgICAgKiBAcGFyYW0gcGsgLSBUaGUgcHJpbWFyeSBrZXkgcHJvcGVydHkgbmFtZVxuICAgICAqIEByZXR1cm4gVGhlIHByZXBhcmVkIGRhdGFcbiAgICAgKi9cbiAgICBwcmVwYXJlKG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucHJlcGFyZSk7XG4gICAgICAgIGNvbnN0IHNwbGl0ID0gTW9kZWwuc2VncmVnYXRlKG1vZGVsKTtcbiAgICAgICAgaWYgKG1vZGVsW1BlcnNpc3RlbmNlS2V5cy5NRVRBREFUQV0pIHtcbiAgICAgICAgICAgIGxvZy5zaWxseShgUGFzc2luZyBhbG9uZyBwZXJzaXN0ZW5jZSBtZXRhZGF0YSBmb3IgJHttb2RlbFtQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEFdfWApO1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHNwbGl0Lm1vZGVsLCBQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEEsIHtcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBtb2RlbFtQZXJzaXN0ZW5jZUtleXMuTUVUQURBVEFdLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWlycm9yTWV0YSA9IE1vZGVsLm1pcnJvcmVkQXQobW9kZWwpO1xuICAgICAgICBpZiAobWlycm9yTWV0YSkge1xuICAgICAgICAgICAgY29uc3QgbWlycm9yTXNwID0gbWlycm9yTWV0YS5tc3BJZDtcbiAgICAgICAgICAgIGlmICghbWlycm9yTXNwKVxuICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBtaXJyb3IgTVNQIGNvdWxkIGJlIGZvdW5kYCk7XG4gICAgICAgICAgICBsZXQgbXNwcyA9IHRoaXMuZ2V0RW5kb3JzaW5nT3JnYW5pemF0aW9ucyhjdHgpIHx8IFtdO1xuICAgICAgICAgICAgbXNwcyA9IEFycmF5LmlzQXJyYXkobXNwcykgPyBtc3BzIDogW21zcHNdO1xuICAgICAgICAgICAgY29uc3QgbWVyZ2VkID0gWy4uLm5ldyBTZXQoWy4uLm1zcHMsIG1pcnJvck1zcF0pXTtcbiAgICAgICAgICAgIGN0eC5hY2N1bXVsYXRlKHtcbiAgICAgICAgICAgICAgICBlbmRvcnNpbmdPcmdzOiBtZXJnZWQsXG4gICAgICAgICAgICAgICAgZW5kb3JzaW5nT3JnYW5pemF0aW9uczogbWVyZ2VkLFxuICAgICAgICAgICAgICAgIGxlZ2FjeTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByZWNvcmQ6IHNwbGl0Lm1vZGVsLFxuICAgICAgICAgICAgbW9kZWw6IHNwbGl0Lm1vZGVsLFxuICAgICAgICAgICAgaWQ6IG1vZGVsW01vZGVsLnBrKG1vZGVsLmNvbnN0cnVjdG9yKV0sXG4gICAgICAgICAgICB0cmFuc2llbnQ6IHNwbGl0LnRyYW5zaWVudCxcbiAgICAgICAgICAgIHByaXZhdGVzOiBzcGxpdC5wcml2YXRlcyxcbiAgICAgICAgICAgIHNoYXJlZDogc3BsaXQuc2hhcmVkLFxuICAgICAgICB9O1xuICAgIH1cbiAgICByZXZlcnQob2JqLCBjbGF6eiwgaWQsIHRyYW5zaWVudCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJldmVydCk7XG4gICAgICAgIGlmICh0cmFuc2llbnQgJiZcbiAgICAgICAgICAgIHRoaXMuc2hvdWxkUmVidWlsZFdpdGhUcmFuc2llbnQoY3R4LCBjdHguZ2V0T3JVbmRlZmluZWQoXCJvcGVyYXRpb25cIikpKSB7XG4gICAgICAgICAgICBsb2cudmVyYm9zZShgcmUtYWRkaW5nIHRyYW5zaWVudCBwcm9wZXJ0aWVzOiAke09iamVjdC5rZXlzKHRyYW5zaWVudCkuam9pbihcIiwgXCIpfWApO1xuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXModHJhbnNpZW50KVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKFssIHZdKSA9PiB0eXBlb2YgdiAhPT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChrZXkgaW4gb2JqICYmIG9ialtrZXldICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgIGxvZy53YXJuKGBvdmVyd3JpdGluZyBleGlzdGluZyAke2tleX0uIGlmIHRoaXMgaXMgbm90IGEgZGVmYXVsdCB2YWx1ZSwgdGhpcyBtYXkgcG9zZSBhIHByb2JsZW1gKTtcbiAgICAgICAgICAgICAgICBvYmpba2V5XSA9IHZhbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBjbGF6eihvYmopO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBzaG91bGRSZWJ1aWxkV2l0aFRyYW5zaWVudChjdHgsIG9wZXJhdGlvbikge1xuICAgICAgICBpZiAoIWN0eClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKGN0eC5nZXRPclVuZGVmaW5lZChcInJlYnVpbGRXaXRoVHJhbnNpZW50XCIpKVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGNvbnN0IGNoaWxkUmVidWlsZCA9IHR5cGVvZiBjdHguZ2V0RnJvbUNoaWxkcmVuID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgID8gY3R4LmdldEZyb21DaGlsZHJlbihcInJlYnVpbGRXaXRoVHJhbnNpZW50XCIpXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGNoaWxkUmVidWlsZClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCByZXNvbHZlZE9wID0gdGhpcy5yZXNvbHZlT3BlcmF0aW9uKGN0eCwgb3BlcmF0aW9uKTtcbiAgICAgICAgaWYgKCFyZXNvbHZlZE9wKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBvcCA9IHJlc29sdmVkT3AudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gKG9wLmluY2x1ZGVzKFwicmVhZFwiKSB8fFxuICAgICAgICAgICAgb3AuaW5jbHVkZXMoXCJmaW5kXCIpIHx8XG4gICAgICAgICAgICBvcC5pbmNsdWRlcyhcInF1ZXJ5XCIpIHx8XG4gICAgICAgICAgICBvcC5pbmNsdWRlcyhcInN0YXRlbWVudFwiKSB8fFxuICAgICAgICAgICAgb3AuaW5jbHVkZXMoXCJwYWdlXCIpKTtcbiAgICB9XG4gICAgcmVzb2x2ZU9wZXJhdGlvbihjdHgsIG9wZXJhdGlvbikge1xuICAgICAgICBpZiAob3BlcmF0aW9uKVxuICAgICAgICAgICAgcmV0dXJuIG9wZXJhdGlvbjtcbiAgICAgICAgaWYgKHR5cGVvZiBjdHguZ2V0RnJvbUNoaWxkcmVuID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBjdHguZ2V0RnJvbUNoaWxkcmVuKFwib3BlcmF0aW9uXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHNob3VsZFJlZnJlc2hBZnRlcldyaXRlKGNsYXp6LCBjdHgsIGhhc1RyYW5zaWVudCwgaWQpIHtcbiAgICAgICAgaWYgKCFoYXNUcmFuc2llbnQpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IHBrID0gTW9kZWwucGsoY2xhenopO1xuICAgICAgICBjb25zdCBjb21wb3NlZCA9IE1vZGVsLmNvbXBvc2VkKGNsYXp6LCBwayk7XG4gICAgICAgIGNvbnN0IGdlbmVyYXRlZCA9IE1vZGVsLmdlbmVyYXRlZChjbGF6eiwgcGspO1xuICAgICAgICBjb25zdCBoYXNJZCA9IGlkICE9PSB1bmRlZmluZWQgJiYgaWQgIT09IG51bGw7XG4gICAgICAgIGlmICghaGFzSWQgJiYgY29tcG9zZWQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKCFoYXNJZCAmJiBnZW5lcmF0ZWQpIHtcbiAgICAgICAgICAgIGN0eC5sb2dnZXIud2FybihgQ2Fubm90IHJlZnJlc2ggcmVjb3JkIHdpdGggcHJpdmF0ZSBnZW5lcmF0ZWQgcHJpbWFyeSBrZXlgKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaGFzSWQ7XG4gICAgfVxuICAgIGdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoY3R4KSB7XG4gICAgICAgIGNvbnN0IGRpcmVjdCA9IGN0eC5nZXRPclVuZGVmaW5lZChcImVuZG9yc2luZ09yZ3NcIikgfHxcbiAgICAgICAgICAgIGN0eC5nZXRPclVuZGVmaW5lZChcImVuZG9yc2luZ09yZ3NcIik7XG4gICAgICAgIGlmIChkaXJlY3QgJiYgZGlyZWN0Lmxlbmd0aClcbiAgICAgICAgICAgIHJldHVybiBkaXJlY3Q7XG4gICAgICAgIHJldHVybiAoY3R4LmdldEZyb21DaGlsZHJlbihcImVuZG9yc2luZ09yZ3NcIikgfHxcbiAgICAgICAgICAgIGN0eC5nZXRGcm9tQ2hpbGRyZW4oXCJlbmRvcnNpbmdPcmdzXCIpKTtcbiAgICB9XG4gICAgc2hvdWxkRm9yY2VHYXRld2F5SHlkcmF0aW9uKFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBjdHgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5jb25maWcuYWxsb3dHYXRld2F5T3ZlcnJpZGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgc2luZ2xlIHJlY29yZFxuICAgICAqIEBzdW1tYXJ5IFN1Ym1pdHMgYSB0cmFuc2FjdGlvbiB0byBjcmVhdGUgYSByZWNvcmQgaW4gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgcmVjb3JkIGlkZW50aWZpZXJcbiAgICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IG1vZGVsIC0gVGhlIHJlY29yZCBkYXRhXG4gICAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSB0cmFuc2llbnQgLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGNyZWF0ZWQgcmVjb3JkXG4gICAgICovXG4gICAgYXN5bmMgY3JlYXRlKGNsYXp6LCBpZCwgbW9kZWwsIHRyYW5zaWVudCA9IHt9LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGN0eEFyZ3MgPSBbLi4uYXJnc107XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGN0eEFyZ3MsIHRoaXMuY3JlYXRlKTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYGFkZGluZyBlbnRyeSB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICAgICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICAgICAgY29uc3QgaGFzVHJhbnNpZW50ID0gdHJhbnNpZW50ICYmIE9iamVjdC5rZXlzKHRyYW5zaWVudCkubGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgbmVlZHNGdWxsUGF5bG9hZCA9IGhhc1RyYW5zaWVudCB8fCB0aGlzLnNob3VsZEZvcmNlR2F0ZXdheUh5ZHJhdGlvbihjdHgpO1xuICAgICAgICBjb25zdCB0cmFuc2llbnRQYXlsb2FkID0gaGFzVHJhbnNpZW50ID8geyBbdGFibGVOYW1lXTogdHJhbnNpZW50IH0gOiB7fTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIE9wZXJhdGlvbktleXMuQ1JFQVRFLCBbdGhpcy5zZXJpYWxpemVyLnNlcmlhbGl6ZShtb2RlbCwgY2xhenoubmFtZSldLCB0cmFuc2llbnRQYXlsb2FkLCB0aGlzLmdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoY3R4KSwgY2xhenoubmFtZSk7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplZCA9IHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZSh0aGlzLmRlY29kZShyZXN1bHQpKTtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoY2xhenosIGN0eCwgbmVlZHNGdWxsUGF5bG9hZCwgaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkKGNsYXp6LCBleHRyYWN0SWRzKGNsYXp6LCBNb2RlbC5tZXJnZShPYmplY3QuYXNzaWduKHt9LCBtb2RlbCwgdHJhbnNpZW50IHx8IHt9KSwgZGVzZXJpYWxpemVkLCBjbGF6eiksIGlkKSwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVkO1xuICAgIH1cbiAgICBhc3luYyBoZWFsdGhjaGVjayhjbGF6eiwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmhlYWx0aGNoZWNrKTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYHJlYWRpbmcgZW50cnkgZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKGN0eCwgXCJoZWFsdGhjaGVja1wiLCBbXSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNsYXp6Lm5hbWUpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRlY29kZShyZXN1bHQpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlYWRzIGEgc2luZ2xlIHJlY29yZFxuICAgICAqIEBzdW1tYXJ5IEV2YWx1YXRlcyBhIHRyYW5zYWN0aW9uIHRvIHJlYWQgYSByZWNvcmQgZnJvbSB0aGUgRmFicmljIGxlZGdlclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllclxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSByZXRyaWV2ZWQgcmVjb3JkXG4gICAgICovXG4gICAgYXN5bmMgcmVhZChjbGF6eiwgaWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yZWFkKTtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYHJlYWRpbmcgZW50cnkgZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICAgICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKGN0eCwgT3BlcmF0aW9uS2V5cy5SRUFELCBbaWQudG9TdHJpbmcoKV0sIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjbGF6ei5uYW1lKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZSh0aGlzLmRlY29kZShyZXN1bHQpKTtcbiAgICB9XG4gICAgdXBkYXRlUHJlZml4KGNsYXp6LCBpZCwgbW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZVByZWZpeCk7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHt9O1xuICAgICAgICByZWNvcmRbQ291Y2hEQktleXMuVEFCTEVdID0gdGFibGVOYW1lO1xuICAgICAgICAvLyByZWNvcmRbQ291Y2hEQktleXMuSURdID0gdGhpcy5nZW5lcmF0ZUlkKHRhYmxlTmFtZSwgaWQpO1xuICAgICAgICBPYmplY3QuYXNzaWduKHJlY29yZCwgbW9kZWwpO1xuICAgICAgICByZXR1cm4gW2NsYXp6LCBpZCwgcmVjb3JkLCAuLi5jdHhBcmdzXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgYSBzaW5nbGUgcmVjb3JkXG4gICAgICogQHN1bW1hcnkgU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIHVwZGF0ZSBhIHJlY29yZCBpbiB0aGUgRmFicmljIGxlZGdlclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGUvY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBpZCAtIFRoZSByZWNvcmQgaWRlbnRpZmllclxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgdXBkYXRlZCByZWNvcmQgZGF0YVxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gdHJhbnNpZW50IC0gVHJhbnNpZW50IGRhdGEgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB1cGRhdGVkIHJlY29yZFxuICAgICAqL1xuICAgIGFzeW5jIHVwZGF0ZShjbGF6eiwgaWQsIG1vZGVsLCB0cmFuc2llbnQgPSB7fSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCBjdHhBcmdzID0gWy4uLmFyZ3NdO1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChjdHhBcmdzLCB0aGlzLnVwZGF0ZSk7XG4gICAgICAgIGxvZy5pbmZvKGBDTElFTlQgVVBEQVRFIGNsYXNzIDogJHt0eXBlb2YgY2xhenp9YCk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGxvZy52ZXJib3NlKGB1cGRhdGluZyBlbnRyeSB0byAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICAgICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICAgICAgY29uc3QgaGFzVHJhbnNpZW50ID0gdHJhbnNpZW50ICYmIE9iamVjdC5rZXlzKHRyYW5zaWVudCkubGVuZ3RoID4gMDtcbiAgICAgICAgY29uc3QgbmVlZHNGdWxsUGF5bG9hZCA9IGhhc1RyYW5zaWVudCB8fCB0aGlzLnNob3VsZEZvcmNlR2F0ZXdheUh5ZHJhdGlvbihjdHgpO1xuICAgICAgICBjb25zdCB0cmFuc2llbnRQYXlsb2FkID0gaGFzVHJhbnNpZW50ID8geyBbdGFibGVOYW1lXTogdHJhbnNpZW50IH0gOiB7fTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIE9wZXJhdGlvbktleXMuVVBEQVRFLCBbdGhpcy5zZXJpYWxpemVyLnNlcmlhbGl6ZShtb2RlbCwgY2xhenoubmFtZSB8fCBjbGF6eildLCAvLyBUT0RPIHNob3VsZCBiZSByZWNldmluZyBjbGFzcyBidXQgaXMgcmVjZWl2aW5nIHN0cmluZ1xuICAgICAgICB0cmFuc2llbnRQYXlsb2FkLCB0aGlzLmdldEVuZG9yc2luZ09yZ2FuaXphdGlvbnMoY3R4KSwgY2xhenoubmFtZSk7XG4gICAgICAgIGNvbnN0IGRlc2VyaWFsaXplZCA9IHRoaXMuc2VyaWFsaXplci5kZXNlcmlhbGl6ZSh0aGlzLmRlY29kZShyZXN1bHQpKTtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoY2xhenosIGN0eCwgbmVlZHNGdWxsUGF5bG9hZCwgaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkKGNsYXp6LCBleHRyYWN0SWRzKGNsYXp6LCBNb2RlbC5tZXJnZShPYmplY3QuYXNzaWduKHt9LCBtb2RlbCwgdHJhbnNpZW50IHx8IHt9KSwgZGVzZXJpYWxpemVkLCBjbGF6eiksIGlkKSwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVzZXJpYWxpemVkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhIHNpbmdsZSByZWNvcmRcbiAgICAgKiBAc3VtbWFyeSBTdWJtaXRzIGEgdHJhbnNhY3Rpb24gdG8gZGVsZXRlIGEgcmVjb3JkIGZyb20gdGhlIEZhYnJpYyBsZWRnZXJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlL2NvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgcmVjb3JkIGlkZW50aWZpZXIgdG8gZGVsZXRlXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGRlbGV0ZWQgcmVjb3JkXG4gICAgICovXG4gICAgYXN5bmMgZGVsZXRlKGNsYXp6LCBpZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmRlbGV0ZSk7XG4gICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgICAgIGNvbnN0IG5lZWRzRnVsbFBheWxvYWQgPSBNb2RlbC5pc1RyYW5zaWVudChjbGF6eikgfHwgdGhpcy5zaG91bGRGb3JjZUdhdGV3YXlIeWRyYXRpb24oY3R4KTtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgY29uc3Qgc2hvdWxkSHlkcmF0ZSA9IHRoaXMuc2hvdWxkUmVmcmVzaEFmdGVyV3JpdGUoY2xhenosIGN0eCwgbmVlZHNGdWxsUGF5bG9hZCwgaWQpO1xuICAgICAgICBpZiAoc2hvdWxkSHlkcmF0ZSkge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgdGhpcy5yZWFkKGNsYXp6LCBpZCwgY3R4KTtcbiAgICAgICAgfVxuICAgICAgICBsb2cudmVyYm9zZShgZGVsZXRpbmcgZW50cnkgZnJvbSAke3RhYmxlTmFtZX0gdGFibGVgKTtcbiAgICAgICAgbG9nLmRlYnVnKGBwazogJHtpZH1gKTtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihjdHgsIE9wZXJhdGlvbktleXMuREVMRVRFLCBbaWQudG9TdHJpbmcoKV0sIHVuZGVmaW5lZCwgdGhpcy5nZXRFbmRvcnNpbmdPcmdhbml6YXRpb25zKGN0eCksIGNsYXp6Lm5hbWUpO1xuICAgICAgICByZXR1cm4gc2hvdWxkSHlkcmF0ZVxuICAgICAgICAgICAgPyByZXN1bHRcbiAgICAgICAgICAgIDogdGhpcy5zZXJpYWxpemVyLmRlc2VyaWFsaXplKHRoaXMuZGVjb2RlKHJlcykpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSByYXcgcXVlcnkgYWdhaW5zdCB0aGUgRmFicmljIGxlZGdlclxuICAgICAqIEBzdW1tYXJ5IEV2YWx1YXRlcyBhIHRyYW5zYWN0aW9uIHRvIHBlcmZvcm0gYSBxdWVyeSB1c2luZyBNYW5nbyBRdWVyeSBzeW50YXhcbiAgICAgKiBAdGVtcGxhdGUgViAtIFRoZSByZXR1cm4gdHlwZVxuICAgICAqIEBwYXJhbSB7TWFuZ29RdWVyeX0gcmF3SW5wdXQgLSBUaGUgTWFuZ28gUXVlcnkgdG8gZXhlY3V0ZVxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gcHJvY2VzcyAtIFdoZXRoZXIgdG8gcHJvY2VzcyB0aGUgcmVzdWx0XG4gICAgICogQHJldHVybiB7UHJvbWlzZTxWPn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHF1ZXJ5IHJlc3VsdFxuICAgICAqIEBtZXJtYWlkXG4gICAgICogc2VxdWVuY2VEaWFncmFtXG4gICAgICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAgICAgKiAgIHBhcnRpY2lwYW50IEZhYnJpY0FkYXB0ZXJcbiAgICAgKiAgIHBhcnRpY2lwYW50IENvbnRyYWN0XG4gICAgICogICBwYXJ0aWNpcGFudCBDaGFpbmNvZGVcbiAgICAgKlxuICAgICAqICAgQ2xpZW50LT4+RmFicmljQWRhcHRlcjogcmF3KHJhd0lucHV0LCBwcm9jZXNzKVxuICAgICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IEpTT04uc3RyaW5naWZ5KHJhd0lucHV0KVxuICAgICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IGV2YWx1YXRlVHJhbnNhY3Rpb24oXCJxdWVyeVwiLCBbaW5wdXRdKVxuICAgICAqICAgRmFicmljQWRhcHRlci0+PkNvbnRyYWN0OiBldmFsdWF0ZShcInF1ZXJ5XCIsIHByb3Bvc2FsT3B0aW9ucylcbiAgICAgKiAgIENvbnRyYWN0LT4+Q2hhaW5jb2RlOiBpbnZva2VcbiAgICAgKiAgIENoYWluY29kZS0tPj5Db250cmFjdDogcmVzcG9uc2VcbiAgICAgKiAgIENvbnRyYWN0LS0+PkZhYnJpY0FkYXB0ZXI6IHJlc3VsdFxuICAgICAqICAgRmFicmljQWRhcHRlci0+PkZhYnJpY0FkYXB0ZXI6IEpTT04ucGFyc2UoZGVjb2RlKHJlc3VsdCkpXG4gICAgICogICBGYWJyaWNBZGFwdGVyLT4+RmFicmljQWRhcHRlcjogUHJvY2VzcyByZXN1bHQgYmFzZWQgb24gdHlwZVxuICAgICAqICAgRmFicmljQWRhcHRlci0tPj5DbGllbnQ6IHByb2Nlc3NlZCByZXN1bHRcbiAgICAgKi9cbiAgICBhc3luYyByYXcocmF3SW5wdXQsIGRvY3NPbmx5ID0gdHJ1ZSwgY2xhenosIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eCB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5yYXcpO1xuICAgICAgICBjb25zdCB0YWJsZU5hbWUgPSBjbGF6ei5uYW1lO1xuICAgICAgICBsb2cuaW5mbyhgUGVyZm9ybWluZyByYXcgc3RhdGVtZW50IG9uIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKGNsYXp6KX1gKTtcbiAgICAgICAgbGV0IHRyYW5zYWN0aW9uUmVzdWx0O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdHJhbnNhY3Rpb25SZXN1bHQgPSBhd2FpdCB0aGlzLmV2YWx1YXRlVHJhbnNhY3Rpb24oY3R4LCBcInJhd1wiLCBbSlNPTi5zdHJpbmdpZnkocmF3SW5wdXQpLCBkb2NzT25seV0sIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB0YWJsZU5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UodGhpcy5kZWNvZGUodHJhbnNhY3Rpb25SZXN1bHQpKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFNlcmlhbGl6YXRpb25FcnJvcihgRmFpbGVkIHRvIHByb2Nlc3MgcmVzdWx0OiAke2V9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFyc2VSZWNvcmQgPSAocmVjb3JkKSA9PiB7XG4gICAgICAgICAgICBpZiAoTW9kZWwuaXNNb2RlbChyZWNvcmQpKVxuICAgICAgICAgICAgICAgIHJldHVybiBNb2RlbC5idWlsZChyZWNvcmQpO1xuICAgICAgICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0KSkge1xuICAgICAgICAgICAgaWYgKCFyZXN1bHQubGVuZ3RoKVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICBjb25zdCBlbCA9IHJlc3VsdFswXTtcbiAgICAgICAgICAgIGlmIChNb2RlbC5pc01vZGVsKGVsKSlcbiAgICAgICAgICAgICAgICAvLyBpZiB0aGUgZmlyc3Qgb25lIGlzIGEgbW9kZWwsIGFsbCBhcmUgbW9kZWxzXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5tYXAoKGVsKSA9PiBNb2RlbC5idWlsZChlbCkpO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyc2VSZWNvcmQocmVzdWx0KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEV4ZWN1dGVzIGEgQ291Y2hEQiB2aWV3IHF1ZXJ5IGFnYWluc3QgdGhlIEZhYnJpYyBjaGFpbmNvZGVcbiAgICAgKiBAc3VtbWFyeSBFdmFsdWF0ZXMgYSB0cmFuc2FjdGlvbiB0byBxdWVyeSBhIGRlc2lnbiBkb2N1bWVudCB2aWV3XG4gICAgICogQHRlbXBsYXRlIFIgLSBUaGUgdmlldyByZXNwb25zZSB0eXBlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRkb2MgLSBEZXNpZ24gZG9jdW1lbnQgbmFtZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2aWV3TmFtZSAtIFZpZXcgbmFtZVxuICAgICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gb3B0aW9ucyAtIFZpZXcgcXVlcnkgb3B0aW9uc1xuICAgICAqIEBwYXJhbSB7Li4uQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+fSBhcmdzIC0gT3B0aW9uYWwgY29udGV4dHVhbCBhcmd1bWVudHNcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPFZpZXdSZXNwb25zZTxSPj59IFRoZSB2aWV3IHJlc3BvbnNlXG4gICAgICovXG4gICAgYXN5bmMgdmlldyhkZG9jLCB2aWV3TmFtZSwgb3B0aW9ucywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnZpZXcpO1xuICAgICAgICBsb2cuaW5mbyhgUXVlcnlpbmcgdmlldyAke2Rkb2N9LyR7dmlld05hbWV9YCk7XG4gICAgICAgIGxldCB0cmFuc2FjdGlvblJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRyYW5zYWN0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5ldmFsdWF0ZVRyYW5zYWN0aW9uKGN0eCwgXCJ2aWV3XCIsIFtkZG9jLCB2aWV3TmFtZSwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucyldLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXN1bHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXN1bHQgPSBKU09OLnBhcnNlKHRoaXMuZGVjb2RlKHRyYW5zYWN0aW9uUmVzdWx0KSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoYEZhaWxlZCB0byBwcm9jZXNzIHZpZXcgcmVzdWx0OiAke2V9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldHMgb3IgY3JlYXRlcyBhIGdSUEMgY2xpZW50IGZvciB0aGUgRmFicmljIHBlZXJcbiAgICAgKiBAc3VtbWFyeSBSZXR1cm5zIGEgY2FjaGVkIGNsaWVudCBvciBjcmVhdGVzIGEgbmV3IG9uZSBpZiBub25lIGV4aXN0c1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8Q2xpZW50Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIGdSUEMgY2xpZW50XG4gICAgICovXG4gICAgZ2V0Q2xpZW50KCkge1xuICAgICAgICBpZiAoIXRoaXMuX2NsaWVudClcbiAgICAgICAgICAgIHRoaXMuX2NsaWVudCA9IEZhYnJpY0NsaWVudEFkYXB0ZXIuZ2V0Q2xpZW50KHRoaXMuY29uZmlnKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsaWVudDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldHMgYSBHYXRld2F5IGluc3RhbmNlIGZvciB0aGUgRmFicmljIG5ldHdvcmtcbiAgICAgKiBAc3VtbWFyeSBDcmVhdGVzIGEgbmV3IEdhdGV3YXkgaW5zdGFuY2UgdXNpbmcgdGhlIGN1cnJlbnQgY2xpZW50XG4gICAgICogQHJldHVybiB7UHJvbWlzZTxHYXRld2F5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIEdhdGV3YXkgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBhc3luYyBHYXRld2F5KGN0eCkge1xuICAgICAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5nZXRHYXRld2F5KGN0eCwgdGhpcy5jb25maWcsIHRoaXMuY2xpZW50KTtcbiAgICB9XG4gICAgZ2V0Q29udHJhY3ROYW1lKGNsYXNzTmFtZSkge1xuICAgICAgICBpZiAoIWNsYXNzTmFtZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBgJHtjbGFzc05hbWV9Q29udHJhY3RgO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0cyBhIENvbnRyYWN0IGluc3RhbmNlIGZvciB0aGUgRmFicmljIGNoYWluY29kZVxuICAgICAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBuZXcgQ29udHJhY3QgaW5zdGFuY2UgdXNpbmcgdGhlIGN1cnJlbnQgR2F0ZXdheVxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8Q29udHJha3Q+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgQ29udHJhY3QgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBhc3luYyBDb250cmFjdChjdHgsIGNvbnRyYWN0TmFtZSkge1xuICAgICAgICByZXR1cm4gRmFicmljQ2xpZW50QWRhcHRlci5nZXRDb250cmFjdChhd2FpdCB0aGlzLkdhdGV3YXkoY3R4KSwgdGhpcy5jb25maWcsIGNvbnRyYWN0TmFtZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlcyBhIHRyYW5zYWN0aW9uIG9uIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgICAqIEBzdW1tYXJ5IFN1Ym1pdHMgb3IgZXZhbHVhdGVzIGEgdHJhbnNhY3Rpb24gb24gdGhlIEZhYnJpYyBjaGFpbmNvZGVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpIC0gVGhlIGNoYWluY29kZSBmdW5jdGlvbiB0byBjYWxsXG4gICAgICogQHBhcmFtIHtib29sZWFufSBzdWJtaXQgLSBXaGV0aGVyIHRvIHN1Ym1pdCAodHJ1ZSkgb3IgZXZhbHVhdGUgKGZhbHNlKSB0aGUgdHJhbnNhY3Rpb25cbiAgICAgKiBAcGFyYW0ge2FueVtdfSBbYXJnc10gLSBBcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgY2hhaW5jb2RlIGZ1bmN0aW9uXG4gICAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBbdHJhbnNpZW50RGF0YV0gLSBUcmFuc2llbnQgZGF0YSBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBbZW5kb3JzaW5nT3JnYW5pemF0aW9uc10gLSBPcmdhbml6YXRpb25zIHRoYXQgbXVzdCBlbmRvcnNlIHRoZSB0cmFuc2FjdGlvblxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8VWludDhBcnJheT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSB0cmFuc2FjdGlvbiByZXN1bHRcbiAgICAgKiBAbWVybWFpZFxuICAgICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgICAqICAgcGFydGljaXBhbnQgRmFicmljQWRhcHRlclxuICAgICAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICAgICAqICAgcGFydGljaXBhbnQgQ29udHJhY3RcbiAgICAgKiAgIHBhcnRpY2lwYW50IENoYWluY29kZVxuICAgICAqXG4gICAgICogICBGYWJyaWNBZGFwdGVyLT4+R2F0ZXdheTogY29ubmVjdCgpXG4gICAgICogICBGYWJyaWNBZGFwdGVyLT4+Q29udHJhY3Q6IGdldENvbnRyYWN0KClcbiAgICAgKiAgIGFsdCBzdWJtaXQgdHJhbnNhY3Rpb25cbiAgICAgKiAgICAgRmFicmljQWRhcHRlci0+PkNvbnRyYWN0OiBzdWJtaXQoYXBpLCBwcm9wb3NhbE9wdGlvbnMpXG4gICAgICogICBlbHNlIGV2YWx1YXRlIHRyYW5zYWN0aW9uXG4gICAgICogICAgIEZhYnJpY0FkYXB0ZXItPj5Db250cmFjdDogZXZhbHVhdGUoYXBpLCBwcm9wb3NhbE9wdGlvbnMpXG4gICAgICogICBlbmRcbiAgICAgKiAgIENvbnRyYWN0LT4+Q2hhaW5jb2RlOiBpbnZva2VcbiAgICAgKiAgIENoYWluY29kZS0tPj5Db250cmFjdDogcmVzcG9uc2VcbiAgICAgKiAgIENvbnRyYWN0LS0+PkZhYnJpY0FkYXB0ZXI6IHJlc3VsdFxuICAgICAqICAgRmFicmljQWRhcHRlci0+PkdhdGV3YXk6IGNsb3NlKClcbiAgICAgKi9cbiAgICBhc3luYyB0cmFuc2FjdGlvbihjdHgsIGFwaSwgc3VibWl0ID0gdHJ1ZSwgYXJncywgdHJhbnNpZW50RGF0YSA9IHt9LCBlbmRvcnNpbmdPcmdhbml6YXRpb25zLCBjbGFzc05hbWUpIHtcbiAgICAgICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMudHJhbnNhY3Rpb24pO1xuICAgICAgICBjb25zdCBnYXRld2F5ID0gYXdhaXQgdGhpcy5HYXRld2F5KGN0eCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBjb250cmFjdCA9IGF3YWl0IHRoaXMuQ29udHJhY3QoY3R4LCB0aGlzLmdldENvbnRyYWN0TmFtZShjbGFzc05hbWUpKTtcbiAgICAgICAgICAgIGxvZy52ZXJib3NlKGAke3N1Ym1pdCA/IFwiU3VibWl0XCIgOiBcIkV2YWx1YXRlXCJ9dGluZyB0cmFuc2FjdGlvbiAke3RoaXMuZ2V0Q29udHJhY3ROYW1lKGNsYXNzTmFtZSkgfHwgdGhpcy5jb25maWcuY29udHJhY3ROYW1lfS4ke2FwaX1gKTtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgYXJnczogJHthcmdzPy5tYXAoKGEpID0+IGEudG9TdHJpbmcoKSkuam9pbihcIlxcblwiKSB8fCBcIm5vbmVcIn1gKTtcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IHN1Ym1pdCA/IGNvbnRyYWN0LnN1Ym1pdCA6IGNvbnRyYWN0LmV2YWx1YXRlO1xuICAgICAgICAgICAgZW5kb3JzaW5nT3JnYW5pemF0aW9ucyA9IGVuZG9yc2luZ09yZ2FuaXphdGlvbnM/Lmxlbmd0aFxuICAgICAgICAgICAgICAgID8gZW5kb3JzaW5nT3JnYW5pemF0aW9uc1xuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgcHJvcG9zYWxPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIGFyZ3VtZW50czogYXJncyB8fCBbXSxcbiAgICAgICAgICAgICAgICB0cmFuc2llbnREYXRhOiBPYmplY3QuZW50cmllcyh0cmFuc2llbnREYXRhKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhY2Nba2V5XSA9IEpTT04uc3RyaW5naWZ5KHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgfSwge30pLFxuICAgICAgICAgICAgICAgIGVuZG9yc2luZ09yZ2FuaXphdGlvbnM6IGN0eC5nZXRPclVuZGVmaW5lZChcImFsbG93TWFudWFsRW5kb3JzaW5nT3Jnc1wiKVxuICAgICAgICAgICAgICAgICAgICA/IGVuZG9yc2luZ09yZ2FuaXphdGlvbnMgfHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLCAvLyBtc3BJZCBsaXN0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IG1ldGhvZC5jYWxsKGNvbnRyYWN0LCBhcGksIHByb3Bvc2FsT3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMubG9nLmRlYnVnKGBDbG9zaW5nICR7dGhpcy5jb25maWcubXNwSWR9IGdhdGV3YXkgY29ubmVjdGlvbmApO1xuICAgICAgICAgICAgZ2F0ZXdheS5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNob3VsZFVzZUxlZ2FjeUdhdGV3YXkoY3R4KSB7XG4gICAgICAgIHJldHVybiAhIWN0eC5nZXRPclVuZGVmaW5lZChcImxlZ2FjeVwiKSAmJiAhIXRoaXMuY29uZmlnLmFsbG93R2F0ZXdheU92ZXJyaWRlO1xuICAgIH1cbiAgICBwcmVwYXJlTGVnYWN5QXJncyhhcmdzKSB7XG4gICAgICAgIHJldHVybiAoYXJncyB8fCBbXSkubWFwKChhcmcpID0+IHR5cGVvZiBhcmcgPT09IFwic3RyaW5nXCIgPyBhcmcgOiBKU09OLnN0cmluZ2lmeShhcmcpKTtcbiAgICB9XG4gICAgYnVpbGRMZWdhY3lUcmFuc2llbnQodHJhbnNpZW50RGF0YSkge1xuICAgICAgICBpZiAoIXRyYW5zaWVudERhdGEpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModHJhbnNpZW50RGF0YSk7XG4gICAgICAgIGlmICghZW50cmllcy5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBtYXAgPSB7fTtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgZW50cmllcykge1xuICAgICAgICAgICAgbWFwW2tleV0gPSBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtYXA7XG4gICAgfVxuICAgIHJlc29sdmVMZWdhY3lNc3BDb3VudCgpIHtcbiAgICAgICAgY29uc3QgY29uZmlndXJlZCA9IHRoaXMuY29uZmlnLmxlZ2FjeU1zcENvdW50ID8/IDE7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IE51bWJlcihjb25maWd1cmVkKTtcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSB8fCBwYXJzZWQgPCAxKVxuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHBhcnNlZCk7XG4gICAgfVxuICAgIHBpY2tMZWdhY3lDYW5kaWRhdGVzKGNhbmRpZGF0ZXMsIGxpbWl0KSB7XG4gICAgICAgIGlmICghY2FuZGlkYXRlcy5sZW5ndGggfHwgbGltaXQgPD0gMClcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgY29uc3QgYXZhaWxhYmxlID0gWy4uLmNhbmRpZGF0ZXNdO1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBNYXRoLm1pbihsaW1pdCwgYXZhaWxhYmxlLmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IHBpY2tlZCA9IFtdO1xuICAgICAgICB3aGlsZSAocGlja2VkLmxlbmd0aCA8IHRhcmdldCAmJiBhdmFpbGFibGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBhdmFpbGFibGUubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IFtzZWxlY3Rpb25dID0gYXZhaWxhYmxlLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIHBpY2tlZC5wdXNoKHNlbGVjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBpY2tlZDtcbiAgICB9XG4gICAgYnVpbGRMZWdhY3lQZWVyQ29uZmlncyhjdHgpIHtcbiAgICAgICAgY29uc3QgcGVlcnMgPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbXNwSWQ6IHRoaXMuY29uZmlnLm1zcElkLFxuICAgICAgICAgICAgICAgIHBlZXJFbmRwb2ludDogdGhpcy5jb25maWcucGVlckVuZHBvaW50LFxuICAgICAgICAgICAgICAgIHBlZXJIb3N0QWxpYXM6IHRoaXMuY29uZmlnLnBlZXJIb3N0QWxpYXMsXG4gICAgICAgICAgICAgICAgdGxzQ2VydDogdGhpcy5jb25maWcudGxzQ2VydCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICAgIGxldCBlbmRvcnNpbmdPcmdzID0gdGhpcy5nZXRFbmRvcnNpbmdPcmdhbml6YXRpb25zKGN0eCkgfHwgW107XG4gICAgICAgIGVuZG9yc2luZ09yZ3MgPSBBcnJheS5pc0FycmF5KGVuZG9yc2luZ09yZ3MpXG4gICAgICAgICAgICA/IGVuZG9yc2luZ09yZ3NcbiAgICAgICAgICAgIDogW2VuZG9yc2luZ09yZ3NdO1xuICAgICAgICBjb25zdCBlbmRvcnNlcnMgPSBlbmRvcnNpbmdPcmdzLmZpbHRlcigob3JnKSA9PiBCb29sZWFuKG9yZykpIHx8IFtdO1xuICAgICAgICBjb25zdCBleHRyYXMgPSBlbmRvcnNlcnMuZmlsdGVyKChvcmcpID0+IG9yZyAhPT0gdGhpcy5jb25maWcubXNwSWQpO1xuICAgICAgICBpZiAoIWV4dHJhcy5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gcGVlcnM7XG4gICAgICAgIGNvbnN0IG1hcCA9IHRoaXMuY29uZmlnLm1zcE1hcDtcbiAgICAgICAgY29uc3QgbGVnYWN5Q291bnQgPSB0aGlzLnJlc29sdmVMZWdhY3lNc3BDb3VudCgpO1xuICAgICAgICBmb3IgKGNvbnN0IG1zcCBvZiBleHRyYXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSBtYXA/Llttc3BdO1xuICAgICAgICAgICAgaWYgKCFjYW5kaWRhdGVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihgTm8gcGVlciBtYXBwaW5nIGF2YWlsYWJsZSBmb3IgTVNQICR7bXNwfS4gUHJvdmlkZSBpdCB2aWEgY29uZmlnLm1zcE1hcGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9ucyA9IHRoaXMucGlja0xlZ2FjeUNhbmRpZGF0ZXMoY2FuZGlkYXRlcywgbGVnYWN5Q291bnQpO1xuICAgICAgICAgICAgaWYgKCFzZWxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKGBObyB2YWxpZCBwZWVyIG1hcHBpbmcgYXZhaWxhYmxlIGZvciBNU1AgJHttc3B9LiBQcm92aWRlIGl0IHZpYSBjb25maWcubXNwTWFwYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNob2ljZSBvZiBzZWxlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFjaG9pY2UuZW5kcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoYEludmFsaWQgcGVlciBtYXBwaW5nIGZvciBNU1AgJHttc3B9OiBtaXNzaW5nIGVuZHBvaW50YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBlZXJzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBtc3BJZDogbXNwLFxuICAgICAgICAgICAgICAgICAgICBwZWVyRW5kcG9pbnQ6IGNob2ljZS5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgcGVlckhvc3RBbGlhczogY2hvaWNlLmFsaWFzLFxuICAgICAgICAgICAgICAgICAgICB0bHNDZXJ0OiBjaG9pY2UudGxzQ2VydCB8fCB0aGlzLmNvbmZpZy50bHNDZXJ0LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwZWVycztcbiAgICB9XG4gICAgYXN5bmMgc3VibWl0TGVnYWN5V2l0aEV4cGxpY2l0RW5kb3JzZXJzKGN0eCwgZmNuLCBhcmdzLCB0cmFuc2llbnRNYXAsIHBlZXJDb25maWdzLCBjbGFzc05hbWUpIHtcbiAgICAgICAgY29uc3QgbG9nID0gdGhpcy5sb2cuZm9yKHRoaXMuc3VibWl0TGVnYWN5V2l0aEV4cGxpY2l0RW5kb3JzZXJzKTtcbiAgICAgICAgY29uc3QgcGVlcnMgPSB0aGlzLm5vcm1hbGl6ZUxlZ2FjeVBlZXJzKHBlZXJDb25maWdzKTtcbiAgICAgICAgY29uc3QgaWRlbnRpdHlNYXRlcmlhbCA9IGF3YWl0IHRoaXMucmVzb2x2ZUxlZ2FjeUlkZW50aXR5TWF0ZXJpYWwoKTtcbiAgICAgICAgY29uc3Qgd2FsbGV0ID0gYXdhaXQgV2FsbGV0cy5uZXdJbk1lbW9yeVdhbGxldCgpO1xuICAgICAgICBjb25zdCBpZGVudGl0eUxhYmVsID0gYCR7dGhpcy5jb25maWcubXNwSWR9LWxlZ2FjeWA7XG4gICAgICAgIGF3YWl0IHdhbGxldC5wdXQoaWRlbnRpdHlMYWJlbCwge1xuICAgICAgICAgICAgY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZTogaWRlbnRpdHlNYXRlcmlhbC5jZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlS2V5OiBpZGVudGl0eU1hdGVyaWFsLnByaXZhdGVLZXksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbXNwSWQ6IHRoaXMuY29uZmlnLm1zcElkLFxuICAgICAgICAgICAgdHlwZTogXCJYLjUwOVwiLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvblByb2ZpbGUgPSBhd2FpdCB0aGlzLmJ1aWxkTGVnYWN5Q29ubmVjdGlvblByb2ZpbGUocGVlcnMpO1xuICAgICAgICBjb25zdCBnYXRld2F5ID0gbmV3IExlZ2FjeUdhdGV3YXkoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IGdhdGV3YXkuY29ubmVjdChjb25uZWN0aW9uUHJvZmlsZSwge1xuICAgICAgICAgICAgICAgIGlkZW50aXR5OiBpZGVudGl0eUxhYmVsLFxuICAgICAgICAgICAgICAgIHdhbGxldCxcbiAgICAgICAgICAgICAgICBkaXNjb3Zlcnk6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgYXNMb2NhbGhvc3Q6IHRoaXMuc2hvdWxkVHJlYXRQZWVyc0FzTG9jYWxob3N0KHBlZXJzKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRsc0luZm86IHtcbiAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGU6IGlkZW50aXR5TWF0ZXJpYWwuY2VydGlmaWNhdGUsXG4gICAgICAgICAgICAgICAgICAgIGtleTogaWRlbnRpdHlNYXRlcmlhbC5wcml2YXRlS2V5LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IG5ldHdvcmsgPSBhd2FpdCBnYXRld2F5LmdldE5ldHdvcmsodGhpcy5jb25maWcuY2hhbm5lbCk7XG4gICAgICAgICAgICBjb25zdCBjb250cmFjdCA9IG5ldHdvcmsuZ2V0Q29udHJhY3QodGhpcy5jb25maWcuY2hhaW5jb2RlTmFtZSwgdGhpcy5nZXRDb250cmFjdE5hbWUoY2xhc3NOYW1lKSk7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IGNvbnRyYWN0LmNyZWF0ZVRyYW5zYWN0aW9uKGZjbik7XG4gICAgICAgICAgICBpZiAodHJhbnNpZW50TWFwKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24uc2V0VHJhbnNpZW50KHRyYW5zaWVudE1hcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlbmRvcnNlcnMgPSBwZWVyc1xuICAgICAgICAgICAgICAgIC5tYXAoKHBlZXIpID0+IG5ldHdvcmsuZ2V0Q2hhbm5lbCgpLmdldEVuZG9yc2VyKHBlZXIubmFtZSkpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoZW5kb3JzZXIpID0+IEJvb2xlYW4oZW5kb3JzZXIpKTtcbiAgICAgICAgICAgIGlmIChlbmRvcnNlcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24uc2V0RW5kb3JzaW5nUGVlcnMoZW5kb3JzZXJzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvZy52ZXJib3NlKGBMZWdhY3kgc3VibWl0dGluZyAke3RoaXMuZ2V0Q29udHJhY3ROYW1lKGNsYXNzTmFtZSkgfHwgdGhpcy5jb25maWcuY29udHJhY3ROYW1lfS4ke2Zjbn0gdmlhIHBlZXJzICR7cGVlcnMubWFwKChwKSA9PiBwLnBlZXJFbmRwb2ludCkuam9pbihcIiwgXCIpfWApO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdHJhbnNhY3Rpb24uc3VibWl0KC4uLmFyZ3MpO1xuICAgICAgICAgICAgcmV0dXJuIFVpbnQ4QXJyYXkuZnJvbShyZXN1bHQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyB0aGlzLnBhcnNlRXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICBnYXRld2F5LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBub3JtYWxpemVMZWdhY3lQZWVycyhwZWVycykge1xuICAgICAgICBjb25zdCBkZWR1cGVkID0gbmV3IE1hcCgpO1xuICAgICAgICBjb25zdCBhZGRQZWVyID0gKHBlZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGAke3BlZXIucGVlckVuZHBvaW50fXwke3BlZXIucGVlckhvc3RBbGlhcyB8fCBcIlwifWA7XG4gICAgICAgICAgICBpZiAoZGVkdXBlZC5oYXMoa2V5KSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBuYW1lID0gYHBlZXItJHtwZWVyLm1zcElkfS0ke2RlZHVwZWQuc2l6ZX1gO1xuICAgICAgICAgICAgZGVkdXBlZC5zZXQoa2V5LCB7XG4gICAgICAgICAgICAgICAgLi4ucGVlcixcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIHBlZXJzLmZvckVhY2goYWRkUGVlcik7XG4gICAgICAgIGFkZFBlZXIoe1xuICAgICAgICAgICAgbXNwSWQ6IHRoaXMuY29uZmlnLm1zcElkLFxuICAgICAgICAgICAgcGVlckVuZHBvaW50OiB0aGlzLmNvbmZpZy5wZWVyRW5kcG9pbnQsXG4gICAgICAgICAgICBwZWVySG9zdEFsaWFzOiB0aGlzLmNvbmZpZy5wZWVySG9zdEFsaWFzLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oZGVkdXBlZC52YWx1ZXMoKSk7XG4gICAgfVxuICAgIGFzeW5jIHJlc29sdmVMZWdhY3lJZGVudGl0eU1hdGVyaWFsKCkge1xuICAgICAgICBjb25zdCBjZXJ0aWZpY2F0ZSA9IGF3YWl0IHRoaXMucmVhZFBlbUlucHV0KHRoaXMuY29uZmlnLmNlcnRDZXJ0T3JEaXJlY3RvcnlQYXRoKTtcbiAgICAgICAgY29uc3QgcHJpdmF0ZUtleSA9IGF3YWl0IHRoaXMucmVhZFBlbUlucHV0KHRoaXMuY29uZmlnLmtleUNlcnRPckRpcmVjdG9yeVBhdGgpO1xuICAgICAgICByZXR1cm4geyBjZXJ0aWZpY2F0ZSwgcHJpdmF0ZUtleSB9O1xuICAgIH1cbiAgICBhc3luYyBidWlsZExlZ2FjeUNvbm5lY3Rpb25Qcm9maWxlKHBlZXJzKSB7XG4gICAgICAgIGNvbnN0IHBlZXJFbnRyaWVzID0ge307XG4gICAgICAgIGNvbnN0IGNoYW5uZWxQZWVycyA9IHt9O1xuICAgICAgICBjb25zdCBvcmdzID0ge307XG4gICAgICAgIGZvciAoY29uc3QgcGVlciBvZiBwZWVycykge1xuICAgICAgICAgICAgY29uc3QgdGxzUGVtID0gYXdhaXQgdGhpcy5yZWFkUGVtSW5wdXQocGVlci50bHNDZXJ0IHx8IHRoaXMuY29uZmlnLnRsc0NlcnQpO1xuICAgICAgICAgICAgY29uc3QgaG9zdG5hbWUgPSBwZWVyLnBlZXJIb3N0QWxpYXMgfHwgdGhpcy5leHRyYWN0SG9zdChwZWVyLnBlZXJFbmRwb2ludCk7XG4gICAgICAgICAgICBwZWVyRW50cmllc1twZWVyLm5hbWVdID0ge1xuICAgICAgICAgICAgICAgIHVybDogdGhpcy5lbnN1cmVHcnBjVXJsKHBlZXIucGVlckVuZHBvaW50KSxcbiAgICAgICAgICAgICAgICB0bHNDQUNlcnRzOiB7IHBlbTogdGxzUGVtIH0sXG4gICAgICAgICAgICAgICAgZ3JwY09wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJzc2wtdGFyZ2V0LW5hbWUtb3ZlcnJpZGVcIjogaG9zdG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGhvc3RuYW1lT3ZlcnJpZGU6IGhvc3RuYW1lLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2hhbm5lbFBlZXJzW3BlZXIubmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgZW5kb3JzaW5nUGVlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjaGFpbmNvZGVRdWVyeTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBsZWRnZXJRdWVyeTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBldmVudFNvdXJjZTogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBvcmdzW3BlZXIubXNwSWRdID0gb3Jnc1twZWVyLm1zcElkXSB8fCB7XG4gICAgICAgICAgICAgICAgbXNwaWQ6IHBlZXIubXNwSWQsXG4gICAgICAgICAgICAgICAgcGVlcnM6IFtdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG9yZ3NbcGVlci5tc3BJZF0ucGVlcnMucHVzaChwZWVyLm5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiBcImxlZ2FjeS1tYW51YWxcIixcbiAgICAgICAgICAgIHZlcnNpb246IFwiMS4wLjBcIixcbiAgICAgICAgICAgIGNsaWVudDoge1xuICAgICAgICAgICAgICAgIG9yZ2FuaXphdGlvbjogdGhpcy5jb25maWcubXNwSWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3JnYW5pemF0aW9uczogb3JncyxcbiAgICAgICAgICAgIHBlZXJzOiBwZWVyRW50cmllcyxcbiAgICAgICAgICAgIG9yZGVyZXJzOiB7fSxcbiAgICAgICAgICAgIGNoYW5uZWxzOiB7XG4gICAgICAgICAgICAgICAgW3RoaXMuY29uZmlnLmNoYW5uZWxdOiB7XG4gICAgICAgICAgICAgICAgICAgIHBlZXJzOiBjaGFubmVsUGVlcnMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIHNob3VsZFRyZWF0UGVlcnNBc0xvY2FsaG9zdChwZWVycykge1xuICAgICAgICByZXR1cm4gcGVlcnMuZXZlcnkoKHBlZXIpID0+IHRoaXMuaXNMb2NhbEVuZHBvaW50KHBlZXIucGVlckVuZHBvaW50KSk7XG4gICAgfVxuICAgIGlzTG9jYWxFbmRwb2ludChlbmRwb2ludCkge1xuICAgICAgICBjb25zdCBob3N0ID0gdGhpcy5leHRyYWN0SG9zdChlbmRwb2ludCkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIGhvc3QgPT09IFwibG9jYWxob3N0XCIgfHwgaG9zdCA9PT0gXCIxMjcuMC4wLjFcIjtcbiAgICB9XG4gICAgZXh0cmFjdEhvc3QoZW5kcG9pbnQpIHtcbiAgICAgICAgY29uc3Qgc2FuaXRpemVkID0gZW5kcG9pbnQucmVwbGFjZSgvXmdycGNzPzpcXC9cXC8vLCBcIlwiKTtcbiAgICAgICAgcmV0dXJuIHNhbml0aXplZC5zcGxpdChcIjpcIilbMF07XG4gICAgfVxuICAgIGVuc3VyZUdycGNVcmwoZW5kcG9pbnQpIHtcbiAgICAgICAgaWYgKC9eZ3JwY3M/OlxcL1xcLy9pLnRlc3QoZW5kcG9pbnQpKVxuICAgICAgICAgICAgcmV0dXJuIGVuZHBvaW50O1xuICAgICAgICByZXR1cm4gYGdycGNzOi8vJHtlbmRwb2ludH1gO1xuICAgIH1cbiAgICBhc3luYyByZWFkUGVtSW5wdXQoc291cmNlKSB7XG4gICAgICAgIGlmICghc291cmNlKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJNaXNzaW5nIGNlcnRpZmljYXRlIG9yIGtleSBtYXRlcmlhbFwiKTtcbiAgICAgICAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihzb3VyY2UpKVxuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS50b1N0cmluZyhcInV0ZjhcIik7XG4gICAgICAgIGNvbnN0IHRyaW1tZWQgPSBzb3VyY2UudHJpbSgpO1xuICAgICAgICBpZiAoLy0tLS0tQkVHSU4gW0EtWiBdKy0tLS0tLy50ZXN0KHRyaW1tZWQpKVxuICAgICAgICAgICAgcmV0dXJuIHRyaW1tZWQ7XG4gICAgICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgZnMucHJvbWlzZXMuc3RhdChzb3VyY2UpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XG4gICAgICAgIGlmIChzdGF0cz8uaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGdldEZpcnN0RGlyRmlsZU5hbWVDb250ZW50KHNvdXJjZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChhd2FpdCByZWFkRnNGaWxlKHNvdXJjZSkpLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJzZXMgYW4gZXJyb3IgaW50byBhIEJhc2VFcnJvclxuICAgICAqIEBzdW1tYXJ5IENvbnZlcnRzIGFueSBlcnJvciBpbnRvIGEgc3RhbmRhcmRpemVkIEJhc2VFcnJvclxuICAgICAqIEBwYXJhbSB7RXJyb3IgfCBzdHJpbmd9IGVyciAtIFRoZSBlcnJvciB0byBwYXJzZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbcmVhc29uXSAtIE9wdGlvbmFsIHJlYXNvbiBmb3IgdGhlIGVycm9yXG4gICAgICogQHJldHVybiB7QmFzZUVycm9yfSBUaGUgcGFyc2VkIGVycm9yXG4gICAgICovXG4gICAgcGFyc2VFcnJvcihlcnIpIHtcbiAgICAgICAgcmV0dXJuIEZhYnJpY0NsaWVudEFkYXB0ZXIucGFyc2VFcnJvcihlcnIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3VibWl0cyBhIHRyYW5zYWN0aW9uIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgICAqIEBzdW1tYXJ5IEV4ZWN1dGVzIGEgdHJhbnNhY3Rpb24gdGhhdCBtb2RpZmllcyB0aGUgbGVkZ2VyIHN0YXRlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGFwaSAtIFRoZSBjaGFpbmNvZGUgZnVuY3Rpb24gdG8gY2FsbFxuICAgICAqIEBwYXJhbSB7YW55W119IFthcmdzXSAtIEFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBjaGFpbmNvZGUgZnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFt0cmFuc2llbnREYXRhXSAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IFtlbmRvcnNpbmdPcmdhbml6YXRpb25zXSAtIE9yZ2FuaXphdGlvbnMgdGhhdCBtdXN0IGVuZG9yc2UgdGhlIHRyYW5zYWN0aW9uXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxVaW50OEFycmF5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHRyYW5zYWN0aW9uIHJlc3VsdFxuICAgICAqL1xuICAgIGFzeW5jIHN1Ym1pdFRyYW5zYWN0aW9uKGN0eCwgYXBpLCBhcmdzLCB0cmFuc2llbnREYXRhLCBlbmRvcnNpbmdPcmdhbml6YXRpb25zLCBjbGFzc05hbWUpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkVXNlTGVnYWN5R2F0ZXdheShjdHgpKSB7XG4gICAgICAgICAgICBjb25zdCBsZWdhY3lBcmdzID0gdGhpcy5wcmVwYXJlTGVnYWN5QXJncyhhcmdzKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zaWVudE1hcCA9IHRoaXMuYnVpbGRMZWdhY3lUcmFuc2llbnQodHJhbnNpZW50RGF0YSk7XG4gICAgICAgICAgICBjb25zdCBwZWVyQ29uZmlncyA9IHRoaXMuYnVpbGRMZWdhY3lQZWVyQ29uZmlncyhjdHgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3VibWl0TGVnYWN5V2l0aEV4cGxpY2l0RW5kb3JzZXJzKGN0eCwgYXBpLCBsZWdhY3lBcmdzLCB0cmFuc2llbnRNYXAsIHBlZXJDb25maWdzLCBjbGFzc05hbWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uKGN0eCwgYXBpLCB0cnVlLCBhcmdzLCB0cmFuc2llbnREYXRhLCBlbmRvcnNpbmdPcmdhbml6YXRpb25zLCBjbGFzc05hbWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRXZhbHVhdGVzIGEgdHJhbnNhY3Rpb24gb24gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAgICogQHN1bW1hcnkgRXhlY3V0ZXMgYSB0cmFuc2FjdGlvbiB0aGF0IGRvZXMgbm90IG1vZGlmeSB0aGUgbGVkZ2VyIHN0YXRlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGFwaSAtIFRoZSBjaGFpbmNvZGUgZnVuY3Rpb24gdG8gY2FsbFxuICAgICAqIEBwYXJhbSB7YW55W119IFthcmdzXSAtIEFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBjaGFpbmNvZGUgZnVuY3Rpb25cbiAgICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFt0cmFuc2llbnREYXRhXSAtIFRyYW5zaWVudCBkYXRhIGZvciB0aGUgdHJhbnNhY3Rpb25cbiAgICAgKiBAcGFyYW0ge0FycmF5PHN0cmluZz59IFtlbmRvcnNpbmdPcmdhbml6YXRpb25zXSAtIE9yZ2FuaXphdGlvbnMgdGhhdCBtdXN0IGVuZG9yc2UgdGhlIHRyYW5zYWN0aW9uXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxVaW50OEFycmF5Pn0gUHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIHRyYW5zYWN0aW9uIHJlc3VsdFxuICAgICAqL1xuICAgIGFzeW5jIGV2YWx1YXRlVHJhbnNhY3Rpb24oY3R4LCBhcGksIGFyZ3MsIHRyYW5zaWVudERhdGEsIGVuZG9yc2luZ09yZ2FuaXphdGlvbnMsIGNsYXNzTmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbihjdHgsIGFwaSwgZmFsc2UsIGFyZ3MsIHRyYW5zaWVudERhdGEsIGVuZG9yc2luZ09yZ2FuaXphdGlvbnMsIGNsYXNzTmFtZSk7XG4gICAgfVxuICAgIGFzeW5jIG1pZ3JhdGUocmVmZXJlbmNlLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KFthcmdzXSwgUGVyc2lzdGVuY2VLZXlzLk1JR1JBVElPTiwgdHJ1ZSkpLmZvcih0aGlzLm1pZ3JhdGUpO1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJtaXRUcmFuc2FjdGlvbihjdHhBcmdzWzBdLCBcIm1pZ3JhdGVcIiwgW3JlZmVyZW5jZSwgYXJnc10sIHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNodXRzIGRvd24gdGhlIGNvbm5lY3Rpb24gdG8gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAgICogQHN1bW1hcnkgQ2xvc2VzIHRoZSBhY3RpdmUgZGlzcGF0Y2ggKHdoaWNoIGluIHR1cm4gY2xvc2VzIGFueSBnYXRld2F5XG4gICAgICogZXZlbnQgc3Vic2NyaXB0aW9uKSB2aWEgdGhlIGJhc2UgY2xhc3MsIHRoZW4gY2xvc2VzIHRoZSBnUlBDIGNsaWVudC5cbiAgICAgKiBXb3JrcyBjb3JyZWN0bHkgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGBzeW50aGV0aWNFdmVudHNgIGlzIGVuYWJsZWQuXG4gICAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gYWxsIGNvbm5lY3Rpb25zIGFyZSBjbG9zZWRcbiAgICAgKi9cbiAgICBhc3luYyBzaHV0ZG93biguLi5hcmdzKSB7XG4gICAgICAgIC8vIEJhc2UgY2xhc3MgaGFuZGxlcyBkaXNwYXRjaC5jbG9zZSgpIGludGVybmFsbHkuXG4gICAgICAgIGF3YWl0IHN1cGVyLnNodXRkb3duKC4uLmFyZ3MpO1xuICAgICAgICBpZiAodGhpcy5jbGllbnQpIHtcbiAgICAgICAgICAgIHRoaXMubG9nLnZlcmJvc2UoYENsb3NpbmcgJHt0aGlzLmNvbmZpZy5tc3BJZH0gZ2F0ZXdheSBjbGllbnRgKTtcbiAgICAgICAgICAgIHRoaXMuY2xpZW50LmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldHMgYSBDb250cmFjdCBpbnN0YW5jZSBmcm9tIGEgR2F0ZXdheVxuICAgICAqIEBzdW1tYXJ5IFJldHJpZXZlcyBhIGNoYWluY29kZSBjb250cmFjdCBmcm9tIHRoZSBzcGVjaWZpZWQgbmV0d29ya1xuICAgICAqIEBwYXJhbSB7R2F0ZXdheX0gZ2F0ZXdheSAtIFRoZSBHYXRld2F5IGluc3RhbmNlXG4gICAgICogQHBhcmFtIHtQZWVyQ29uZmlnfSBjb25maWcgLSBUaGUgcGVlciBjb25maWd1cmF0aW9uXG4gICAgICogQHJldHVybiB7Q29udHJha3R9IFRoZSBDb250cmFjdCBpbnN0YW5jZVxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRDb250cmFjdChnYXRld2F5LCBjb25maWcsIGNvbnRyYWN0TmFtZSkge1xuICAgICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5nZXRDb250cmFjdCk7XG4gICAgICAgIGNvbnN0IG5ldHdvcmsgPSB0aGlzLmdldE5ldHdvcmsoZ2F0ZXdheSwgY29uZmlnLmNoYW5uZWwpO1xuICAgICAgICBsZXQgY29udHJhY3Q7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYFJldHJpZXZpbmcgY2hhaW5jb2RlICR7Y29uZmlnLmNoYWluY29kZU5hbWV9IGNvbnRyYWN0ICR7Y29udHJhY3ROYW1lIHx8IGNvbmZpZy5jb250cmFjdE5hbWV9IGZyb20gbmV0d29yayAke2NvbmZpZy5jaGFubmVsfWApO1xuICAgICAgICAgICAgY29udHJhY3ROYW1lID0gY29udHJhY3ROYW1lID8gY29udHJhY3ROYW1lIDogY29uZmlnLmNvbnRyYWN0TmFtZTtcbiAgICAgICAgICAgIGNvbnRyYWN0ID0gbmV0d29yay5nZXRDb250cmFjdChjb25maWcuY2hhaW5jb2RlTmFtZSwgY29udHJhY3ROYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgdGhpcy5wYXJzZUVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250cmFjdDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldHMgYSBOZXR3b3JrIGluc3RhbmNlIGZyb20gYSBHYXRld2F5XG4gICAgICogQHN1bW1hcnkgQ29ubmVjdHMgdG8gYSBzcGVjaWZpYyBjaGFubmVsIG9uIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgICAqIEBwYXJhbSB7R2F0ZXdheX0gZ2F0ZXdheSAtIFRoZSBHYXRld2F5IGluc3RhbmNlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNoYW5uZWxOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGNoYW5uZWwgdG8gY29ubmVjdCB0b1xuICAgICAqIEByZXR1cm4ge05ldHdvcmt9IFRoZSBOZXR3b3JrIGluc3RhbmNlXG4gICAgICovXG4gICAgc3RhdGljIGdldE5ldHdvcmsoZ2F0ZXdheSwgY2hhbm5lbE5hbWUpIHtcbiAgICAgICAgY29uc3QgbG9nID0gTG9nZ2luZy5mb3IodGhpcy5nZXROZXR3b3JrKTtcbiAgICAgICAgbGV0IG5ldHdvcms7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsb2cuZGVidWcoYENvbm5lY3RpbmcgdG8gY2hhbm5lbCAke2NoYW5uZWxOYW1lfWApO1xuICAgICAgICAgICAgbmV0d29yayA9IGdhdGV3YXkuZ2V0TmV0d29yayhjaGFubmVsTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRocm93IHRoaXMucGFyc2VFcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV0d29yaztcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEdldHMgYSBHYXRld2F5IGluc3RhbmNlIGZvciBjb25uZWN0aW5nIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICAgICAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBHYXRld2F5IHVzaW5nIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uIGFuZCBjbGllbnRcbiAgICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIFRoZSBwZWVyIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBAcGFyYW0ge0NsaWVudH0gW2NsaWVudF0gLSBPcHRpb25hbCBnUlBDIGNsaWVudCwgd2lsbCBiZSBjcmVhdGVkIGlmIG5vdCBwcm92aWRlZFxuICAgICAqIEByZXR1cm4ge1Byb21pc2U8R2F0ZXdheT59IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBHYXRld2F5IGluc3RhbmNlXG4gICAgICovXG4gICAgc3RhdGljIGFzeW5jIGdldEdhdGV3YXkoY3R4LCBjb25maWcsIGNsaWVudCkge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0Q29ubmVjdGlvbihjbGllbnQgfHwgKGF3YWl0IHRoaXMuZ2V0Q2xpZW50KGNvbmZpZykpLCBjb25maWcsIGN0eCkpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIGEgRmFicmljIHBlZXJcbiAgICAgKiBAc3VtbWFyeSBJbml0aWFsaXplcyBhIGNsaWVudCB3aXRoIFRMUyBjcmVkZW50aWFscyBmb3Igc2VjdXJlIGNvbW11bmljYXRpb25cbiAgICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIFRoZSBwZWVyIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBAcmV0dXJuIHtDbGllbnR9IFByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBnUlBDIGNsaWVudFxuICAgICAqL1xuICAgIHN0YXRpYyBnZXRDbGllbnQoY29uZmlnKSB7XG4gICAgICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmdldENsaWVudCk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgZ2VuZXJhdGluZyBUTFMgY3JlZGVudGlhbHMgZm9yIG1zcCAke2NvbmZpZy5tc3BJZH1gKTtcbiAgICAgICAgbGV0IHBhdGhPckNlcnQgPSBjb25maWcudGxzQ2VydDtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXRoT3JDZXJ0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBpZiAocGF0aE9yQ2VydC5tYXRjaCgvLS0tLS1CRUdJTiAoQ0VSVElGSUNBVEV8S0VZfFBSSVZBVEUgS0VZKS0tLS0tLis/LS0tLS1FTkQgXFwxLS0tLS0kL2dtcykpIHtcbiAgICAgICAgICAgICAgICBwYXRoT3JDZXJ0ID0gQnVmZmVyLmZyb20ocGF0aE9yQ2VydCwgXCJ1dGY4XCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aE9yQ2VydCA9IEJ1ZmZlci5mcm9tKGZzLnJlYWRGaWxlU3luYyhwYXRoT3JDZXJ0LCBcInV0ZjhcIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIHJlYWQgdGhlIHRscyBjZXJ0aWZpY2F0ZSBmcm9tICR7cGF0aE9yQ2VydH06ICR7ZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGxzQ3JlZGVudGlhbHMgPSBncnBjLmNyZWRlbnRpYWxzLmNyZWF0ZVNzbChwYXRoT3JDZXJ0KTtcbiAgICAgICAgbG9nLmRlYnVnKGBnZW5lcmF0aW5nIEdhdGV3YXkgQ2xpZW50IGZvciB1cmwgJHtjb25maWcucGVlckVuZHBvaW50fWApO1xuICAgICAgICByZXR1cm4gbmV3IENsaWVudChjb25maWcucGVlckVuZHBvaW50LCB0bHNDcmVkZW50aWFscywge1xuICAgICAgICAgICAgXCJncnBjLm1heF9yZWNlaXZlX21lc3NhZ2VfbGVuZ3RoXCI6IChjb25maWcuc2l6ZUxpbWl0IHx8IDE1KSAqIDEwMjQgKiAxMDI0LFxuICAgICAgICAgICAgXCJncnBjLm1heF9zZW5kX21lc3NhZ2VfbGVuZ3RoXCI6IChjb25maWcuc2l6ZUxpbWl0IHx8IDE1KSAqIDEwMjQgKiAxMDI0LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEVzdGFibGlzaGVzIGEgY29ubmVjdGlvbiB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICAgKiBAc3VtbWFyeSBDcmVhdGVzIGEgR2F0ZXdheSBjb25uZWN0aW9uIHdpdGggaWRlbnRpdHkgYW5kIHNpZ25lclxuICAgICAqIEBwYXJhbSB7Q2xpZW50fSBjbGllbnQgLSBUaGUgZ1JQQyBjbGllbnRcbiAgICAgKiBAcGFyYW0ge1BlZXJDb25maWd9IGNvbmZpZyAtIFRoZSBwZWVyIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPEdhdGV3YXk+fSBQcm9taXNlIHJlc29sdmluZyB0byB0aGUgY29ubmVjdGVkIEdhdGV3YXlcbiAgICAgKiBAbWVybWFpZFxuICAgICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgICAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gICAgICogICBwYXJ0aWNpcGFudCBGYWJyaWNBZGFwdGVyXG4gICAgICogICBwYXJ0aWNpcGFudCBJZGVudGl0eVxuICAgICAqICAgcGFydGljaXBhbnQgU2lnbmVyXG4gICAgICogICBwYXJ0aWNpcGFudCBHYXRld2F5XG4gICAgICpcbiAgICAgKiAgIENhbGxlci0+PkZhYnJpY0FkYXB0ZXI6IGdldENvbm5lY3Rpb24oY2xpZW50LCBjb25maWcpXG4gICAgICogICBGYWJyaWNBZGFwdGVyLT4+SWRlbnRpdHk6IGdldElkZW50aXR5KG1zcElkLCBjZXJ0RGlyZWN0b3J5UGF0aClcbiAgICAgKiAgIElkZW50aXR5LS0+PkZhYnJpY0FkYXB0ZXI6IGlkZW50aXR5XG4gICAgICogICBGYWJyaWNBZGFwdGVyLT4+U2lnbmVyOiBnZXRTaWduZXIoa2V5RGlyZWN0b3J5UGF0aClcbiAgICAgKiAgIFNpZ25lci0tPj5GYWJyaWNBZGFwdGVyOiBzaWduZXJcbiAgICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5GYWJyaWNBZGFwdGVyOiBDcmVhdGUgQ29ubmVjdE9wdGlvbnNcbiAgICAgKiAgIEZhYnJpY0FkYXB0ZXItPj5HYXRld2F5OiBjb25uZWN0KG9wdGlvbnMpXG4gICAgICogICBHYXRld2F5LS0+PkZhYnJpY0FkYXB0ZXI6IGdhdGV3YXlcbiAgICAgKiAgIEZhYnJpY0FkYXB0ZXItLT4+Q2FsbGVyOiBnYXRld2F5XG4gICAgICovXG4gICAgc3RhdGljIGFzeW5jIGdldENvbm5lY3Rpb24oY2xpZW50LCBjb25maWcsIGN0eCkge1xuICAgICAgICBjb25zdCBsb2cgPSBMb2dnaW5nLmZvcih0aGlzLmdldENvbm5lY3Rpb24pO1xuICAgICAgICBsb2cuZGVidWcoYFJldHJpZXZpbmcgUGVlciBJZGVudGl0eSBmb3IgJHtjb25maWcubXNwSWR9IHVuZGVyICR7Y29uZmlnLmNlcnRDZXJ0T3JEaXJlY3RvcnlQYXRofWApO1xuICAgICAgICBjb25zdCBpZGVudGl0eSA9IGF3YWl0IGdldElkZW50aXR5KGNvbmZpZy5tc3BJZCwgY29uZmlnLmNlcnRDZXJ0T3JEaXJlY3RvcnlQYXRoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgcHJlcGFyaW5nIHRyYW5zYWN0aW9uIHNpZ25lciBmb3IgJHtDcnlwdG9VdGlscy5mYWJyaWNJZEZyb21DZXJ0aWZpY2F0ZShpZGVudGl0eS5jcmVkZW50aWFscy50b1N0cmluZygpKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgbG9nLmVycm9yKGBGYWlsZWQgdG8gZXh0cmFjdCBGYWJyaWMgSUQgZnJvbSBjZXJ0aWZpY2F0ZWAsIGUpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBzaWduZXI7XG4gICAgICAgIGNvbnN0IGNsb3NlID0gKCkgPT4geyB9O1xuICAgICAgICBpZiAoIWNvbmZpZy5oc20pIHtcbiAgICAgICAgICAgIHNpZ25lciA9IGF3YWl0IGdldFNpZ25lcihjb25maWcua2V5Q2VydE9yRGlyZWN0b3J5UGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBjb25zdCBoc20gPSBuZXcgSFNNU2lnbmVyRmFjdG9yeUN1c3RvbShjb25maWcuaHNtLmxpYnJhcnkpO1xuICAgICAgICAgICAgLy8gY29uc3QgaWRlbnRpZmllciA9IGhzbS5nZXRTS0lGcm9tQ2VydGlmaWNhdGVQYXRoKFxuICAgICAgICAgICAgLy8gICBjb25maWcuY2VydENlcnRPckRpcmVjdG9yeVBhdGggYXMgYW55XG4gICAgICAgICAgICAvLyApO1xuICAgICAgICAgICAgLy8gY29uc3QgcGtjczExU2lnbmVyID0gaHNtLm5ld1NpZ25lcih7XG4gICAgICAgICAgICAvLyAgIGxhYmVsOiBjb25maWcuaHNtLnRva2VuTGFiZWwgYXMgc3RyaW5nLFxuICAgICAgICAgICAgLy8gICBwaW46IFN0cmluZyhjb25maWcuaHNtLnBpbikgYXMgc3RyaW5nLFxuICAgICAgICAgICAgLy8gICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICAgICAgLy8gICAvLyB1c2VyVHlwZTogMSAvKkNLVV9VU0VSICovLFxuICAgICAgICAgICAgLy8gfSk7XG4gICAgICAgICAgICAvLyBzaWduZXIgPSBwa2NzMTFTaWduZXIuc2lnbmVyO1xuICAgICAgICAgICAgLy8gY2xvc2UgPSBwa2NzMTFTaWduZXIuY2xvc2U7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcIkhTTSBOT1QgSU1QTEVNRU5URURcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGNsaWVudCxcbiAgICAgICAgICAgIGlkZW50aXR5OiBpZGVudGl0eSxcbiAgICAgICAgICAgIHNpZ25lcjogc2lnbmVyLFxuICAgICAgICAgICAgLy8gRGVmYXVsdCB0aW1lb3V0cyBmb3IgZGlmZmVyZW50IGdSUEMgY2FsbHNcbiAgICAgICAgICAgIGV2YWx1YXRlT3B0aW9uczogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGRlYWRsaW5lOiBEYXRlLm5vdygpICsgMTAwMCAqIGN0eC5nZXQoXCJldmFsdWF0ZVRpbWVvdXRcIikgfTsgLy8gZGVmYXVsdHMgdG8gNSBzZWNvbmRzXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZW5kb3JzZU9wdGlvbnM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkZWFkbGluZTogRGF0ZS5ub3coKSArIDEwMDAgKiBjdHguZ2V0KFwiZW5kb3JzZVRpbWVvdXRcIikgfTsgLy8gZGVmYXVsdHMgdG8gMTUgc2Vjb25kc1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN1Ym1pdE9wdGlvbnM6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBkZWFkbGluZTogRGF0ZS5ub3coKSArIDEwMDAgKiBjdHguZ2V0KFwic3VibWl0VGltZW91dFwiKSB9OyAvLyBkZWZhdWx0cyB0byA1IHNlY29uZHNcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21taXRTdGF0dXNPcHRpb25zOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgZGVhZGxpbmU6IERhdGUubm93KCkgKyAxMDAwICogY3R4LmdldChcImNvbW1pdFRpbWVvdXRcIikgfTsgLy8gZGVmYXVsdHMgdG8gMSBtaW51dGVcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIGxvZy5kZWJ1ZyhgQ29ubmVjdGluZyB0byAke2NvbmZpZy5tc3BJZH1gKTtcbiAgICAgICAgY29uc3QgZ2F0ZXdheSA9IGNvbm5lY3Qob3B0aW9ucyk7XG4gICAgICAgIC8vIFRPRE86IHJlcGxhY2U/XG4gICAgICAgIGlmIChjb25maWcuaHNtKSB7XG4gICAgICAgICAgICBnYXRld2F5LmNsb3NlID0gbmV3IFByb3h5KGdhdGV3YXkuY2xvc2UsIHtcbiAgICAgICAgICAgICAgICBhcHBseSh0YXJnZXQsIHRoaXNBcmcsIGFyZ0FycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgIFJlZmxlY3QuYXBwbHkodGFyZ2V0LCB0aGlzQXJnLCBhcmdBcnJheSk7XG4gICAgICAgICAgICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnYXRld2F5O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBEaXNwYXRjaCBpbnN0YW5jZSBmb3IgdGhlIEZhYnJpYyBjbGllbnQuXG4gICAgICogQHN1bW1hcnkgVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgYSBuZXcgRmFicmljQ2xpZW50RGlzcGF0Y2ggaW5zdGFuY2UgdGhhdCBjYW4gYmUgdXNlZCB0byBpbnRlcmFjdCB3aXRoIHRoZSBGYWJyaWMgbmV0d29yay5cbiAgICAgKiBAcmV0dXJucyB7RGlzcGF0Y2h9IEEgbmV3IERpc3BhdGNoIGluc3RhbmNlIGNvbmZpZ3VyZWQgZm9yIHRoZSBGYWJyaWMgY2xpZW50LlxuICAgICAqIEByZW1hcmtzIFRoZSBEaXNwYXRjaCBpbnN0YW5jZSBpcyB1c2VkIHRvIGVuY2Fwc3VsYXRlIHRoZSBsb2dpYyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgRmFicmljIG5ldHdvcmssIHN1Y2ggYXMgc3VibWl0dGluZyB0cmFuc2FjdGlvbnMgb3IgcXVlcnlpbmcgZGF0YS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGNvbnN0IGZhYnJpY0Rpc3BhdGNoID0gZmFicmljQ2xpZW50QWRhcHRlci5EaXNwYXRjaCgpO1xuICAgICAqIGZhYnJpY0Rpc3BhdGNoLnN1Ym1pdFRyYW5zYWN0aW9uKCdjcmVhdGVQcm9kdWN0JywgeyBuYW1lOiAnUHJvZHVjdCBBJywgcHJpY2U6IDEwMCB9KTtcbiAgICAgKi9cbiAgICBEaXNwYXRjaCgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGYWJyaWNDbGllbnRBZGFwdGVyW1wiX2Jhc2VEaXNwYXRjaFwiXSh0aGlzLmNsaWVudCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQYXJzZXMgYW4gZXJyb3IgaW50byBhIEJhc2VFcnJvclxuICAgICAqIEBzdW1tYXJ5IENvbnZlcnRzIGFueSBlcnJvciBpbnRvIGEgc3RhbmRhcmRpemVkIEJhc2VFcnJvciB1c2luZyB0aGUgcGFyZW50IGNsYXNzIGltcGxlbWVudGF0aW9uXG4gICAgICogQHBhcmFtIHtFcnJvciB8IHN0cmluZ30gZXJyIC0gVGhlIGVycm9yIHRvIHBhcnNlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtyZWFzb25dIC0gT3B0aW9uYWwgcmVhc29uIGZvciB0aGUgZXJyb3JcbiAgICAgKiBAcmV0dXJuIHtCYXNlRXJyb3J9IFRoZSBwYXJzZWQgZXJyb3JcbiAgICAgKi9cbiAgICBzdGF0aWMgcGFyc2VFcnJvcihlcnIpIHtcbiAgICAgICAgLy8gaWYgKFxuICAgICAgICAvLyAgIE1JU1NJTkdfUFJJVkFURV9EQVRBX1JFR0VYLnRlc3QoXG4gICAgICAgIC8vICAgICB0eXBlb2YgZXJyID09PSBcInN0cmluZ1wiID8gZXJyIDogZXJyLm1lc3NhZ2VcbiAgICAgICAgLy8gICApXG4gICAgICAgIC8vIClcbiAgICAgICAgLy8gICByZXR1cm4gbmV3IFVuYXV0aG9yaXplZFByaXZhdGVEYXRhQWNjZXNzKGVycikgYXMgRTtcbiAgICAgICAgbGV0IG1zZyA9IHR5cGVvZiBlcnIgPT09IFwic3RyaW5nXCIgPyBlcnIgOiBlcnIubWVzc2FnZTtcbiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEdhdGV3YXlFcnJvciAmJiBlcnIuZGV0YWlscy5sZW5ndGggJiYgZXJyLmNvZGUgPT09IDEwKSB7XG4gICAgICAgICAgICBtc2cgPSBgJHtlcnIuZGV0YWlsc1swXS5tZXNzYWdlfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEVuZG9yc2VFcnJvciAmJlxuICAgICAgICAgICAgZXJyLmRldGFpbHMubGVuZ3RoICYmXG4gICAgICAgICAgICBlcnIuY29kZSA9PT0gMTAgJiZcbiAgICAgICAgICAgIGVyci5kZXRhaWxzWzBdLm1lc3NhZ2U/LmluY2x1ZGVzKFVuc3VwcG9ydGVkRXJyb3IubmFtZSkpIHtcbiAgICAgICAgICAgIG1zZyA9IGAke2Vyci5kZXRhaWxzWzBdLm1lc3NhZ2V9YDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFwiTVZDQ19SRUFEX0NPTkZMSUNUXCIpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBNdmNjUmVhZENvbmZsaWN0RXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhcIkRFQURMSU5FX0VYQ0VFREVEXCIpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvblRpbWVvdXRFcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKFwiRU5ET1JTRU1FTlRfUE9MSUNZX0ZBSUxVUkVcIikpXG4gICAgICAgICAgICByZXR1cm4gbmV3IEVuZG9yc2VtZW50UG9saWN5RXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhcIlBIQU5UT01fUkVBRF9DT05GTElDVFwiKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgUGhhbnRvbVJlYWRDb25mbGljdEVycm9yKGVycik7XG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnIuY29kZSkge1xuICAgICAgICAgICAgc3dpdGNoIChlcnIuY29kZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFbmRvcnNlbWVudEVycm9yKGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhWYWxpZGF0aW9uRXJyb3IubmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gbmV3IFZhbGlkYXRpb25FcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKE5vdEZvdW5kRXJyb3IubmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhDb25mbGljdEVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBDb25mbGljdEVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoQmFkUmVxdWVzdEVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBCYWRSZXF1ZXN0RXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhRdWVyeUVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBRdWVyeUVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoUGFnaW5nRXJyb3IubmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gbmV3IFBhZ2luZ0Vycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoVW5zdXBwb3J0ZWRFcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgVW5zdXBwb3J0ZWRFcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKE1pZ3JhdGlvbkVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBNaWdyYXRpb25FcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKE9ic2VydmVyRXJyb3IubmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmVyRXJyb3IoZXJyKTtcbiAgICAgICAgaWYgKG1zZy5pbmNsdWRlcyhBdXRob3JpemF0aW9uRXJyb3IubmFtZSkpXG4gICAgICAgICAgICByZXR1cm4gbmV3IEF1dGhvcml6YXRpb25FcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKEZvcmJpZGRlbkVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBGb3JiaWRkZW5FcnJvcihlcnIpO1xuICAgICAgICBpZiAobXNnLmluY2x1ZGVzKENvbm5lY3Rpb25FcnJvci5uYW1lKSlcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29ubmVjdGlvbkVycm9yKGVycik7XG4gICAgICAgIGlmIChtc2cuaW5jbHVkZXMoU2VyaWFsaXphdGlvbkVycm9yLm5hbWUpKVxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTZXJpYWxpemF0aW9uRXJyb3IoZXJyKTtcbiAgICAgICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKGVycik7XG4gICAgfVxufVxuX19kZWNvcmF0ZShbXG4gICAgZGVidWcoKSxcbiAgICBmaW5hbCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3QsIE9iamVjdCwgT2JqZWN0LCBPYmplY3QsIENvbnRleHRdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0NsaWVudEFkYXB0ZXIucHJvdG90eXBlLCBcImNyZWF0ZVwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIGRlYnVnKCksXG4gICAgZmluYWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbT2JqZWN0LCBDb250ZXh0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBGYWJyaWNDbGllbnRBZGFwdGVyLnByb3RvdHlwZSwgXCJoZWFsdGhjaGVja1wiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIGRlYnVnKCksXG4gICAgZmluYWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbT2JqZWN0LCBPYmplY3QsIENvbnRleHRdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0NsaWVudEFkYXB0ZXIucHJvdG90eXBlLCBcInJlYWRcIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBkZWJ1ZygpLFxuICAgIGZpbmFsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW09iamVjdCwgT2JqZWN0LCBPYmplY3QsIE9iamVjdCwgQ29udGV4dF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljQ2xpZW50QWRhcHRlci5wcm90b3R5cGUsIFwidXBkYXRlXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgZGVidWcoKSxcbiAgICBmaW5hbCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3QsIE9iamVjdCwgQ29udGV4dF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRmFicmljQ2xpZW50QWRhcHRlci5wcm90b3R5cGUsIFwiZGVsZXRlXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgZGVidWcoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbT2JqZWN0LCB0eXBlb2YgKF9hID0gdHlwZW9mIEQgIT09IFwidW5kZWZpbmVkXCIgJiYgRCkgPT09IFwiZnVuY3Rpb25cIiA/IF9hIDogT2JqZWN0LCBPYmplY3QsIENvbnRleHRdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0NsaWVudEFkYXB0ZXIucHJvdG90eXBlLCBcInJhd1wiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIGRlYnVnKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW1N0cmluZywgU3RyaW5nLCBPYmplY3QsIENvbnRleHRdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEZhYnJpY0NsaWVudEFkYXB0ZXIucHJvdG90eXBlLCBcInZpZXdcIiwgbnVsbCk7XG5GYWJyaWNDbGllbnRBZGFwdGVyLmRlY29yYXRpb24oKTtcbkFkYXB0ZXIuc2V0Q3VycmVudChGYWJyaWNGbGF2b3VyKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVJtRmljbWxqUTJ4cFpXNTBRV1JoY0hSbGNpNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDNOeVl5OWpiR2xsYm5RdlJtRmljbWxqUTJ4cFpXNTBRV1JoY0hSbGNpNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdPMEZCUVVFc2QwTkJRVFpDTzBGQlF6ZENMRTlCUVU4c1JVRkRUQ3hYUVVGWExFZEJSMW9zVFVGQlRTeDFRa0ZCZFVJc1EwRkJRenRCUVVNdlFpeFBRVUZQTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTFCUVUwc1pVRkJaU3hEUVVGRE8wRkJRM1pETEU5QlFVOHNTMEZCU3l4SlFVRkpMRTFCUVUwc1pVRkJaU3hEUVVGRE8wRkJRM1JETEU5QlFVOHNSVUZEVEN4TFFVRkxMRWRCUjA0c1RVRkJUU3huUTBGQlowTXNRMEZCUXp0QlFVTjRReXhQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEV0QlFVc3NSVUZCUlN4UFFVRlBMRVZCUVVVc1RVRkJUU3h0UWtGQmJVSXNRMEZCUXp0QlFVMHhSQ3hQUVVGUExFVkJRMHdzVDBGQlR5eEZRVTlRTEZsQlFWa3NSVUZEV2l4WlFVRlpMRWRCUTJJc1RVRkJUU3cyUWtGQk5rSXNRMEZCUXp0QlFVTnlReXhQUVVGUExFVkJRVVVzVDBGQlR5eEpRVUZKTEdGQlFXRXNSVUZCUlN4UFFVRlBMRVZCUVVVc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVVnVSU3hQUVVGUExFVkJRMHdzVjBGQlZ5eEZRVU5ZTEZOQlFWTXNSVUZEVkN3d1FrRkJNRUlzUlVGRE1VSXNVVUZCVVN4SlFVRkpMRlZCUVZVc1IwRkRka0lzZFVKQlFXOUNPMEZCUTNKQ0xFOUJRVThzUlVGRlRDeGhRVUZoTEVWQlEySXNZVUZCWVN4RlFVTmlMR3RDUVVGclFpeEZRVU5zUWl4eFFrRkJjVUlzUlVGRGNrSXNZVUZCWVN4RlFVTmlMR0ZCUVdFc1JVRkRZaXhsUVVGbExFVkJSV1lzWlVGQlpTeEhRVU5vUWl4TlFVRk5MSGxDUVVGNVFpeERRVUZETzBGQlEycERMRTlCUVU4c1JVRkRUQ3hQUVVGUExFVkJRMUFzVDBGQlR5eEZRVVZRTEd0Q1FVRnJRaXhGUVVOc1FpeGxRVUZsTEVWQlEyWXNZMEZCWXl4RlFVTmtMR05CUVdNc1JVRkRaQ3hoUVVGaExFVkJRMklzVjBGQlZ5eEZRVU5ZTEdWQlFXVXNSVUZEWml4VlFVRlZMRVZCUlZZc1owSkJRV2RDTEVkQlVXcENMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZEZUVJc1QwRkJUeXhGUVVGRkxHRkJRV0VzUlVGQlJTeHBRMEZCTkVJN1FVRkRjRVFzVDBGQlR5eEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxIZERRVUZ0UXp0QlFVazVSQ3hQUVVGUExFVkJRVVVzY1VKQlFYRkNMRVZCUVVVc2JVTkJRV2RETzBGQlEyaEZMRTlCUVU4c1JVRkJSU3h4UWtGQmNVSXNSVUZCUlN4dFEwRkJaME03UVVGRGFFVXNUMEZCVHl4RlFVRkZMSE5DUVVGelFpeEZRVUZGTEc5RFFVRnBRenRCUVVOc1JTeFBRVUZQTEVWQlEwd3NaMEpCUVdkQ0xFVkJRMmhDTEhOQ1FVRnpRaXhGUVVOMFFpeHhRa0ZCY1VJc1JVRkRja0lzZDBKQlFYZENMRVZCUTNoQ0xIVkNRVUYxUWl4SFFVTjRRaXc0UWtGQmVVSTdRVUZGTVVJc1QwRkJUeXhGUVVGRkxIZENRVUYzUWl4RlFVRkZMSFZDUVVGdlFqdEJRVU4yUkN4UFFVRlBMRVZCUVVVc1RVRkJUU3hKUVVGSkxFTkJRVU03UVVGRGNFSXNUMEZCVHl4RlFVRkZMRmRCUVZjc1JVRkJSU3h2UWtGQmFVSTdRVUZEZGtNc1QwRkJUeXhGUVVGRkxGVkJRVlVzUlVGQlJTd3JRa0ZCTkVJN1FVRlpha1E3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wZEJhMFJITzBGQlEwZ3NUVUZCVFN4UFFVRlBMRzFDUVVGdlFpeFRRVUZSTEU5QlMzaERPMGxCUTBNN08wOUJSVWM3WVVGRFdTeFpRVUZQTEVkQlFVY3NTVUZCU1N4WFFVRlhMRU5CUVVNc1RVRkJUU3hEUVVGRExFRkJRVEZDTEVOQlFUSkNPMkZCUld4RExHVkJRVlVzUjBGQlJ5eEpRVUZKTEdkQ1FVRm5RaXhGUVVGRkxFRkJRWHBDTEVOQlFUQkNPMkZCUld4RExGRkJRVWNzUjBGQlJ5eFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRzFDUVVGdFFpeERRVUZETEVGQlFXNURMRU5CUVc5RE8wbEJTM2hFT3pzN096dFBRVXRITzBsQlEwZ3NXVUZCV1N4TlFVRnJRaXhGUVVGRkxFdEJRV003VVVGRE5VTXNTMEZCU3l4RFFVTklMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEhkQ1FVRjNRaXhGUVVGRkxFMUJRVTBzUTBGQlF5eEZRVU51UkN4aFFVRmhMRVZCUTJJc1MwRkJTeXhEUVVOT0xFTkJRVU03VVVGa1pTeGxRVUZWTEVkQlF6TkNMRzFDUVVGdFFpeERRVUZETEZWQlFWVXNRMEZCUXp0SlFXTnFReXhEUVVGRE8wbEJSVkVzVTBGQlV5eERRVU5vUWl4VFFVRnBRenRSUVVWcVF5eFBRVUZQTEVsQlFVa3NjVUpCUVhGQ0xFTkJRVU1zU1VGQlNTeEZRVUZGTEZOQlFWTXNRMEZCUXl4RFFVRkRPMGxCUTNCRUxFTkJRVU03U1VGRlJDeFRRVUZUTEVOQlExQXNTMEZCTUVNc1JVRkRNVU1zU1VGQldTeEZRVU5hTEV0QlFYRkNPMUZCUlhKQ0xFOUJRVThzU1VGQlNTeHhRa0ZCY1VJc1EwRkJReXhKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVsQlFVa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRKUVVNM1JDeERRVUZETzBsQlJXdENMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRelZDTEZOQlFXbERMRVZCUTJwRExFdEJRVzlFTEVWQlEzQkVMRXRCUVdsRExFVkJRMnBETEVkQlFVY3NTVUZCVnp0UlFVVmtMRTFCUVUwc1YwRkJWeXhIUVVGSExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETVVRc1RVRkJUU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZEY2tJc1RVRkJUU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNSVUZCUlN4TFFVRkxMRVZCUVVVc1YwRkJWeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlF6RkVMRU5CUVVNN1VVRkRSaXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU5ZTEVOQlFVTTdTVUZGVVN4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVOd1FpeFRRVUYxUkN4RlFVTjJSQ3hUUVVGeFF5eEZRVU55UXl4TFFVRjNReXhGUVVONFF5eEhRVUZITEVsQlFYTkRPMUZCUlhwRExFMUJRVTBzUjBGQlJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTjJReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5RTERSQ1FVRTBRaXhUUVVGVExHbENRVUZwUWl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NWVUZCVlN4VFFVRlRMRWxCUVVrc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzYzBKQlFYTkNMRU5CUTNSUkxFTkJRVU03VVVGRFJpeEpRVUZKTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03VVVGRGNrSXNTVUZCU1N4UFFVRlBMRWRCUVVjc1MwRkJTeXhYUVVGWExFbEJRVWtzUTBGQlF5eERRVUZETEVkQlFVY3NXVUZCV1N4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRelZFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRFppeEhRVUZITEVkQlFVY3NVMEZCVXl4RFFVRkRPMUZCUTJ4Q0xFTkJRVU03VVVGRlJDeFRRVUZUTEVkQlFVY3NSMEZCUnp0WlFVTmlMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRU5CUVVNc1YwRkJWeXhGUVVGRkxFVkJRVVVzVTBGQlV5eERRVUZETzFsQlEycEVMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU03VVVGRFpDeE5RVUZOTEV0QlFVc3NSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRelZDTEU5QlFVOHNVMEZCVXl4TFFVRkxMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4VFFVRlRMRU5CUVVNc1NVRkJTU3hGUVVNeFJDeExRVUZMTEVWQlEwd3NVMEZCZFVNc1JVRkRka01zUjBGQlJ5eERRVUZETEVkQlFVY3NTVUZCU1N4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZEYkVNc1EwRkJRenRSUVVWR0xFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEVWl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExGbEJRVmtzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRU5CUVVNN1owSkJRMjVETEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1NVRkJTU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEZWQlFWVXNRMEZCUXp0dlFrRkRNME1zUjBGQlJ5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRPMjlDUVVObUxFZEJRVWNzUzBGQlN6dHZRa0ZEVWl4aFFVRmhMRVZCUVVVc1IwRkJSenRwUWtGRGJrSXNRMEZCVVN4RFFVRkRPMmRDUVVOV0xFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTTdiMEpCUTJJc1lVRkJZU3hGUVVGRk8zZENRVU5pTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1kwRkJZeXhEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0M1FrRkRPVU1zVFVGQlRUdHhRa0ZEVUR0cFFrRkRSaXhEUVVGRExFTkJRVU03WjBKQlEwZ3NUMEZCVHl4TlFVRk5MRU5CUVVNN1dVRkRhRUlzUTBGQlF6dFpRVU5FTEUxQlFVMHNVMEZCVXl4SFFVRkhMRWRCUVVjc1EwRkJReXhqUVVGakxFTkJRVU1zVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZEYkVRc1RVRkJUU3haUVVGWkxFZEJRVWNzUjBGQlJ5eERRVUZETEdOQlFXTXNRMEZCUXl4blFrRkJaMElzUTBGQlF5eERRVUZETzFsQlF6RkVMRWxCUTBVc1EwRkJReXhUUVVGVE8yZENRVU5XTEZOQlFWTXNTMEZCU3l4VFFVRlRPMmRDUVVOMlFpeERRVUZETEV0QlFVc3NTVUZCU1N4TFFVRkxMRXRCUVVzc1dVRkJXU3hEUVVGRExFVkJRMnBETEVOQlFVTTdaMEpCUTBRc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRE8yOUNRVU16UXl4SFFVRkhMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU03YjBKQlEyWXNSMEZCUnl4TFFVRkxPMjlDUVVOU0xHRkJRV0VzUlVGQlJTeEhRVUZITzJsQ1FVTnVRaXhEUVVGUkxFTkJRVU03WjBKQlJWWXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJRenR2UWtGRFlpeGhRVUZoTEVWQlFVVTdkMEpCUTJJc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eGpRVUZqTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8zZENRVU01UXl4TlFVRk5PM0ZDUVVOUU8ybENRVU5HTEVOQlFVTXNRMEZCUXp0blFrRkRTQ3hQUVVGUExFMUJRVTBzUTBGQlF6dFpRVU5vUWl4RFFVRkRPMWxCUTBRc1QwRkJUeXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCVVN4RFFVRkRPMUZCUTNSRExFTkJRVU03VVVGRlJDeFBRVUZQTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hEUVVGRExGVkJRVlVzUTBGQlF6dFpRVU51UXl4SFFVRkhMRXRCUVVzN1UwRkRWQ3hEUVVGUkxFTkJRVU03U1VGRFdpeERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU0N4TlFVRk5MRU5CUVVNc1NVRkJaMEk3VVVGRGNrSXNUMEZCVHl4dFFrRkJiVUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRMnhFTEVOQlFVTTdTVUZGVVN4VlFVRlZPMUZCVFdwQ0xFOUJRVThzYzBKQlFXMUVMRU5CUVVNN1NVRkROMFFzUTBGQlF6dEpRVVZUTEZsQlFWa3NRMEZEY0VJc1MwRkJjVUlzUlVGRGNrSXNSVUZCYTBJc1JVRkRiRUlzUzBGQk1FSXNSVUZETVVJc1IwRkJSeXhKUVVGdlJEdFJRVVYyUkN4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlEzcEVMRTFCUVUwc1UwRkJVeXhIUVVGSExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRla01zVFVGQlRTeE5RVUZOTEVkQlFYZENMRVZCUVVVc1EwRkJRenRSUVVOMlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExGTkJRVk1zUTBGQlF6dFJRVU4wUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTTNRaXhQUVVGUExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU42UXl4RFFVRkRPMGxCUlVRN096czdPenM3TzA5QlVVYzdTVUZEVHl4bFFVRmxMRU5CUTNaQ0xFdEJRWEZDTEVWQlEzSkNMRWRCUVhkQ0xFVkJRM2hDTEUxQlFUWkNMRVZCUXpkQ0xFZEJRVWNzU1VGQmIwUTdVVUZGZGtRc1RVRkJUU3hUUVVGVExFZEJRVWNzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVONlF5eEpRVUZKTEVkQlFVY3NRMEZCUXl4TlFVRk5MRXRCUVVzc1RVRkJUU3hEUVVGRExFMUJRVTA3V1VGRE9VSXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXd3UTBGQk1FTXNRMEZCUXl4RFFVRkRPMUZCUTNSRkxFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1VVRkROVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNSVUZCUlR0WlFVTndReXhOUVVGTkxFMUJRVTBzUjBGQmQwSXNSVUZCUlN4RFFVRkRPMWxCUTNaRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRE8xbEJRM1JETEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hGUVVGRkxFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUTNKRExFOUJRVThzVFVGQlRTeERRVUZETzFGQlEyaENMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRMGdzVDBGQlR5eERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZETTBNc1EwRkJRenRKUVVWVExHVkJRV1VzUTBGRGRrSXNTMEZCY1VJc1JVRkRja0lzUjBGQmNVSXNSVUZEY2tJc1RVRkJOa0lzUlVGRE4wSXNSMEZCUnl4SlFVRnZSRHRSUVVWMlJDeE5RVUZOTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzcERMRWxCUVVrc1IwRkJSeXhEUVVGRExFMUJRVTBzUzBGQlN5eE5RVUZOTEVOQlFVTXNUVUZCVFR0WlFVTTVRaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETERCRFFVRXdReXhEUVVGRExFTkJRVU03VVVGRGRFVXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zUTBGQlF6dFJRVU0xUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSVUZCUlR0WlFVTXpRaXhOUVVGTkxFMUJRVTBzUjBGQmQwSXNSVUZCUlN4RFFVRkRPMWxCUTNaRExFMUJRVTBzUTBGQlF5eFhRVUZYTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRE8xbEJRM1JETEU5QlFVOHNUVUZCVFN4RFFVRkRPMUZCUTJoQ0xFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEwZ3NUMEZCVHl4RFFVRkRMRXRCUVVzc1JVRkJSU3hIUVVGSExFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRNME1zUTBGQlF6dEpRVVZFT3pzN096czdPenRQUVZGSE8wbEJRMDBzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZEZEVJc1MwRkJjVUlzUlVGRGNrSXNSMEZCY1VJc1JVRkRja0lzVFVGQk5rSXNSVUZETjBJc1IwRkJSeXhKUVVGblJEdFJRVVZ1UkN4SlFVRkpMRWRCUVVjc1EwRkJReXhOUVVGTkxFdEJRVXNzVFVGQlRTeERRVUZETEUxQlFVMDdXVUZET1VJc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGQlF5d3dRMEZCTUVNc1EwRkJReXhEUVVGRE8xRkJRM1JGTEU5QlFVODdVVUZEVUN4TlFVRk5MRTlCUVU4c1IwRkJSeXhEUVVGRExFZEJRVWtzU1VGQmVVSXNRMEZCUXl4RFFVRkRPMUZCUTJoRUxFMUJRVTBzVTBGQlV5eEhRVUZITEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVhsQ0xFTkJRVU03VVVGRGVrUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVTTVRaXhQUVVGeFJDeEZRVU55UkN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVObUxFTkJRVU03VVVGRFJpeE5RVUZOTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlJYcERMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeEhRVUZITEVOQlFVTXNUVUZCVFN4bFFVRmxMRk5CUVZNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGREwwUXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFZEJRVWNzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZETTBJc1RVRkJUU3haUVVGWkxFZEJRVWNzVTBGQlV5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTndSU3hOUVVGTkxHZENRVUZuUWl4SFFVTndRaXhaUVVGWkxFbEJRVWtzU1VGQlNTeERRVUZETERKQ1FVRXlRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzaEVMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dFJRVVY0UlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkRla01zUjBGQlJ5eEZRVU5JTEhGQ1FVRnhRaXhEUVVGRExGVkJRVlVzUlVGRGFFTTdXVUZEUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVOYUxFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZETlVRN1UwRkRSaXhGUVVORUxHZENRVUYxUWl4RlFVTjJRaXhKUVVGSkxFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1IwRkJSeXhEUVVGRExFVkJRMjVETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUTFnc1EwRkJRenRSUVVWR0xFbEJRVWtzUjBGQk1FSXNRMEZCUXp0UlFVTXZRaXhKUVVGSkxFTkJRVU03V1VGRFNDeEhRVUZITEVkQlFVY3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlRTeEZRVUZGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEZGtVc1EwRkJRenRSUVVGRExFOUJRVThzUTBGQlZTeEZRVUZGTEVOQlFVTTdXVUZEY0VJc1RVRkJUU3hKUVVGSkxHdENRVUZyUWl4RFFVRkRMRU5CUVZVc1EwRkJReXhEUVVGRE8xRkJRek5ETEVOQlFVTTdVVUZGUkN4SlFVTkZMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNRMEZETVVJc1MwRkJTeXhGUVVOTUxFZEJRVWNzUlVGRFNDeG5Ra0ZCWjBJc1JVRkRhRUlzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZYTEVOQlFVTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRelZETEVWQlEwUXNRMEZCUXp0WlFVTkVMRTlCUVU4c1NVRkJTU3hEUVVGRExFOUJRVThzUTBGRGFrSXNTMEZCU3l4RlFVTk1MRlZCUVZVc1EwRkRVaXhMUVVGTExFVkJRMHdzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVU5zUWl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVZFc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlEzSkZMRVZCUTBRc1IwRkJSeXhEUVVOS0xFVkJRMFFzUjBGQlJ5eERRVU5LTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUlVRc1QwRkJUeXhIUVVGSExFTkJRVU03U1VGRFlpeERRVUZETzBsQlJVUTdPenM3T3p0UFFVMUhPMGxCUTAwc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGRGNFSXNTMEZCY1VJc1JVRkRja0lzUjBGQmNVSXNSVUZEY2tJc1IwRkJSeXhKUVVGblJEdFJRVVZ1UkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnlSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRM3BETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFTkJRVU1zVFVGQlRTeGxRVUZsTEZOQlFWTXNVVUZCVVN4RFFVRkRMRU5CUVVNN1VVRkRhRVVzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXl4UlFVRlJMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRE0wSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUXpORExFZEJRVWNzUlVGRFNDeHhRa0ZCY1VJc1EwRkJReXhSUVVGUkxFVkJRemxDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEZRVU55UWl4VFFVRlRMRVZCUTFRc1UwRkJVeXhGUVVOVUxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlExZ3NRMEZCUXp0UlFVTkdMRWxCUVVrc1EwRkJRenRaUVVOSUxFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJUU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGVFVXNRMEZCUXp0UlFVRkRMRTlCUVU4c1EwRkJWU3hGUVVGRkxFTkJRVU03V1VGRGNFSXNUVUZCVFN4SlFVRkpMR3RDUVVGclFpeERRVUZETEVOQlFWVXNRMEZCUXl4RFFVRkRPMUZCUXpORExFTkJRVU03U1VGRFNDeERRVUZETzBsQlJVUTdPenM3T3pzN08wOUJVVWM3U1VGRFRTeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVTjBRaXhMUVVGeFFpeEZRVU55UWl4SFFVRnhRaXhGUVVOeVFpeE5RVUUyUWl4RlFVTTNRaXhIUVVGSExFbEJRV2RFTzFGQlJXNUVMRWxCUVVrc1IwRkJSeXhEUVVGRExFMUJRVTBzUzBGQlN5eE5RVUZOTEVOQlFVTXNUVUZCVFR0WlFVTTVRaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETERCRFFVRXdReXhEUVVGRExFTkJRVU03VVVGRGRFVXNUVUZCVFN4UFFVRlBMRWRCUVVjc1EwRkJReXhIUVVGSkxFbEJRWGxDTEVOQlFVTXNRMEZCUXp0UlFVTm9SQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVRjVRaXhEUVVGRE8xRkJRM3BFTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZET1VJc1QwRkJjVVFzUlVGRGNrUXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkRaaXhEUVVGRE8xRkJRMFlzVFVGQlRTeFRRVUZUTEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU42UXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eERRVUZETEUxQlFVMHNaVUZCWlN4VFFVRlRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRMnBGTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1VVRkJVU3hIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlF6TkNMRTFCUVUwc1dVRkJXU3hIUVVGSExGTkJRVk1zU1VGQlNTeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEY0VVc1RVRkJUU3huUWtGQlowSXNSMEZEY0VJc1dVRkJXU3hKUVVGSkxFbEJRVWtzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU40UkN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEZsQlFWa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eEZRVUZGTEZOQlFWTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03VVVGRmVFVXNUVUZCVFN4TlFVRk5MRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUTNwRExFZEJRVWNzUlVGRFNDeHhRa0ZCY1VJc1EwRkJReXhWUVVGVkxFVkJRMmhETzFsQlEwVXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkRXaXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlF6VkVPMU5CUTBZc1JVRkRSQ3huUWtGQmRVSXNSVUZEZGtJc1NVRkJTU3hEUVVGRExIbENRVUY1UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVOdVF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVTllMRU5CUVVNN1VVRkZSaXhKUVVGSkxFZEJRVkVzUTBGQlF6dFJRVU5pTEVsQlFVa3NRMEZCUXp0WlFVTklMRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRk5MRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOMlJTeERRVUZETzFGQlFVTXNUMEZCVHl4RFFVRlZMRVZCUVVVc1EwRkJRenRaUVVOd1FpeE5RVUZOTEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zUTBGQlZTeERRVUZETEVOQlFVTTdVVUZETTBNc1EwRkJRenRSUVVWRUxFbEJRVWtzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOMlJTeFBRVUZQTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJwQ0xFdEJRVXNzUlVGRFRDeFZRVUZWTEVOQlExSXNTMEZCU3l4RlFVTk1MRTFCUVUwc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkRiRUlzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZSTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVOeVJTeEZRVU5FTEVkQlFVY3NRMEZEU2l4RlFVTkVMRWRCUVVjc1EwRkRTaXhEUVVGRE8xRkJRMG9zUTBGQlF6dFJRVU5FTEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1EwRkJRenRKUVVWRU96czdPenM3TzA5QlQwYzdTVUZEVFN4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVOMFFpeExRVUZ4UWl4RlFVTnlRaXhIUVVGeFFpeEZRVU55UWl4SFFVRkhMRWxCUVdkRU8xRkJSVzVFTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTm9SU3hOUVVGTkxGTkJRVk1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJSWHBETEUxQlFVMHNaMEpCUVdkQ0xFZEJRM0JDTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzU1VGQlNTeERRVUZETERKQ1FVRXlRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzQkZMRWxCUVVrc1RVRkJWeXhEUVVGRE8xRkJRMmhDTEUxQlFVMHNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXgxUWtGQmRVSXNRMEZEYUVRc1MwRkJTeXhGUVVOTUxFZEJRVWNzUlVGRFNDeG5Ra0ZCWjBJc1JVRkRhRUlzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVTlFMRU5CUVVNN1VVRkRSaXhKUVVGSkxHRkJRV0VzUlVGQlJTeERRVUZETzFsQlEyeENMRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzUkVMRU5CUVVNN1VVRkZSQ3hIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NSMEZCUnl4RFFVRkRMRTFCUVUwc1pVRkJaU3hUUVVGVExGRkJRVkVzUTBGQlF5eERRVUZETzFGQlEycEZMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zVVVGQlVTeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUXpOQ0xFMUJRVTBzUjBGQlJ5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVU4wUXl4SFFVRkhMRVZCUTBnc2NVSkJRWEZDTEVOQlFVTXNWVUZCVlN4RlFVTm9ReXhEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1JVRkRja0lzVTBGQlV5eEZRVU5VTEVsQlFVa3NRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZEYmtNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGRFdDeERRVUZETzFGQlEwWXNTVUZCU1N4RFFVRkRPMWxCUTBnc1QwRkJUeXhoUVVGaE8yZENRVU5zUWl4RFFVRkRMRU5CUVVNc1RVRkJUVHRuUWtGRFVpeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlRTeEZRVUZGTEVWQlFVVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZEYkVVc1EwRkJRenRSUVVGRExFOUJRVThzUTBGQlZTeEZRVUZGTEVOQlFVTTdXVUZEY0VJc1RVRkJUU3hKUVVGSkxHdENRVUZyUWl4RFFVRkRMRU5CUVZVc1EwRkJReXhEUVVGRE8xRkJRek5ETEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlVRN096czdPenM3TzA5QlVVYzdTVUZEVFN4UFFVRlBMRU5CUTJRc1MwRkJVU3hGUVVOU0xFZEJRVWNzU1VGQlowUTdVVUZGYmtRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRja1FzVFVGQlRTeExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU55UXl4SlFVRkxMRXRCUVdFc1EwRkJReXhsUVVGbExFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTTNReXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5RTERCRFFVRXlReXhMUVVGaExFTkJRVU1zWlVGQlpTeERRVUZETEZGQlFWRXNRMEZCUXl4RlFVRkZMRU5CUTNKR0xFTkJRVU03V1VGRFJpeE5RVUZOTEVOQlFVTXNZMEZCWXl4RFFVRkRMRXRCUVVzc1EwRkJReXhMUVVGTExFVkJRVVVzWlVGQlpTeERRVUZETEZGQlFWRXNSVUZCUlR0blFrRkRNMFFzVlVGQlZTeEZRVUZGTEV0QlFVczdaMEpCUTJwQ0xGRkJRVkVzUlVGQlJTeExRVUZMTzJkQ1FVTm1MRmxCUVZrc1JVRkJSU3hKUVVGSk8yZENRVU5zUWl4TFFVRkxMRVZCUVVjc1MwRkJZU3hEUVVGRExHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTTdZVUZEYUVRc1EwRkJReXhEUVVGRE8xRkJRMHdzUTBGQlF6dFJRVVZFTEUxQlFVMHNWVUZCVlN4SFFVRkhMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETTBNc1NVRkJTU3hWUVVGVkxFVkJRVVVzUTBGQlF6dFpRVU5tTEUxQlFVMHNVMEZCVXl4SFFVRkhMRlZCUVZVc1EwRkJReXhMUVVGTExFTkJRVU03V1VGRGJrTXNTVUZCU1N4RFFVRkRMRk5CUVZNN1owSkJRVVVzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl3NFFrRkJPRUlzUTBGQlF5eERRVUZETzFsQlEzaEZMRWxCUVVrc1NVRkJTU3hIUVVGSExFbEJRVWtzUTBGQlF5eDVRa0ZCZVVJc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZEY2tRc1NVRkJTU3hIUVVGSExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVNelF5eE5RVUZOTEUxQlFVMHNSMEZCUnl4RFFVRkRMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVsQlFVa3NSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGJFUXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJRenRuUWtGRFlpeGhRVUZoTEVWQlFVVXNUVUZCVFR0blFrRkRja0lzYzBKQlFYTkNMRVZCUVVVc1RVRkJUVHRuUWtGRE9VSXNUVUZCVFN4RlFVRkZMRWxCUVVrN1lVRkRZaXhEUVVGRExFTkJRVU03VVVGRFRDeERRVUZETzFGQlJVUXNUMEZCVHp0WlFVTk1MRTFCUVUwc1JVRkJSU3hMUVVGTExFTkJRVU1zUzBGQlN6dFpRVU51UWl4TFFVRkxMRVZCUVVVc1MwRkJTeXhEUVVGRExFdEJRVXM3V1VGRGJFSXNSVUZCUlN4RlFVRkZMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRTJRaXhEUVVGRExFTkJRVmM3V1VGRGJFVXNVMEZCVXl4RlFVRkZMRXRCUVVzc1EwRkJReXhUUVVGVE8xbEJRekZDTEZGQlFWRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1VVRkJVVHRaUVVONFFpeE5RVUZOTEVWQlFVVXNTMEZCU3l4RFFVRkRMRTFCUVUwN1UwRkRja0lzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGVVN4TlFVRk5MRU5CUTJJc1IwRkJkMElzUlVGRGVFSXNTMEZCY1VJc1JVRkRja0lzUlVGQmEwSXNSVUZEYkVJc1UwRkJLMElzUlVGREwwSXNSMEZCUnl4SlFVRm5SRHRSUVVWdVJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU53UkN4SlFVTkZMRk5CUVZNN1dVRkRWQ3hKUVVGSkxFTkJRVU1zTUVKQlFUQkNMRU5CUXpkQ0xFZEJRVWNzUlVGRFNDeEhRVUZITEVOQlFVTXNZMEZCWXl4RFFVRkRMRmRCUVZjc1EwRkJkVUlzUTBGRGRFUXNSVUZEUkN4RFFVRkRPMWxCUTBRc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGRFZDeHRRMEZCYlVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGRGRrVXNRMEZCUXp0WlFVTkdMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zVTBGQlowTXNRMEZCUXp0cFFrRkROME1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4WFFVRlhMRU5CUVVNN2FVSkJRek5ETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUTBGQlF5eEZRVUZGTEVWQlFVVTdaMEpCUTNSQ0xFbEJRVWtzUjBGQlJ5eEpRVUZKTEVkQlFVY3NTVUZCU3l4SFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzVTBGQlV6dHZRa0ZETDBNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGRFRpeDNRa0ZCZDBJc1IwRkJSeXd5UkVGQk1rUXNRMEZEZGtZc1EwRkJRenRuUWtGRFNDeEhRVUZUTEVOQlFVTXNSMEZCWXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRE8xbEJRMjVETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTFBc1EwRkJRenRSUVVWRUxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVc3NTMEZCZDBJc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVVZzUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRKUVVOb1FpeERRVUZETzBsQlJVOHNNRUpCUVRCQ0xFTkJRMmhETEVkQlFTdENMRVZCUXk5Q0xGTkJRV3RDTzFGQlJXeENMRWxCUVVrc1EwRkJReXhIUVVGSE8xbEJRVVVzVDBGQlR5eExRVUZMTEVOQlFVTTdVVUZEZGtJc1NVRkJTU3hIUVVGSExFTkJRVU1zWTBGQll5eERRVUZETEhOQ1FVRnpRaXhEUVVGRE8xbEJRVVVzVDBGQlR5eEpRVUZKTEVOQlFVTTdVVUZETlVRc1RVRkJUU3haUVVGWkxFZEJRMmhDTEU5QlFWRXNSMEZCVnl4RFFVRkRMR1ZCUVdVc1MwRkJTeXhWUVVGVk8xbEJRMmhFTEVOQlFVTXNRMEZCUlN4SFFVRlhMRU5CUVVNc1pVRkJaU3hEUVVGRExITkNRVUZ6UWl4RFFVRkRPMWxCUTNSRUxFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTTdVVUZEYUVJc1NVRkJTU3haUVVGWk8xbEJRVVVzVDBGQlR5eEpRVUZKTEVOQlFVTTdVVUZET1VJc1RVRkJUU3hWUVVGVkxFZEJRVWNzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzUlVGQlJTeFRRVUZUTEVOQlFVTXNRMEZCUXp0UlFVTjZSQ3hKUVVGSkxFTkJRVU1zVlVGQlZUdFpRVUZGTEU5QlFVOHNTMEZCU3l4RFFVRkRPMUZCUXpsQ0xFMUJRVTBzUlVGQlJTeEhRVUZITEZWQlFWVXNRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFJRVU12UXl4UFFVRlBMRU5CUTB3c1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTTdXVUZEYmtJc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTTdXVUZEYmtJc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eFBRVUZQTEVOQlFVTTdXVUZEY0VJc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eFhRVUZYTEVOQlFVTTdXVUZEZUVJc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZEY0VJc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlR5eG5Ra0ZCWjBJc1EwRkRkRUlzUjBGQkswSXNSVUZETDBJc1UwRkJhMEk3VVVGRmJFSXNTVUZCU1N4VFFVRlRPMWxCUVVVc1QwRkJUeXhUUVVGVExFTkJRVU03VVVGRGFFTXNTVUZCU1N4UFFVRlJMRWRCUVZjc1EwRkJReXhsUVVGbExFdEJRVXNzVlVGQlZTeEZRVUZGTEVOQlFVTTdXVUZEZGtRc1QwRkJVU3hIUVVGWExFTkJRVU1zWlVGQlpTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUTI1RUxFTkJRVU03VVVGRFJDeFBRVUZQTEZOQlFWTXNRMEZCUXp0SlFVTnVRaXhEUVVGRE8wbEJSVThzZFVKQlFYVkNMRU5CUXpkQ0xFdEJRWEZDTEVWQlEzSkNMRWRCUVN0Q0xFVkJReTlDTEZsQlFYRkNMRVZCUTNKQ0xFVkJRVzFDTzFGQlJXNUNMRWxCUVVrc1EwRkJReXhaUVVGWk8xbEJRVVVzVDBGQlR5eExRVUZMTEVOQlFVTTdVVUZEYUVNc1RVRkJUU3hGUVVGRkxFZEJRVWNzUzBGQlN5eERRVUZETEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVNelFpeE5RVUZOTEZGQlFWRXNSMEZCUnl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTXpReXhOUVVGTkxGTkJRVk1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU0zUXl4TlFVRk5MRXRCUVVzc1IwRkJSeXhGUVVGRkxFdEJRVXNzVTBGQlV5eEpRVUZKTEVWQlFVVXNTMEZCU3l4SlFVRkpMRU5CUVVNN1VVRkRPVU1zU1VGQlNTeERRVUZETEV0QlFVc3NTVUZCU1N4UlFVRlJPMWxCUVVVc1QwRkJUeXhKUVVGSkxFTkJRVU03VVVGRGNFTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1NVRkJTU3hUUVVGVExFVkJRVVVzUTBGQlF6dFpRVU40UWl4SFFVRkhMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGRFlpd3dSRUZCTUVRc1EwRkRNMFFzUTBGQlF6dFpRVU5HTEU5QlFVOHNTMEZCU3l4RFFVRkRPMUZCUTJZc1EwRkJRenRSUVVORUxFOUJRVThzUzBGQlN5eERRVUZETzBsQlEyWXNRMEZCUXp0SlFVVlBMSGxDUVVGNVFpeERRVU12UWl4SFFVRXJRanRSUVVVdlFpeE5RVUZOTEUxQlFVMHNSMEZEVml4SFFVRkhMRU5CUVVNc1kwRkJZeXhEUVVGRExHVkJRV1VzUTBGQlF6dFpRVU5zUXl4SFFVRkhMRU5CUVVNc1kwRkJZeXhEUVVGRExHVkJRV1VzUTBGQk1FSXNRMEZCUXp0UlFVTm9SU3hKUVVGSkxFMUJRVTBzU1VGQlNTeE5RVUZOTEVOQlFVTXNUVUZCVFR0WlFVRkZMRTlCUVU4c1RVRkJUU3hEUVVGRE8xRkJRek5ETEU5QlFVOHNRMEZEU2l4SFFVRkhMRU5CUVVNc1pVRkJaU3hEUVVGRExHVkJRV1VzUTBGQk1FSTdXVUZETjBRc1IwRkJSeXhEUVVGRExHVkJRV1VzUTBGQlF5eGxRVUZsTEVOQlFUQkNMRU5CUXk5RUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVOHNNa0pCUVRKQ08wbEJRMnBETERaRVFVRTJSRHRKUVVNM1JDeEhRVUVyUWp0UlFVVXZRaXhQUVVGUExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRzlDUVVGdlFpeERRVUZETzBsQlF6VkRMRU5CUVVNN1NVRkZSRHM3T3pzN096czdUMEZSUnp0SlFVZFpMRUZCUVU0c1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGRGJrSXNTMEZCY1VJc1JVRkRja0lzUlVGQmEwSXNSVUZEYkVJc1MwRkJNRUlzUlVGRE1VSXNXVUZCYVVNc1JVRkJSU3hGUVVOdVF5eEhRVUZITEVsQlFXZEVPMUZCUlc1RUxFMUJRVTBzVDBGQlR5eEhRVUZITEVOQlFVTXNSMEZCU1N4SlFVRjVRaXhEUVVGRExFTkJRVU03VVVGRGFFUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVTTVRaXhQUVVGeFJDeEZRVU55UkN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVOYUxFTkJRVU03VVVGRFJpeE5RVUZOTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzcERMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zYlVKQlFXMUNMRk5CUVZNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGRGJFUXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEZGtJc1RVRkJUU3haUVVGWkxFZEJRVWNzVTBGQlV5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTndSU3hOUVVGTkxHZENRVUZuUWl4SFFVTndRaXhaUVVGWkxFbEJRVWtzU1VGQlNTeERRVUZETERKQ1FVRXlRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzaEVMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dFJRVU40UlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkRla01zUjBGQlJ5eEZRVU5JTEdGQlFXRXNRMEZCUXl4TlFVRk5MRVZCUTNCQ0xFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RlFVTTVReXhuUWtGQmRVSXNSVUZEZGtJc1NVRkJTU3hEUVVGRExIbENRVUY1UWl4RFFVRkRMRWRCUVVjc1EwRkJReXhGUVVOdVF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVTllMRU5CUVVNN1VVRkRSaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRkRVVzU1VGQlNTeEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zUzBGQlN5eEZRVUZGTEVkQlFVY3NSVUZCUlN4blFrRkJaMElzUlVGQlJTeEZRVUZGTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTI1RkxFOUJRVThzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZEWkN4TFFVRkxMRVZCUTB3c1ZVRkJWU3hEUVVOU0xFdEJRVXNzUlVGRFRDeExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVTlVMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEV0QlFVc3NSVUZCUlN4VFFVRlRMRWxCUVVrc1JVRkJSU3hEUVVGRExFVkJRM3BETEZsQlFWa3NSVUZEV2l4TFFVRkxMRU5CUTA0c1JVRkRSQ3hGUVVGRkxFTkJRMGdzUlVGRFJDeEhRVUZITEVOQlEwb3NRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkRSQ3hQUVVGUExGbEJRVmtzUTBGQlF6dEpRVU4wUWl4RFFVRkRPMGxCU1Vzc1FVRkJUaXhMUVVGTExFTkJRVU1zVjBGQlZ5eERRVU5tTEV0QlFYRkNMRVZCUTNKQ0xFZEJRVWNzU1VGQlowUTdVVUZGYmtRc1RVRkJUU3hGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1VVRkRla1FzVFVGQlRTeFRRVUZUTEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVVY2UXl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExITkNRVUZ6UWl4VFFVRlRMRkZCUVZFc1EwRkJReXhEUVVGRE8xRkJRM0pFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVTXpReXhIUVVGSExFVkJRMGdzWVVGQllTeEZRVU5pTEVWQlFVVXNSVUZEUml4VFFVRlRMRVZCUTFRc1UwRkJVeXhGUVVOVUxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlExZ3NRMEZCUXp0UlFVTkdMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGVrTXNRMEZCUXp0SlFVVkVPenM3T3pzN1QwRk5SenRKUVVkSExFRkJRVTRzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZEVWl4TFFVRnhRaXhGUVVOeVFpeEZRVUZyUWl4RlFVTnNRaXhIUVVGSExFbEJRV2RFTzFGQlJXNUVMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMUZCUTJ4RUxFMUJRVTBzVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRmVrTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXh6UWtGQmMwSXNVMEZCVXl4UlFVRlJMRU5CUVVNc1EwRkJRenRSUVVOeVJDeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU4yUWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkRNME1zUjBGQlJ5eEZRVU5JTEdGQlFXRXNRMEZCUXl4SlFVRkpMRVZCUTJ4Q0xFTkJRVU1zUlVGQlJTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRMRVZCUTJZc1UwRkJVeXhGUVVOVUxGTkJRVk1zUlVGRFZDeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVTllMRU5CUVVNN1VVRkRSaXhQUVVGUExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0SlFVTXhSQ3hEUVVGRE8wbEJSVVFzV1VGQldTeERRVU5XTEV0QlFYRkNMRVZCUTNKQ0xFVkJRV3RDTEVWQlEyeENMRXRCUVRCQ0xFVkJRekZDTEVkQlFVY3NTVUZCYjBRN1VVRkZka1FzVFVGQlRTeFRRVUZUTEVkQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dFJRVU42UXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlEzcEVMRTFCUVUwc1RVRkJUU3hIUVVGM1FpeEZRVUZGTEVOQlFVTTdVVUZEZGtNc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4VFFVRlRMRU5CUVVNN1VVRkRkRU1zTWtSQlFUSkVPMUZCUXpORUxFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNUVUZCVFN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRemRDTEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNwRExFTkJRVU03U1VGRlJEczdPenM3T3pzN1QwRlJSenRKUVVkSExFRkJRVTRzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZEVml4TFFVRnhRaXhGUVVOeVFpeEZRVUZyUWl4RlFVTnNRaXhMUVVFd1FpeEZRVU14UWl4WlFVRnBReXhGUVVGRkxFVkJRMjVETEVkQlFVY3NTVUZCWjBRN1VVRkZia1FzVFVGQlRTeFBRVUZQTEVkQlFVY3NRMEZCUXl4SFFVRkpMRWxCUVhsQ0xFTkJRVU1zUTBGQlF6dFJRVU5vUkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUXpsQ0xFOUJRWEZFTEVWQlEzSkVMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRMW9zUTBGQlF6dFJRVU5HTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2VVSkJRWGxDTEU5QlFVOHNTMEZCU3l4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVOc1JDeE5RVUZOTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzcERMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zY1VKQlFYRkNMRk5CUVZNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGRGNFUXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEZGtJc1RVRkJUU3haUVVGWkxFZEJRVWNzVTBGQlV5eEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTndSU3hOUVVGTkxHZENRVUZuUWl4SFFVTndRaXhaUVVGWkxFbEJRVWtzU1VGQlNTeERRVUZETERKQ1FVRXlRaXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzaEVMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dFJRVU40UlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkRla01zUjBGQlJ5eEZRVU5JTEdGQlFXRXNRMEZCUXl4TlFVRk5MRVZCUTNCQ0xFTkJRVU1zU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVsQlFVa3NTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3gzUkVGQmQwUTdVVUZEYWtnc1owSkJRWFZDTEVWQlEzWkNMRWxCUVVrc1EwRkJReXg1UWtGQmVVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkRia01zUzBGQlN5eERRVUZETEVsQlFVa3NRMEZEV0N4RFFVRkRPMUZCUTBZc1RVRkJUU3haUVVGWkxFZEJRVWNzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTNSRkxFbEJRVWtzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNaMEpCUVdkQ0xFVkJRVVVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTnVSU3hQUVVGUExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlEyUXNTMEZCU3l4RlFVTk1MRlZCUVZVc1EwRkRVaXhMUVVGTExFVkJRMHdzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZEVkN4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVWQlFVVXNVMEZCVXl4SlFVRkpMRVZCUVVVc1EwRkJReXhGUVVONlF5eFpRVUZaTEVWQlExb3NTMEZCU3l4RFFVTk9MRVZCUTBRc1JVRkJSU3hEUVVOSUxFVkJRMFFzUjBGQlJ5eERRVU5LTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUTBRc1QwRkJUeXhaUVVGWkxFTkJRVU03U1VGRGRFSXNRMEZCUXp0SlFVVkVPenM3T3pzN1QwRk5SenRKUVVkWkxFRkJRVTRzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZEYmtJc1MwRkJjVUlzUlVGRGNrSXNSVUZCYTBJc1JVRkRiRUlzUjBGQlJ5eEpRVUZuUkR0UlFVVnVSQ3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOd1JDeE5RVUZOTEZOQlFWTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlEzcERMRTFCUVUwc1owSkJRV2RDTEVkQlEzQkNMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMREpDUVVFeVFpeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUTNCRkxFbEJRVWtzVFVGQlZ5eERRVUZETzFGQlEyaENMRTFCUVUwc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1EwRkRhRVFzUzBGQlN5eEZRVU5NTEVkQlFVY3NSVUZEU0N4blFrRkJaMElzUlVGRGFFSXNSVUZCUlN4RFFVTklMRU5CUVVNN1VVRkRSaXhKUVVGSkxHRkJRV0VzUlVGQlJTeERRVUZETzFsQlEyeENMRTFCUVUwc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF6dFJRVU16UXl4RFFVRkRPMUZCUlVRc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eDFRa0ZCZFVJc1UwRkJVeXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU4wUkN4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjJRaXhOUVVGTkxFZEJRVWNzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUTBGRGRFTXNSMEZCUnl4RlFVTklMR0ZCUVdFc1EwRkJReXhOUVVGTkxFVkJRM0JDTEVOQlFVTXNSVUZCUlN4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRExFVkJRMllzVTBGQlV5eEZRVU5VTEVsQlFVa3NRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNSVUZEYmtNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGRFdDeERRVUZETzFGQlEwWXNUMEZCVHl4aFFVRmhPMWxCUTJ4Q0xFTkJRVU1zUTBGQlF5eE5RVUZOTzFsQlExSXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU53UkN4RFFVRkRPMGxCUlVRN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenRQUVhkQ1J6dEpRVVZITEVGQlFVNHNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkRVQ3hSUVVGdlFpeEZRVU53UWl4WFFVRmpMRWxCUVZNc1JVRkRka0lzUzBGQk5FSXNSVUZETlVJc1IwRkJSeXhKUVVGblJEdFJRVVZ1UkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTnFSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRPMUZCUXpkQ0xFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNjVU5CUVhGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM2hGTEVsQlFVa3NhVUpCUVhOQ0xFTkJRVU03VVVGRE0wSXNTVUZCU1N4RFFVRkRPMWxCUTBnc2FVSkJRV2xDTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlEyaEVMRWRCUVVjc1JVRkRTQ3hMUVVGTExFVkJRMHdzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhGUVVGRkxGRkJRVkVzUTBGQlF5eEZRVU53UXl4VFFVRlRMRVZCUTFRc1UwRkJVeXhGUVVOVUxGTkJRVk1zUTBGRFZpeERRVUZETzFGQlEwb3NRMEZCUXp0UlFVRkRMRTlCUVU4c1EwRkJWU3hGUVVGRkxFTkJRVU03V1VGRGNFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVlVzUTBGQlF5eERRVUZETzFGQlEzQkRMRU5CUVVNN1VVRkRSQ3hKUVVGSkxFMUJRVmNzUTBGQlF6dFJRVU5vUWl4SlFVRkpMRU5CUVVNN1dVRkRTQ3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOMFJDeERRVUZETzFGQlFVTXNUMEZCVHl4RFFVRk5MRVZCUVVVc1EwRkJRenRaUVVOb1FpeE5RVUZOTEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zTmtKQlFUWkNMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGFrVXNRMEZCUXp0UlFVVkVMRTFCUVUwc1YwRkJWeXhIUVVGSExFTkJRVU1zVFVGQmQwSXNSVUZCUlN4RlFVRkZPMWxCUXk5RExFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNN1owSkJRVVVzVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJRM1JFTEU5QlFVOHNUVUZCVFN4RFFVRkRPMUZCUTJoQ0xFTkJRVU1zUTBGQlF6dFJRVVZHTEVsQlFVa3NTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeERRVUZETzFsQlF6RkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRUdG5Ra0ZCUlN4UFFVRlBMRTFCUVZjc1EwRkJRenRaUVVOMlF5eE5RVUZOTEVWQlFVVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRGNrSXNTVUZCU1N4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF6dG5Ra0ZEYmtJc09FTkJRVGhETzJkQ1FVTTVReXhQUVVGUExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1JVRkJSU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVUwc1EwRkJRenRaUVVOc1JDeFBRVUZQTEUxQlFWY3NRMEZCUXp0UlFVTnlRaXhEUVVGRE8xRkJSVVFzVDBGQlR5eFhRVUZYTEVOQlFVTXNUVUZCWVN4RFFVRk5MRU5CUVVNN1NVRkRla01zUTBGQlF6dEpRVVZFT3pzN096czdPenM3VDBGVFJ6dEpRVVZITEVGQlFVNHNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkRVaXhKUVVGWkxFVkJRMW9zVVVGQlowSXNSVUZEYUVJc1QwRkJORUlzUlVGRE5VSXNSMEZCUnl4SlFVRm5SRHRSUVVWdVJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU5zUkN4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4SlFVRkpMRWxCUVVrc1VVRkJVU3hGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU01UXl4SlFVRkpMR2xDUVVGelFpeERRVUZETzFGQlF6TkNMRWxCUVVrc1EwRkJRenRaUVVOSUxHbENRVUZwUWl4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVTm9SQ3hIUVVGSExFVkJRMGdzVFVGQlRTeEZRVU5PTEVOQlFVTXNTVUZCU1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRVZCUTNwRExGTkJRVk1zUlVGRFZDeFRRVUZUTEVWQlExUXNVMEZCVXl4RFFVTldMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0WlFVTndRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCVlN4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dFJRVU5FTEVsQlFVa3NUVUZCZFVJc1EwRkJRenRSUVVNMVFpeEpRVUZKTEVOQlFVTTdXVUZEU0N4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMR2xDUVVGcFFpeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTjBSQ3hEUVVGRE8xRkJRVU1zVDBGQlR5eERRVUZOTEVWQlFVVXNRMEZCUXp0WlFVTm9RaXhOUVVGTkxFbEJRVWtzYTBKQlFXdENMRU5CUVVNc2EwTkJRV3RETEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRkRVVzUTBGQlF6dFJRVU5FTEU5QlFVOHNUVUZCVFN4RFFVRkRPMGxCUTJoQ0xFTkJRVU03U1VGRlJEczdPenRQUVVsSE8wbEJRMDBzVTBGQlV6dFJRVU5vUWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVTg3V1VGRFppeEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRzFDUVVGdFFpeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRE5VUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRE8wbEJRM1JDTEVOQlFVTTdTVUZGUkRzN096dFBRVWxITzBsQlEwOHNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVFclFqdFJRVU55UkN4UFFVRlBMRzFDUVVGdFFpeERRVUZETEZWQlFWVXNRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUlVGQlJTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRka1VzUTBGQlF6dEpRVVZQTEdWQlFXVXNRMEZCUXl4VFFVRnJRanRSUVVONFF5eEpRVUZKTEVOQlFVTXNVMEZCVXp0WlFVRkZMRTlCUVU4c1UwRkJVeXhEUVVGRE8xRkJRMnBETEU5QlFVOHNSMEZCUnl4VFFVRlRMRlZCUVZVc1EwRkJRenRKUVVOb1F5eERRVUZETzBsQlJVUTdPenM3VDBGSlJ6dEpRVU5QTEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUTNSQ0xFZEJRU3RDTEVWQlF5OUNMRmxCUVhGQ08xRkJSWEpDTEU5QlFVOHNiVUpCUVcxQ0xFTkJRVU1zVjBGQlZ5eERRVU53UXl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlEzWkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRMWdzV1VGQldTeERRVU5pTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0UFFUSkNSenRKUVVOUExFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlEzcENMRWRCUVN0Q0xFVkJReTlDTEVkQlFWY3NSVUZEV0N4TlFVRk5MRWRCUVVjc1NVRkJTU3hGUVVOaUxFbEJRVmtzUlVGRFdpeG5Ra0ZCZDBNc1JVRkJSU3hGUVVNeFF5eHpRa0ZCYVVNc1JVRkRha01zVTBGQmEwSTdVVUZGYkVJc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFGQlF6TkRMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRSUVVONFF5eEpRVUZKTEVOQlFVTTdXVUZEU0N4TlFVRk5MRkZCUVZFc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlEyeERMRWRCUVVjc1JVRkRTQ3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVTm9ReXhEUVVGRE8xbEJRMFlzUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZEVkN4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4VlFVRlZMRzlDUVVGdlFpeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4SlFVRkpMRWRCUVVjc1JVRkJSU3hEUVVNeFNDeERRVUZETzFsQlEwWXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFbEJRVWtzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUXpGRkxFMUJRVTBzVFVGQlRTeEhRVUZITEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRkZCUVZFc1EwRkJRenRaUVVVMVJDeHpRa0ZCYzBJc1IwRkJSeXh6UWtGQmMwSXNSVUZCUlN4TlFVRk5PMmRDUVVOeVJDeERRVUZETEVOQlFVTXNjMEpCUVhOQ08yZENRVU40UWl4RFFVRkRMRU5CUVVNc1UwRkJVeXhEUVVGRE8xbEJRMlFzVFVGQlRTeGxRVUZsTEVkQlFXOUNPMmRDUVVOMlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4SlFVRkpMRVZCUVVVN1owSkJRM0pDTEdGQlFXRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETEUxQlFVMHNRMEZEYWtRc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRVZCUVVVc1JVRkJSVHR2UWtGRGJFSXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN2IwSkJReTlDTEU5QlFVOHNSMEZCUnl4RFFVRkRPMmRDUVVOaUxFTkJRVU1zUlVGRFJDeEZRVUV3UWl4RFFVTXpRanRuUWtGRFJDeHpRa0ZCYzBJc1JVRkJSU3hIUVVGSExFTkJRVU1zWTBGQll5eERRVUZETERCQ1FVRXdRaXhEUVVGRE8yOUNRVU53UlN4RFFVRkRMRU5CUVVNc2MwSkJRWE5DTEVsQlFVa3NVMEZCVXp0dlFrRkRja01zUTBGQlF5eERRVUZETEZOQlFWTXNSVUZCUlN4aFFVRmhPMkZCUXpkQ0xFTkJRVU03V1VGRlJpeFBRVUZQTEUxQlFVMHNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEdWQlFXVXNRMEZCUXl4RFFVRkRPMUZCUXpORUxFTkJRVU03VVVGQlF5eFBRVUZQTEVOQlFVMHNSVUZCUlN4RFFVRkRPMWxCUTJoQ0xFMUJRVTBzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVNelFpeERRVUZETzJkQ1FVRlRMRU5CUVVNN1dVRkRWQ3hKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRE8xbEJRMnhGTEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJRenRSUVVOc1FpeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVlBMSE5DUVVGelFpeERRVUZETEVkQlFTdENPMUZCUXpWRUxFOUJRVThzUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXl4alFVRmpMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc2IwSkJRVzlDTEVOQlFVTTdTVUZET1VVc1EwRkJRenRKUVVWUExHbENRVUZwUWl4RFFVRkRMRWxCUVZrN1VVRkRjRU1zVDBGQlR5eERRVUZETEVsQlFVa3NTVUZCU1N4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVTTVRaXhQUVVGUExFZEJRVWNzUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkRjRVFzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGVHl4dlFrRkJiMElzUTBGRE1VSXNZVUZCYzBNN1VVRkZkRU1zU1VGQlNTeERRVUZETEdGQlFXRTdXVUZCUlN4UFFVRlBMRk5CUVZNc1EwRkJRenRSUVVOeVF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFGQlF6bERMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRUdFpRVUZGTEU5QlFVOHNVMEZCVXl4RFFVRkRPMUZCUTNSRExFMUJRVTBzUjBGQlJ5eEhRVUV5UWl4RlFVRkZMRU5CUVVNN1VVRkRka01zUzBGQlN5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RlFVRkZMRXRCUVVzc1EwRkJReXhKUVVGSkxFOUJRVThzUlVGQlJTeERRVUZETzFsQlEyNURMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTm9SQ3hEUVVGRE8xRkJRMFFzVDBGQlR5eEhRVUZITEVOQlFVTTdTVUZEWWl4RFFVRkRPMGxCUlU4c2NVSkJRWEZDTzFGQlF6TkNMRTFCUVUwc1ZVRkJWU3hIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNZMEZCWXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVOdVJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4TlFVRk5MRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03VVVGRGJFTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhSUVVGUkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NUVUZCVFN4SFFVRkhMRU5CUVVNN1dVRkJSU3hQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU55UkN4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZETlVJc1EwRkJRenRKUVVWUExHOUNRVUZ2UWl4RFFVTXhRaXhWUVVGM1FpeEZRVU40UWl4TFFVRmhPMUZCUldJc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eE5RVUZOTEVsQlFVa3NTMEZCU3l4SlFVRkpMRU5CUVVNN1dVRkJSU3hQUVVGUExFVkJRVVVzUTBGQlF6dFJRVU5vUkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhEUVVGRExFZEJRVWNzVlVGQlZTeERRVUZETEVOQlFVTTdVVUZEYkVNc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4TFFVRkxMRVZCUVVVc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlEycEVMRTFCUVUwc1RVRkJUU3hIUVVGcFFpeEZRVUZGTEVOQlFVTTdVVUZEYUVNc1QwRkJUeXhOUVVGTkxFTkJRVU1zVFVGQlRTeEhRVUZITEUxQlFVMHNTVUZCU1N4VFFVRlRMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGRGJFUXNUVUZCVFN4SFFVRkhMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1UwRkJVeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETzFsQlEzcEVMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWRCUVVjc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dFpRVU0zUXl4SlFVRkpMRk5CUVZNc1JVRkJSU3hEUVVGRE8yZENRVU5rTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03V1VGRGVrSXNRMEZCUXp0UlFVTklMRU5CUVVNN1VVRkRSQ3hQUVVGUExFMUJRVTBzUTBGQlF6dEpRVU5vUWl4RFFVRkRPMGxCUlU4c2MwSkJRWE5DTEVOQlF6VkNMRWRCUVN0Q08xRkJSUzlDTEUxQlFVMHNTMEZCU3l4SFFVRjFRanRaUVVOb1F6dG5Ra0ZEUlN4TFFVRkxMRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eExRVUZMTzJkQ1FVTjRRaXhaUVVGWkxFVkJRVVVzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpPMmRDUVVOMFF5eGhRVUZoTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhoUVVGaE8yZENRVU40UXl4UFFVRlBMRVZCUVVVc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eFBRVUZQTzJGQlF6ZENPMU5CUTBZc1EwRkJRenRSUVVWR0xFbEJRVWtzWVVGQllTeEhRVUZITEVsQlFVa3NRMEZCUXl4NVFrRkJlVUlzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1VVRkRPVVFzWVVGQllTeEhRVUZITEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1lVRkJZU3hEUVVGRE8xbEJRekZETEVOQlFVTXNRMEZCUXl4aFFVRmhPMWxCUTJZc1EwRkJReXhEUVVGRExFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdVVUZEY0VJc1RVRkJUU3hUUVVGVExFZEJRMklzWVVGQllTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJhVUlzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVU51UlN4TlFVRk5MRTFCUVUwc1IwRkJSeXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhIUVVGSExFdEJRVXNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOd1JTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwN1dVRkJSU3hQUVVGUExFdEJRVXNzUTBGQlF6dFJRVVZxUXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXp0UlFVTXZRaXhOUVVGTkxGZEJRVmNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNjVUpCUVhGQ0xFVkJRVVVzUTBGQlF6dFJRVU5xUkN4TFFVRkxMRTFCUVUwc1IwRkJSeXhKUVVGSkxFMUJRVTBzUlVGQlJTeERRVUZETzFsQlEzcENMRTFCUVUwc1ZVRkJWU3hIUVVGSExFZEJRVWNzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRPMWxCUXpsQ0xFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNN1owSkJRM2hDTEUxQlFVMHNTVUZCU1N4blFrRkJaMElzUTBGRGVFSXNjVU5CUVhGRExFZEJRVWNzWjBOQlFXZERMRU5CUTNwRkxFTkJRVU03V1VGRFNpeERRVUZETzFsQlEwUXNUVUZCVFN4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRlZCUVZVc1JVRkJSU3hYUVVGWExFTkJRVU1zUTBGQlF6dFpRVU4wUlN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETzJkQ1FVTjJRaXhOUVVGTkxFbEJRVWtzWjBKQlFXZENMRU5CUTNoQ0xESkRRVUV5UXl4SFFVRkhMR2REUVVGblF5eERRVU12UlN4RFFVRkRPMWxCUTBvc1EwRkJRenRaUVVORUxFdEJRVXNzVFVGQlRTeE5RVUZOTEVsQlFVa3NWVUZCVlN4RlFVRkZMRU5CUVVNN1owSkJRMmhETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU03YjBKQlEzSkNMRTFCUVUwc1NVRkJTU3huUWtGQlowSXNRMEZEZUVJc1owTkJRV2RETEVkQlFVY3NiMEpCUVc5Q0xFTkJRM2hFTEVOQlFVTTdaMEpCUTBvc1EwRkJRenRuUWtGRFJDeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRPMjlDUVVOVUxFdEJRVXNzUlVGQlJTeEhRVUZITzI5Q1FVTldMRmxCUVZrc1JVRkJSU3hOUVVGTkxFTkJRVU1zVVVGQlVUdHZRa0ZETjBJc1lVRkJZU3hGUVVGRkxFMUJRVTBzUTBGQlF5eExRVUZMTzI5Q1FVTXpRaXhQUVVGUExFVkJRVVVzVFVGQlRTeERRVUZETEU5QlFVOHNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVTg3YVVKQlF5OURMRU5CUVVNc1EwRkJRenRaUVVOTUxFTkJRVU03VVVGRFNDeERRVUZETzFGQlJVUXNUMEZCVHl4TFFVRkxMRU5CUVVNN1NVRkRaaXhEUVVGRE8wbEJSVThzUzBGQlN5eERRVUZETEdsRFFVRnBReXhEUVVNM1F5eEhRVUVyUWl4RlFVTXZRaXhIUVVGWExFVkJRMWdzU1VGQll5eEZRVU5rTEZsQlFXZEVMRVZCUTJoRUxGZEJRU3RDTEVWQlF5OUNMRk5CUVd0Q08xRkJSV3hDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4cFEwRkJhVU1zUTBGQlF5eERRVUZETzFGQlEycEZMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dFJRVU55UkN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRFpDUVVFMlFpeEZRVUZGTEVOQlFVTTdVVUZEY0VVc1RVRkJUU3hOUVVGTkxFZEJRVWNzVFVGQlRTeFBRVUZQTEVOQlFVTXNhVUpCUVdsQ0xFVkJRVVVzUTBGQlF6dFJRVU5xUkN4TlFVRk5MR0ZCUVdFc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4VFFVRlRMRU5CUVVNN1VVRkRjRVFzVFVGQlRTeE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMR0ZCUVdFc1JVRkJSVHRaUVVNNVFpeFhRVUZYTEVWQlFVVTdaMEpCUTFnc1YwRkJWeXhGUVVGRkxHZENRVUZuUWl4RFFVRkRMRmRCUVZjN1owSkJRM3BETEZWQlFWVXNSVUZCUlN4blFrRkJaMElzUTBGQlF5eFZRVUZWTzJGQlEzaERPMWxCUTBRc1MwRkJTeXhGUVVGRkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3p0WlFVTjRRaXhKUVVGSkxFVkJRVVVzVDBGQlR6dFRRVU5HTEVOQlFVTXNRMEZCUXp0UlFVVm1MRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc05FSkJRVFJDTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRla1VzVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4aFFVRmhMRVZCUVVVc1EwRkJRenRSUVVWd1F5eEpRVUZKTEVOQlFVTTdXVUZEU0N4TlFVRk5MRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRVU1zYVVKQlFXbENMRVZCUVVVN1owSkJRM1pETEZGQlFWRXNSVUZCUlN4aFFVRmhPMmRDUVVOMlFpeE5RVUZOTzJkQ1FVTk9MRk5CUVZNc1JVRkJSVHR2UWtGRFZDeFBRVUZQTEVWQlFVVXNTVUZCU1R0dlFrRkRZaXhYUVVGWExFVkJRVVVzU1VGQlNTeERRVUZETERKQ1FVRXlRaXhEUVVGRExFdEJRVXNzUTBGQlF6dHBRa0ZEY2tRN1owSkJRMFFzVDBGQlR5eEZRVUZGTzI5Q1FVTlFMRmRCUVZjc1JVRkJSU3huUWtGQlowSXNRMEZCUXl4WFFVRlhPMjlDUVVONlF5eEhRVUZITEVWQlFVVXNaMEpCUVdkQ0xFTkJRVU1zVlVGQlZUdHBRa0ZEYWtNN1lVRkRSaXhEUVVGRExFTkJRVU03V1VGRlNDeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRTlCUVU4c1EwRkJReXhWUVVGVkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRaUVVNNVJDeE5RVUZOTEZGQlFWRXNSMEZCUnl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVOc1F5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMR0ZCUVdFc1JVRkRla0lzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkRhRU1zUTBGQlF6dFpRVU5HTEUxQlFVMHNWMEZCVnl4SFFVRkhMRkZCUVZFc1EwRkJReXhwUWtGQmFVSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRaUVVWd1JDeEpRVUZKTEZsQlFWa3NSVUZCUlN4RFFVRkRPMmRDUVVOcVFpeFhRVUZYTEVOQlFVTXNXVUZCV1N4RFFVRkRMRmxCUVZrc1EwRkJReXhEUVVGRE8xbEJRM3BETEVOQlFVTTdXVUZGUkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhMUVVGTE8ybENRVU53UWl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEU5QlFVOHNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhYUVVGWExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMmxDUVVNeFJDeE5RVUZOTEVOQlFVTXNRMEZCUXl4UlFVRlJMRVZCUVhkQ0xFVkJRVVVzUTBGQlF5eFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOcVJTeEpRVUZKTEZOQlFWTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRuUWtGRGNrSXNWMEZCVnl4RFFVRkRMR2xDUVVGcFFpeERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRPMWxCUXpORExFTkJRVU03V1VGRlJDeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVTlVMSEZDUVVGeFFpeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4SlFVRkpMRWRCUVVjc1kwRkJZeXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU1zV1VGQldTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRMjVLTEVOQlFVTTdXVUZGUml4TlFVRk5MRTFCUVUwc1IwRkJSeXhOUVVGTkxGZEJRVmNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVOcVJDeFBRVUZQTEZWQlFWVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRGFrTXNRMEZCUXp0UlFVRkRMRTlCUVU4c1EwRkJUU3hGUVVGRkxFTkJRVU03V1VGRGFFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6TkNMRU5CUVVNN1owSkJRVk1zUTBGQlF6dFpRVU5VTEU5QlFVOHNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRSUVVOMlFpeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVlBMRzlDUVVGdlFpeERRVU14UWl4TFFVRjVRanRSUVVWNlFpeE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJPRUlzUTBGQlF6dFJRVU4wUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhEUVVGRExFbEJRWE5DTEVWQlFVVXNSVUZCUlR0WlFVTjZReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eEhRVUZITEVsQlFVa3NRMEZCUXl4WlFVRlpMRWxCUVVrc1NVRkJTU3hEUVVGRExHRkJRV0VzU1VGQlNTeEZRVUZGTEVWQlFVVXNRMEZCUXp0WlFVTXZSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRPMmRDUVVGRkxFOUJRVTg3V1VGRE4wSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1VVRkJVU3hKUVVGSkxFTkJRVU1zUzBGQlN5eEpRVUZKTEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRaUVVOc1JDeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1JVRkJSVHRuUWtGRFppeEhRVUZITEVsQlFVazdaMEpCUTFBc1NVRkJTVHRoUVVOTUxFTkJRVU1zUTBGQlF6dFJRVU5NTEVOQlFVTXNRMEZCUXp0UlFVVkdMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEZGtJc1QwRkJUeXhEUVVGRE8xbEJRMDRzUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTenRaUVVONFFpeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhaUVVGWk8xbEJRM1JETEdGQlFXRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExHRkJRV0U3VTBGRGVrTXNRMEZCUXl4RFFVRkRPMUZCUlVnc1QwRkJUeXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRM1JETEVOQlFVTTdTVUZGVHl4TFFVRkxMRU5CUVVNc05rSkJRVFpDTzFGQlNYcERMRTFCUVUwc1YwRkJWeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZEZWtNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eDFRa0ZCZFVJc1EwRkRjRU1zUTBGQlF6dFJRVU5HTEUxQlFVMHNWVUZCVlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGRGVFTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXh6UWtGQmMwSXNRMEZEYmtNc1EwRkJRenRSUVVOR0xFOUJRVThzUlVGQlJTeFhRVUZYTEVWQlFVVXNWVUZCVlN4RlFVRkZMRU5CUVVNN1NVRkRja01zUTBGQlF6dEpRVVZQTEV0QlFVc3NRMEZCUXl3MFFrRkJORUlzUTBGQlF5eExRVUV5UWp0UlFVTndSU3hOUVVGTkxGZEJRVmNzUjBGQmQwSXNSVUZCUlN4RFFVRkRPMUZCUXpWRExFMUJRVTBzV1VGQldTeEhRVUYzUWl4RlFVRkZMRU5CUVVNN1VVRkROME1zVFVGQlRTeEpRVUZKTEVkQlFYZENMRVZCUVVVc1EwRkJRenRSUVVOeVF5eExRVUZMTEUxQlFVMHNTVUZCU1N4SlFVRkpMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJRM3BDTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGRGNFTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1NVRkJTU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNRMEZEY0VNc1EwRkJRenRaUVVOR0xFMUJRVTBzVVVGQlVTeEhRVU5hTEVsQlFVa3NRMEZCUXl4aFFVRmhMRWxCUVVrc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1dVRkROVVFzVjBGQlZ5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSenRuUWtGRGRrSXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXp0blFrRkRNVU1zVlVGQlZTeEZRVUZGTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTFCUVUwc1JVRkJSVHRuUWtGRE0wSXNWMEZCVnl4RlFVRkZPMjlDUVVOWUxEQkNRVUV3UWl4RlFVRkZMRkZCUVZFN2IwSkJRM0JETEdkQ1FVRm5RaXhGUVVGRkxGRkJRVkU3YVVKQlF6TkNPMkZCUTBZc1EwRkJRenRaUVVOR0xGbEJRVmtzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjN1owSkJRM2hDTEdGQlFXRXNSVUZCUlN4SlFVRkpPMmRDUVVOdVFpeGpRVUZqTEVWQlFVVXNTVUZCU1R0blFrRkRjRUlzVjBGQlZ5eEZRVUZGTEVsQlFVazdaMEpCUTJwQ0xGZEJRVmNzUlVGQlJTeEpRVUZKTzJGQlEyeENMRU5CUVVNN1dVRkRSaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVazdaMEpCUTNKRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNTMEZCU3p0blFrRkRha0lzUzBGQlN5eEZRVUZGTEVWQlFVVTdZVUZEVml4RFFVRkRPMWxCUTBZc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTjZReXhEUVVGRE8xRkJSVVFzVDBGQlR6dFpRVU5NTEVsQlFVa3NSVUZCUlN4bFFVRmxPMWxCUTNKQ0xFOUJRVThzUlVGQlJTeFBRVUZQTzFsQlEyaENMRTFCUVUwc1JVRkJSVHRuUWtGRFRpeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhMUVVGTE8yRkJRMmhETzFsQlEwUXNZVUZCWVN4RlFVRkZMRWxCUVVrN1dVRkRia0lzUzBGQlN5eEZRVUZGTEZkQlFWYzdXVUZEYkVJc1VVRkJVU3hGUVVGRkxFVkJRVVU3V1VGRFdpeFJRVUZSTEVWQlFVVTdaMEpCUTFJc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZPMjlDUVVOeVFpeExRVUZMTEVWQlFVVXNXVUZCV1R0cFFrRkRjRUk3WVVGRFJqdFRRVU5HTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlU4c01rSkJRVEpDTEVOQlFVTXNTMEZCTWtJN1VVRkROMFFzVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEzaEZMRU5CUVVNN1NVRkZUeXhsUVVGbExFTkJRVU1zVVVGQlowSTdVVUZEZEVNc1RVRkJUU3hKUVVGSkxFZEJRVWNzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFJRVU4wUkN4UFFVRlBMRWxCUVVrc1MwRkJTeXhYUVVGWExFbEJRVWtzU1VGQlNTeExRVUZMTEZkQlFWY3NRMEZCUXp0SlFVTjBSQ3hEUVVGRE8wbEJSVThzVjBGQlZ5eERRVUZETEZGQlFXZENPMUZCUTJ4RExFMUJRVTBzVTBGQlV5eEhRVUZITEZGQlFWRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1kwRkJZeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzWkVMRTlCUVU4c1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOcVF5eERRVUZETzBsQlJVOHNZVUZCWVN4RFFVRkRMRkZCUVdkQ08xRkJRM0JETEVsQlFVa3NaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU03V1VGQlJTeFBRVUZQTEZGQlFWRXNRMEZCUXp0UlFVTndSQ3hQUVVGUExGZEJRVmNzVVVGQlVTeEZRVUZGTEVOQlFVTTdTVUZETDBJc1EwRkJRenRKUVVWUExFdEJRVXNzUTBGQlF5eFpRVUZaTEVOQlFVTXNUVUZCZDBJN1VVRkRha1FzU1VGQlNTeERRVUZETEUxQlFVMDdXVUZCUlN4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExIRkRRVUZ4UXl4RFFVRkRMRU5CUVVNN1VVRkROVVVzU1VGQlNTeE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJRenRaUVVGRkxFOUJRVThzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVNMVJDeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU03VVVGRE9VSXNTVUZCU1N4NVFrRkJlVUlzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRPMWxCUVVVc1QwRkJUeXhQUVVGUExFTkJRVU03VVVGRE5VUXNUVUZCVFN4TFFVRkxMRWRCUVVjc1RVRkJUU3hGUVVGRkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkRjRVVzU1VGQlNTeExRVUZMTEVWQlFVVXNWMEZCVnl4RlFVRkZMRVZCUVVVc1EwRkJRenRaUVVONlFpeFBRVUZQTEUxQlFVMHNNRUpCUVRCQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdVVUZEYkVRc1EwRkJRenRSUVVORUxFOUJRVThzUTBGQlF5eE5RVUZOTEZWQlFWVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzBsQlF5OURMRU5CUVVNN1NVRkZSRHM3T3pzN08wOUJUVWM3U1VGRFRTeFZRVUZWTEVOQlFYTkNMRWRCUVcxQ08xRkJRekZFTEU5QlFVOHNiVUpCUVcxQ0xFTkJRVU1zVlVGQlZTeERRVUZKTEVkQlFVY3NRMEZCUXl4RFFVRkRPMGxCUTJoRUxFTkJRVU03U1VGRlJEczdPenM3T3pzN1QwRlJSenRKUVVOSUxFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1EwRkRja0lzUjBGQkswSXNSVUZETDBJc1IwRkJWeXhGUVVOWUxFbEJRVmtzUlVGRFdpeGhRVUZ6UXl4RlFVTjBReXh6UWtGQmMwTXNSVUZEZEVNc1UwRkJhMEk3VVVGRmJFSXNTVUZCU1N4SlFVRkpMRU5CUVVNc2MwSkJRWE5DTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOeVF5eE5RVUZOTEZWQlFWVXNSMEZCUnl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRhRVFzVFVGQlRTeFpRVUZaTEVkQlFVY3NTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMWxCUXpsRUxFMUJRVTBzVjBGQlZ5eEhRVUZITEVsQlFVa3NRMEZCUXl4elFrRkJjMElzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WlFVTnlSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eHBRMEZCYVVNc1EwRkRNME1zUjBGQlJ5eEZRVU5JTEVkQlFVY3NSVUZEU0N4VlFVRlZMRVZCUTFZc1dVRkJXU3hGUVVOYUxGZEJRVmNzUlVGRFdDeFRRVUZUTEVOQlExWXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkRSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlEzSkNMRWRCUVVjc1JVRkRTQ3hIUVVGSExFVkJRMGdzU1VGQlNTeEZRVU5LTEVsQlFVa3NSVUZEU2l4aFFVRmhMRVZCUTJJc2MwSkJRWE5DTEVWQlEzUkNMRk5CUVZNc1EwRkRWaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFT3pzN096czdPenRQUVZGSE8wbEJRMGdzUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhEUVVOMlFpeEhRVUVyUWl4RlFVTXZRaXhIUVVGWExFVkJRMWdzU1VGQldTeEZRVU5hTEdGQlFYTkRMRVZCUTNSRExITkNRVUZ6UXl4RlFVTjBReXhUUVVGclFqdFJRVVZzUWl4UFFVRlBMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRM0pDTEVkQlFVY3NSVUZEU0N4SFFVRkhMRVZCUTBnc1MwRkJTeXhGUVVOTUxFbEJRVWtzUlVGRFNpeGhRVUZoTEVWQlEySXNjMEpCUVhOQ0xFVkJRM1JDTEZOQlFWTXNRMEZEVml4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlExZ3NVMEZCYVVJc1JVRkRha0lzUjBGQlJ5eEpRVUZ2UkR0UlFVVjJSQ3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUVVVc1pVRkJaU3hEUVVGRExGTkJRVk1zUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZETTBRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCQ0xFOUJRVThzU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVNelFpeFBRVUZQTEVOQlFVTXNRMEZCUXl4RFFVRXJRaXhGUVVONFF5eFRRVUZUTEVWQlExUXNRMEZCUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRExFVkJRMnBDTEZOQlFWTXNSVUZEVkN4VFFVRlRMRU5CUTFZc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdPenM3TzA5QlRVYzdTVUZEVFN4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVOeVFpeEhRVUZITEVsQlFXOUVPMUZCUlhaRUxHdEVRVUZyUkR0UlFVTnNSQ3hOUVVGTkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNNVFpeEpRVUZKTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVOb1FpeEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhYUVVGWExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTMEZCU3l4cFFrRkJhVUlzUTBGQlF5eERRVUZETzFsQlEyaEZMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTTdVVUZEZEVJc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlJEczdPenM3TzA5QlRVYzdTVUZEU0N4TlFVRk5MRU5CUVVNc1YwRkJWeXhEUVVOb1FpeFBRVUZuUWl4RlFVTm9RaXhOUVVGclFpeEZRVU5zUWl4WlFVRnhRanRSUVVWeVFpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1VVRkRNME1zVFVGQlRTeFBRVUZQTEVkQlFVY3NTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhQUVVGUExFVkJRVVVzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNwRUxFbEJRVWtzVVVGQmEwSXNRMEZCUXp0UlFVTjJRaXhKUVVGSkxFTkJRVU03V1VGRFNDeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVTlFMSGRDUVVGM1FpeE5RVUZOTEVOQlFVTXNZVUZCWVN4aFFVRmhMRmxCUVZrc1NVRkJTU3hOUVVGTkxFTkJRVU1zV1VGQldTeHBRa0ZCYVVJc1RVRkJUU3hEUVVGRExFOUJRVThzUlVGQlJTeERRVU01U0N4RFFVRkRPMWxCUTBZc1dVRkJXU3hIUVVGSExGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQldTeERRVUZETzFsQlEycEZMRkZCUVZFc1IwRkJSeXhQUVVGUExFTkJRVU1zVjBGQlZ5eERRVUZETEUxQlFVMHNRMEZCUXl4aFFVRmhMRVZCUVVVc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRGNrVXNRMEZCUXp0UlFVRkRMRTlCUVU4c1EwRkJUU3hGUVVGRkxFTkJRVU03V1VGRGFFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6TkNMRU5CUVVNN1VVRkRSQ3hQUVVGUExGRkJRVkVzUTBGQlF6dEpRVU5zUWl4RFFVRkRPMGxCUlVRN096czdPenRQUVUxSE8wbEJRMGdzVFVGQlRTeERRVUZETEZWQlFWVXNRMEZCUXl4UFFVRm5RaXhGUVVGRkxGZEJRVzFDTzFGQlEzSkVMRTFCUVUwc1IwRkJSeXhIUVVGSExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8xRkJRM3BETEVsQlFVa3NUMEZCWjBJc1EwRkJRenRSUVVOeVFpeEpRVUZKTEVOQlFVTTdXVUZEU0N4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExIbENRVUY1UWl4WFFVRlhMRVZCUVVVc1EwRkJReXhEUVVGRE8xbEJRMnhFTEU5QlFVOHNSMEZCUnl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETzFGQlF6VkRMRU5CUVVNN1VVRkJReXhQUVVGUExFTkJRVTBzUlVGQlJTeERRVUZETzFsQlEyaENMRTFCUVUwc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTXpRaXhEUVVGRE8xRkJSVVFzVDBGQlR5eFBRVUZQTEVOQlFVTTdTVUZEYWtJc1EwRkJRenRKUVVWRU96czdPenM3VDBGTlJ6dEpRVU5JTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1ZVRkJWU3hEUVVOeVFpeEhRVUVyUWl4RlFVTXZRaXhOUVVGclFpeEZRVU5zUWl4TlFVRmxPMUZCUldZc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZET1VJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFVkJRM2hETEUxQlFVMHNSVUZEVGl4SFFVRkhMRU5CUTBvc1EwRkJXU3hEUVVGRE8wbEJRMmhDTEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTklMRTFCUVUwc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQmEwSTdVVUZEYWtNc1RVRkJUU3hIUVVGSExFZEJRVWNzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEzcERMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zYzBOQlFYTkRMRTFCUVUwc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEyaEZMRWxCUVVrc1ZVRkJWU3hIUVVGdlFpeE5RVUZOTEVOQlFVTXNUMEZCTUVJc1EwRkJRenRSUVVWd1JTeEpRVUZKTEU5QlFVOHNWVUZCVlN4TFFVRkxMRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRMjVETEVsQlEwVXNWVUZCVlN4RFFVRkRMRXRCUVVzc1EwRkRaQ3h6UlVGQmMwVXNRMEZEZGtVc1JVRkRSQ3hEUVVGRE8yZENRVU5FTEZWQlFWVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0WlFVTXZReXhEUVVGRE8ybENRVUZOTEVOQlFVTTdaMEpCUTA0c1NVRkJTU3hEUVVGRE8yOUNRVU5JTEZWQlFWVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eFpRVUZaTEVOQlFVTXNWVUZCVlN4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU03WjBKQlEyaEZMRU5CUVVNN1owSkJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0dlFrRkRjRUlzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZEY2tJc01rTkJRVEpETEZWQlFWVXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkRPVVFzUTBGQlF6dG5Ra0ZEU2l4RFFVRkRPMWxCUTBnc1EwRkJRenRSUVVOSUxFTkJRVU03VVVGRlJDeE5RVUZOTEdOQlFXTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExGTkJRVk1zUTBGQlF5eFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTTVSQ3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEhGRFFVRnhReXhOUVVGTkxFTkJRVU1zV1VGQldTeEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjBSU3hQUVVGUExFbEJRVWtzVFVGQlRTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRVZCUVVVc1kwRkJZeXhGUVVGRk8xbEJRM0pFTEdsRFFVRnBReXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1IwRkJSeXhKUVVGSkxFZEJRVWNzU1VGQlNUdFpRVU42UlN3NFFrRkJPRUlzUlVGQlJTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRWxCUVVrc1JVRkJSU3hEUVVGRExFZEJRVWNzU1VGQlNTeEhRVUZITEVsQlFVazdVMEZEZGtVc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF6dEpRVVZFT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dFBRWFZDUnp0SlFVTklMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVU40UWl4TlFVRmpMRVZCUTJRc1RVRkJhMElzUlVGRGJFSXNSMEZCSzBJN1VVRkZMMElzVFVGQlRTeEhRVUZITEVkQlFVY3NUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTTdVVUZETlVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGRFVDeG5RMEZCWjBNc1RVRkJUU3hEUVVGRExFdEJRVXNzVlVGQlZTeE5RVUZOTEVOQlFVTXNkVUpCUVhWQ0xFVkJRVVVzUTBGRGRrWXNRMEZCUXp0UlFVTkdMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzVjBGQlZ5eERRVU5vUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhGUVVOYUxFMUJRVTBzUTBGQlF5eDFRa0ZCT0VJc1EwRkRkRU1zUTBGQlF6dFJRVU5HTEVsQlFVa3NRMEZCUXp0WlFVTklMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRMUFzYjBOQlFXOURMRmRCUVZjc1EwRkJReXgxUWtGQmRVSXNRMEZCUXl4UlFVRlJMRU5CUVVNc1YwRkJWeXhEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETEVWQlFVVXNRMEZETTBjc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGQlF5eFBRVUZQTEVOQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTNCQ0xFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNPRU5CUVRoRExFVkJRVVVzUTBGQlZTeERRVUZETEVOQlFVTTdVVUZEZUVVc1EwRkJRenRSUVVWRUxFbEJRVWtzVFVGQll5eERRVUZETzFGQlEyNUNMRTFCUVUwc1MwRkJTeXhIUVVGSExFZEJRVWNzUlVGQlJTeEhRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjJRaXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMWxCUTJoQ0xFMUJRVTBzUjBGQlJ5eE5RVUZOTEZOQlFWTXNRMEZCUXl4TlFVRk5MRU5CUVVNc2MwSkJRVFpDTEVOQlFVTXNRMEZCUXp0UlFVTnFSU3hEUVVGRE8yRkJRVTBzUTBGQlF6dFpRVU5PTERoRVFVRTRSRHRaUVVNNVJDeHZSRUZCYjBRN1dVRkRjRVFzTUVOQlFUQkRPMWxCUXpGRExFdEJRVXM3V1VGRFRDeDFRMEZCZFVNN1dVRkRka01zTkVOQlFUUkRPMWxCUXpWRExESkRRVUV5UXp0WlFVTXpReXcwUWtGQk5FSTdXVUZETlVJc2EwTkJRV3RETzFsQlEyeERMRTFCUVUwN1dVRkRUaXhuUTBGQlowTTdXVUZEYUVNc09FSkJRVGhDTzFsQlF6bENMRTFCUVUwc1NVRkJTU3huUWtGQlowSXNRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eERRVUZETzFGQlEzQkVMRU5CUVVNN1VVRkZSQ3hOUVVGTkxFOUJRVThzUjBGQlJ6dFpRVU5rTEUxQlFVMDdXVUZEVGl4UlFVRlJMRVZCUVVVc1VVRkJVVHRaUVVOc1FpeE5RVUZOTEVWQlFVVXNUVUZCVFR0WlFVTmtMRFJEUVVFMFF6dFpRVU0xUXl4bFFVRmxMRVZCUVVVc1IwRkJSeXhGUVVGRk8yZENRVU53UWl4UFFVRlBMRVZCUVVVc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4SlFVRkpMRWRCUVVjc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eDNRa0ZCZDBJN1dVRkRMMFlzUTBGQlF6dFpRVU5FTEdOQlFXTXNSVUZCUlN4SFFVRkhMRVZCUVVVN1owSkJRMjVDTEU5QlFVOHNSVUZCUlN4UlFVRlJMRVZCUVVVc1NVRkJTU3hEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NSMEZCUnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExHZENRVUZuUWl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExIbENRVUY1UWp0WlFVTXZSaXhEUVVGRE8xbEJRMFFzWVVGQllTeEZRVUZGTEVkQlFVY3NSVUZCUlR0blFrRkRiRUlzVDBGQlR5eEZRVUZGTEZGQlFWRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzU1VGQlNTeEhRVUZITEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1pVRkJaU3hEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETEhkQ1FVRjNRanRaUVVNM1JpeERRVUZETzFsQlEwUXNiVUpCUVcxQ0xFVkJRVVVzUjBGQlJ5eEZRVUZGTzJkQ1FVTjRRaXhQUVVGUExFVkJRVVVzVVVGQlVTeEZRVUZGTEVsQlFVa3NRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhKUVVGSkxFZEJRVWNzUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4bFFVRmxMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zZFVKQlFYVkNPMWxCUXpWR0xFTkJRVU03VTBGRFowSXNRMEZCUXp0UlFVVndRaXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEdsQ1FVRnBRaXhOUVVGTkxFTkJRVU1zUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTXpReXhOUVVGTkxFOUJRVThzUjBGQlJ5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkZha01zYVVKQlFXbENPMUZCUTJwQ0xFbEJRVWtzVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlN4RFFVRkRPMWxCUTJZc1QwRkJUeXhEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhGUVVGRk8yZENRVU4yUXl4TFFVRkxMRU5CUVVNc1RVRkJhMElzUlVGQlJTeFBRVUZaTEVWQlFVVXNVVUZCWlR0dlFrRkRja1FzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxGRkJRVkVzUTBGQlF5eERRVUZETzI5Q1FVTjZReXhMUVVGTExFVkJRVVVzUTBGQlF6dG5Ra0ZEVml4RFFVRkRPMkZCUTBZc1EwRkJReXhEUVVGRE8xRkJRMHdzUTBGQlF6dFJRVVZFTEU5QlFVOHNUMEZCVHl4RFFVRkRPMGxCUTJwQ0xFTkJRVU03U1VGRlJEczdPenM3T3pzN1QwRlJSenRKUVVOTkxGRkJRVkU3VVVGRFppeFBRVUZQTEVsQlFVa3NiVUpCUVcxQ0xFTkJRVU1zWlVGQlpTeERRVUZETEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wbEJReTlFTEVOQlFVTTdTVUZGUkRzN096czdPMDlCVFVjN1NVRkRUeXhOUVVGTkxFTkJRVU1zVlVGQlZTeERRVU42UWl4SFFVRnJRenRSUVVWc1F5eFBRVUZQTzFGQlExQXNjVU5CUVhGRE8xRkJRM0pETEd0RVFVRnJSRHRSUVVOc1JDeE5RVUZOTzFGQlEwNHNTVUZCU1R0UlFVTktMSGRFUVVGM1JEdFJRVVY0UkN4SlFVRkpMRWRCUVVjc1IwRkJSeXhQUVVGUExFZEJRVWNzUzBGQlN5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXp0UlFVTjBSQ3hKUVVGSkxFZEJRVWNzV1VGQldTeFpRVUZaTEVsQlFVa3NSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZETEVsQlFVa3NTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJRenRaUVVONlJTeEhRVUZITEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMUZCUTNCRExFTkJRVU03VVVGRlJDeEpRVU5GTEVkQlFVY3NXVUZCV1N4WlFVRlpPMWxCUXpOQ0xFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFR0WlFVTnNRaXhIUVVGSExFTkJRVU1zU1VGQlNTeExRVUZMTEVWQlFVVTdXVUZEWml4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4UlFVRlJMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRVZCUTNaRUxFTkJRVU03V1VGRFJDeEhRVUZITEVkQlFVY3NSMEZCUnl4SFFVRkhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RFFVRkRPMUZCUTNCRExFTkJRVU03VVVGRlJDeEpRVUZKTEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc2IwSkJRVzlDTEVOQlFVTTdXVUZEY0VNc1QwRkJUeXhKUVVGSkxIRkNRVUZ4UWl4RFFVRkRMRWRCUVVjc1EwRkJUU3hEUVVGRE8xRkJSVGRETEVsQlFVa3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXh0UWtGQmJVSXNRMEZCUXp0WlFVTnVReXhQUVVGUExFbEJRVWtzZFVKQlFYVkNMRU5CUVVNc1IwRkJSeXhEUVVGTkxFTkJRVU03VVVGRkwwTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExEUkNRVUUwUWl4RFFVRkRPMWxCUXpWRExFOUJRVThzU1VGQlNTeHpRa0ZCYzBJc1EwRkJReXhIUVVGSExFTkJRVTBzUTBGQlF6dFJRVVU1UXl4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zZFVKQlFYVkNMRU5CUVVNN1dVRkRka01zVDBGQlR5eEpRVUZKTEhkQ1FVRjNRaXhEUVVGRExFZEJRVWNzUTBGQlRTeERRVUZETzFGQlJXaEVMRWxCUVVrc1IwRkJSeXhaUVVGWkxFdEJRVXNzU1VGQlN5eEhRVUZYTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1dVRkRPVU1zVVVGQlV5eEhRVUZYTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNN1owSkJRekZDTEV0QlFVc3NRMEZCUXp0dlFrRkRTaXhQUVVGUExFbEJRVWtzWjBKQlFXZENMRU5CUVVNc1IwRkJSeXhEUVVGTkxFTkJRVU03V1VGRE1VTXNRMEZCUXp0UlFVTklMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1EwRkJRenRaUVVOd1F5eFBRVUZQTEVsQlFVa3NaVUZCWlN4RFFVRkRMRWRCUVVjc1EwRkJUU3hEUVVGRE8xRkJRM1pETEVsQlFVa3NSMEZCUnl4RFFVRkRMRkZCUVZFc1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETzFsQlFVVXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhIUVVGSExFTkJRVTBzUTBGQlF6dFJRVU42UlN4SlFVRkpMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXp0WlFVRkZMRTlCUVU4c1NVRkJTU3hoUVVGaExFTkJRVU1zUjBGQlJ5eERRVUZOTEVOQlFVTTdVVUZEZWtVc1NVRkJTU3hIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEdWQlFXVXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkRjRU1zVDBGQlR5eEpRVUZKTEdWQlFXVXNRMEZCUXl4SFFVRkhMRU5CUVUwc1EwRkJRenRSUVVOMlF5eEpRVUZKTEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1ZVRkJWU3hEUVVGRExFbEJRVWtzUTBGQlF6dFpRVUZGTEU5QlFVOHNTVUZCU1N4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGTkxFTkJRVU03VVVGRGJrVXNTVUZCU1N4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExGZEJRVmNzUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZCUlN4UFFVRlBMRWxCUVVrc1YwRkJWeXhEUVVGRExFZEJRVWNzUTBGQlRTeERRVUZETzFGQlEzSkZMRWxCUVVrc1IwRkJSeXhEUVVGRExGRkJRVkVzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhKUVVGSkxFTkJRVU03V1VGRGNrTXNUMEZCVHl4SlFVRkpMR2RDUVVGblFpeERRVUZETEVkQlFVY3NRMEZCVFN4RFFVRkRPMUZCUTNoRExFbEJRVWtzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRE8xbEJRVVVzVDBGQlR5eEpRVUZKTEdOQlFXTXNRMEZCUXl4SFFVRkhMRU5CUVUwc1EwRkJRenRSUVVNelJTeEpRVUZKTEVkQlFVY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1lVRkJZU3hEUVVGRExFbEJRVWtzUTBGQlF6dFpRVUZGTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1IwRkJSeXhEUVVGTkxFTkJRVU03VVVGRGVrVXNTVUZCU1N4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRWxCUVVrc1EwRkJRenRaUVVOMlF5eFBRVUZQTEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zUjBGQlJ5eERRVUZOTEVOQlFVTTdVVUZETVVNc1NVRkJTU3hIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETEdOQlFXTXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkJSU3hQUVVGUExFbEJRVWtzWTBGQll5eERRVUZETEVkQlFVY3NRMEZCVFN4RFFVRkRPMUZCUXpORkxFbEJRVWtzUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4bFFVRmxMRU5CUVVNc1NVRkJTU3hEUVVGRE8xbEJRM0JETEU5QlFVOHNTVUZCU1N4bFFVRmxMRU5CUVVNc1IwRkJSeXhEUVVGTkxFTkJRVU03VVVGRGRrTXNTVUZCU1N4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRWxCUVVrc1EwRkJRenRaUVVOMlF5eFBRVUZQTEVsQlFVa3NhMEpCUVd0Q0xFTkJRVU1zUjBGQlJ5eERRVUZOTEVOQlFVTTdVVUZETVVNc1QwRkJUeXhKUVVGSkxHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVMHNRMEZCUXp0SlFVTnlReXhEUVVGRE96dEJRVFZ0UTJNN1NVRkdaQ3hMUVVGTExFVkJRVVU3U1VGRFVDeExRVUZMTEVWQlFVVTdPM0ZGUVUxclFpeFBRVUZQT3p0cFJFRjFRMmhETzBGQlNVczdTVUZHVEN4TFFVRkxMRVZCUVVVN1NVRkRVQ3hMUVVGTExFVkJRVVU3T3paRFFVZHJRaXhQUVVGUE96dHpSRUZsYUVNN1FVRlhTenRKUVVaTUxFdEJRVXNzUlVGQlJUdEpRVU5RTEV0QlFVc3NSVUZCUlRzN2NVUkJTV3RDTEU5QlFVODdPeXREUVdkQ2FFTTdRVUUwUWtzN1NVRkdUQ3hMUVVGTExFVkJRVVU3U1VGRFVDeExRVUZMTEVWQlFVVTdPM0ZGUVUxclFpeFBRVUZQT3p0cFJFRjNRMmhETzBGQlYyTTdTVUZHWkN4TFFVRkxMRVZCUVVVN1NVRkRVQ3hMUVVGTExFVkJRVVU3TzNGRVFVbHJRaXhQUVVGUE96dHBSRUU0UW1oRE8wRkJORUpMTzBsQlJFd3NTMEZCU3l4RlFVRkZPenRwUlVGSFNTeERRVUZETEc5Q1FVRkVMRU5CUVVNc2QwTkJSV0VzVDBGQlR6czdPRU5CZDBOb1F6dEJRV0ZMTzBsQlJFd3NTMEZCU3l4RlFVRkZPenMyUkVGTGEwSXNUMEZCVHpzN0swTkJkMEpvUXp0QlFUQjVRa2dzYlVKQlFXMUNMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03UVVGRGFrTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQmNJaTR1TDNOb1lYSmxaQzl2ZG1WeWNtbGtaWE5jSWp0Y2JtbHRjRzl5ZENCN1hHNGdJRU52ZFdOb1JFSkxaWGx6TEZ4dUlDQjBlWEJsSUUxaGJtZHZVWFZsY25rc1hHNGdJSFI1Y0dVZ1ZtbGxkMUpsYzNCdmJuTmxMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJadmNpMWpiM1ZqYUdSaVhDSTdYRzVwYlhCdmNuUWdleUJEYkdsbGJuUWdmU0JtY205dElGd2lRR2R5Y0dNdlozSndZeTFxYzF3aU8xeHVhVzF3YjNKMElDb2dZWE1nWjNKd1l5Qm1jbTl0SUZ3aVFHZHljR012WjNKd1l5MXFjMXdpTzF4dWFXMXdiM0owSUh0Y2JpQWdUVzlrWld3c1hHNGdJSFI1Y0dVZ1RXOWtaV3hEYjI1emRISjFZM1J2Y2l4Y2JpQWdkSGx3WlNCVFpYSnBZV3hwZW1WeUxGeHVmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJsWTI5eVlYUnZjaTEyWVd4cFpHRjBhVzl1WENJN1hHNXBiWEJ2Y25RZ2V5QmtaV0oxWnl3Z1ptbHVZV3dzSUV4dloyZHBibWNnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJ4dloyZHBibWRjSWp0Y2JtbHRjRzl5ZENCN1hHNGdJSFI1Y0dVZ1VHVmxja052Ym1acFp5eGNiaUFnZEhsd1pTQlRaV2R5WldkaGRHVmtUVzlrWld3c1hHNGdJSFI1Y0dVZ1RYTndSR1YwWVdsc2N5eGNibjBnWm5KdmJTQmNJaTR1TDNOb1lYSmxaQzkwZVhCbGMxd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1kyOXVibVZqZEN4Y2JpQWdkSGx3WlNCRGIyNXVaV04wVDNCMGFXOXVjeXhjYmlBZ1IyRjBaWGRoZVN4Y2JpQWdUbVYwZDI5eWF5eGNiaUFnVUhKdmNHOXpZV3hQY0hScGIyNXpMRnh1SUNCRGIyNTBjbUZqZENCaGN5QkRiMjUwY21GcmRDeGNiaUFnZEhsd1pTQlRhV2R1WlhJc1hHNGdJRWRoZEdWM1lYbEZjbkp2Y2l4Y2JpQWdSVzVrYjNKelpVVnljbTl5TEZ4dWZTQm1jbTl0SUZ3aVFHaDVjR1Z5YkdWa1oyVnlMMlpoWW5KcFl5MW5ZWFJsZDJGNVhDSTdYRzVwYlhCdmNuUWdleUJIWVhSbGQyRjVJR0Z6SUV4bFoyRmplVWRoZEdWM1lYa3NJRmRoYkd4bGRITWdmU0JtY205dElGd2labUZpY21sakxXNWxkSGR2Y210Y0lqdGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1JXNWtiM0p6WlhJZ2ZTQm1jbTl0SUZ3aVptRmljbWxqTFdOdmJXMXZibHdpTzF4dWFXMXdiM0owSUh0Y2JpQWdaMlYwU1dSbGJuUnBkSGtzWEc0Z0lHZGxkRk5wWjI1bGNpeGNiaUFnWjJWMFJtbHljM1JFYVhKR2FXeGxUbUZ0WlVOdmJuUmxiblFzWEc0Z0lISmxZV1JHYVd4bElHRnpJSEpsWVdSR2MwWnBiR1VzWEc1OUlHWnliMjBnWENJdUwyWmhZbkpwWXkxbWMxd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1FtRnpaVVZ5Y205eUxGeHVJQ0JKYm5SbGNtNWhiRVZ5Y205eUxGeHVJQ0JQY0dWeVlYUnBiMjVMWlhsekxGeHVJQ0JUWlhKcFlXeHBlbUYwYVc5dVJYSnliM0lzWEc0Z0lFSjFiR3REY25Wa1QzQmxjbUYwYVc5dVMyVjVjeXhjYmlBZ1RtOTBSbTkxYm1SRmNuSnZjaXhjYmlBZ1EyOXVabXhwWTNSRmNuSnZjaXhjYmlBZ1FtRmtVbVZ4ZFdWemRFVnljbTl5TEZ4dUlDQjBlWEJsSUZCeWFXMWhjbmxMWlhsVWVYQmxMRnh1SUNCV1lXeHBaR0YwYVc5dVJYSnliM0lzWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHSXRaR1ZqYjNKaGRHOXljMXdpTzF4dWFXMXdiM0owSUh0Y2JpQWdRMjl1ZEdWNGRDeGNiaUFnUVdSaGNIUmxjaXhjYmlBZ2RIbHdaU0JCWkdGd2RHVnlSbXhoWjNNc1hHNGdJRUYxZEdodmNtbDZZWFJwYjI1RmNuSnZjaXhjYmlBZ1EyOXVibVZqZEdsdmJrVnljbTl5TEZ4dUlDQkdiM0ppYVdSa1pXNUZjbkp2Y2l4Y2JpQWdUV2xuY21GMGFXOXVSWEp5YjNJc1hHNGdJRTlpYzJWeWRtVnlSWEp5YjNJc1hHNGdJRkJoWjJsdVowVnljbTl5TEZ4dUlDQlFaWEp6YVhOMFpXNWpaVXRsZVhNc1hHNGdJRkYxWlhKNVJYSnliM0lzWEc0Z0lGSmxjRzl6YVhSdmNua3NYRzRnSUZWdWMzVndjRzl5ZEdWa1JYSnliM0lzWEc0Z0lGTjBZWFJsYldWdWRDeGNiaUFnZEhsd1pTQlFjbVZ3WVhKbFpGTjBZWFJsYldWdWRDeGNiaUFnVUdGbmFXNWhkRzl5TEZ4dUlDQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtY3NYRzRnSUVOdmJuUmxlSFIxWVd4QmNtZHpMRnh1SUNCMGVYQmxJRkJ5WlhCaGNtVmtUVzlrWld3c1hHNGdJRUZzYkU5d1pYSmhkR2x2Ymt0bGVYTXNYRzU5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WTI5eVpWd2lPMXh1YVcxd2IzSjBJSHNnUm1GaWNtbGpSbXhoZG05MWNpQjlJR1p5YjIwZ1hDSXVMaTl6YUdGeVpXUXZZMjl1YzNSaGJuUnpYQ0k3WEc1cGJYQnZjblFnZXlCRGJHbGxiblJUWlhKcFlXeHBlbVZ5SUgwZ1puSnZiU0JjSWk0dUwzTm9ZWEpsWkM5RGJHbGxiblJUWlhKcFlXeHBlbVZ5WENJN1hHNXBiWEJ2Y25RZ2V5QkdZV0p5YVdORGJHbGxiblJFYVhOd1lYUmphQ0I5SUdaeWIyMGdYQ0l1TDBaaFluSnBZME5zYVdWdWRFUnBjM0JoZEdOb1hDSTdYRzR2THlCcGJYQnZjblFnZXlCSVUwMVRhV2R1WlhKR1lXTjBiM0o1UTNWemRHOXRJSDBnWm5KdmJTQmNJaTR2Wm1GaWNtbGpMV2h6YlZ3aU8xeHVhVzF3YjNKMElIc2dkSGx3WlNCRGIyNXpkSEoxWTNSdmNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHbHZibHdpTzF4dWFXMXdiM0owSUhzZ1JtRmljbWxqUTJ4cFpXNTBVM1JoZEdWdFpXNTBJSDBnWm5KdmJTQmNJaTR2Um1GaWNtbGpRMnhwWlc1MFUzUmhkR1Z0Wlc1MFhDSTdYRzVwYlhCdmNuUWdleUJHWVdKeWFXTkRiR2xsYm5SUVlXZHBibUYwYjNJZ2ZTQm1jbTl0SUZ3aUxpOUdZV0p5YVdORGJHbGxiblJRWVdkcGJtRjBiM0pjSWp0Y2JtbHRjRzl5ZENCN0lFWmhZbkpwWTBOc2FXVnVkRkpsY0c5emFYUnZjbmtnZlNCbWNtOXRJRndpTGk5R1lXSnlhV05EYkdsbGJuUlNaWEJ2YzJsMGIzSjVYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQkZibVJ2Y25ObGJXVnVkRVZ5Y205eUxGeHVJQ0JGYm1SdmNuTmxiV1Z1ZEZCdmJHbGplVVZ5Y205eUxGeHVJQ0JOZG1OalVtVmhaRU52Ym1ac2FXTjBSWEp5YjNJc1hHNGdJRkJvWVc1MGIyMVNaV0ZrUTI5dVpteHBZM1JGY25KdmNpeGNiaUFnVkhKaGJuTmhZM1JwYjI1VWFXMWxiM1YwUlhKeWIzSXNYRzU5SUdaeWIyMGdYQ0l1TGk5emFHRnlaV1F2WlhKeWIzSnpYQ0k3WEc1cGJYQnZjblFnZXlCR1lXSnlhV05EYkdsbGJuUkdiR0ZuY3lCOUlHWnliMjBnWENJdUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5QkVaV1poZFd4MFJtRmljbWxqUTJ4cFpXNTBSbXhoWjNNZ2ZTQm1jbTl0SUZ3aUxpOWpiMjV6ZEdGdWRITmNJanRjYm1sdGNHOXlkQ0JtY3lCbWNtOXRJRndpWm5OY0lqdGNibWx0Y0c5eWRDQjdJRU55ZVhCMGIxVjBhV3h6SUgwZ1puSnZiU0JjSWk0dlkzSjVjSFJ2WENJN1hHNXBiWEJ2Y25RZ2V5QmxlSFJ5WVdOMFNXUnpJSDBnWm5KdmJTQmNJaTR2YVdSekwybGtMV1Y0ZEhKaFkzUnBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lFbGtaVzUwYVhSNUlIMGdabkp2YlNCY0lpNHVMM05vWVhKbFpDOXBibVJsZUZ3aU8xeHVYRzUwZVhCbElFeGxaMkZqZVZCbFpYSlVZWEpuWlhRZ1BTQjdYRzRnSUcxemNFbGtPaUJ6ZEhKcGJtYzdYRzRnSUhCbFpYSkZibVJ3YjJsdWREb2djM1J5YVc1bk8xeHVJQ0J3WldWeVNHOXpkRUZzYVdGelB6b2djM1J5YVc1bk8xeHVJQ0IwYkhORFpYSjBQem9nYzNSeWFXNW5JSHdnUW5WbVptVnlPMXh1ZlR0Y2JseHVkSGx3WlNCTVpXZGhZM2xRWldWeVYybDBhRTVoYldVZ1BTQk1aV2RoWTNsUVpXVnlWR0Z5WjJWMElDWWdleUJ1WVcxbE9pQnpkSEpwYm1jZ2ZUdGNibHh1THlvcVhHNGdLaUJBWkdWelkzSnBjSFJwYjI0Z1FXUmhjSFJsY2lCbWIzSWdhVzUwWlhKaFkzUnBibWNnZDJsMGFDQkllWEJsY214bFpHZGxjaUJHWVdKeWFXTWdibVYwZDI5eWEzTmNiaUFxSUVCemRXMXRZWEo1SUZSb1pTQkdZV0p5YVdOQlpHRndkR1Z5SUdWNGRHVnVaSE1nUTI5MVkyaEVRa0ZrWVhCMFpYSWdkRzhnY0hKdmRtbGtaU0JoSUhObFlXMXNaWE56SUdsdWRHVnlabUZqWlNCbWIzSWdhVzUwWlhKaFkzUnBibWNnZDJsMGFDQkllWEJsY214bFpHZGxjaUJHWVdKeWFXTWdibVYwZDI5eWEzTXVYRzRnS2lCSmRDQm9ZVzVrYkdWeklHTnZibTVsWTNScGIyNGdiV0Z1WVdkbGJXVnVkQ3dnZEhKaGJuTmhZM1JwYjI0Z2MzVmliV2x6YzJsdmJpd2dZVzVrSUVOU1ZVUWdiM0JsY21GMGFXOXVjeUJoWjJGcGJuTjBJRVpoWW5KcFl5QmphR0ZwYm1OdlpHVXVYRzRnS2lCQWRHVnRjR3hoZEdVZ1VHVmxja052Ym1acFp5QXRJRU52Ym1acFozVnlZWFJwYjI0Z2RIbHdaU0JtYjNJZ1kyOXVibVZqZEdsdVp5QjBieUJoSUVaaFluSnBZeUJ3WldWeVhHNGdLaUJBZEdWdGNHeGhkR1VnUm1GaWNtbGpSbXhoWjNNZ0xTQkdiR0ZuY3lCemNHVmphV1pwWXlCMGJ5QkdZV0p5YVdNZ2IzQmxjbUYwYVc5dWMxeHVJQ29nUUhSbGJYQnNZWFJsSUVOdmJuUmxlSFE4Um1GaWNtbGpSbXhoWjNNK0lDMGdRMjl1ZEdWNGRDQjBlWEJsSUdOdmJuUmhhVzVwYm1jZ1JtRmljbWxqTFhOd1pXTnBabWxqSUdac1lXZHpYRzRnS2lCQWNHRnlZVzBnWTI5dVptbG5JQzBnUTI5dVptbG5kWEpoZEdsdmJpQm1iM0lnWTI5dWJtVmpkR2x1WnlCMGJ5QmhJRVpoWW5KcFl5QndaV1Z5WEc0Z0tpQkFjR0Z5WVcwZ1lXeHBZWE1nTFNCUGNIUnBiMjVoYkNCaGJHbGhjeUJtYjNJZ2RHaGxJR0ZrWVhCMFpYSWdhVzV6ZEdGdVkyVmNiaUFxSUVCamJHRnpjeUJHWVdKeWFXTkRiR2xsYm5SQlpHRndkR1Z5WEc0Z0tpQkFaWGhoYlhCc1pWeHVJQ29nWUdCZ2RIbHdaWE5qY21sd2RGeHVJQ29nTHk4Z1EzSmxZWFJsSUdFZ2JtVjNJRVpoWW5KcFkwRmtZWEIwWlhJZ2FXNXpkR0Z1WTJWY2JpQXFJR052Ym5OMElHTnZibVpwWnpvZ1VHVmxja052Ym1acFp5QTlJSHRjYmlBcUlDQWdiWE53U1dRNklDZFBjbWN4VFZOUUp5eGNiaUFxSUNBZ2NHVmxja1Z1WkhCdmFXNTBPaUFuYkc5allXeG9iM04wT2pjd05URW5MRnh1SUNvZ0lDQmphR0Z1Ym1Wc1RtRnRaVG9nSjIxNVkyaGhibTVsYkNjc1hHNGdLaUFnSUdOb1lXbHVZMjlrWlU1aGJXVTZJQ2R0ZVdOakp5eGNiaUFxSUNBZ1kyOXVkSEpoWTNST1lXMWxPaUFuYlhsamIyNTBjbUZqZENjc1hHNGdLaUFnSUhSc2MwTmxjblJRWVhSb09pQW5MM0JoZEdndmRHOHZkR3h6TDJObGNuUW5MRnh1SUNvZ0lDQmpaWEowUkdseVpXTjBiM0o1VUdGMGFEb2dKeTl3WVhSb0wzUnZMMk5sY25RdlpHbHlKeXhjYmlBcUlDQWdhMlY1UkdseVpXTjBiM0o1VUdGMGFEb2dKeTl3WVhSb0wzUnZMMnRsZVM5a2FYSW5YRzRnS2lCOU8xeHVJQ3BjYmlBcUlHTnZibk4wSUdGa1lYQjBaWElnUFNCdVpYY2dSbUZpY21salFXUmhjSFJsY2loamIyNW1hV2NzSUNkdmNtY3hMV0ZrWVhCMFpYSW5LVHRjYmlBcVhHNGdLaUF2THlCVmMyVWdkR2hsSUdGa1lYQjBaWElnZEc4Z2FXNTBaWEpoWTNRZ2QybDBhQ0IwYUdVZ1JtRmljbWxqSUc1bGRIZHZjbXRjYmlBcUlHTnZibk4wSUhKbGMzVnNkQ0E5SUdGM1lXbDBJR0ZrWVhCMFpYSXVjbVZoWkNnbmRYTmxjbk1uTENBbmRYTmxjakVuTENCdGVWTmxjbWxoYkdsNlpYSXBPMXh1SUNvZ1lHQmdYRzRnS2lCQWJXVnliV0ZwWkZ4dUlDb2djMlZ4ZFdWdVkyVkVhV0ZuY21GdFhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElFTnNhV1Z1ZEZ4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCR1lXSnlhV05CWkdGd2RHVnlYRzRnS2lBZ0lIQmhjblJwWTJsd1lXNTBJRWRoZEdWM1lYbGNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdUbVYwZDI5eWExeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkRiMjUwY21GamRGeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkRhR0ZwYm1OdlpHVmNiaUFxWEc0Z0tpQWdJRU5zYVdWdWRDMCtQa1poWW5KcFkwRmtZWEIwWlhJNklHTnlaV0YwWlNoMFlXSnNaVTVoYldVc0lHbGtMQ0J0YjJSbGJDd2dkSEpoYm5OcFpXNTBMQ0J6WlhKcFlXeHBlbVZ5S1Z4dUlDb2dJQ0JHWVdKeWFXTkJaR0Z3ZEdWeUxUNCtSbUZpY21salFXUmhjSFJsY2pvZ2MzVmliV2wwVkhKaGJuTmhZM1JwYjI0b1QzQmxjbUYwYVc5dVMyVjVjeTVEVWtWQlZFVXNJRnR6WlhKcFlXeHBlbVZrVFc5a1pXeGRMQ0IwY21GdWMybGxiblFwWEc0Z0tpQWdJRVpoWW5KcFkwRmtZWEIwWlhJdFBqNUhZWFJsZDJGNU9pQmpiMjV1WldOMEtDbGNiaUFxSUNBZ1IyRjBaWGRoZVMwK1BrNWxkSGR2Y21zNklHZGxkRTVsZEhkdmNtc29ZMmhoYm01bGJFNWhiV1VwWEc0Z0tpQWdJRTVsZEhkdmNtc3RQajVEYjI1MGNtRmpkRG9nWjJWMFEyOXVkSEpoWTNRb1kyaGhhVzVqYjJSbFRtRnRaU3dnWTI5dWRISmhZM1JPWVcxbEtWeHVJQ29nSUNCR1lXSnlhV05CWkdGd2RHVnlMVDQrUTI5dWRISmhZM1E2SUhOMVltMXBkQ2hoY0drc0lIQnliM0J2YzJGc1QzQjBhVzl1Y3lsY2JpQXFJQ0FnUTI5dWRISmhZM1F0UGo1RGFHRnBibU52WkdVNklHbHVkbTlyWlZ4dUlDb2dJQ0JEYUdGcGJtTnZaR1V0TFQ0K1EyOXVkSEpoWTNRNklISmxjM0J2Ym5ObFhHNGdLaUFnSUVOdmJuUnlZV04wTFMwK1BrWmhZbkpwWTBGa1lYQjBaWEk2SUhKbGMzVnNkRnh1SUNvZ0lDQkdZV0p5YVdOQlpHRndkR1Z5TFQ0K1JtRmljbWxqUVdSaGNIUmxjam9nWkdWamIyUmxLSEpsYzNWc2RDbGNiaUFxSUNBZ1JtRmljbWxqUVdSaGNIUmxjaTArUGtaaFluSnBZMEZrWVhCMFpYSTZJSE5sY21saGJHbDZaWEl1WkdWelpYSnBZV3hwZW1Vb1pHVmpiMlJsWkZKbGMzVnNkQ2xjYmlBcUlDQWdSbUZpY21salFXUmhjSFJsY2kwdFBqNURiR2xsYm5RNklHUmxjMlZ5YVdGc2FYcGxaRkpsYzNWc2RGeHVJQ292WEc1bGVIQnZjblFnWTJ4aGMzTWdSbUZpY21salEyeHBaVzUwUVdSaGNIUmxjaUJsZUhSbGJtUnpJRUZrWVhCMFpYSThYRzRnSUZCbFpYSkRiMjVtYVdjc1hHNGdJRU5zYVdWdWRDeGNiaUFnVFdGdVoyOVJkV1Z5ZVN4Y2JpQWdRMjl1ZEdWNGREeEdZV0p5YVdORGJHbGxiblJHYkdGbmN6NWNiajRnZTF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZOMFlYUnBZeUIwWlhoMElHUmxZMjlrWlhJZ1ptOXlJR052Ym5abGNuUnBibWNnVldsdWREaEJjbkpoZVNCMGJ5QnpkSEpwYm1kY2JpQWdJQ292WEc0Z0lIQnlhWFpoZEdVZ2MzUmhkR2xqSUdSbFkyOWtaWElnUFNCdVpYY2dWR1Y0ZEVSbFkyOWtaWElvWENKMWRHWTRYQ0lwTzF4dVhHNGdJSEJ5YVhaaGRHVWdjM1JoZEdsaklITmxjbWxoYkdsNlpYSWdQU0J1WlhjZ1EyeHBaVzUwVTJWeWFXRnNhWHBsY2lncE8xeHVYRzRnSUhCeWIzUmxZM1JsWkNCemRHRjBhV01nYkc5bklEMGdURzluWjJsdVp5NW1iM0lvUm1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2lrN1hHNWNiaUFnY0hKdmRHVmpkR1ZrSUhKbFlXUnZibXg1SUhObGNtbGhiR2w2WlhJNklGTmxjbWxoYkdsNlpYSThZVzU1UGlBOVhHNGdJQ0FnUm1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2k1elpYSnBZV3hwZW1WeU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdRM0psWVhSbGN5QmhJRzVsZHlCR1lXSnlhV05CWkdGd2RHVnlJR2x1YzNSaGJtTmxYRzRnSUNBcUlFQnpkVzF0WVhKNUlFbHVhWFJwWVd4cGVtVnpJR0VnYm1WM0lHRmtZWEIwWlhJZ1ptOXlJR2x1ZEdWeVlXTjBhVzVuSUhkcGRHZ2dZU0JJZVhCbGNteGxaR2RsY2lCR1lXSnlhV01nYm1WMGQyOXlhMXh1SUNBZ0tpQkFjR0Z5WVcwZ2UxQmxaWEpEYjI1bWFXZDlJR052Ym1acFp5QXRJRU52Ym1acFozVnlZWFJwYjI0Z1ptOXlJR052Ym01bFkzUnBibWNnZEc4Z1lTQkdZV0p5YVdNZ2NHVmxjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyRnNhV0Z6WFNBdElFOXdkR2x2Ym1Gc0lHRnNhV0Z6SUdadmNpQjBhR1VnWVdSaGNIUmxjaUJwYm5OMFlXNWpaVnh1SUNBZ0tpOWNiaUFnWTI5dWMzUnlkV04wYjNJb1kyOXVabWxuT2lCUVpXVnlRMjl1Wm1sbkxDQmhiR2xoY3o4NklITjBjbWx1WnlrZ2UxeHVJQ0FnSUhOMWNHVnlLRnh1SUNBZ0lDQWdUMkpxWldOMExtRnpjMmxuYmloN2ZTd2dSR1ZtWVhWc2RFWmhZbkpwWTBOc2FXVnVkRVpzWVdkekxDQmpiMjVtYVdjcExGeHVJQ0FnSUNBZ1JtRmljbWxqUm14aGRtOTFjaXhjYmlBZ0lDQWdJR0ZzYVdGelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHOTJaWEp5YVdSbElGTjBZWFJsYldWdWREeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0FnSUc5MlpYSnlhV1JsY3o4NklGQmhjblJwWVd3OFFXUmhjSFJsY2tac1lXZHpQbHh1SUNBcE9pQlRkR0YwWlcxbGJuUThUU3dnUm1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2l3Z1lXNTVMQ0JOWVc1bmIxRjFaWEo1UGlCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCR1lXSnlhV05EYkdsbGJuUlRkR0YwWlcxbGJuUW9kR2hwY3l3Z2IzWmxjbkpwWkdWektUdGNiaUFnZlZ4dVhHNGdJRkJoWjJsdVlYUnZjanhOSUdWNGRHVnVaSE1nVFc5a1pXdytLRnh1SUNBZ0lIRjFaWEo1T2lCUWNtVndZWEpsWkZOMFlYUmxiV1Z1ZER4aGJuaytJSHdnVFdGdVoyOVJkV1Z5ZVN4Y2JpQWdJQ0J6YVhwbE9pQnVkVzFpWlhJc1hHNGdJQ0FnWTJ4aGVubzZJRU52Ym5OMGNuVmpkRzl5UEUwK1hHNGdJQ2s2SUZCaFoybHVZWFJ2Y2p4TkxDQmhibmtzSUUxaGJtZHZVWFZsY25rK0lIdGNiaUFnSUNCeVpYUjFjbTRnYm1WM0lFWmhZbkpwWTBOc2FXVnVkRkJoWjJsdVlYUnZjaWgwYUdsekxDQnhkV1Z5ZVN3Z2MybDZaU3dnWTJ4aGVub3BPMXh1SUNCOVhHNWNiaUFnY0hKdmRHVmpkR1ZrSUc5MlpYSnlhV1JsSUdGemVXNWpJR1pzWVdkelBFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJQ0FnYjNCbGNtRjBhVzl1T2lCUGNHVnlZWFJwYjI1TFpYbHpJSHdnYzNSeWFXNW5MRnh1SUNBZ0lHMXZaR1ZzT2lCRGIyNXpkSEoxWTNSdmNqeE5QaUI4SUVOdmJuTjBjblZqZEc5eVBFMCtXMTBnZkNCMWJtUmxabWx1WldRc1hHNGdJQ0FnWm14aFozTTZJRkJoY25ScFlXdzhSbUZpY21salEyeHBaVzUwUm14aFozTStMRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThSbUZpY21salEyeHBaVzUwUm14aFozTStJSHRjYmlBZ0lDQmpiMjV6ZENCdFpYSm5aV1JHYkdGbmN5QTlJRTlpYW1WamRDNWhjM05wWjI0b2UzMHNJSFJvYVhNdVkyOXVabWxuTENCbWJHRm5jeWs3WEc0Z0lDQWdZMjl1YzNRZ1ppQTlJRTlpYW1WamRDNWhjM05wWjI0b1hHNGdJQ0FnSUNCaGQyRnBkQ0J6ZFhCbGNpNW1iR0ZuY3lodmNHVnlZWFJwYjI0c0lHMXZaR1ZzTENCdFpYSm5aV1JHYkdGbmN5d2dMaTR1WVhKbmN5bGNiaUFnSUNBcE8xeHVJQ0FnSUhKbGRIVnliaUJtTzF4dUlDQjlYRzVjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nWTI5dWRHVjRkRHhOSUdWNGRHVnVaSE1nVFc5a1pXdytLRnh1SUNBZ0lHOXdaWEpoZEdsdmJqb2dLQ2d1TGk1aGNtZHpPaUJoYm5sYlhTa2dQVDRnWVc1NUtTQjhJRUZzYkU5d1pYSmhkR2x2Ymt0bGVYTXNYRzRnSUNBZ2IzWmxjbkpwWkdWek9pQlFZWEowYVdGc1BFWmhZbkpwWTBOc2FXVnVkRVpzWVdkelBpeGNiaUFnSUNCdGIyUmxiRG9nUTI5dWMzUnlkV04wYjNJOFRUNGdmQ0JEYjI1emRISjFZM1J2Y2p4TlBsdGRMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eERiMjUwWlhoMFBHRnVlVDQrWEc0Z0lDazZJRkJ5YjIxcGMyVThRMjl1ZEdWNGREeEdZV0p5YVdORGJHbGxiblJHYkdGbmN6NCtJSHRjYmlBZ0lDQmpiMjV6ZENCc2IyY2dQU0IwYUdsekxteHZaeTVtYjNJb2RHaHBjeTVqYjI1MFpYaDBLVHRjYmlBZ0lDQnNiMmN1YzJsc2JIa29YRzRnSUNBZ0lDQmdZM0psWVhScGJtY2dibVYzSUdOdmJuUmxlSFFnWm05eUlDUjdiM0JsY21GMGFXOXVmU0J2Y0dWeVlYUnBiMjRnYjI0Z0pIdHRiMlJsYkNBL0lDaEJjbkpoZVM1cGMwRnljbUY1S0cxdlpHVnNLU0EvSUcxdlpHVnNMbTFoY0Nnb2JTa2dQVDRnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLRzBwS1NBNklFMXZaR1ZzTG5SaFlteGxUbUZ0WlNodGIyUmxiQ2twSURvZ1hDSnViMXdpZlNCMFlXSnNaU0FrZTI5MlpYSnlhV1JsY3lBbUppQlBZbXBsWTNRdWEyVjVjeWh2ZG1WeWNtbGtaWE1wSUQ4Z1QySnFaV04wTG10bGVYTW9iM1psY25KcFpHVnpLUzVzWlc1bmRHZ2dPaUJjSW01dlhDSjlJSGRwZEdnZ1pteGhaeUJ2ZG1WeWNtbGtaWE5nWEc0Z0lDQWdLVHRjYmlBZ0lDQnNaWFFnWTNSNElEMGdZWEpuY3k1d2IzQW9LVHRjYmlBZ0lDQnBaaUFvZEhsd1pXOW1JR04wZUNBaFBUMGdYQ0oxYm1SbFptbHVaV1JjSWlBbUppQWhLR04wZUNCcGJuTjBZVzVqWlc5bUlFTnZiblJsZUhRcEtTQjdYRzRnSUNBZ0lDQmhjbWR6TG5CMWMyZ29ZM1I0S1R0Y2JpQWdJQ0FnSUdOMGVDQTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnZkbVZ5Y21sa1pYTWdQU0JqZEhoY2JpQWdJQ0FnSUQ4Z1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z1kzUjRMblJ2VDNabGNuSnBaR1Z6S0Nrc0lHOTJaWEp5YVdSbGN5bGNiaUFnSUNBZ0lEb2diM1psY25KcFpHVnpPMXh1SUNBZ0lHTnZibk4wSUdac1lXZHpJRDBnWVhkaGFYUWdkR2hwY3k1bWJHRm5jeWhjYmlBZ0lDQWdJSFI1Y0dWdlppQnZjR1Z5WVhScGIyNGdQVDA5SUZ3aWMzUnlhVzVuWENJZ1B5QnZjR1Z5WVhScGIyNGdPaUJ2Y0dWeVlYUnBiMjR1Ym1GdFpTeGNiaUFnSUNBZ0lHMXZaR1ZzTEZ4dUlDQWdJQ0FnYjNabGNuSnBaR1Z6SUdGeklGQmhjblJwWVd3OFJtRmljbWxqUTJ4cFpXNTBSbXhoWjNNK0xGeHVJQ0FnSUNBZ0xpNHVXeTR1TG1GeVozTXNJR04wZUYwdVptbHNkR1Z5S0VKdmIyeGxZVzRwWEc0Z0lDQWdLVHRjYmx4dUlDQWdJR2xtSUNoamRIZ3BJSHRjYmlBZ0lDQWdJR2xtSUNnaEtHTjBlQ0JwYm5OMFlXNWpaVzltSUhSb2FYTXVRMjl1ZEdWNGRDa3BJSHRjYmlBZ0lDQWdJQ0FnWTI5dWMzUWdibVYzUTNSNElEMGdibVYzSUhSb2FYTXVRMjl1ZEdWNGRDZ3BMbUZqWTNWdGRXeGhkR1VvZTF4dUlDQWdJQ0FnSUNBZ0lDNHVMbU4wZUZ0Y0ltTmhZMmhsWENKZExGeHVJQ0FnSUNBZ0lDQWdJQzR1TG1ac1lXZHpMRnh1SUNBZ0lDQWdJQ0FnSUhCaGNtVnVkRU52Ym5SbGVIUTZJR04wZUN4Y2JpQWdJQ0FnSUNBZ2ZTa2dZWE1nWVc1NU8xeHVJQ0FnSUNBZ0lDQmpkSGd1WVdOamRXMTFiR0YwWlNoN1hHNGdJQ0FnSUNBZ0lDQWdZMmhwYkdSRGIyNTBaWGgwY3pvZ1cxeHVJQ0FnSUNBZ0lDQWdJQ0FnTGk0dUtHTjBlQzVuWlhSUGNsVnVaR1ZtYVc1bFpDaGNJbU5vYVd4a1EyOXVkR1Y0ZEhOY0lpa2dmSHdnVzEwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnYm1WM1EzUjRMRnh1SUNBZ0lDQWdJQ0FnSUYwc1hHNGdJQ0FnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdibVYzUTNSNE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1kyOXVjM1FnWTNWeWNtVnVkRTl3SUQwZ1kzUjRMbWRsZEU5eVZXNWtaV1pwYm1Wa0tGd2liM0JsY21GMGFXOXVYQ0lwTzF4dUlDQWdJQ0FnWTI5dWMzUWdZM1Z5Y21WdWRFMXZaR1ZzSUQwZ1kzUjRMbWRsZEU5eVZXNWtaV1pwYm1Wa0tGd2lZV1ptWldOMFpXUlVZV0pzWlhOY0lpazdYRzRnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUNGamRYSnlaVzUwVDNBZ2ZIeGNiaUFnSUNBZ0lDQWdZM1Z5Y21WdWRFOXdJQ0U5UFNCdmNHVnlZWFJwYjI0Z2ZIeGNiaUFnSUNBZ0lDQWdLRzF2WkdWc0lDWW1JRzF2WkdWc0lDRTlQU0JqZFhKeVpXNTBUVzlrWld3cFhHNGdJQ0FnSUNBcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2JtVjNRM1I0SUQwZ2JtVjNJSFJvYVhNdVEyOXVkR1Y0ZENncExtRmpZM1Z0ZFd4aGRHVW9lMXh1SUNBZ0lDQWdJQ0FnSUM0dUxtTjBlRnRjSW1OaFkyaGxYQ0pkTEZ4dUlDQWdJQ0FnSUNBZ0lDNHVMbVpzWVdkekxGeHVJQ0FnSUNBZ0lDQWdJSEJoY21WdWRFTnZiblJsZUhRNklHTjBlQ3hjYmlBZ0lDQWdJQ0FnZlNrZ1lYTWdZVzU1TzF4dVhHNGdJQ0FnSUNBZ0lHTjBlQzVoWTJOMWJYVnNZWFJsS0h0Y2JpQWdJQ0FnSUNBZ0lDQmphR2xzWkVOdmJuUmxlSFJ6T2lCYlhHNGdJQ0FnSUNBZ0lDQWdJQ0F1TGk0b1kzUjRMbWRsZEU5eVZXNWtaV1pwYm1Wa0tGd2lZMmhwYkdSRGIyNTBaWGgwYzF3aUtTQjhmQ0JiWFNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J1WlhkRGRIZ3NYRzRnSUNBZ0lDQWdJQ0FnWFN4Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQnVaWGREZEhnN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCeVpYUjFjbTRnWTNSNExtRmpZM1Z0ZFd4aGRHVW9abXhoWjNNcElHRnpJR0Z1ZVR0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdibVYzSUhSb2FYTXVRMjl1ZEdWNGRDZ3BMbUZqWTNWdGRXeGhkR1VvZTF4dUlDQWdJQ0FnTGk0dVpteGhaM01zWEc0Z0lDQWdmU2tnWVhNZ1lXNTVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkVaV052WkdWeklHRWdWV2x1ZERoQmNuSmhlU0IwYnlCaElITjBjbWx1WjF4dUlDQWdLaUJBYzNWdGJXRnllU0JEYjI1MlpYSjBjeUJpYVc1aGNua2daR0YwWVNCeVpXTmxhWFpsWkNCbWNtOXRJRVpoWW5KcFl5QjBieUJoSUhOMGNtbHVaeUIxYzJsdVp5QlZWRVl0T0NCbGJtTnZaR2x1WjF4dUlDQWdLaUJBY0dGeVlXMGdlMVZwYm5RNFFYSnlZWGw5SUdSaGRHRWdMU0JVYUdVZ1ltbHVZWEo1SUdSaGRHRWdkRzhnWkdWamIyUmxYRzRnSUNBcUlFQnlaWFIxY200Z2UzTjBjbWx1WjMwZ1ZHaGxJR1JsWTI5a1pXUWdjM1J5YVc1blhHNGdJQ0FxTDF4dUlDQmtaV052WkdVb1pHRjBZVG9nVldsdWREaEJjbkpoZVNrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJRVpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWEl1WkdWamIyUmxjaTVrWldOdlpHVW9aR0YwWVNrN1hHNGdJSDFjYmx4dUlDQnZkbVZ5Y21sa1pTQnlaWEJ2YzJsMGIzSjVQRnh1SUNBZ0lGSWdaWGgwWlc1a2N5QlNaWEJ2YzJsMGIzSjVQRnh1SUNBZ0lDQWdZVzU1TEZ4dUlDQWdJQ0FnUVdSaGNIUmxjanhRWldWeVEyOXVabWxuTENCRGJHbGxiblFzSUUxaGJtZHZVWFZsY25rc0lFTnZiblJsZUhROFJtRmljbWxqUTJ4cFpXNTBSbXhoWjNNK1BseHVJQ0FnSUQ0c1hHNGdJRDRvS1RvZ1EyOXVjM1J5ZFdOMGIzSThVajRnZTF4dUlDQWdJSEpsZEhWeWJpQkdZV0p5YVdORGJHbGxiblJTWlhCdmMybDBiM0o1SUdGeklIVnVhMjV2ZDI0Z1lYTWdRMjl1YzNSeWRXTjBiM0k4VWo0N1hHNGdJSDFjYmx4dUlDQndjbTkwWldOMFpXUWdZM0psWVhSbFVISmxabWw0UEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lDQWdZMnhoZW5vNklFTnZibk4wY25WamRHOXlQRTArTEZ4dUlDQWdJR2xrT2lCUWNtbHRZWEo1UzJWNVZIbHdaU3hjYmlBZ0lDQnRiMlJsYkRvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBpeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFEyOXVkR1Y0ZER4R1lXSnlhV05EYkdsbGJuUkdiR0ZuY3o0K1hHNGdJQ2s2SUZ0RGIyNXpkSEoxWTNSdmNqeE5QaXdnVUhKcGJXRnllVXRsZVZSNWNHVXNJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRzSUM0dUxtRnVlVnRkTENCRGIyNTBaWGgwWFNCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCMGFHbHpMbU55WldGMFpWQnlaV1pwZUNrN1hHNGdJQ0FnWTI5dWMzUWdkR0ZpYkdWT1lXMWxJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLR05zWVhwNktUdGNiaUFnSUNCamIyNXpkQ0J5WldOdmNtUTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRnUFNCN2ZUdGNiaUFnSUNCeVpXTnZjbVJiUTI5MVkyaEVRa3RsZVhNdVZFRkNURVZkSUQwZ2RHRmliR1ZPWVcxbE8xeHVJQ0FnSUU5aWFtVmpkQzVoYzNOcFoyNG9jbVZqYjNKa0xDQnRiMlJsYkNrN1hHNGdJQ0FnY21WMGRYSnVJRnRqYkdGNmVpd2dhV1FzSUhKbFkyOXlaQ3dnTGk0dVkzUjRRWEpuYzEwN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZCeVpYQmhjbVZ6SUcxMWJIUnBjR3hsSUhKbFkyOXlaSE1nWm05eUlHTnlaV0YwYVc5dVhHNGdJQ0FxSUVCemRXMXRZWEo1SUVGa1pITWdibVZqWlhOellYSjVJRU52ZFdOb1JFSWdabWxsYkdSeklIUnZJRzExYkhScGNHeGxJSEpsWTI5eVpITWdZbVZtYjNKbElHTnlaV0YwYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0IwWVdKc1pVNWhiV1VnTFNCVWFHVWdibUZ0WlNCdlppQjBhR1VnZEdGaWJHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWRiWFh4dWRXMWlaWEpiWFgwZ2FXUnpJQzBnVkdobElFbEVjeUJ2WmlCMGFHVWdjbVZqYjNKa2MxeHVJQ0FnS2lCQWNHRnlZVzBnYlc5a1pXeHpJQzBnVkdobElHMXZaR1ZzY3lCMGJ5QndjbVZ3WVhKbFhHNGdJQ0FxSUVCeVpYUjFjbTRnUVNCMGRYQnNaU0JqYjI1MFlXbHVhVzVuSUhSb1pTQjBZV0pzWlU1aGJXVXNJR2xrY3l3Z1lXNWtJSEJ5WlhCaGNtVmtJSEpsWTI5eVpITmNiaUFnSUNvZ1FIUm9jbTkzY3lCN1NXNTBaWEp1WVd4RmNuSnZjbjBnU1dZZ2FXUnpJR0Z1WkNCdGIyUmxiSE1nWVhKeVlYbHpJR2hoZG1VZ1pHbG1abVZ5Wlc1MElHeGxibWQwYUhOY2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQmpjbVZoZEdWQmJHeFFjbVZtYVhnOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdJQ0JqYkdGNmVqb2dRMjl1YzNSeWRXTjBiM0k4VFQ0c1hHNGdJQ0FnYVdSek9pQnpkSEpwYm1kYlhTQjhJRzUxYldKbGNsdGRMRnh1SUNBZ0lHMXZaR1ZzY3pvZ1VtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBsdGRMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eERiMjUwWlhoMFBFWmhZbkpwWTBOc2FXVnVkRVpzWVdkelBqNWNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdkR0ZpYkdWT1lXMWxJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLR05zWVhwNktUdGNiaUFnSUNCcFppQW9hV1J6TG14bGJtZDBhQ0FoUFQwZ2JXOWtaV3h6TG14bGJtZDBhQ2xjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtGd2lTV1J6SUdGdVpDQnRiMlJsYkhNZ2JYVnpkQ0JvWVhabElIUm9aU0J6WVcxbElHeGxibWQwYUZ3aUtUdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lIUm9hWE11WTNKbFlYUmxRV3hzVUhKbFptbDRLVHRjYmlBZ0lDQmpiMjV6ZENCeVpXTnZjbVJ6SUQwZ2FXUnpMbTFoY0Nnb2FXUXNJR052ZFc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0JqYjI1emRDQnlaV052Y21RNklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNGdQU0I3ZlR0Y2JpQWdJQ0FnSUhKbFkyOXlaRnREYjNWamFFUkNTMlY1Y3k1VVFVSk1SVjBnUFNCMFlXSnNaVTVoYldVN1hHNGdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLSEpsWTI5eVpDd2diVzlrWld4elcyTnZkVzUwWFNrN1hHNGdJQ0FnSUNCeVpYUjFjbTRnY21WamIzSmtPMXh1SUNBZ0lIMHBPMXh1SUNBZ0lISmxkSFZ5YmlCYlkyeGhlbm9zSUdsa2N5d2djbVZqYjNKa2N5d2dMaTR1WTNSNFFYSm5jMTA3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ2RYQmtZWFJsUVd4c1VISmxabWw0UEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lDQWdZMnhoZW5vNklFTnZibk4wY25WamRHOXlQRTArTEZ4dUlDQWdJR2xrY3pvZ1VISnBiV0Z5ZVV0bGVWUjVjR1ZiWFN4Y2JpQWdJQ0J0YjJSbGJITTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDViWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4UTI5dWRHVjRkRHhHWVdKeWFXTkRiR2xsYm5SR2JHRm5jejQrWEc0Z0lDa2dlMXh1SUNBZ0lHTnZibk4wSUhSaFlteGxUbUZ0WlNBOUlFMXZaR1ZzTG5SaFlteGxUbUZ0WlNoamJHRjZlaWs3WEc0Z0lDQWdhV1lnS0dsa2N5NXNaVzVuZEdnZ0lUMDlJRzF2WkdWc2N5NXNaVzVuZEdncFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhjSWtsa2N5QmhibVFnYlc5a1pXeHpJRzExYzNRZ2FHRjJaU0IwYUdVZ2MyRnRaU0JzWlc1bmRHaGNJaWs3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0IwYUdsekxuVndaR0YwWlVGc2JGQnlaV1pwZUNrN1hHNGdJQ0FnWTI5dWMzUWdjbVZqYjNKa2N5QTlJR2xrY3k1dFlYQW9LQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY21WamIzSmtPaUJTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrSUQwZ2UzMDdYRzRnSUNBZ0lDQnlaV052Y21SYlEyOTFZMmhFUWt0bGVYTXVWRUZDVEVWZElEMGdkR0ZpYkdWT1lXMWxPMXh1SUNBZ0lDQWdjbVYwZFhKdUlISmxZMjl5WkR0Y2JpQWdJQ0I5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdXMk5zWVhwNkxDQnBaSE1zSUhKbFkyOXlaSE1zSUM0dUxtTjBlRUZ5WjNOZE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCRGNtVmhkR1Z6SUcxMWJIUnBjR3hsSUhKbFkyOXlaSE1nYVc0Z1lTQnphVzVuYkdVZ2RISmhibk5oWTNScGIyNWNiaUFnSUNvZ1FITjFiVzFoY25rZ1UzVmliV2wwY3lCaElIUnlZVzV6WVdOMGFXOXVJSFJ2SUdOeVpXRjBaU0J0ZFd4MGFYQnNaU0J5WldOdmNtUnpJR2x1SUhSb1pTQkdZV0p5YVdNZ2JHVmtaMlZ5WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjBZV0pzWlU1aGJXVWdMU0JVYUdVZ2JtRnRaU0J2WmlCMGFHVWdkR0ZpYkdVdlkyOXNiR1ZqZEdsdmJseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMXRkSUh3Z2JuVnRZbVZ5VzExOUlHbGtjeUF0SUVGeWNtRjVJRzltSUhKbFkyOXlaQ0JwWkdWdWRHbG1hV1Z5YzF4dUlDQWdLaUJBY0dGeVlXMGdlMEZ5Y21GNVBGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNCtmU0J0YjJSbGJITWdMU0JCY25KaGVTQnZaaUJ5WldOdmNtUWdaR0YwWVZ4dUlDQWdLaUJBY0dGeVlXMGdlMUpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDU5SUhSeVlXNXphV1Z1ZENBdElGUnlZVzV6YVdWdWRDQmtZWFJoSUdadmNpQjBhR1VnZEhKaGJuTmhZM1JwYjI1Y2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhCY25KaGVUeFNaV052Y21ROGMzUnlhVzVuTENCaGJuaytQajU5SUZCeWIyMXBjMlVnY21WemIyeDJhVzVuSUhSdklIUm9aU0JqY21WaGRHVmtJSEpsWTI5eVpITmNiaUFnSUNvdlhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklHTnlaV0YwWlVGc2JEeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0FnSUdOc1lYcDZPaUJEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnSUNCcFpITTZJRkJ5YVcxaGNubExaWGxVZVhCbFcxMHNYRzRnSUNBZ2JXOWtaV3h6T2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1cxMHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1EyOXVkR1Y0ZEhWaGJFRnlaM004UTI5dWRHVjRkRHhHWVdKeWFXTkRiR2xsYm5SR2JHRm5jejQrWEc0Z0lDazZJRkJ5YjIxcGMyVThVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQbHRkUGlCN1hHNGdJQ0FnYVdZZ0tHbGtjeTVzWlc1bmRHZ2dJVDA5SUcxdlpHVnNjeTVzWlc1bmRHZ3BYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY0lrbGtjeUJoYm1RZ2JXOWtaV3h6SUcxMWMzUWdhR0YyWlNCMGFHVWdjMkZ0WlNCc1pXNW5kR2hjSWlrN1hHNGdJQ0FnTHk5SVJWSkZJVnh1SUNBZ0lHTnZibk4wSUdOMGVFRnlaM01nUFNCYkxpNHVLR0Z5WjNNZ1lYTWdkVzVyYm05M2JpQmhjeUJoYm5sYlhTbGRPMXh1SUNBZ0lHTnZibk4wSUhSeVlXNXphV1Z1ZENBOUlHTjBlRUZ5WjNNdWMyaHBablFvS1NCaGN5QlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytPMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhnZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0Z4dUlDQWdJQ0FnWTNSNFFYSm5jeUJoY3lCRGIyNTBaWGgwZFdGc1FYSm5jenhEYjI1MFpYaDBQRVpoWW5KcFkwTnNhV1Z1ZEVac1lXZHpQajRzWEc0Z0lDQWdJQ0IwYUdsekxtTnlaV0YwWlVGc2JGeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdkR0ZpYkdWT1lXMWxJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLR05zWVhwNktUdGNibHh1SUNBZ0lHeHZaeTVwYm1adktHQmhaR1JwYm1jZ0pIdHBaSE11YkdWdVozUm9mU0JsYm5SeWFXVnpJSFJ2SUNSN2RHRmliR1ZPWVcxbGZTQjBZV0pzWldBcE8xeHVJQ0FnSUd4dlp5NTJaWEppYjNObEtHQndhM002SUNSN2FXUnpmV0FwTzF4dUlDQWdJR052Ym5OMElHaGhjMVJ5WVc1emFXVnVkQ0E5SUhSeVlXNXphV1Z1ZENBbUppQlBZbXBsWTNRdWEyVjVjeWgwY21GdWMybGxiblFwTG14bGJtZDBhQ0ErSURBN1hHNGdJQ0FnWTI5dWMzUWdibVZsWkhOR2RXeHNVR0Y1Ykc5aFpDQTlYRzRnSUNBZ0lDQm9ZWE5VY21GdWMybGxiblFnZkh3Z2RHaHBjeTV6YUc5MWJHUkdiM0pqWlVkaGRHVjNZWGxJZVdSeVlYUnBiMjRvWTNSNEtUdGNiaUFnSUNCamIyNXpkQ0IwY21GdWMybGxiblJRWVhsc2IyRmtJRDBnYUdGelZISmhibk5wWlc1MElEOGdleUJiZEdGaWJHVk9ZVzFsWFRvZ2RISmhibk5wWlc1MElIMGdPaUI3ZlR0Y2JseHVJQ0FnSUdOdmJuTjBJSEpsYzNWc2RDQTlJR0YzWVdsMElIUm9hWE11YzNWaWJXbDBWSEpoYm5OaFkzUnBiMjRvWEc0Z0lDQWdJQ0JqZEhnc1hHNGdJQ0FnSUNCQ2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTXVRMUpGUVZSRlgwRk1UQ3hjYmlBZ0lDQWdJRnRjYmlBZ0lDQWdJQ0FnU2xOUFRpNXpkSEpwYm1kcFpua29YRzRnSUNBZ0lDQWdJQ0FnYlc5a1pXeHpMbTFoY0Nnb2JTa2dQVDRnZEdocGN5NXpaWEpwWVd4cGVtVnlMbk5sY21saGJHbDZaU2h0TENCamJHRjZlaTV1WVcxbEtTbGNiaUFnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJRjBzWEc0Z0lDQWdJQ0IwY21GdWMybGxiblJRWVhsc2IyRmtJR0Z6SUdGdWVTeGNiaUFnSUNBZ0lIUm9hWE11WjJWMFJXNWtiM0p6YVc1blQzSm5ZVzVwZW1GMGFXOXVjeWhqZEhncExGeHVJQ0FnSUNBZ1kyeGhlbm91Ym1GdFpWeHVJQ0FnSUNrN1hHNWNiaUFnSUNCc1pYUWdjbVZ6T2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1cxMDdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJSEpsY3lBOUlFcFRUMDR1Y0dGeWMyVW9kR2hwY3k1a1pXTnZaR1VvY21WemRXeDBLU2t1YldGd0tDaHlPaUJoYm5rcElEMCtJRXBUVDA0dWNHRnljMlVvY2lrcE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dVNklIVnVhMjV2ZDI0cElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QlRaWEpwWVd4cGVtRjBhVzl1UlhKeWIzSW9aU0JoY3lCRmNuSnZjaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0Z4dUlDQWdJQ0FnZEdocGN5NXphRzkxYkdSU1pXWnlaWE5vUVdaMFpYSlhjbWwwWlNoY2JpQWdJQ0FnSUNBZ1kyeGhlbm9zWEc0Z0lDQWdJQ0FnSUdOMGVDeGNiaUFnSUNBZ0lDQWdibVZsWkhOR2RXeHNVR0Y1Ykc5aFpDeGNiaUFnSUNBZ0lDQWdjbVZ6V3pCZFcwMXZaR1ZzTG5CcktHTnNZWHA2S1NCaGN5QnpkSEpwYm1kZElIeDhJR2xrYzFzd1hWeHVJQ0FnSUNBZ0tWeHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjbVZoWkVGc2JDaGNiaUFnSUNBZ0lDQWdZMnhoZW5vc1hHNGdJQ0FnSUNBZ0lHVjRkSEpoWTNSSlpITW9YRzRnSUNBZ0lDQWdJQ0FnWTJ4aGVub3NYRzRnSUNBZ0lDQWdJQ0FnYlc5a1pXeHpMbTFoY0Nnb2JTd2dhU2tnUFQ1Y2JpQWdJQ0FnSUNBZ0lDQWdJRTF2WkdWc0xtMWxjbWRsS0U5aWFtVmpkQzVoYzNOcFoyNG9lMzBzSUcwZ1lYTWdZVzU1TENCMGNtRnVjMmxsYm5SYmFWMGdmSHdnZTMwcExDQnlaWE5iYVYwcFhHNGdJQ0FnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJQ0FnSUNCcFpITmNiaUFnSUNBZ0lDQWdLU3hjYmlBZ0lDQWdJQ0FnWTNSNFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUhKbGRIVnliaUJ5WlhNN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZKbFlXUnpJRzExYkhScGNHeGxJSEpsWTI5eVpITWdhVzRnWVNCemFXNW5iR1VnZEhKaGJuTmhZM1JwYjI1Y2JpQWdJQ29nUUhOMWJXMWhjbmtnVTNWaWJXbDBjeUJoSUhSeVlXNXpZV04wYVc5dUlIUnZJSEpsWVdRZ2JYVnNkR2x3YkdVZ2NtVmpiM0prY3lCbWNtOXRJSFJvWlNCR1lXSnlhV01nYkdWa1oyVnlYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCMFlXSnNaVTVoYldVZ0xTQlVhR1VnYm1GdFpTQnZaaUIwYUdVZ2RHRmliR1V2WTI5c2JHVmpkR2x2Ymx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVoxdGRJSHdnYm5WdFltVnlXMTE5SUdsa2N5QXRJRUZ5Y21GNUlHOW1JSEpsWTI5eVpDQnBaR1Z1ZEdsbWFXVnljeUIwYnlCeVpXRmtYRzRnSUNBcUlFQnlaWFIxY200Z2UxQnliMjFwYzJVOFFYSnlZWGs4VW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGo0K2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ2NtVjBjbWxsZG1Wa0lISmxZMjl5WkhOY2JpQWdJQ292WEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUhKbFlXUkJiR3c4VFNCbGVIUmxibVJ6SUUxdlpHVnNQaWhjYmlBZ0lDQmpiR0Y2ZWpvZ1EyOXVjM1J5ZFdOMGIzSThUVDRzWEc0Z0lDQWdhV1J6T2lCUWNtbHRZWEo1UzJWNVZIbHdaVnRkTEZ4dUlDQWdJQzR1TG1GeVozTTZJRU52Ym5SbGVIUjFZV3hCY21kelBFTnZiblJsZUhROFJtRmljbWxqUTJ4cFpXNTBSbXhoWjNNK1BseHVJQ0FwT2lCUWNtOXRhWE5sUEZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ1YlhUNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhnZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdWNtVmhaRUZzYkNrN1hHNGdJQ0FnWTI5dWMzUWdkR0ZpYkdWT1lXMWxJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLR05zWVhwNktUdGNiaUFnSUNCc2IyY3VhVzVtYnloZ2NtVmhaR2x1WnlBa2UybGtjeTVzWlc1bmRHaDlJR1Z1ZEhKcFpYTWdkRzhnSkh0MFlXSnNaVTVoYldWOUlIUmhZbXhsWUNrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1lIQnJjem9nSkh0cFpITjlZQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpkV3gwSUQwZ1lYZGhhWFFnZEdocGN5NWxkbUZzZFdGMFpWUnlZVzV6WVdOMGFXOXVLRnh1SUNBZ0lDQWdZM1I0TEZ4dUlDQWdJQ0FnUW5Wc2EwTnlkV1JQY0dWeVlYUnBiMjVMWlhsekxsSkZRVVJmUVV4TUxGeHVJQ0FnSUNBZ1cwcFRUMDR1YzNSeWFXNW5hV1o1S0dsa2N5bGRMRnh1SUNBZ0lDQWdkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdZMnhoZW5vdWJtRnRaVnh1SUNBZ0lDazdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQktVMDlPTG5CaGNuTmxLSFJvYVhNdVpHVmpiMlJsS0hKbGMzVnNkQ2twTG0xaGNDZ29jam9nWVc1NUtTQTlQaUJLVTA5T0xuQmhjbk5sS0hJcEtUdGNiaUFnSUNCOUlHTmhkR05vSUNobE9pQjFibXR1YjNkdUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dVMlZ5YVdGc2FYcGhkR2x2YmtWeWNtOXlLR1VnWVhNZ1JYSnliM0lwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdWWEJrWVhSbGN5QnRkV3gwYVhCc1pTQnlaV052Y21SeklHbHVJR0VnYzJsdVoyeGxJSFJ5WVc1ellXTjBhVzl1WEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRk4xWW0xcGRITWdZU0IwY21GdWMyRmpkR2x2YmlCMGJ5QjFjR1JoZEdVZ2JYVnNkR2x3YkdVZ2NtVmpiM0prY3lCcGJpQjBhR1VnUm1GaWNtbGpJR3hsWkdkbGNseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZEdGaWJHVk9ZVzFsSUMwZ1ZHaGxJRzVoYldVZ2IyWWdkR2hsSUhSaFlteGxMMk52Ykd4bFkzUnBiMjVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kYlhTQjhJRzUxYldKbGNsdGRmU0JwWkhNZ0xTQkJjbkpoZVNCdlppQnlaV052Y21RZ2FXUmxiblJwWm1sbGNuTmNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlVHhTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrUG4wZ2JXOWtaV3h6SUMwZ1FYSnlZWGtnYjJZZ2RYQmtZWFJsWkNCeVpXTnZjbVFnWkdGMFlWeHVJQ0FnS2lCQWNHRnlZVzBnZTFKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ1OUlIUnlZVzV6YVdWdWRDQXRJRlJ5WVc1emFXVnVkQ0JrWVhSaElHWnZjaUIwYUdVZ2RISmhibk5oWTNScGIyNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1VISnZiV2x6WlR4QmNuSmhlVHhTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrUGo1OUlGQnliMjFwYzJVZ2NtVnpiMngyYVc1bklIUnZJSFJvWlNCMWNHUmhkR1ZrSUhKbFkyOXlaSE5jYmlBZ0lDb3ZYRzRnSUc5MlpYSnlhV1JsSUdGemVXNWpJSFZ3WkdGMFpVRnNiRHhOSUdWNGRHVnVaSE1nVFc5a1pXdytLRnh1SUNBZ0lHTnNZWHA2T2lCRGIyNXpkSEoxWTNSdmNqeE5QaXhjYmlBZ0lDQnBaSE02SUZCeWFXMWhjbmxMWlhsVWVYQmxXMTBzWEc0Z0lDQWdiVzlrWld4ek9pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytXMTBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dRMjl1ZEdWNGRIVmhiRUZ5WjNNOFEyOXVkR1Y0ZER4R1lXSnlhV05EYkdsbGJuUkdiR0ZuY3o0K1hHNGdJQ2s2SUZCeWIyMXBjMlU4VW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGx0ZFBpQjdYRzRnSUNBZ2FXWWdLR2xrY3k1c1pXNW5kR2dnSVQwOUlHMXZaR1ZzY3k1c1pXNW5kR2dwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNJa2xrY3lCaGJtUWdiVzlrWld4eklHMTFjM1FnYUdGMlpTQjBhR1VnYzJGdFpTQnNaVzVuZEdoY0lpazdYRzRnSUNBZ1kyOXVjM1FnWTNSNFFYSm5jeUE5SUZzdUxpNG9ZWEpuY3lCaGN5QjFibXR1YjNkdUlHRnpJR0Z1ZVZ0ZEtWMDdYRzRnSUNBZ1kyOXVjM1FnZEhKaGJuTnBaVzUwSUQwZ1kzUjRRWEpuY3k1emFHbG1kQ2dwSUdGeklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNDdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY3NJR04wZUNCOUlEMGdkR2hwY3k1c2IyZERkSGdvWEc0Z0lDQWdJQ0JqZEhoQmNtZHpJR0Z6SUVOdmJuUmxlSFIxWVd4QmNtZHpQRU52Ym5SbGVIUThSbUZpY21salEyeHBaVzUwUm14aFozTStQaXhjYmlBZ0lDQWdJSFJvYVhNdWRYQmtZWFJsUVd4c1hHNGdJQ0FnS1R0Y2JpQWdJQ0JqYjI1emRDQjBZV0pzWlU1aGJXVWdQU0JOYjJSbGJDNTBZV0pzWlU1aGJXVW9ZMnhoZW5vcE8xeHVJQ0FnSUd4dlp5NXBibVp2S0dCMWNHUmhkR2x1WnlBa2UybGtjeTVzWlc1bmRHaDlJR1Z1ZEhKcFpYTWdkRzhnSkh0MFlXSnNaVTVoYldWOUlIUmhZbXhsWUNrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1lIQnJjem9nSkh0cFpITjlZQ2s3WEc0Z0lDQWdZMjl1YzNRZ2FHRnpWSEpoYm5OcFpXNTBJRDBnZEhKaGJuTnBaVzUwSUNZbUlFOWlhbVZqZEM1clpYbHpLSFJ5WVc1emFXVnVkQ2t1YkdWdVozUm9JRDRnTUR0Y2JpQWdJQ0JqYjI1emRDQnVaV1ZrYzBaMWJHeFFZWGxzYjJGa0lEMWNiaUFnSUNBZ0lHaGhjMVJ5WVc1emFXVnVkQ0I4ZkNCMGFHbHpMbk5vYjNWc1pFWnZjbU5sUjJGMFpYZGhlVWg1WkhKaGRHbHZiaWhqZEhncE8xeHVJQ0FnSUdOdmJuTjBJSFJ5WVc1emFXVnVkRkJoZVd4dllXUWdQU0JvWVhOVWNtRnVjMmxsYm5RZ1B5QjdJRnQwWVdKc1pVNWhiV1ZkT2lCMGNtRnVjMmxsYm5RZ2ZTQTZJSHQ5TzF4dVhHNGdJQ0FnWTI5dWMzUWdjbVZ6ZFd4MElEMGdZWGRoYVhRZ2RHaHBjeTV6ZFdKdGFYUlVjbUZ1YzJGamRHbHZiaWhjYmlBZ0lDQWdJR04wZUN4Y2JpQWdJQ0FnSUVKMWJHdERjblZrVDNCbGNtRjBhVzl1UzJWNWN5NVZVRVJCVkVWZlFVeE1MRnh1SUNBZ0lDQWdXMXh1SUNBZ0lDQWdJQ0JLVTA5T0xuTjBjbWx1WjJsbWVTaGNiaUFnSUNBZ0lDQWdJQ0J0YjJSbGJITXViV0Z3S0NodEtTQTlQaUIwYUdsekxuTmxjbWxoYkdsNlpYSXVjMlZ5YVdGc2FYcGxLRzBzSUdOc1lYcDZMbTVoYldVcEtWeHVJQ0FnSUNBZ0lDQXBMRnh1SUNBZ0lDQWdYU3hjYmlBZ0lDQWdJSFJ5WVc1emFXVnVkRkJoZVd4dllXUWdZWE1nWVc1NUxGeHVJQ0FnSUNBZ2RHaHBjeTVuWlhSRmJtUnZjbk5wYm1kUGNtZGhibWw2WVhScGIyNXpLR04wZUNrc1hHNGdJQ0FnSUNCamJHRjZlaTV1WVcxbFhHNGdJQ0FnS1R0Y2JseHVJQ0FnSUd4bGRDQnlaWE02SUdGdWVUdGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdjbVZ6SUQwZ1NsTlBUaTV3WVhKelpTaDBhR2x6TG1SbFkyOWtaU2h5WlhOMWJIUXBLUzV0WVhBb0tISTZJR0Z1ZVNrZ1BUNGdTbE5QVGk1d1lYSnpaU2h5S1NrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lGTmxjbWxoYkdsNllYUnBiMjVGY25KdmNpaGxJR0Z6SUVWeWNtOXlLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnBaaUFvZEdocGN5NXphRzkxYkdSU1pXWnlaWE5vUVdaMFpYSlhjbWwwWlNoamJHRjZlaXdnWTNSNExDQnVaV1ZrYzBaMWJHeFFZWGxzYjJGa0xDQnBaSE5iTUYwcEtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV5WldGa1FXeHNLRnh1SUNBZ0lDQWdJQ0JqYkdGNmVpeGNiaUFnSUNBZ0lDQWdaWGgwY21GamRFbGtjeWhjYmlBZ0lDQWdJQ0FnSUNCamJHRjZlaXhjYmlBZ0lDQWdJQ0FnSUNCdGIyUmxiSE11YldGd0tDaHRMQ0JwS1NBOVBseHVJQ0FnSUNBZ0lDQWdJQ0FnVFc5a1pXd3ViV1Z5WjJVb1QySnFaV04wTG1GemMybG5iaWg3ZlN3Z2JTQmhjeUJoYm5rc0lIUnlZVzV6YVdWdWRGdHBYU0I4ZkNCN2ZTa3NJSEpsYzF0cFhTbGNiaUFnSUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnSUNBZ0lHbGtjMXh1SUNBZ0lDQWdJQ0FwTEZ4dUlDQWdJQ0FnSUNCamRIaGNiaUFnSUNBZ0lDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ5WlhNN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVSbGJHVjBaWE1nYlhWc2RHbHdiR1VnY21WamIzSmtjeUJwYmlCaElITnBibWRzWlNCMGNtRnVjMkZqZEdsdmJseHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCVGRXSnRhWFJ6SUdFZ2RISmhibk5oWTNScGIyNGdkRzhnWkdWc1pYUmxJRzExYkhScGNHeGxJSEpsWTI5eVpITWdabkp2YlNCMGFHVWdSbUZpY21saklHeGxaR2RsY2x4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdkR0ZpYkdWT1lXMWxJQzBnVkdobElHNWhiV1VnYjJZZ2RHaGxJSFJoWW14bEwyTnZiR3hsWTNScGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlVHh6ZEhKcGJtY2dmQ0J1ZFcxaVpYSWdmQ0JpYVdkcGJuUStmU0JwWkhNZ0xTQkJjbkpoZVNCdlppQnlaV052Y21RZ2FXUmxiblJwWm1sbGNuTWdkRzhnWkdWc1pYUmxYRzRnSUNBcUlFQndZWEpoYlNCN1UyVnlhV0ZzYVhwbGNqeGhibmsrZlNCelpYSnBZV3hwZW1WeUlDMGdVMlZ5YVdGc2FYcGxjaUJtYjNJZ2RHaGxJRzF2WkdWc0lHUmhkR0ZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdVSEp2YldselpUeEJjbkpoZVR4U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1BqNTlJRkJ5YjIxcGMyVWdjbVZ6YjJ4MmFXNW5JSFJ2SUhSb1pTQmtaV3hsZEdWa0lISmxZMjl5WkhOY2JpQWdJQ292WEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUdSbGJHVjBaVUZzYkR4TklHVjRkR1Z1WkhNZ1RXOWtaV3crS0Z4dUlDQWdJR05zWVhwNk9pQkRiMjV6ZEhKMVkzUnZjanhOUGl4Y2JpQWdJQ0JwWkhNNklGQnlhVzFoY25sTFpYbFVlWEJsVzEwc1hHNGdJQ0FnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThRMjl1ZEdWNGREeEdZV0p5YVdORGJHbGxiblJHYkdGbmN6NCtYRzRnSUNrNklGQnliMjFwYzJVOFVtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBsdGRQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVDd2dZM1I0UVhKbmN5QjlJRDBnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NWtaV3hsZEdWQmJHd3BPMXh1SUNBZ0lHTnZibk4wSUhSaFlteGxUbUZ0WlNBOUlFMXZaR1ZzTG5SaFlteGxUbUZ0WlNoamJHRjZlaWs3WEc1Y2JpQWdJQ0JqYjI1emRDQnVaV1ZrYzBaMWJHeFFZWGxzYjJGa0lEMWNiaUFnSUNBZ0lFMXZaR1ZzTG1selZISmhibk5wWlc1MEtHTnNZWHA2S1NCOGZDQjBhR2x6TG5Ob2IzVnNaRVp2Y21ObFIyRjBaWGRoZVVoNVpISmhkR2x2YmloamRIZ3BPMXh1SUNBZ0lHeGxkQ0J5WlhOMWJIUTZJR0Z1ZVR0Y2JpQWdJQ0JqYjI1emRDQnphRzkxYkdSSWVXUnlZWFJsSUQwZ2RHaHBjeTV6YUc5MWJHUlNaV1p5WlhOb1FXWjBaWEpYY21sMFpTaGNiaUFnSUNBZ0lHTnNZWHA2TEZ4dUlDQWdJQ0FnWTNSNExGeHVJQ0FnSUNBZ2JtVmxaSE5HZFd4c1VHRjViRzloWkN4Y2JpQWdJQ0FnSUdsa2Mxc3dYVnh1SUNBZ0lDazdYRzRnSUNBZ2FXWWdLSE5vYjNWc1pFaDVaSEpoZEdVcElIdGNiaUFnSUNBZ0lISmxjM1ZzZENBOUlHRjNZV2wwSUhSb2FYTXVjbVZoWkVGc2JDaGpiR0Y2ZWl3Z2FXUnpMQ0F1TGk1amRIaEJjbWR6S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JzYjJjdWFXNW1ieWhnWkdWc1pYUnBibWNnSkh0cFpITXViR1Z1WjNSb2ZTQmxiblJ5YVdWeklIUnZJQ1I3ZEdGaWJHVk9ZVzFsZlNCMFlXSnNaV0FwTzF4dUlDQWdJR3h2Wnk1MlpYSmliM05sS0dCd2EzTTZJQ1I3YVdSemZXQXBPMXh1SUNBZ0lHTnZibk4wSUhKbGN5QTlJR0YzWVdsMElIUm9hWE11YzNWaWJXbDBWSEpoYm5OaFkzUnBiMjRvWEc0Z0lDQWdJQ0JqZEhnc1hHNGdJQ0FnSUNCQ2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTXVSRVZNUlZSRlgwRk1UQ3hjYmlBZ0lDQWdJRnRLVTA5T0xuTjBjbWx1WjJsbWVTaHBaSE1wWFN4Y2JpQWdJQ0FnSUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSUhSb2FYTXVaMlYwUlc1a2IzSnphVzVuVDNKbllXNXBlbUYwYVc5dWN5aGpkSGdwTEZ4dUlDQWdJQ0FnWTJ4aGVub3VibUZ0WlZ4dUlDQWdJQ2s3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ6YUc5MWJHUkllV1J5WVhSbFhHNGdJQ0FnSUNBZ0lEOGdjbVZ6ZFd4MFhHNGdJQ0FnSUNBZ0lEb2dTbE5QVGk1d1lYSnpaU2gwYUdsekxtUmxZMjlrWlNoeVpYTXBLUzV0WVhBb0tISTZJR0Z1ZVNrZ1BUNGdTbE5QVGk1d1lYSnpaU2h5S1NrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lGTmxjbWxoYkdsNllYUnBiMjVGY25KdmNpaGxJR0Z6SUVWeWNtOXlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGQnlaWEJoY21WeklHRWdiVzlrWld3Z1ptOXlJSEJsY25OcGMzUmxibU5sWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRU52Ym5abGNuUnpJR0VnYlc5a1pXd2dhVzV6ZEdGdVkyVWdhVzUwYnlCaElHWnZjbTFoZENCemRXbDBZV0pzWlNCbWIzSWdaR0YwWVdKaGMyVWdjM1J2Y21GblpTeGNiaUFnSUNvZ2FHRnVaR3hwYm1jZ1kyOXNkVzF1SUcxaGNIQnBibWNnWVc1a0lITmxjR0Z5WVhScGJtY2dkSEpoYm5OcFpXNTBJSEJ5YjNCbGNuUnBaWE5jYmlBZ0lDb2dRSFJsYlhCc1lYUmxJRTBnTFNCVWFHVWdiVzlrWld3Z2RIbHdaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwMTlJRzF2WkdWc0lDMGdWR2hsSUcxdlpHVnNJR2x1YzNSaGJtTmxJSFJ2SUhCeVpYQmhjbVZjYmlBZ0lDb2dRSEJoY21GdElIQnJJQzBnVkdobElIQnlhVzFoY25rZ2EyVjVJSEJ5YjNCbGNuUjVJRzVoYldWY2JpQWdJQ29nUUhKbGRIVnliaUJVYUdVZ2NISmxjR0Z5WldRZ1pHRjBZVnh1SUNBZ0tpOWNiaUFnYjNabGNuSnBaR1VnY0hKbGNHRnlaVHhOSUdWNGRHVnVaSE1nVFc5a1pXdytLRnh1SUNBZ0lHMXZaR1ZzT2lCTkxGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQRU52Ym5SbGVIUThSbUZpY21salEyeHBaVzUwUm14aFozTStQbHh1SUNBcE9pQlRaV2R5WldkaGRHVmtUVzlrWld3OFRUNGdKaUJRY21Wd1lYSmxaRTF2WkdWc0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG5CeVpYQmhjbVVwTzF4dUlDQWdJR052Ym5OMElITndiR2wwSUQwZ1RXOWtaV3d1YzJWbmNtVm5ZWFJsS0cxdlpHVnNLVHRjYmlBZ0lDQnBaaUFvS0cxdlpHVnNJR0Z6SUdGdWVTbGJVR1Z5YzJsemRHVnVZMlZMWlhsekxrMUZWRUZFUVZSQlhTa2dlMXh1SUNBZ0lDQWdiRzluTG5OcGJHeDVLRnh1SUNBZ0lDQWdJQ0JnVUdGemMybHVaeUJoYkc5dVp5QndaWEp6YVhOMFpXNWpaU0J0WlhSaFpHRjBZU0JtYjNJZ0pIc29iVzlrWld3Z1lYTWdZVzU1S1Z0UVpYSnphWE4wWlc1alpVdGxlWE11VFVWVVFVUkJWRUZkZldCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCUFltcGxZM1F1WkdWbWFXNWxVSEp2Y0dWeWRIa29jM0JzYVhRdWJXOWtaV3dzSUZCbGNuTnBjM1JsYm1ObFMyVjVjeTVOUlZSQlJFRlVRU3dnZTF4dUlDQWdJQ0FnSUNCbGJuVnRaWEpoWW14bE9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ2QzSnBkR0ZpYkdVNklHWmhiSE5sTEZ4dUlDQWdJQ0FnSUNCamIyNW1hV2QxY21GaWJHVTZJSFJ5ZFdVc1hHNGdJQ0FnSUNBZ0lIWmhiSFZsT2lBb2JXOWtaV3dnWVhNZ1lXNTVLVnRRWlhKemFYTjBaVzVqWlV0bGVYTXVUVVZVUVVSQlZFRmRMRnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2JXbHljbTl5VFdWMFlTQTlJRTF2WkdWc0xtMXBjbkp2Y21Wa1FYUW9iVzlrWld3cE8xeHVJQ0FnSUdsbUlDaHRhWEp5YjNKTlpYUmhLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQnRhWEp5YjNKTmMzQWdQU0J0YVhKeWIzSk5aWFJoTG0xemNFbGtPMXh1SUNBZ0lDQWdhV1lnS0NGdGFYSnliM0pOYzNBcElIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0dCT2J5QnRhWEp5YjNJZ1RWTlFJR052ZFd4a0lHSmxJR1p2ZFc1a1lDazdYRzRnSUNBZ0lDQnNaWFFnYlhOd2N5QTlJSFJvYVhNdVoyVjBSVzVrYjNKemFXNW5UM0puWVc1cGVtRjBhVzl1Y3loamRIZ3BJSHg4SUZ0ZE8xeHVJQ0FnSUNBZ2JYTndjeUE5SUVGeWNtRjVMbWx6UVhKeVlYa29iWE53Y3lrZ1B5QnRjM0J6SURvZ1cyMXpjSE5kTzF4dUlDQWdJQ0FnWTI5dWMzUWdiV1Z5WjJWa0lEMGdXeTR1TG01bGR5QlRaWFFvV3k0dUxtMXpjSE1zSUcxcGNuSnZjazF6Y0YwcFhUdGNiaUFnSUNBZ0lHTjBlQzVoWTJOMWJYVnNZWFJsS0h0Y2JpQWdJQ0FnSUNBZ1pXNWtiM0p6YVc1blQzSm5jem9nYldWeVoyVmtMRnh1SUNBZ0lDQWdJQ0JsYm1SdmNuTnBibWRQY21kaGJtbDZZWFJwYjI1ek9pQnRaWEpuWldRc1hHNGdJQ0FnSUNBZ0lHeGxaMkZqZVRvZ2RISjFaU3hjYmlBZ0lDQWdJSDBwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQnlaV052Y21RNklITndiR2wwTG0xdlpHVnNMRnh1SUNBZ0lDQWdiVzlrWld3NklITndiR2wwTG0xdlpHVnNMRnh1SUNBZ0lDQWdhV1E2SUcxdlpHVnNXMDF2WkdWc0xuQnJLRzF2WkdWc0xtTnZibk4wY25WamRHOXlJR0Z6SUVOdmJuTjBjblZqZEc5eVBFMCtLVjBnWVhNZ2MzUnlhVzVuTEZ4dUlDQWdJQ0FnZEhKaGJuTnBaVzUwT2lCemNHeHBkQzUwY21GdWMybGxiblFzWEc0Z0lDQWdJQ0J3Y21sMllYUmxjem9nYzNCc2FYUXVjSEpwZG1GMFpYTXNYRzRnSUNBZ0lDQnphR0Z5WldRNklITndiR2wwTG5Ob1lYSmxaQ3hjYmlBZ0lDQjlPMXh1SUNCOVhHNWNiaUFnYjNabGNuSnBaR1VnY21WMlpYSjBQRTBnWlhoMFpXNWtjeUJOYjJSbGJENG9YRzRnSUNBZ2IySnFPaUJTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrTEZ4dUlDQWdJR05zWVhwNk9pQkRiMjV6ZEhKMVkzUnZjanhOUGl4Y2JpQWdJQ0JwWkRvZ1VISnBiV0Z5ZVV0bGVWUjVjR1VzWEc0Z0lDQWdkSEpoYm5OcFpXNTBQem9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eERiMjUwWlhoMFBFWmhZbkpwWTBOc2FXVnVkRVpzWVdkelBqNWNiaUFnS1RvZ1RTQjdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY3NJR04wZUNCOUlEMGdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dkR2hwY3k1eVpYWmxjblFwTzF4dUlDQWdJR2xtSUNoY2JpQWdJQ0FnSUhSeVlXNXphV1Z1ZENBbUpseHVJQ0FnSUNBZ2RHaHBjeTV6YUc5MWJHUlNaV0oxYVd4a1YybDBhRlJ5WVc1emFXVnVkQ2hjYmlBZ0lDQWdJQ0FnWTNSNExGeHVJQ0FnSUNBZ0lDQmpkSGd1WjJWMFQzSlZibVJsWm1sdVpXUW9YQ0p2Y0dWeVlYUnBiMjVjSWlrZ1lYTWdjM1J5YVc1bklId2dkVzVrWldacGJtVmtYRzRnSUNBZ0lDQXBYRzRnSUNBZ0tTQjdYRzRnSUNBZ0lDQnNiMmN1ZG1WeVltOXpaU2hjYmlBZ0lDQWdJQ0FnWUhKbExXRmtaR2x1WnlCMGNtRnVjMmxsYm5RZ2NISnZjR1Z5ZEdsbGN6b2dKSHRQWW1wbFkzUXVhMlY1Y3loMGNtRnVjMmxsYm5RcExtcHZhVzRvWENJc0lGd2lLWDFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnVDJKcVpXTjBMbVZ1ZEhKcFpYTW9kSEpoYm5OcFpXNTBJR0Z6SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0cFhHNGdJQ0FnSUNBZ0lDNW1hV3gwWlhJb0tGc3NJSFpkS1NBOVBpQjBlWEJsYjJZZ2RpQWhQVDBnWENKMWJtUmxabWx1WldSY0lpbGNiaUFnSUNBZ0lDQWdMbVp2Y2tWaFkyZ29LRnRyWlhrc0lIWmhiRjBwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0JwWmlBb2EyVjVJR2x1SUc5aWFpQW1KaUFvYjJKcUlHRnpJR0Z1ZVNsYmEyVjVYU0FoUFQwZ2RXNWtaV1pwYm1Wa0tWeHVJQ0FnSUNBZ0lDQWdJQ0FnYkc5bkxuZGhjbTRvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR0J2ZG1WeWQzSnBkR2x1WnlCbGVHbHpkR2x1WnlBa2UydGxlWDB1SUdsbUlIUm9hWE1nYVhNZ2JtOTBJR0VnWkdWbVlYVnNkQ0IyWVd4MVpTd2dkR2hwY3lCdFlYa2djRzl6WlNCaElIQnliMkpzWlcxZ1hHNGdJQ0FnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lDaHZZbW9nWVhNZ1RTbGJhMlY1SUdGeklHdGxlVzltSUUxZElEMGdkbUZzTzF4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCamIyNXpkQ0J5WlhOMWJIUWdQU0J1WlhjZ0tHTnNZWHA2SUdGeklFTnZibk4wY25WamRHOXlQRTArS1Nodlltb3BPMXh1WEc0Z0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2MyaHZkV3hrVW1WaWRXbHNaRmRwZEdoVWNtRnVjMmxsYm5Rb1hHNGdJQ0FnWTNSNE9pQkRiMjUwWlhoMFBFWmhZbkpwWTBOc2FXVnVkRVpzWVdkelBpeGNiaUFnSUNCdmNHVnlZWFJwYjI0L09pQnpkSEpwYm1kY2JpQWdLVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdhV1lnS0NGamRIZ3BJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0JwWmlBb1kzUjRMbWRsZEU5eVZXNWtaV1pwYm1Wa0tGd2ljbVZpZFdsc1pGZHBkR2hVY21GdWMybGxiblJjSWlrcElISmxkSFZ5YmlCMGNuVmxPMXh1SUNBZ0lHTnZibk4wSUdOb2FXeGtVbVZpZFdsc1pDQTlYRzRnSUNBZ0lDQjBlWEJsYjJZZ0tHTjBlQ0JoY3lCaGJua3BMbWRsZEVaeWIyMURhR2xzWkhKbGJpQTlQVDBnWENKbWRXNWpkR2x2Ymx3aVhHNGdJQ0FnSUNBZ0lEOGdLR04wZUNCaGN5QmhibmtwTG1kbGRFWnliMjFEYUdsc1pISmxiaWhjSW5KbFluVnBiR1JYYVhSb1ZISmhibk5wWlc1MFhDSXBYRzRnSUNBZ0lDQWdJRG9nZFc1a1pXWnBibVZrTzF4dUlDQWdJR2xtSUNoamFHbHNaRkpsWW5WcGJHUXBJSEpsZEhWeWJpQjBjblZsTzF4dUlDQWdJR052Ym5OMElISmxjMjlzZG1Wa1QzQWdQU0IwYUdsekxuSmxjMjlzZG1WUGNHVnlZWFJwYjI0b1kzUjRMQ0J2Y0dWeVlYUnBiMjRwTzF4dUlDQWdJR2xtSUNnaGNtVnpiMngyWldSUGNDa2djbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJR052Ym5OMElHOXdJRDBnY21WemIyeDJaV1JQY0M1MGIxTjBjbWx1WnlncExuUnZURzkzWlhKRFlYTmxLQ2s3WEc0Z0lDQWdjbVYwZFhKdUlDaGNiaUFnSUNBZ0lHOXdMbWx1WTJ4MVpHVnpLRndpY21WaFpGd2lLU0I4ZkZ4dUlDQWdJQ0FnYjNBdWFXNWpiSFZrWlhNb1hDSm1hVzVrWENJcElIeDhYRzRnSUNBZ0lDQnZjQzVwYm1Oc2RXUmxjeWhjSW5GMVpYSjVYQ0lwSUh4OFhHNGdJQ0FnSUNCdmNDNXBibU5zZFdSbGN5aGNJbk4wWVhSbGJXVnVkRndpS1NCOGZGeHVJQ0FnSUNBZ2IzQXVhVzVqYkhWa1pYTW9YQ0p3WVdkbFhDSXBYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjbVZ6YjJ4MlpVOXdaWEpoZEdsdmJpaGNiaUFnSUNCamRIZzZJRU52Ym5SbGVIUThSbUZpY21salEyeHBaVzUwUm14aFozTStMRnh1SUNBZ0lHOXdaWEpoZEdsdmJqODZJSE4wY21sdVoxeHVJQ0FwT2lCemRISnBibWNnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUdsbUlDaHZjR1Z5WVhScGIyNHBJSEpsZEhWeWJpQnZjR1Z5WVhScGIyNDdYRzRnSUNBZ2FXWWdLSFI1Y0dWdlppQW9ZM1I0SUdGeklHRnVlU2t1WjJWMFJuSnZiVU5vYVd4a2NtVnVJRDA5UFNCY0ltWjFibU4wYVc5dVhDSXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQW9ZM1I0SUdGeklHRnVlU2t1WjJWMFJuSnZiVU5vYVd4a2NtVnVLRndpYjNCbGNtRjBhVzl1WENJcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdkVzVrWldacGJtVmtPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J6YUc5MWJHUlNaV1p5WlhOb1FXWjBaWEpYY21sMFpUeE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0FnSUdOc1lYcDZPaUJEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnSUNCamRIZzZJRU52Ym5SbGVIUThSbUZpY21salEyeHBaVzUwUm14aFozTStMRnh1SUNBZ0lHaGhjMVJ5WVc1emFXVnVkRG9nWW05dmJHVmhiaXhjYmlBZ0lDQnBaRDg2SUZCeWFXMWhjbmxMWlhsVWVYQmxYRzRnSUNrNklHSnZiMnhsWVc0Z2UxeHVJQ0FnSUdsbUlDZ2hhR0Z6VkhKaGJuTnBaVzUwS1NCeVpYUjFjbTRnWm1Gc2MyVTdYRzRnSUNBZ1kyOXVjM1FnY0dzZ1BTQk5iMlJsYkM1d2F5aGpiR0Y2ZWlrN1hHNGdJQ0FnWTI5dWMzUWdZMjl0Y0c5elpXUWdQU0JOYjJSbGJDNWpiMjF3YjNObFpDaGpiR0Y2ZWl3Z2NHc3BPMXh1SUNBZ0lHTnZibk4wSUdkbGJtVnlZWFJsWkNBOUlFMXZaR1ZzTG1kbGJtVnlZWFJsWkNoamJHRjZlaXdnY0dzcE8xeHVJQ0FnSUdOdmJuTjBJR2hoYzBsa0lEMGdhV1FnSVQwOUlIVnVaR1ZtYVc1bFpDQW1KaUJwWkNBaFBUMGdiblZzYkR0Y2JpQWdJQ0JwWmlBb0lXaGhjMGxrSUNZbUlHTnZiWEJ2YzJWa0tTQnlaWFIxY200Z2RISjFaVHRjYmlBZ0lDQnBaaUFvSVdoaGMwbGtJQ1ltSUdkbGJtVnlZWFJsWkNrZ2UxeHVJQ0FnSUNBZ1kzUjRMbXh2WjJkbGNpNTNZWEp1S0Z4dUlDQWdJQ0FnSUNCZ1EyRnVibTkwSUhKbFpuSmxjMmdnY21WamIzSmtJSGRwZEdnZ2NISnBkbUYwWlNCblpXNWxjbUYwWldRZ2NISnBiV0Z5ZVNCclpYbGdYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlHWmhiSE5sTzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2FHRnpTV1E3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdkbGRFVnVaRzl5YzJsdVowOXlaMkZ1YVhwaGRHbHZibk1vWEc0Z0lDQWdZM1I0T2lCRGIyNTBaWGgwUEVaaFluSnBZME5zYVdWdWRFWnNZV2R6UGx4dUlDQXBPaUJ6ZEhKcGJtZGJYU0I4SUhWdVpHVm1hVzVsWkNCN1hHNGdJQ0FnWTI5dWMzUWdaR2x5WldOMElEMWNiaUFnSUNBZ0lHTjBlQzVuWlhSUGNsVnVaR1ZtYVc1bFpDaGNJbVZ1Wkc5eWMybHVaMDl5WjNOY0lpa2dmSHhjYmlBZ0lDQWdJQ2hqZEhndVoyVjBUM0pWYm1SbFptbHVaV1FvWENKbGJtUnZjbk5wYm1kUGNtZHpYQ0lwSUdGeklITjBjbWx1WjF0ZElId2dkVzVrWldacGJtVmtLVHRjYmlBZ0lDQnBaaUFvWkdseVpXTjBJQ1ltSUdScGNtVmpkQzVzWlc1bmRHZ3BJSEpsZEhWeWJpQmthWEpsWTNRN1hHNGdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJQ2hqZEhndVoyVjBSbkp2YlVOb2FXeGtjbVZ1S0Z3aVpXNWtiM0p6YVc1blQzSm5jMXdpS1NCaGN5QnpkSEpwYm1kYlhTQjhJSFZ1WkdWbWFXNWxaQ2tnZkh4Y2JpQWdJQ0FnSUNoamRIZ3VaMlYwUm5KdmJVTm9hV3hrY21WdUtGd2laVzVrYjNKemFXNW5UM0puYzF3aUtTQmhjeUJ6ZEhKcGJtZGJYU0I4SUhWdVpHVm1hVzVsWkNsY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCemFHOTFiR1JHYjNKalpVZGhkR1YzWVhsSWVXUnlZWFJwYjI0b1hHNGdJQ0FnTHk4Z1pYTnNhVzUwTFdScGMyRmliR1V0Ym1WNGRDMXNhVzVsSUVCMGVYQmxjMk55YVhCMExXVnpiR2x1ZEM5dWJ5MTFiblZ6WldRdGRtRnljMXh1SUNBZ0lHTjBlRG9nUTI5dWRHVjRkRHhHWVdKeWFXTkRiR2xsYm5SR2JHRm5jejVjYmlBZ0tUb2dZbTl2YkdWaGJpQjdYRzRnSUNBZ2NtVjBkWEp1SUNFaGRHaHBjeTVqYjI1bWFXY3VZV3hzYjNkSFlYUmxkMkY1VDNabGNuSnBaR1U3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRU55WldGMFpYTWdZU0J6YVc1bmJHVWdjbVZqYjNKa1hHNGdJQ0FxSUVCemRXMXRZWEo1SUZOMVltMXBkSE1nWVNCMGNtRnVjMkZqZEdsdmJpQjBieUJqY21WaGRHVWdZU0J5WldOdmNtUWdhVzRnZEdobElFWmhZbkpwWXlCc1pXUm5aWEpjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlIUmhZbXhsVG1GdFpTQXRJRlJvWlNCdVlXMWxJRzltSUhSb1pTQjBZV0pzWlM5amIyeHNaV04wYVc5dVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5JSHdnYm5WdFltVnlmU0JwWkNBdElGUm9aU0J5WldOdmNtUWdhV1JsYm5ScFptbGxjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UxSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNTlJRzF2WkdWc0lDMGdWR2hsSUhKbFkyOXlaQ0JrWVhSaFhHNGdJQ0FxSUVCd1lYSmhiU0I3VW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UG4wZ2RISmhibk5wWlc1MElDMGdWSEpoYm5OcFpXNTBJR1JoZEdFZ1ptOXlJSFJvWlNCMGNtRnVjMkZqZEdsdmJseHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0K2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ1kzSmxZWFJsWkNCeVpXTnZjbVJjYmlBZ0lDb3ZYRzRnSUVCa1pXSjFaeWdwWEc0Z0lFQm1hVzVoYkNncFhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklHTnlaV0YwWlR4TklHVjRkR1Z1WkhNZ1RXOWtaV3crS0Z4dUlDQWdJR05zWVhwNk9pQkRiMjV6ZEhKMVkzUnZjanhOUGl4Y2JpQWdJQ0JwWkRvZ1VISnBiV0Z5ZVV0bGVWUjVjR1VzWEc0Z0lDQWdiVzlrWld3NklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNHNYRzRnSUNBZ2RISmhibk5wWlc1ME9pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytJRDBnZTMwc1hHNGdJQ0FnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThRMjl1ZEdWNGREeEdZV0p5YVdORGJHbGxiblJHYkdGbmN6NCtYRzRnSUNrNklGQnliMjFwYzJVOFVtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBqNGdlMXh1SUNBZ0lHTnZibk4wSUdOMGVFRnlaM01nUFNCYkxpNHVLR0Z5WjNNZ1lYTWdkVzVyYm05M2JpQmhjeUJoYm5sYlhTbGRPMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhnZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0Z4dUlDQWdJQ0FnWTNSNFFYSm5jeUJoY3lCRGIyNTBaWGgwZFdGc1FYSm5jenhEYjI1MFpYaDBQRVpoWW5KcFkwTnNhV1Z1ZEVac1lXZHpQajRzWEc0Z0lDQWdJQ0IwYUdsekxtTnlaV0YwWlZ4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ2RHRmliR1ZPWVcxbElEMGdUVzlrWld3dWRHRmliR1ZPWVcxbEtHTnNZWHA2S1R0Y2JpQWdJQ0JzYjJjdWRtVnlZbTl6WlNoZ1lXUmthVzVuSUdWdWRISjVJSFJ2SUNSN2RHRmliR1ZPWVcxbGZTQjBZV0pzWldBcE8xeHVJQ0FnSUd4dlp5NWtaV0oxWnloZ2NHczZJQ1I3YVdSOVlDazdYRzRnSUNBZ1kyOXVjM1FnYUdGelZISmhibk5wWlc1MElEMGdkSEpoYm5OcFpXNTBJQ1ltSUU5aWFtVmpkQzVyWlhsektIUnlZVzV6YVdWdWRDa3ViR1Z1WjNSb0lENGdNRHRjYmlBZ0lDQmpiMjV6ZENCdVpXVmtjMFoxYkd4UVlYbHNiMkZrSUQxY2JpQWdJQ0FnSUdoaGMxUnlZVzV6YVdWdWRDQjhmQ0IwYUdsekxuTm9iM1ZzWkVadmNtTmxSMkYwWlhkaGVVaDVaSEpoZEdsdmJpaGpkSGdwTzF4dUlDQWdJR052Ym5OMElIUnlZVzV6YVdWdWRGQmhlV3h2WVdRZ1BTQm9ZWE5VY21GdWMybGxiblFnUHlCN0lGdDBZV0pzWlU1aGJXVmRPaUIwY21GdWMybGxiblFnZlNBNklIdDlPMXh1SUNBZ0lHTnZibk4wSUhKbGMzVnNkQ0E5SUdGM1lXbDBJSFJvYVhNdWMzVmliV2wwVkhKaGJuTmhZM1JwYjI0b1hHNGdJQ0FnSUNCamRIZ3NYRzRnSUNBZ0lDQlBjR1Z5WVhScGIyNUxaWGx6TGtOU1JVRlVSU3hjYmlBZ0lDQWdJRnQwYUdsekxuTmxjbWxoYkdsNlpYSXVjMlZ5YVdGc2FYcGxLRzF2WkdWc0xDQmpiR0Y2ZWk1dVlXMWxLVjBzWEc0Z0lDQWdJQ0IwY21GdWMybGxiblJRWVhsc2IyRmtJR0Z6SUdGdWVTeGNiaUFnSUNBZ0lIUm9hWE11WjJWMFJXNWtiM0p6YVc1blQzSm5ZVzVwZW1GMGFXOXVjeWhqZEhncExGeHVJQ0FnSUNBZ1kyeGhlbm91Ym1GdFpWeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdaR1Z6WlhKcFlXeHBlbVZrSUQwZ2RHaHBjeTV6WlhKcFlXeHBlbVZ5TG1SbGMyVnlhV0ZzYVhwbEtIUm9hWE11WkdWamIyUmxLSEpsYzNWc2RDa3BPMXh1SUNBZ0lHbG1JQ2gwYUdsekxuTm9iM1ZzWkZKbFpuSmxjMmhCWm5SbGNsZHlhWFJsS0dOc1lYcDZMQ0JqZEhnc0lHNWxaV1J6Um5Wc2JGQmhlV3h2WVdRc0lHbGtLU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWNtVmhaQ2hjYmlBZ0lDQWdJQ0FnWTJ4aGVub3NYRzRnSUNBZ0lDQWdJR1Y0ZEhKaFkzUkpaSE1vWEc0Z0lDQWdJQ0FnSUNBZ1kyeGhlbm9zWEc0Z0lDQWdJQ0FnSUNBZ1RXOWtaV3d1YldWeVoyVW9YRzRnSUNBZ0lDQWdJQ0FnSUNCUFltcGxZM1F1WVhOemFXZHVLSHQ5TENCdGIyUmxiQ3dnZEhKaGJuTnBaVzUwSUh4OElIdDlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHUmxjMlZ5YVdGc2FYcGxaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnNZWHA2WEc0Z0lDQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lDQWdJQ0JwWkZ4dUlDQWdJQ0FnSUNBcExGeHVJQ0FnSUNBZ0lDQmpkSGhjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCa1pYTmxjbWxoYkdsNlpXUTdYRzRnSUgxY2JseHVJQ0JBWkdWaWRXY29LVnh1SUNCQVptbHVZV3dvS1Z4dUlDQmhjM2x1WXlCb1pXRnNkR2hqYUdWamF6eE5JR1Y0ZEdWdVpITWdUVzlrWld3K0tGeHVJQ0FnSUdOc1lYcDZPaUJEYjI1emRISjFZM1J2Y2p4TlBpeGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhEYjI1MFpYaDBQRVpoWW5KcFkwTnNhV1Z1ZEVac1lXZHpQajVjYmlBZ0tUb2dVSEp2YldselpUeFNaV052Y21ROGMzUnlhVzVuTENCaGJuaytQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVDQjlJRDBnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NW9aV0ZzZEdoamFHVmpheWs3WEc0Z0lDQWdZMjl1YzNRZ2RHRmliR1ZPWVcxbElEMGdUVzlrWld3dWRHRmliR1ZPWVcxbEtHTnNZWHA2S1R0Y2JseHVJQ0FnSUd4dlp5NTJaWEppYjNObEtHQnlaV0ZrYVc1bklHVnVkSEo1SUdaeWIyMGdKSHQwWVdKc1pVNWhiV1Y5SUhSaFlteGxZQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NtVnpkV3gwSUQwZ1lYZGhhWFFnZEdocGN5NWxkbUZzZFdGMFpWUnlZVzV6WVdOMGFXOXVLRnh1SUNBZ0lDQWdZM1I0TEZ4dUlDQWdJQ0FnWENKb1pXRnNkR2hqYUdWamExd2lMRnh1SUNBZ0lDQWdXMTBzWEc0Z0lDQWdJQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0JqYkdGNmVpNXVZVzFsWEc0Z0lDQWdLVHRjYmlBZ0lDQnlaWFIxY200Z1NsTlBUaTV3WVhKelpTaDBhR2x6TG1SbFkyOWtaU2h5WlhOMWJIUXBLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVbVZoWkhNZ1lTQnphVzVuYkdVZ2NtVmpiM0prWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRVYyWVd4MVlYUmxjeUJoSUhSeVlXNXpZV04wYVc5dUlIUnZJSEpsWVdRZ1lTQnlaV052Y21RZ1puSnZiU0IwYUdVZ1JtRmljbWxqSUd4bFpHZGxjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RHRmliR1ZPWVcxbElDMGdWR2hsSUc1aGJXVWdiMllnZEdobElIUmhZbXhsTDJOdmJHeGxZM1JwYjI1Y2JpQWdJQ29nUUhCaGNtRnRJSHR6ZEhKcGJtY2dmQ0J1ZFcxaVpYSjlJR2xrSUMwZ1ZHaGxJSEpsWTI5eVpDQnBaR1Z1ZEdsbWFXVnlYRzRnSUNBcUlFQnlaWFIxY200Z2UxQnliMjFwYzJVOFVtVmpiM0prUEhOMGNtbHVaeXdnWVc1NVBqNTlJRkJ5YjIxcGMyVWdjbVZ6YjJ4MmFXNW5JSFJ2SUhSb1pTQnlaWFJ5YVdWMlpXUWdjbVZqYjNKa1hHNGdJQ0FxTDF4dUlDQkFaR1ZpZFdjb0tWeHVJQ0JBWm1sdVlXd29LVnh1SUNCaGMzbHVZeUJ5WldGa1BFMGdaWGgwWlc1a2N5Qk5iMlJsYkQ0b1hHNGdJQ0FnWTJ4aGVubzZJRU52Ym5OMGNuVmpkRzl5UEUwK0xGeHVJQ0FnSUdsa09pQlFjbWx0WVhKNVMyVjVWSGx3WlN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eERiMjUwWlhoMFBFWmhZbkpwWTBOc2FXVnVkRVpzWVdkelBqNWNiaUFnS1RvZ1VISnZiV2x6WlR4U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY3NJR04wZUNCOUlEMGdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dkR2hwY3k1eVpXRmtLVHRjYmlBZ0lDQmpiMjV6ZENCMFlXSnNaVTVoYldVZ1BTQk5iMlJsYkM1MFlXSnNaVTVoYldVb1kyeGhlbm9wTzF4dVhHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1lISmxZV1JwYm1jZ1pXNTBjbmtnWm5KdmJTQWtlM1JoWW14bFRtRnRaWDBnZEdGaWJHVmdLVHRjYmlBZ0lDQnNiMmN1WkdWaWRXY29ZSEJyT2lBa2UybGtmV0FwTzF4dUlDQWdJR052Ym5OMElISmxjM1ZzZENBOUlHRjNZV2wwSUhSb2FYTXVaWFpoYkhWaGRHVlVjbUZ1YzJGamRHbHZiaWhjYmlBZ0lDQWdJR04wZUN4Y2JpQWdJQ0FnSUU5d1pYSmhkR2x2Ymt0bGVYTXVVa1ZCUkN4Y2JpQWdJQ0FnSUZ0cFpDNTBiMU4wY21sdVp5Z3BYU3hjYmlBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJR05zWVhwNkxtNWhiV1ZjYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbk5sY21saGJHbDZaWEl1WkdWelpYSnBZV3hwZW1Vb2RHaHBjeTVrWldOdlpHVW9jbVZ6ZFd4MEtTazdYRzRnSUgxY2JseHVJQ0IxY0dSaGRHVlFjbVZtYVhnOFRTQmxlSFJsYm1SeklFMXZaR1ZzUGloY2JpQWdJQ0JqYkdGNmVqb2dRMjl1YzNSeWRXTjBiM0k4VFQ0c1hHNGdJQ0FnYVdRNklGQnlhVzFoY25sTFpYbFVlWEJsTEZ4dUlDQWdJRzF2WkdWc09pQlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eERiMjUwWlhoMFBFWmhZbkpwWTBOc2FXVnVkRVpzWVdkelBqNWNiaUFnS1NCN1hHNGdJQ0FnWTI5dWMzUWdkR0ZpYkdWT1lXMWxJRDBnVFc5a1pXd3VkR0ZpYkdWT1lXMWxLR05zWVhwNktUdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lIUm9hWE11ZFhCa1lYUmxVSEpsWm1sNEtUdGNiaUFnSUNCamIyNXpkQ0J5WldOdmNtUTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRnUFNCN2ZUdGNiaUFnSUNCeVpXTnZjbVJiUTI5MVkyaEVRa3RsZVhNdVZFRkNURVZkSUQwZ2RHRmliR1ZPWVcxbE8xeHVJQ0FnSUM4dklISmxZMjl5WkZ0RGIzVmphRVJDUzJWNWN5NUpSRjBnUFNCMGFHbHpMbWRsYm1WeVlYUmxTV1FvZEdGaWJHVk9ZVzFsTENCcFpDazdYRzRnSUNBZ1QySnFaV04wTG1GemMybG5iaWh5WldOdmNtUXNJRzF2WkdWc0tUdGNiaUFnSUNCeVpYUjFjbTRnVzJOc1lYcDZMQ0JwWkN3Z2NtVmpiM0prTENBdUxpNWpkSGhCY21kelhUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1ZYQmtZWFJsY3lCaElITnBibWRzWlNCeVpXTnZjbVJjYmlBZ0lDb2dRSE4xYlcxaGNua2dVM1ZpYldsMGN5QmhJSFJ5WVc1ellXTjBhVzl1SUhSdklIVndaR0YwWlNCaElISmxZMjl5WkNCcGJpQjBhR1VnUm1GaWNtbGpJR3hsWkdkbGNseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnZEdGaWJHVk9ZVzFsSUMwZ1ZHaGxJRzVoYldVZ2IyWWdkR2hsSUhSaFlteGxMMk52Ykd4bFkzUnBiMjVjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1jZ2ZDQnVkVzFpWlhKOUlHbGtJQzBnVkdobElISmxZMjl5WkNCcFpHVnVkR2xtYVdWeVhHNGdJQ0FxSUVCd1lYSmhiU0I3VW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UG4wZ2JXOWtaV3dnTFNCVWFHVWdkWEJrWVhSbFpDQnlaV052Y21RZ1pHRjBZVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UxSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNTlJSFJ5WVc1emFXVnVkQ0F0SUZSeVlXNXphV1Z1ZENCa1lYUmhJR1p2Y2lCMGFHVWdkSEpoYm5OaFkzUnBiMjVjYmlBZ0lDb2dRSEpsZEhWeWJpQjdVSEp2YldselpUeFNaV052Y21ROGMzUnlhVzVuTENCaGJuaytQbjBnVUhKdmJXbHpaU0J5WlhOdmJIWnBibWNnZEc4Z2RHaGxJSFZ3WkdGMFpXUWdjbVZqYjNKa1hHNGdJQ0FxTDF4dUlDQkFaR1ZpZFdjb0tWeHVJQ0JBWm1sdVlXd29LVnh1SUNCaGMzbHVZeUIxY0dSaGRHVThUU0JsZUhSbGJtUnpJRTF2WkdWc1BpaGNiaUFnSUNCamJHRjZlam9nUTI5dWMzUnlkV04wYjNJOFRUNHNYRzRnSUNBZ2FXUTZJRkJ5YVcxaGNubExaWGxVZVhCbExGeHVJQ0FnSUcxdlpHVnNPaUJTWldOdmNtUThjM1J5YVc1bkxDQmhibmsrTEZ4dUlDQWdJSFJ5WVc1emFXVnVkRG9nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGlBOUlIdDlMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEVOdmJuUmxlSFE4Um1GaWNtbGpRMnhwWlc1MFJteGhaM00rUGx4dUlDQXBPaUJRY205dGFYTmxQRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDQrSUh0Y2JpQWdJQ0JqYjI1emRDQmpkSGhCY21keklEMGdXeTR1TGloaGNtZHpJR0Z6SUhWdWEyNXZkMjRnWVhNZ1lXNTVXMTBwWFR0Y2JpQWdJQ0JqYjI1emRDQjdJR3h2Wnl3Z1kzUjRJSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGNiaUFnSUNBZ0lHTjBlRUZ5WjNNZ1lYTWdRMjl1ZEdWNGRIVmhiRUZ5WjNNOFEyOXVkR1Y0ZER4R1lXSnlhV05EYkdsbGJuUkdiR0ZuY3o0K0xGeHVJQ0FnSUNBZ2RHaHBjeTUxY0dSaGRHVmNiaUFnSUNBcE8xeHVJQ0FnSUd4dlp5NXBibVp2S0dCRFRFbEZUbFFnVlZCRVFWUkZJR05zWVhOeklEb2dKSHQwZVhCbGIyWWdZMnhoZW5wOVlDazdYRzRnSUNBZ1kyOXVjM1FnZEdGaWJHVk9ZVzFsSUQwZ1RXOWtaV3d1ZEdGaWJHVk9ZVzFsS0dOc1lYcDZLVHRjYmlBZ0lDQnNiMmN1ZG1WeVltOXpaU2hnZFhCa1lYUnBibWNnWlc1MGNua2dkRzhnSkh0MFlXSnNaVTVoYldWOUlIUmhZbXhsWUNrN1hHNGdJQ0FnYkc5bkxtUmxZblZuS0dCd2F6b2dKSHRwWkgxZ0tUdGNiaUFnSUNCamIyNXpkQ0JvWVhOVWNtRnVjMmxsYm5RZ1BTQjBjbUZ1YzJsbGJuUWdKaVlnVDJKcVpXTjBMbXRsZVhNb2RISmhibk5wWlc1MEtTNXNaVzVuZEdnZ1BpQXdPMXh1SUNBZ0lHTnZibk4wSUc1bFpXUnpSblZzYkZCaGVXeHZZV1FnUFZ4dUlDQWdJQ0FnYUdGelZISmhibk5wWlc1MElIeDhJSFJvYVhNdWMyaHZkV3hrUm05eVkyVkhZWFJsZDJGNVNIbGtjbUYwYVc5dUtHTjBlQ2s3WEc0Z0lDQWdZMjl1YzNRZ2RISmhibk5wWlc1MFVHRjViRzloWkNBOUlHaGhjMVJ5WVc1emFXVnVkQ0EvSUhzZ1czUmhZbXhsVG1GdFpWMDZJSFJ5WVc1emFXVnVkQ0I5SURvZ2UzMDdYRzRnSUNBZ1kyOXVjM1FnY21WemRXeDBJRDBnWVhkaGFYUWdkR2hwY3k1emRXSnRhWFJVY21GdWMyRmpkR2x2YmloY2JpQWdJQ0FnSUdOMGVDeGNiaUFnSUNBZ0lFOXdaWEpoZEdsdmJrdGxlWE11VlZCRVFWUkZMRnh1SUNBZ0lDQWdXM1JvYVhNdWMyVnlhV0ZzYVhwbGNpNXpaWEpwWVd4cGVtVW9iVzlrWld3c0lHTnNZWHA2TG01aGJXVWdmSHdnWTJ4aGVub3BYU3dnTHk4Z1ZFOUVUeUJ6YUc5MWJHUWdZbVVnY21WalpYWnBibWNnWTJ4aGMzTWdZblYwSUdseklISmxZMlZwZG1sdVp5QnpkSEpwYm1kY2JpQWdJQ0FnSUhSeVlXNXphV1Z1ZEZCaGVXeHZZV1FnWVhNZ1lXNTVMRnh1SUNBZ0lDQWdkR2hwY3k1blpYUkZibVJ2Y25OcGJtZFBjbWRoYm1sNllYUnBiMjV6S0dOMGVDa3NYRzRnSUNBZ0lDQmpiR0Y2ZWk1dVlXMWxYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0JrWlhObGNtbGhiR2w2WldRZ1BTQjBhR2x6TG5ObGNtbGhiR2w2WlhJdVpHVnpaWEpwWVd4cGVtVW9kR2hwY3k1a1pXTnZaR1VvY21WemRXeDBLU2s3WEc0Z0lDQWdhV1lnS0hSb2FYTXVjMmh2ZFd4a1VtVm1jbVZ6YUVGbWRHVnlWM0pwZEdVb1kyeGhlbm9zSUdOMGVDd2dibVZsWkhOR2RXeHNVR0Y1Ykc5aFpDd2dhV1FwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnZEdocGN5NXlaV0ZrS0Z4dUlDQWdJQ0FnSUNCamJHRjZlaXhjYmlBZ0lDQWdJQ0FnWlhoMGNtRmpkRWxrY3loY2JpQWdJQ0FnSUNBZ0lDQmpiR0Y2ZWl4Y2JpQWdJQ0FnSUNBZ0lDQk5iMlJsYkM1dFpYSm5aU2hjYmlBZ0lDQWdJQ0FnSUNBZ0lFOWlhbVZqZEM1aGMzTnBaMjRvZTMwc0lHMXZaR1ZzTENCMGNtRnVjMmxsYm5RZ2ZId2dlMzBwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaR1Z6WlhKcFlXeHBlbVZrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdZMnhoZW5wY2JpQWdJQ0FnSUNBZ0lDQXBMRnh1SUNBZ0lDQWdJQ0FnSUdsa1hHNGdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQWdJR04wZUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHUmxjMlZ5YVdGc2FYcGxaRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSR1ZzWlhSbGN5QmhJSE5wYm1kc1pTQnlaV052Y21SY2JpQWdJQ29nUUhOMWJXMWhjbmtnVTNWaWJXbDBjeUJoSUhSeVlXNXpZV04wYVc5dUlIUnZJR1JsYkdWMFpTQmhJSEpsWTI5eVpDQm1jbTl0SUhSb1pTQkdZV0p5YVdNZ2JHVmtaMlZ5WEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQjBZV0pzWlU1aGJXVWdMU0JVYUdVZ2JtRnRaU0J2WmlCMGFHVWdkR0ZpYkdVdlkyOXNiR1ZqZEdsdmJseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaeUI4SUc1MWJXSmxjbjBnYVdRZ0xTQlVhR1VnY21WamIzSmtJR2xrWlc1MGFXWnBaWElnZEc4Z1pHVnNaWFJsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMUJ5YjIxcGMyVThVbVZqYjNKa1BITjBjbWx1Wnl3Z1lXNTVQajU5SUZCeWIyMXBjMlVnY21WemIyeDJhVzVuSUhSdklIUm9aU0JrWld4bGRHVmtJSEpsWTI5eVpGeHVJQ0FnS2k5Y2JpQWdRR1JsWW5WbktDbGNiaUFnUUdacGJtRnNLQ2xjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nWkdWc1pYUmxQRTBnWlhoMFpXNWtjeUJOYjJSbGJENG9YRzRnSUNBZ1kyeGhlbm82SUVOdmJuTjBjblZqZEc5eVBFMCtMRnh1SUNBZ0lHbGtPaUJRY21sdFlYSjVTMlY1Vkhsd1pTeGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhEYjI1MFpYaDBQRVpoWW5KcFkwTnNhV1Z1ZEVac1lXZHpQajVjYmlBZ0tUb2dVSEp2YldselpUeFNaV052Y21ROGMzUnlhVzVuTENCaGJuaytQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVDQjlJRDBnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnZEdocGN5NWtaV3hsZEdVcE8xeHVJQ0FnSUdOdmJuTjBJSFJoWW14bFRtRnRaU0E5SUUxdlpHVnNMblJoWW14bFRtRnRaU2hqYkdGNmVpazdYRzRnSUNBZ1kyOXVjM1FnYm1WbFpITkdkV3hzVUdGNWJHOWhaQ0E5WEc0Z0lDQWdJQ0JOYjJSbGJDNXBjMVJ5WVc1emFXVnVkQ2hqYkdGNmVpa2dmSHdnZEdocGN5NXphRzkxYkdSR2IzSmpaVWRoZEdWM1lYbEllV1J5WVhScGIyNG9ZM1I0S1R0Y2JpQWdJQ0JzWlhRZ2NtVnpkV3gwT2lCaGJuazdYRzRnSUNBZ1kyOXVjM1FnYzJodmRXeGtTSGxrY21GMFpTQTlJSFJvYVhNdWMyaHZkV3hrVW1WbWNtVnphRUZtZEdWeVYzSnBkR1VvWEc0Z0lDQWdJQ0JqYkdGNmVpeGNiaUFnSUNBZ0lHTjBlQ3hjYmlBZ0lDQWdJRzVsWldSelJuVnNiRkJoZVd4dllXUXNYRzRnSUNBZ0lDQnBaRnh1SUNBZ0lDazdYRzRnSUNBZ2FXWWdLSE5vYjNWc1pFaDVaSEpoZEdVcElIdGNiaUFnSUNBZ0lISmxjM1ZzZENBOUlHRjNZV2wwSUhSb2FYTXVjbVZoWkNoamJHRjZlaXdnYVdRc0lHTjBlQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdiRzluTG5abGNtSnZjMlVvWUdSbGJHVjBhVzVuSUdWdWRISjVJR1p5YjIwZ0pIdDBZV0pzWlU1aGJXVjlJSFJoWW14bFlDazdYRzRnSUNBZ2JHOW5MbVJsWW5WbktHQndhem9nSkh0cFpIMWdLVHRjYmlBZ0lDQmpiMjV6ZENCeVpYTWdQU0JoZDJGcGRDQjBhR2x6TG5OMVltMXBkRlJ5WVc1ellXTjBhVzl1S0Z4dUlDQWdJQ0FnWTNSNExGeHVJQ0FnSUNBZ1QzQmxjbUYwYVc5dVMyVjVjeTVFUlV4RlZFVXNYRzRnSUNBZ0lDQmJhV1F1ZEc5VGRISnBibWNvS1Ywc1hHNGdJQ0FnSUNCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNCMGFHbHpMbWRsZEVWdVpHOXljMmx1WjA5eVoyRnVhWHBoZEdsdmJuTW9ZM1I0S1N4Y2JpQWdJQ0FnSUdOc1lYcDZMbTVoYldWY2JpQWdJQ0FwTzF4dUlDQWdJSEpsZEhWeWJpQnphRzkxYkdSSWVXUnlZWFJsWEc0Z0lDQWdJQ0EvSUhKbGMzVnNkRnh1SUNBZ0lDQWdPaUIwYUdsekxuTmxjbWxoYkdsNlpYSXVaR1Z6WlhKcFlXeHBlbVVvZEdocGN5NWtaV052WkdVb2NtVnpLU2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRVY0WldOMWRHVnpJR0VnY21GM0lIRjFaWEo1SUdGbllXbHVjM1FnZEdobElFWmhZbkpwWXlCc1pXUm5aWEpjYmlBZ0lDb2dRSE4xYlcxaGNua2dSWFpoYkhWaGRHVnpJR0VnZEhKaGJuTmhZM1JwYjI0Z2RHOGdjR1Z5Wm05eWJTQmhJSEYxWlhKNUlIVnphVzVuSUUxaGJtZHZJRkYxWlhKNUlITjViblJoZUZ4dUlDQWdLaUJBZEdWdGNHeGhkR1VnVmlBdElGUm9aU0J5WlhSMWNtNGdkSGx3WlZ4dUlDQWdLaUJBY0dGeVlXMGdlMDFoYm1kdlVYVmxjbmw5SUhKaGQwbHVjSFYwSUMwZ1ZHaGxJRTFoYm1kdklGRjFaWEo1SUhSdklHVjRaV04xZEdWY2JpQWdJQ29nUUhCaGNtRnRJSHRpYjI5c1pXRnVmU0J3Y205alpYTnpJQzBnVjJobGRHaGxjaUIwYnlCd2NtOWpaWE56SUhSb1pTQnlaWE4xYkhSY2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhXUG4wZ1VISnZiV2x6WlNCeVpYTnZiSFpwYm1jZ2RHOGdkR2hsSUhGMVpYSjVJSEpsYzNWc2RGeHVJQ0FnS2lCQWJXVnliV0ZwWkZ4dUlDQWdLaUJ6WlhGMVpXNWpaVVJwWVdkeVlXMWNiaUFnSUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JEYkdsbGJuUmNiaUFnSUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JHWVdKeWFXTkJaR0Z3ZEdWeVhHNGdJQ0FxSUNBZ2NHRnlkR2xqYVhCaGJuUWdRMjl1ZEhKaFkzUmNiaUFnSUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JEYUdGcGJtTnZaR1ZjYmlBZ0lDcGNiaUFnSUNvZ0lDQkRiR2xsYm5RdFBqNUdZV0p5YVdOQlpHRndkR1Z5T2lCeVlYY29jbUYzU1c1d2RYUXNJSEJ5YjJObGMzTXBYRzRnSUNBcUlDQWdSbUZpY21salFXUmhjSFJsY2kwK1BrWmhZbkpwWTBGa1lYQjBaWEk2SUVwVFQwNHVjM1J5YVc1bmFXWjVLSEpoZDBsdWNIVjBLVnh1SUNBZ0tpQWdJRVpoWW5KcFkwRmtZWEIwWlhJdFBqNUdZV0p5YVdOQlpHRndkR1Z5T2lCbGRtRnNkV0YwWlZSeVlXNXpZV04wYVc5dUtGd2ljWFZsY25sY0lpd2dXMmx1Y0hWMFhTbGNiaUFnSUNvZ0lDQkdZV0p5YVdOQlpHRndkR1Z5TFQ0K1EyOXVkSEpoWTNRNklHVjJZV3gxWVhSbEtGd2ljWFZsY25sY0lpd2djSEp2Y0c5ellXeFBjSFJwYjI1ektWeHVJQ0FnS2lBZ0lFTnZiblJ5WVdOMExUNCtRMmhoYVc1amIyUmxPaUJwYm5admEyVmNiaUFnSUNvZ0lDQkRhR0ZwYm1OdlpHVXRMVDQrUTI5dWRISmhZM1E2SUhKbGMzQnZibk5sWEc0Z0lDQXFJQ0FnUTI5dWRISmhZM1F0TFQ0K1JtRmljbWxqUVdSaGNIUmxjam9nY21WemRXeDBYRzRnSUNBcUlDQWdSbUZpY21salFXUmhjSFJsY2kwK1BrWmhZbkpwWTBGa1lYQjBaWEk2SUVwVFQwNHVjR0Z5YzJVb1pHVmpiMlJsS0hKbGMzVnNkQ2twWEc0Z0lDQXFJQ0FnUm1GaWNtbGpRV1JoY0hSbGNpMCtQa1poWW5KcFkwRmtZWEIwWlhJNklGQnliMk5sYzNNZ2NtVnpkV3gwSUdKaGMyVmtJRzl1SUhSNWNHVmNiaUFnSUNvZ0lDQkdZV0p5YVdOQlpHRndkR1Z5TFMwK1BrTnNhV1Z1ZERvZ2NISnZZMlZ6YzJWa0lISmxjM1ZzZEZ4dUlDQWdLaTljYmlBZ1FHUmxZblZuS0NsY2JpQWdZWE41Ym1NZ2NtRjNQRllzSUVRZ1pYaDBaVzVrY3lCaWIyOXNaV0Z1UGloY2JpQWdJQ0J5WVhkSmJuQjFkRG9nVFdGdVoyOVJkV1Z5ZVN4Y2JpQWdJQ0JrYjJOelQyNXNlVG9nUkNBOUlIUnlkV1VnWVhNZ1JDeGNiaUFnSUNCamJHRjZlam9nVFc5a1pXeERiMjV6ZEhKMVkzUnZjanhoYm5rK0xGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQRU52Ym5SbGVIUThSbUZpY21salEyeHBaVzUwUm14aFozTStQbHh1SUNBcE9pQlFjbTl0YVhObFBGWStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeXdnWTNSNElIMGdQU0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0IwYUdsekxuSmhkeWs3WEc0Z0lDQWdZMjl1YzNRZ2RHRmliR1ZPWVcxbElEMGdZMnhoZW5vdWJtRnRaVHRjYmlBZ0lDQnNiMmN1YVc1bWJ5aGdVR1Z5Wm05eWJXbHVaeUJ5WVhjZ2MzUmhkR1Z0Wlc1MElHOXVJSFJoWW14bElDUjdUVzlrWld3dWRHRmliR1ZPWVcxbEtHTnNZWHA2S1gxZ0tUdGNiaUFnSUNCc1pYUWdkSEpoYm5OaFkzUnBiMjVTWlhOMWJIUTZJR0Z1ZVR0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2RISmhibk5oWTNScGIyNVNaWE4xYkhRZ1BTQmhkMkZwZENCMGFHbHpMbVYyWVd4MVlYUmxWSEpoYm5OaFkzUnBiMjRvWEc0Z0lDQWdJQ0FnSUdOMGVDeGNiaUFnSUNBZ0lDQWdYQ0p5WVhkY0lpeGNiaUFnSUNBZ0lDQWdXMHBUVDA0dWMzUnlhVzVuYVdaNUtISmhkMGx1Y0hWMEtTd2daRzlqYzA5dWJIbGRMRnh1SUNBZ0lDQWdJQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0FnSUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSUNBZ2RHRmliR1ZPWVcxbFhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dVNklIVnVhMjV2ZDI0cElIdGNiaUFnSUNBZ0lIUm9jbTkzSUhSb2FYTXVjR0Z5YzJWRmNuSnZjaWhsSUdGeklFVnljbTl5S1R0Y2JpQWdJQ0I5WEc0Z0lDQWdiR1YwSUhKbGMzVnNkRG9nWVc1NU8xeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQnlaWE4xYkhRZ1BTQktVMDlPTG5CaGNuTmxLSFJvYVhNdVpHVmpiMlJsS0hSeVlXNXpZV04wYVc5dVVtVnpkV3gwS1NrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVTJWeWFXRnNhWHBoZEdsdmJrVnljbTl5S0dCR1lXbHNaV1FnZEc4Z2NISnZZMlZ6Y3lCeVpYTjFiSFE2SUNSN1pYMWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCd1lYSnpaVkpsWTI5eVpDQTlJQ2h5WldOdmNtUTZJRkpsWTI5eVpEeGhibmtzSUdGdWVUNHBJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaE5iMlJsYkM1cGMwMXZaR1ZzS0hKbFkyOXlaQ2twSUhKbGRIVnliaUJOYjJSbGJDNWlkV2xzWkNoeVpXTnZjbVFwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSEpsWTI5eVpEdGNiaUFnSUNCOU8xeHVYRzRnSUNBZ2FXWWdLRUZ5Y21GNUxtbHpRWEp5WVhrb2NtVnpkV3gwS1NrZ2UxeHVJQ0FnSUNBZ2FXWWdLQ0Z5WlhOMWJIUXViR1Z1WjNSb0tTQnlaWFIxY200Z2NtVnpkV3gwSUdGeklGWTdYRzRnSUNBZ0lDQmpiMjV6ZENCbGJDQTlJSEpsYzNWc2RGc3dYVHRjYmlBZ0lDQWdJR2xtSUNoTmIyUmxiQzVwYzAxdlpHVnNLR1ZzS1NsY2JpQWdJQ0FnSUNBZ0x5OGdhV1lnZEdobElHWnBjbk4wSUc5dVpTQnBjeUJoSUcxdlpHVnNMQ0JoYkd3Z1lYSmxJRzF2WkdWc2MxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2NtVnpkV3gwTG0xaGNDZ29aV3dwSUQwK0lFMXZaR1ZzTG1KMWFXeGtLR1ZzS1NrZ1lYTWdWanRjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRZ1lYTWdWanRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2NHRnljMlZTWldOdmNtUW9jbVZ6ZFd4MElHRnpJR0Z1ZVNrZ1lYTWdWanRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSWGhsWTNWMFpYTWdZU0JEYjNWamFFUkNJSFpwWlhjZ2NYVmxjbmtnWVdkaGFXNXpkQ0IwYUdVZ1JtRmljbWxqSUdOb1lXbHVZMjlrWlZ4dUlDQWdLaUJBYzNWdGJXRnllU0JGZG1Gc2RXRjBaWE1nWVNCMGNtRnVjMkZqZEdsdmJpQjBieUJ4ZFdWeWVTQmhJR1JsYzJsbmJpQmtiMk4xYldWdWRDQjJhV1YzWEc0Z0lDQXFJRUIwWlcxd2JHRjBaU0JTSUMwZ1ZHaGxJSFpwWlhjZ2NtVnpjRzl1YzJVZ2RIbHdaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1pHUnZZeUF0SUVSbGMybG5iaUJrYjJOMWJXVnVkQ0J1WVcxbFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0IyYVdWM1RtRnRaU0F0SUZacFpYY2dibUZ0WlZ4dUlDQWdLaUJBY0dGeVlXMGdlMUpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDU5SUc5d2RHbHZibk1nTFNCV2FXVjNJSEYxWlhKNUlHOXdkR2x2Ym5OY2JpQWdJQ29nUUhCaGNtRnRJSHN1TGk1RGIyNTBaWGgwZFdGc1FYSm5jenhEYjI1MFpYaDBQRVpoWW5KcFkwTnNhV1Z1ZEVac1lXZHpQajU5SUdGeVozTWdMU0JQY0hScGIyNWhiQ0JqYjI1MFpYaDBkV0ZzSUdGeVozVnRaVzUwYzF4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRlpwWlhkU1pYTndiMjV6WlR4U1BqNTlJRlJvWlNCMmFXVjNJSEpsYzNCdmJuTmxYRzRnSUNBcUwxeHVJQ0JBWkdWaWRXY29LVnh1SUNCaGMzbHVZeUIyYVdWM1BGSStLRnh1SUNBZ0lHUmtiMk02SUhOMGNtbHVaeXhjYmlBZ0lDQjJhV1YzVG1GdFpUb2djM1J5YVc1bkxGeHVJQ0FnSUc5d2RHbHZibk02SUZKbFkyOXlaRHh6ZEhKcGJtY3NJR0Z1ZVQ0c1hHNGdJQ0FnTGk0dVlYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThRMjl1ZEdWNGREeEdZV0p5YVdORGJHbGxiblJHYkdGbmN6NCtYRzRnSUNrNklGQnliMjFwYzJVOFZtbGxkMUpsYzNCdmJuTmxQRkkrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJzYjJjc0lHTjBlQ0I5SUQwZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z2RHaHBjeTUyYVdWM0tUdGNiaUFnSUNCc2IyY3VhVzVtYnloZ1VYVmxjbmxwYm1jZ2RtbGxkeUFrZTJSa2IyTjlMeVI3ZG1sbGQwNWhiV1Y5WUNrN1hHNGdJQ0FnYkdWMElIUnlZVzV6WVdOMGFXOXVVbVZ6ZFd4ME9pQmhibms3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUhSeVlXNXpZV04wYVc5dVVtVnpkV3gwSUQwZ1lYZGhhWFFnZEdocGN5NWxkbUZzZFdGMFpWUnlZVzV6WVdOMGFXOXVLRnh1SUNBZ0lDQWdJQ0JqZEhnc1hHNGdJQ0FnSUNBZ0lGd2lkbWxsZDF3aUxGeHVJQ0FnSUNBZ0lDQmJaR1J2WXl3Z2RtbGxkMDVoYldVc0lFcFRUMDR1YzNSeWFXNW5hV1o1S0c5d2RHbHZibk1wWFN4Y2JpQWdJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ0lDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0lDQWdJSFZ1WkdWbWFXNWxaRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxPaUIxYm10dWIzZHVLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QjBhR2x6TG5CaGNuTmxSWEp5YjNJb1pTQmhjeUJGY25KdmNpazdYRzRnSUNBZ2ZWeHVJQ0FnSUd4bGRDQnlaWE4xYkhRNklGWnBaWGRTWlhOd2IyNXpaVHhTUGp0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2NtVnpkV3gwSUQwZ1NsTlBUaTV3WVhKelpTaDBhR2x6TG1SbFkyOWtaU2gwY21GdWMyRmpkR2x2YmxKbGMzVnNkQ2twTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1U2SUdGdWVTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRk5sY21saGJHbDZZWFJwYjI1RmNuSnZjaWhnUm1GcGJHVmtJSFJ2SUhCeWIyTmxjM01nZG1sbGR5QnlaWE4xYkhRNklDUjdaWDFnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlISmxjM1ZzZER0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUjJWMGN5QnZjaUJqY21WaGRHVnpJR0VnWjFKUVF5QmpiR2xsYm5RZ1ptOXlJSFJvWlNCR1lXSnlhV01nY0dWbGNseHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCU1pYUjFjbTV6SUdFZ1kyRmphR1ZrSUdOc2FXVnVkQ0J2Y2lCamNtVmhkR1Z6SUdFZ2JtVjNJRzl1WlNCcFppQnViMjVsSUdWNGFYTjBjMXh1SUNBZ0tpQkFjbVYwZFhKdUlIdFFjbTl0YVhObFBFTnNhV1Z1ZEQ1OUlGQnliMjFwYzJVZ2NtVnpiMngyYVc1bklIUnZJSFJvWlNCblVsQkRJR05zYVdWdWRGeHVJQ0FnS2k5Y2JpQWdiM1psY25KcFpHVWdaMlYwUTJ4cFpXNTBLQ2s2SUVOc2FXVnVkQ0I3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbDlqYkdsbGJuUXBYRzRnSUNBZ0lDQjBhR2x6TGw5amJHbGxiblFnUFNCR1lXSnlhV05EYkdsbGJuUkJaR0Z3ZEdWeUxtZGxkRU5zYVdWdWRDaDBhR2x6TG1OdmJtWnBaeWs3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WDJOc2FXVnVkRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSMlYwY3lCaElFZGhkR1YzWVhrZ2FXNXpkR0Z1WTJVZ1ptOXlJSFJvWlNCR1lXSnlhV01nYm1WMGQyOXlhMXh1SUNBZ0tpQkFjM1Z0YldGeWVTQkRjbVZoZEdWeklHRWdibVYzSUVkaGRHVjNZWGtnYVc1emRHRnVZMlVnZFhOcGJtY2dkR2hsSUdOMWNuSmxiblFnWTJ4cFpXNTBYRzRnSUNBcUlFQnlaWFIxY200Z2UxQnliMjFwYzJVOFIyRjBaWGRoZVQ1OUlGQnliMjFwYzJVZ2NtVnpiMngyYVc1bklIUnZJSFJvWlNCSFlYUmxkMkY1SUdsdWMzUmhibU5sWEc0Z0lDQXFMMXh1SUNCd2NtOTBaV04wWldRZ1lYTjVibU1nUjJGMFpYZGhlU2hqZEhnNklFTnZiblJsZUhROFJtRmljbWxqUTJ4cFpXNTBSbXhoWjNNK0tUb2dVSEp2YldselpUeEhZWFJsZDJGNVBpQjdYRzRnSUNBZ2NtVjBkWEp1SUVaaFluSnBZME5zYVdWdWRFRmtZWEIwWlhJdVoyVjBSMkYwWlhkaGVTaGpkSGdzSUhSb2FYTXVZMjl1Wm1sbkxDQjBhR2x6TG1Oc2FXVnVkQ2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdkbGRFTnZiblJ5WVdOMFRtRnRaU2hqYkdGemMwNWhiV1UvT2lCemRISnBibWNwSUh0Y2JpQWdJQ0JwWmlBb0lXTnNZWE56VG1GdFpTa2djbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNCeVpYUjFjbTRnWUNSN1kyeGhjM05PWVcxbGZVTnZiblJ5WVdOMFlEdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1IyVjBjeUJoSUVOdmJuUnlZV04wSUdsdWMzUmhibU5sSUdadmNpQjBhR1VnUm1GaWNtbGpJR05vWVdsdVkyOWtaVnh1SUNBZ0tpQkFjM1Z0YldGeWVTQkRjbVZoZEdWeklHRWdibVYzSUVOdmJuUnlZV04wSUdsdWMzUmhibU5sSUhWemFXNW5JSFJvWlNCamRYSnlaVzUwSUVkaGRHVjNZWGxjYmlBZ0lDb2dRSEpsZEhWeWJpQjdVSEp2YldselpUeERiMjUwY21GcmRENTlJRkJ5YjIxcGMyVWdjbVZ6YjJ4MmFXNW5JSFJ2SUhSb1pTQkRiMjUwY21GamRDQnBibk4wWVc1alpWeHVJQ0FnS2k5Y2JpQWdjSEp2ZEdWamRHVmtJR0Z6ZVc1aklFTnZiblJ5WVdOMEtGeHVJQ0FnSUdOMGVEb2dRMjl1ZEdWNGREeEdZV0p5YVdORGJHbGxiblJHYkdGbmN6NHNYRzRnSUNBZ1kyOXVkSEpoWTNST1lXMWxQem9nYzNSeWFXNW5YRzRnSUNrNklGQnliMjFwYzJVOFEyOXVkSEpoYTNRK0lIdGNiaUFnSUNCeVpYUjFjbTRnUm1GaWNtbGpRMnhwWlc1MFFXUmhjSFJsY2k1blpYUkRiMjUwY21GamRDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXVSMkYwWlhkaGVTaGpkSGdwTEZ4dUlDQWdJQ0FnZEdocGN5NWpiMjVtYVdjc1hHNGdJQ0FnSUNCamIyNTBjbUZqZEU1aGJXVmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCRmVHVmpkWFJsY3lCaElIUnlZVzV6WVdOMGFXOXVJRzl1SUhSb1pTQkdZV0p5YVdNZ2JtVjBkMjl5YTF4dUlDQWdLaUJBYzNWdGJXRnllU0JUZFdKdGFYUnpJRzl5SUdWMllXeDFZWFJsY3lCaElIUnlZVzV6WVdOMGFXOXVJRzl1SUhSb1pTQkdZV0p5YVdNZ1kyaGhhVzVqYjJSbFhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0JoY0drZ0xTQlVhR1VnWTJoaGFXNWpiMlJsSUdaMWJtTjBhVzl1SUhSdklHTmhiR3hjYmlBZ0lDb2dRSEJoY21GdElIdGliMjlzWldGdWZTQnpkV0p0YVhRZ0xTQlhhR1YwYUdWeUlIUnZJSE4xWW0xcGRDQW9kSEoxWlNrZ2IzSWdaWFpoYkhWaGRHVWdLR1poYkhObEtTQjBhR1VnZEhKaGJuTmhZM1JwYjI1Y2JpQWdJQ29nUUhCaGNtRnRJSHRoYm5sYlhYMGdXMkZ5WjNOZElDMGdRWEpuZFcxbGJuUnpJSFJ2SUhCaGMzTWdkRzhnZEdobElHTm9ZV2x1WTI5a1pTQm1kVzVqZEdsdmJseHVJQ0FnS2lCQWNHRnlZVzBnZTFKbFkyOXlaRHh6ZEhKcGJtY3NJSE4wY21sdVp6NTlJRnQwY21GdWMybGxiblJFWVhSaFhTQXRJRlJ5WVc1emFXVnVkQ0JrWVhSaElHWnZjaUIwYUdVZ2RISmhibk5oWTNScGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlVHh6ZEhKcGJtYytmU0JiWlc1a2IzSnphVzVuVDNKbllXNXBlbUYwYVc5dWMxMGdMU0JQY21kaGJtbDZZWFJwYjI1eklIUm9ZWFFnYlhWemRDQmxibVJ2Y25ObElIUm9aU0IwY21GdWMyRmpkR2x2Ymx4dUlDQWdLaUJBY21WMGRYSnVJSHRRY205dGFYTmxQRlZwYm5RNFFYSnlZWGsrZlNCUWNtOXRhWE5sSUhKbGMyOXNkbWx1WnlCMGJ5QjBhR1VnZEhKaGJuTmhZM1JwYjI0Z2NtVnpkV3gwWEc0Z0lDQXFJRUJ0WlhKdFlXbGtYRzRnSUNBcUlITmxjWFZsYm1ObFJHbGhaM0poYlZ4dUlDQWdLaUFnSUhCaGNuUnBZMmx3WVc1MElFWmhZbkpwWTBGa1lYQjBaWEpjYmlBZ0lDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCSFlYUmxkMkY1WEc0Z0lDQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1EyOXVkSEpoWTNSY2JpQWdJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkRhR0ZwYm1OdlpHVmNiaUFnSUNwY2JpQWdJQ29nSUNCR1lXSnlhV05CWkdGd2RHVnlMVDQrUjJGMFpYZGhlVG9nWTI5dWJtVmpkQ2dwWEc0Z0lDQXFJQ0FnUm1GaWNtbGpRV1JoY0hSbGNpMCtQa052Ym5SeVlXTjBPaUJuWlhSRGIyNTBjbUZqZENncFhHNGdJQ0FxSUNBZ1lXeDBJSE4xWW0xcGRDQjBjbUZ1YzJGamRHbHZibHh1SUNBZ0tpQWdJQ0FnUm1GaWNtbGpRV1JoY0hSbGNpMCtQa052Ym5SeVlXTjBPaUJ6ZFdKdGFYUW9ZWEJwTENCd2NtOXdiM05oYkU5d2RHbHZibk1wWEc0Z0lDQXFJQ0FnWld4elpTQmxkbUZzZFdGMFpTQjBjbUZ1YzJGamRHbHZibHh1SUNBZ0tpQWdJQ0FnUm1GaWNtbGpRV1JoY0hSbGNpMCtQa052Ym5SeVlXTjBPaUJsZG1Gc2RXRjBaU2hoY0drc0lIQnliM0J2YzJGc1QzQjBhVzl1Y3lsY2JpQWdJQ29nSUNCbGJtUmNiaUFnSUNvZ0lDQkRiMjUwY21GamRDMCtQa05vWVdsdVkyOWtaVG9nYVc1MmIydGxYRzRnSUNBcUlDQWdRMmhoYVc1amIyUmxMUzArUGtOdmJuUnlZV04wT2lCeVpYTndiMjV6WlZ4dUlDQWdLaUFnSUVOdmJuUnlZV04wTFMwK1BrWmhZbkpwWTBGa1lYQjBaWEk2SUhKbGMzVnNkRnh1SUNBZ0tpQWdJRVpoWW5KcFkwRmtZWEIwWlhJdFBqNUhZWFJsZDJGNU9pQmpiRzl6WlNncFhHNGdJQ0FxTDF4dUlDQndjbTkwWldOMFpXUWdZWE41Ym1NZ2RISmhibk5oWTNScGIyNG9YRzRnSUNBZ1kzUjRPaUJEYjI1MFpYaDBQRVpoWW5KcFkwTnNhV1Z1ZEVac1lXZHpQaXhjYmlBZ0lDQmhjR2s2SUhOMGNtbHVaeXhjYmlBZ0lDQnpkV0p0YVhRZ1BTQjBjblZsTEZ4dUlDQWdJR0Z5WjNNL09pQmhibmxiWFN4Y2JpQWdJQ0IwY21GdWMybGxiblJFWVhSaE9pQlNaV052Y21ROGMzUnlhVzVuTENCemRISnBibWMrSUQwZ2UzMHNYRzRnSUNBZ1pXNWtiM0p6YVc1blQzSm5ZVzVwZW1GMGFXOXVjejg2SUhOMGNtbHVaMXRkTEZ4dUlDQWdJR05zWVhOelRtRnRaVDg2SUhOMGNtbHVaMXh1SUNBcE9pQlFjbTl0YVhObFBGVnBiblE0UVhKeVlYaytJSHRjYmlBZ0lDQmpiMjV6ZENCc2IyY2dQU0IwYUdsekxteHZaeTVtYjNJb2RHaHBjeTUwY21GdWMyRmpkR2x2YmlrN1hHNGdJQ0FnWTI5dWMzUWdaMkYwWlhkaGVTQTlJR0YzWVdsMElIUm9hWE11UjJGMFpYZGhlU2hqZEhncE8xeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCamIyNTBjbUZqZENBOUlHRjNZV2wwSUhSb2FYTXVRMjl1ZEhKaFkzUW9YRzRnSUNBZ0lDQWdJR04wZUN4Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVuWlhSRGIyNTBjbUZqZEU1aGJXVW9ZMnhoYzNOT1lXMWxLVnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR3h2Wnk1MlpYSmliM05sS0Z4dUlDQWdJQ0FnSUNCZ0pIdHpkV0p0YVhRZ1B5QmNJbE4xWW0xcGRGd2lJRG9nWENKRmRtRnNkV0YwWlZ3aWZYUnBibWNnZEhKaGJuTmhZM1JwYjI0Z0pIdDBhR2x6TG1kbGRFTnZiblJ5WVdOMFRtRnRaU2hqYkdGemMwNWhiV1VwSUh4OElIUm9hWE11WTI5dVptbG5MbU52Ym5SeVlXTjBUbUZ0WlgwdUpIdGhjR2w5WUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUd4dlp5NWtaV0oxWnloZ1lYSm5jem9nSkh0aGNtZHpQeTV0WVhBb0tHRXBJRDArSUdFdWRHOVRkSEpwYm1jb0tTa3VhbTlwYmloY0lseGNibHdpS1NCOGZDQmNJbTV2Ym1WY0luMWdLVHRjYmlBZ0lDQWdJR052Ym5OMElHMWxkR2h2WkNBOUlITjFZbTFwZENBL0lHTnZiblJ5WVdOMExuTjFZbTFwZENBNklHTnZiblJ5WVdOMExtVjJZV3gxWVhSbE8xeHVYRzRnSUNBZ0lDQmxibVJ2Y25OcGJtZFBjbWRoYm1sNllYUnBiMjV6SUQwZ1pXNWtiM0p6YVc1blQzSm5ZVzVwZW1GMGFXOXVjejh1YkdWdVozUm9YRzRnSUNBZ0lDQWdJRDhnWlc1a2IzSnphVzVuVDNKbllXNXBlbUYwYVc5dWMxeHVJQ0FnSUNBZ0lDQTZJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQWdJR052Ym5OMElIQnliM0J2YzJGc1QzQjBhVzl1Y3pvZ1VISnZjRzl6WVd4UGNIUnBiMjV6SUQwZ2UxeHVJQ0FnSUNBZ0lDQmhjbWQxYldWdWRITTZJR0Z5WjNNZ2ZId2dXMTBzWEc0Z0lDQWdJQ0FnSUhSeVlXNXphV1Z1ZEVSaGRHRTZJRTlpYW1WamRDNWxiblJ5YVdWektIUnlZVzV6YVdWdWRFUmhkR0VwTG5KbFpIVmpaU2hjYmlBZ0lDQWdJQ0FnSUNBb1lXTmpMQ0JiYTJWNUxDQjJZV3hkS1NBOVBpQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCaFkyTmJhMlY1WFNBOUlFcFRUMDR1YzNSeWFXNW5hV1o1S0haaGJDazdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWVdOak8xeHVJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ2UzMGdZWE1nZEhsd1pXOW1JSFJ5WVc1emFXVnVkRVJoZEdGY2JpQWdJQ0FnSUNBZ0tTeGNiaUFnSUNBZ0lDQWdaVzVrYjNKemFXNW5UM0puWVc1cGVtRjBhVzl1Y3pvZ1kzUjRMbWRsZEU5eVZXNWtaV1pwYm1Wa0tGd2lZV3hzYjNkTllXNTFZV3hGYm1SdmNuTnBibWRQY21kelhDSXBYRzRnSUNBZ0lDQWdJQ0FnUHlCbGJtUnZjbk5wYm1kUGNtZGhibWw2WVhScGIyNXpJSHg4SUhWdVpHVm1hVzVsWkZ4dUlDQWdJQ0FnSUNBZ0lEb2dkVzVrWldacGJtVmtMQ0F2THlCdGMzQkpaQ0JzYVhOMFhHNGdJQ0FnSUNCOU8xeHVYRzRnSUNBZ0lDQnlaWFIxY200Z1lYZGhhWFFnYldWMGFHOWtMbU5oYkd3b1kyOXVkSEpoWTNRc0lHRndhU3dnY0hKdmNHOXpZV3hQY0hScGIyNXpLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxPaUJoYm5rcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUhSb2FYTXVjR0Z5YzJWRmNuSnZjaWhsS1R0Y2JpQWdJQ0I5SUdacGJtRnNiSGtnZTF4dUlDQWdJQ0FnZEdocGN5NXNiMmN1WkdWaWRXY29ZRU5zYjNOcGJtY2dKSHQwYUdsekxtTnZibVpwWnk1dGMzQkpaSDBnWjJGMFpYZGhlU0JqYjI1dVpXTjBhVzl1WUNrN1hHNGdJQ0FnSUNCbllYUmxkMkY1TG1Oc2IzTmxLQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J6YUc5MWJHUlZjMlZNWldkaFkzbEhZWFJsZDJGNUtHTjBlRG9nUTI5dWRHVjRkRHhHWVdKeWFXTkRiR2xsYm5SR2JHRm5jejRwT2lCaWIyOXNaV0Z1SUh0Y2JpQWdJQ0J5WlhSMWNtNGdJU0ZqZEhndVoyVjBUM0pWYm1SbFptbHVaV1FvWENKc1pXZGhZM2xjSWlrZ0ppWWdJU0YwYUdsekxtTnZibVpwWnk1aGJHeHZkMGRoZEdWM1lYbFBkbVZ5Y21sa1pUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjSEpsY0dGeVpVeGxaMkZqZVVGeVozTW9ZWEpuY3o4NklHRnVlVnRkS1RvZ2MzUnlhVzVuVzEwZ2UxeHVJQ0FnSUhKbGRIVnliaUFvWVhKbmN5QjhmQ0JiWFNrdWJXRndLQ2hoY21jcElEMCtYRzRnSUNBZ0lDQjBlWEJsYjJZZ1lYSm5JRDA5UFNCY0luTjBjbWx1WjF3aUlEOGdZWEpuSURvZ1NsTlBUaTV6ZEhKcGJtZHBabmtvWVhKbktWeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHSjFhV3hrVEdWbllXTjVWSEpoYm5OcFpXNTBLRnh1SUNBZ0lIUnlZVzV6YVdWdWRFUmhkR0UvT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0J6ZEhKcGJtYytYRzRnSUNrNklGSmxZMjl5WkR4emRISnBibWNzSUVKMVptWmxjajRnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUdsbUlDZ2hkSEpoYm5OcFpXNTBSR0YwWVNrZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JqYjI1emRDQmxiblJ5YVdWeklEMGdUMkpxWldOMExtVnVkSEpwWlhNb2RISmhibk5wWlc1MFJHRjBZU2s3WEc0Z0lDQWdhV1lnS0NGbGJuUnlhV1Z6TG14bGJtZDBhQ2tnY21WMGRYSnVJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQmpiMjV6ZENCdFlYQTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lFSjFabVpsY2o0Z1BTQjdmVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJRnRyWlhrc0lIWmhiSFZsWFNCdlppQmxiblJ5YVdWektTQjdYRzRnSUNBZ0lDQnRZWEJiYTJWNVhTQTlJRUoxWm1abGNpNW1jbTl0S0VwVFQwNHVjM1J5YVc1bmFXWjVLSFpoYkhWbEtTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ0WVhBN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElISmxjMjlzZG1WTVpXZGhZM2xOYzNCRGIzVnVkQ2dwT2lCdWRXMWlaWElnZTF4dUlDQWdJR052Ym5OMElHTnZibVpwWjNWeVpXUWdQU0IwYUdsekxtTnZibVpwWnk1c1pXZGhZM2xOYzNCRGIzVnVkQ0EvUHlBeE8xeHVJQ0FnSUdOdmJuTjBJSEJoY25ObFpDQTlJRTUxYldKbGNpaGpiMjVtYVdkMWNtVmtLVHRjYmlBZ0lDQnBaaUFvSVU1MWJXSmxjaTVwYzBacGJtbDBaU2h3WVhKelpXUXBJSHg4SUhCaGNuTmxaQ0E4SURFcElISmxkSFZ5YmlBeE8xeHVJQ0FnSUhKbGRIVnliaUJOWVhSb0xtWnNiMjl5S0hCaGNuTmxaQ2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhCcFkydE1aV2RoWTNsRFlXNWthV1JoZEdWektGeHVJQ0FnSUdOaGJtUnBaR0YwWlhNNklFMXpjRVJsZEdGcGJITmJYU3hjYmlBZ0lDQnNhVzFwZERvZ2JuVnRZbVZ5WEc0Z0lDazZJRTF6Y0VSbGRHRnBiSE5iWFNCN1hHNGdJQ0FnYVdZZ0tDRmpZVzVrYVdSaGRHVnpMbXhsYm1kMGFDQjhmQ0JzYVcxcGRDQThQU0F3S1NCeVpYUjFjbTRnVzEwN1hHNGdJQ0FnWTI5dWMzUWdZWFpoYVd4aFlteGxJRDBnV3k0dUxtTmhibVJwWkdGMFpYTmRPMXh1SUNBZ0lHTnZibk4wSUhSaGNtZGxkQ0E5SUUxaGRHZ3ViV2x1S0d4cGJXbDBMQ0JoZG1GcGJHRmliR1V1YkdWdVozUm9LVHRjYmlBZ0lDQmpiMjV6ZENCd2FXTnJaV1E2SUUxemNFUmxkR0ZwYkhOYlhTQTlJRnRkTzF4dUlDQWdJSGRvYVd4bElDaHdhV05yWldRdWJHVnVaM1JvSUR3Z2RHRnlaMlYwSUNZbUlHRjJZV2xzWVdKc1pTNXNaVzVuZEdncElIdGNiaUFnSUNBZ0lHTnZibk4wSUdsa2VDQTlJRTFoZEdndVpteHZiM0lvVFdGMGFDNXlZVzVrYjIwb0tTQXFJR0YyWVdsc1lXSnNaUzVzWlc1bmRHZ3BPMXh1SUNBZ0lDQWdZMjl1YzNRZ1czTmxiR1ZqZEdsdmJsMGdQU0JoZG1GcGJHRmliR1V1YzNCc2FXTmxLR2xrZUN3Z01TazdYRzRnSUNBZ0lDQnBaaUFvYzJWc1pXTjBhVzl1S1NCN1hHNGdJQ0FnSUNBZ0lIQnBZMnRsWkM1d2RYTm9LSE5sYkdWamRHbHZiaWs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCd2FXTnJaV1E3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdKMWFXeGtUR1ZuWVdONVVHVmxja052Ym1acFozTW9YRzRnSUNBZ1kzUjRPaUJEYjI1MFpYaDBQRVpoWW5KcFkwTnNhV1Z1ZEVac1lXZHpQbHh1SUNBcE9pQk1aV2RoWTNsUVpXVnlWR0Z5WjJWMFcxMGdlMXh1SUNBZ0lHTnZibk4wSUhCbFpYSnpPaUJNWldkaFkzbFFaV1Z5VkdGeVoyVjBXMTBnUFNCYlhHNGdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lHMXpjRWxrT2lCMGFHbHpMbU52Ym1acFp5NXRjM0JKWkN4Y2JpQWdJQ0FnSUNBZ2NHVmxja1Z1WkhCdmFXNTBPaUIwYUdsekxtTnZibVpwWnk1d1pXVnlSVzVrY0c5cGJuUXNYRzRnSUNBZ0lDQWdJSEJsWlhKSWIzTjBRV3hwWVhNNklIUm9hWE11WTI5dVptbG5MbkJsWlhKSWIzTjBRV3hwWVhNc1hHNGdJQ0FnSUNBZ0lIUnNjME5sY25RNklIUm9hWE11WTI5dVptbG5MblJzYzBObGNuUXNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lGMDdYRzVjYmlBZ0lDQnNaWFFnWlc1a2IzSnphVzVuVDNKbmN5QTlJSFJvYVhNdVoyVjBSVzVrYjNKemFXNW5UM0puWVc1cGVtRjBhVzl1Y3loamRIZ3BJSHg4SUZ0ZE8xeHVJQ0FnSUdWdVpHOXljMmx1WjA5eVozTWdQU0JCY25KaGVTNXBjMEZ5Y21GNUtHVnVaRzl5YzJsdVowOXlaM01wWEc0Z0lDQWdJQ0EvSUdWdVpHOXljMmx1WjA5eVozTmNiaUFnSUNBZ0lEb2dXMlZ1Wkc5eWMybHVaMDl5WjNOZE8xeHVJQ0FnSUdOdmJuTjBJR1Z1Wkc5eWMyVnljeUE5WEc0Z0lDQWdJQ0JsYm1SdmNuTnBibWRQY21kekxtWnBiSFJsY2lnb2IzSm5LVG9nYjNKbklHbHpJSE4wY21sdVp5QTlQaUJDYjI5c1pXRnVLRzl5WnlrcElIeDhJRnRkTzF4dUlDQWdJR052Ym5OMElHVjRkSEpoY3lBOUlHVnVaRzl5YzJWeWN5NW1hV3gwWlhJb0tHOXlaeWtnUFQ0Z2IzSm5JQ0U5UFNCMGFHbHpMbU52Ym1acFp5NXRjM0JKWkNrN1hHNGdJQ0FnYVdZZ0tDRmxlSFJ5WVhNdWJHVnVaM1JvS1NCeVpYUjFjbTRnY0dWbGNuTTdYRzVjYmlBZ0lDQmpiMjV6ZENCdFlYQWdQU0IwYUdsekxtTnZibVpwWnk1dGMzQk5ZWEE3WEc0Z0lDQWdZMjl1YzNRZ2JHVm5ZV041UTI5MWJuUWdQU0IwYUdsekxuSmxjMjlzZG1WTVpXZGhZM2xOYzNCRGIzVnVkQ2dwTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnYlhOd0lHOW1JR1Y0ZEhKaGN5a2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1kyRnVaR2xrWVhSbGN5QTlJRzFoY0Q4dVcyMXpjRjA3WEc0Z0lDQWdJQ0JwWmlBb0lXTmhibVJwWkdGMFpYTS9MbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnVlc1emRYQndiM0owWldSRmNuSnZjaWhjYmlBZ0lDQWdJQ0FnSUNCZ1RtOGdjR1ZsY2lCdFlYQndhVzVuSUdGMllXbHNZV0pzWlNCbWIzSWdUVk5RSUNSN2JYTndmUzRnVUhKdmRtbGtaU0JwZENCMmFXRWdZMjl1Wm1sbkxtMXpjRTFoY0dCY2JpQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHTnZibk4wSUhObGJHVmpkR2x2Ym5NZ1BTQjBhR2x6TG5CcFkydE1aV2RoWTNsRFlXNWthV1JoZEdWektHTmhibVJwWkdGMFpYTXNJR3hsWjJGamVVTnZkVzUwS1R0Y2JpQWdJQ0FnSUdsbUlDZ2hjMlZzWldOMGFXOXVjeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUZWdWMzVndjRzl5ZEdWa1JYSnliM0lvWEc0Z0lDQWdJQ0FnSUNBZ1lFNXZJSFpoYkdsa0lIQmxaWElnYldGd2NHbHVaeUJoZG1GcGJHRmliR1VnWm05eUlFMVRVQ0FrZTIxemNIMHVJRkJ5YjNacFpHVWdhWFFnZG1saElHTnZibVpwWnk1dGMzQk5ZWEJnWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElHTm9iMmxqWlNCdlppQnpaV3hsWTNScGIyNXpLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDZ2hZMmh2YVdObExtVnVaSEJ2YVc1MEtTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUZWdWMzVndjRzl5ZEdWa1JYSnliM0lvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmdTVzUyWVd4cFpDQndaV1Z5SUcxaGNIQnBibWNnWm05eUlFMVRVQ0FrZTIxemNIMDZJRzFwYzNOcGJtY2daVzVrY0c5cGJuUmdYRzRnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQndaV1Z5Y3k1d2RYTm9LSHRjYmlBZ0lDQWdJQ0FnSUNCdGMzQkpaRG9nYlhOd0xGeHVJQ0FnSUNBZ0lDQWdJSEJsWlhKRmJtUndiMmx1ZERvZ1kyaHZhV05sTG1WdVpIQnZhVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lIQmxaWEpJYjNOMFFXeHBZWE02SUdOb2IybGpaUzVoYkdsaGN5eGNiaUFnSUNBZ0lDQWdJQ0IwYkhORFpYSjBPaUJqYUc5cFkyVXVkR3h6UTJWeWRDQjhmQ0IwYUdsekxtTnZibVpwWnk1MGJITkRaWEowTEZ4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnY0dWbGNuTTdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0Z6ZVc1aklITjFZbTFwZEV4bFoyRmplVmRwZEdoRmVIQnNhV05wZEVWdVpHOXljMlZ5Y3loY2JpQWdJQ0JqZEhnNklFTnZiblJsZUhROFJtRmljbWxqUTJ4cFpXNTBSbXhoWjNNK0xGeHVJQ0FnSUdaamJqb2djM1J5YVc1bkxGeHVJQ0FnSUdGeVozTTZJSE4wY21sdVoxdGRMRnh1SUNBZ0lIUnlZVzV6YVdWdWRFMWhjRG9nVW1WamIzSmtQSE4wY21sdVp5d2dRblZtWm1WeVBpQjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQndaV1Z5UTI5dVptbG5jem9nVEdWbllXTjVVR1ZsY2xSaGNtZGxkRnRkTEZ4dUlDQWdJR05zWVhOelRtRnRaVDg2SUhOMGNtbHVaMXh1SUNBcE9pQlFjbTl0YVhObFBGVnBiblE0UVhKeVlYaytJSHRjYmlBZ0lDQmpiMjV6ZENCc2IyY2dQU0IwYUdsekxteHZaeTVtYjNJb2RHaHBjeTV6ZFdKdGFYUk1aV2RoWTNsWGFYUm9SWGh3YkdsamFYUkZibVJ2Y25ObGNuTXBPMXh1SUNBZ0lHTnZibk4wSUhCbFpYSnpJRDBnZEdocGN5NXViM0p0WVd4cGVtVk1aV2RoWTNsUVpXVnljeWh3WldWeVEyOXVabWxuY3lrN1hHNGdJQ0FnWTI5dWMzUWdhV1JsYm5ScGRIbE5ZWFJsY21saGJDQTlJR0YzWVdsMElIUm9hWE11Y21WemIyeDJaVXhsWjJGamVVbGtaVzUwYVhSNVRXRjBaWEpwWVd3b0tUdGNiaUFnSUNCamIyNXpkQ0IzWVd4c1pYUWdQU0JoZDJGcGRDQlhZV3hzWlhSekxtNWxkMGx1VFdWdGIzSjVWMkZzYkdWMEtDazdYRzRnSUNBZ1kyOXVjM1FnYVdSbGJuUnBkSGxNWVdKbGJDQTlJR0FrZTNSb2FYTXVZMjl1Wm1sbkxtMXpjRWxrZlMxc1pXZGhZM2xnTzF4dUlDQWdJR0YzWVdsMElIZGhiR3hsZEM1d2RYUW9hV1JsYm5ScGRIbE1ZV0psYkN3Z2UxeHVJQ0FnSUNBZ1kzSmxaR1Z1ZEdsaGJITTZJSHRjYmlBZ0lDQWdJQ0FnWTJWeWRHbG1hV05oZEdVNklHbGtaVzUwYVhSNVRXRjBaWEpwWVd3dVkyVnlkR2xtYVdOaGRHVXNYRzRnSUNBZ0lDQWdJSEJ5YVhaaGRHVkxaWGs2SUdsa1pXNTBhWFI1VFdGMFpYSnBZV3d1Y0hKcGRtRjBaVXRsZVN4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNCdGMzQkpaRG9nZEdocGN5NWpiMjVtYVdjdWJYTndTV1FzWEc0Z0lDQWdJQ0IwZVhCbE9pQmNJbGd1TlRBNVhDSXNYRzRnSUNBZ2ZTQmhjeUJKWkdWdWRHbDBlU2s3WEc1Y2JpQWdJQ0JqYjI1emRDQmpiMjV1WldOMGFXOXVVSEp2Wm1sc1pTQTlJR0YzWVdsMElIUm9hWE11WW5WcGJHUk1aV2RoWTNsRGIyNXVaV04wYVc5dVVISnZabWxzWlNod1pXVnljeWs3WEc0Z0lDQWdZMjl1YzNRZ1oyRjBaWGRoZVNBOUlHNWxkeUJNWldkaFkzbEhZWFJsZDJGNUtDazdYRzVjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnWVhkaGFYUWdaMkYwWlhkaGVTNWpiMjV1WldOMEtHTnZibTVsWTNScGIyNVFjbTltYVd4bExDQjdYRzRnSUNBZ0lDQWdJR2xrWlc1MGFYUjVPaUJwWkdWdWRHbDBlVXhoWW1Wc0xGeHVJQ0FnSUNBZ0lDQjNZV3hzWlhRc1hHNGdJQ0FnSUNBZ0lHUnBjMk52ZG1WeWVUb2dlMXh1SUNBZ0lDQWdJQ0FnSUdWdVlXSnNaV1E2SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnWVhOTWIyTmhiR2h2YzNRNklIUm9hWE11YzJodmRXeGtWSEpsWVhSUVpXVnljMEZ6VEc5allXeG9iM04wS0hCbFpYSnpLU3hjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ2RHeHpTVzVtYnpvZ2UxeHVJQ0FnSUNBZ0lDQWdJR05sY25ScFptbGpZWFJsT2lCcFpHVnVkR2wwZVUxaGRHVnlhV0ZzTG1ObGNuUnBabWxqWVhSbExGeHVJQ0FnSUNBZ0lDQWdJR3RsZVRvZ2FXUmxiblJwZEhsTllYUmxjbWxoYkM1d2NtbDJZWFJsUzJWNUxGeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJRzVsZEhkdmNtc2dQU0JoZDJGcGRDQm5ZWFJsZDJGNUxtZGxkRTVsZEhkdmNtc29kR2hwY3k1amIyNW1hV2N1WTJoaGJtNWxiQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQmpiMjUwY21GamRDQTlJRzVsZEhkdmNtc3VaMlYwUTI5dWRISmhZM1FvWEc0Z0lDQWdJQ0FnSUhSb2FYTXVZMjl1Wm1sbkxtTm9ZV2x1WTI5a1pVNWhiV1VzWEc0Z0lDQWdJQ0FnSUhSb2FYTXVaMlYwUTI5dWRISmhZM1JPWVcxbEtHTnNZWE56VG1GdFpTbGNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQmpiMjV6ZENCMGNtRnVjMkZqZEdsdmJpQTlJR052Ym5SeVlXTjBMbU55WldGMFpWUnlZVzV6WVdOMGFXOXVLR1pqYmlrN1hHNWNiaUFnSUNBZ0lHbG1JQ2gwY21GdWMybGxiblJOWVhBcElIdGNiaUFnSUNBZ0lDQWdkSEpoYm5OaFkzUnBiMjR1YzJWMFZISmhibk5wWlc1MEtIUnlZVzV6YVdWdWRFMWhjQ2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdOdmJuTjBJR1Z1Wkc5eWMyVnljeUE5SUhCbFpYSnpYRzRnSUNBZ0lDQWdJQzV0WVhBb0tIQmxaWElwSUQwK0lHNWxkSGR2Y21zdVoyVjBRMmhoYm01bGJDZ3BMbWRsZEVWdVpHOXljMlZ5S0hCbFpYSXVibUZ0WlNrcFhHNGdJQ0FnSUNBZ0lDNW1hV3gwWlhJb0tHVnVaRzl5YzJWeUtUb2daVzVrYjNKelpYSWdhWE1nUlc1a2IzSnpaWElnUFQ0Z1FtOXZiR1ZoYmlobGJtUnZjbk5sY2lrcE8xeHVJQ0FnSUNBZ2FXWWdLR1Z1Wkc5eWMyVnljeTVzWlc1bmRHZ3BJSHRjYmlBZ0lDQWdJQ0FnZEhKaGJuTmhZM1JwYjI0dWMyVjBSVzVrYjNKemFXNW5VR1ZsY25Nb1pXNWtiM0p6WlhKektUdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdiRzluTG5abGNtSnZjMlVvWEc0Z0lDQWdJQ0FnSUdCTVpXZGhZM2tnYzNWaWJXbDBkR2x1WnlBa2UzUm9hWE11WjJWMFEyOXVkSEpoWTNST1lXMWxLR05zWVhOelRtRnRaU2tnZkh3Z2RHaHBjeTVqYjI1bWFXY3VZMjl1ZEhKaFkzUk9ZVzFsZlM0a2UyWmpibjBnZG1saElIQmxaWEp6SUNSN2NHVmxjbk11YldGd0tDaHdLU0E5UGlCd0xuQmxaWEpGYm1Sd2IybHVkQ2t1YW05cGJpaGNJaXdnWENJcGZXQmNiaUFnSUNBZ0lDazdYRzVjYmlBZ0lDQWdJR052Ym5OMElISmxjM1ZzZENBOUlHRjNZV2wwSUhSeVlXNXpZV04wYVc5dUxuTjFZbTFwZENndUxpNWhjbWR6S1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJWYVc1ME9FRnljbUY1TG1aeWIyMG9jbVZ6ZFd4MEtUdGNiaUFnSUNCOUlHTmhkR05vSUNobE9pQmhibmtwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJSFJvYVhNdWNHRnljMlZGY25KdmNpaGxLVHRjYmlBZ0lDQjlJR1pwYm1Gc2JIa2dlMXh1SUNBZ0lDQWdaMkYwWlhkaGVTNWthWE5qYjI1dVpXTjBLQ2s3WEc0Z0lDQWdmVnh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J1YjNKdFlXeHBlbVZNWldkaFkzbFFaV1Z5Y3loY2JpQWdJQ0J3WldWeWN6b2dUR1ZuWVdONVVHVmxjbFJoY21kbGRGdGRYRzRnSUNrNklFeGxaMkZqZVZCbFpYSlhhWFJvVG1GdFpWdGRJSHRjYmlBZ0lDQmpiMjV6ZENCa1pXUjFjR1ZrSUQwZ2JtVjNJRTFoY0R4emRISnBibWNzSUV4bFoyRmplVkJsWlhKWGFYUm9UbUZ0WlQ0b0tUdGNiaUFnSUNCamIyNXpkQ0JoWkdSUVpXVnlJRDBnS0hCbFpYSTZJRXhsWjJGamVWQmxaWEpVWVhKblpYUXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJR3RsZVNBOUlHQWtlM0JsWlhJdWNHVmxja1Z1WkhCdmFXNTBmWHdrZTNCbFpYSXVjR1ZsY2todmMzUkJiR2xoY3lCOGZDQmNJbHdpZldBN1hHNGdJQ0FnSUNCcFppQW9aR1ZrZFhCbFpDNW9ZWE1vYTJWNUtTa2djbVYwZFhKdU8xeHVJQ0FnSUNBZ1kyOXVjM1FnYm1GdFpTQTlJR0J3WldWeUxTUjdjR1ZsY2k1dGMzQkpaSDB0Skh0a1pXUjFjR1ZrTG5OcGVtVjlZRHRjYmlBZ0lDQWdJR1JsWkhWd1pXUXVjMlYwS0d0bGVTd2dlMXh1SUNBZ0lDQWdJQ0F1TGk1d1pXVnlMRnh1SUNBZ0lDQWdJQ0J1WVcxbExGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZUdGNibHh1SUNBZ0lIQmxaWEp6TG1admNrVmhZMmdvWVdSa1VHVmxjaWs3WEc0Z0lDQWdZV1JrVUdWbGNpaDdYRzRnSUNBZ0lDQnRjM0JKWkRvZ2RHaHBjeTVqYjI1bWFXY3ViWE53U1dRc1hHNGdJQ0FnSUNCd1pXVnlSVzVrY0c5cGJuUTZJSFJvYVhNdVkyOXVabWxuTG5CbFpYSkZibVJ3YjJsdWRDeGNiaUFnSUNBZ0lIQmxaWEpJYjNOMFFXeHBZWE02SUhSb2FYTXVZMjl1Wm1sbkxuQmxaWEpJYjNOMFFXeHBZWE1zWEc0Z0lDQWdmU2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdRWEp5WVhrdVpuSnZiU2hrWldSMWNHVmtMblpoYkhWbGN5Z3BLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdjbVZ6YjJ4MlpVeGxaMkZqZVVsa1pXNTBhWFI1VFdGMFpYSnBZV3dvS1RvZ1VISnZiV2x6WlR4N1hHNGdJQ0FnWTJWeWRHbG1hV05oZEdVNklITjBjbWx1Wnp0Y2JpQWdJQ0J3Y21sMllYUmxTMlY1T2lCemRISnBibWM3WEc0Z0lIMCtJSHRjYmlBZ0lDQmpiMjV6ZENCalpYSjBhV1pwWTJGMFpTQTlJR0YzWVdsMElIUm9hWE11Y21WaFpGQmxiVWx1Y0hWMEtGeHVJQ0FnSUNBZ2RHaHBjeTVqYjI1bWFXY3VZMlZ5ZEVObGNuUlBja1JwY21WamRHOXllVkJoZEdoY2JpQWdJQ0FwTzF4dUlDQWdJR052Ym5OMElIQnlhWFpoZEdWTFpYa2dQU0JoZDJGcGRDQjBhR2x6TG5KbFlXUlFaVzFKYm5CMWRDaGNiaUFnSUNBZ0lIUm9hWE11WTI5dVptbG5MbXRsZVVObGNuUlBja1JwY21WamRHOXllVkJoZEdoY2JpQWdJQ0FwTzF4dUlDQWdJSEpsZEhWeWJpQjdJR05sY25ScFptbGpZWFJsTENCd2NtbDJZWFJsUzJWNUlIMDdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR0Z6ZVc1aklHSjFhV3hrVEdWbllXTjVRMjl1Ym1WamRHbHZibEJ5YjJacGJHVW9jR1ZsY25NNklFeGxaMkZqZVZCbFpYSlhhWFJvVG1GdFpWdGRLU0I3WEc0Z0lDQWdZMjl1YzNRZ2NHVmxja1Z1ZEhKcFpYTTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRnUFNCN2ZUdGNiaUFnSUNCamIyNXpkQ0JqYUdGdWJtVnNVR1ZsY25NNklGSmxZMjl5WkR4emRISnBibWNzSUdGdWVUNGdQU0I3ZlR0Y2JpQWdJQ0JqYjI1emRDQnZjbWR6T2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK0lEMGdlMzA3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0J3WldWeUlHOW1JSEJsWlhKektTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCMGJITlFaVzBnUFNCaGQyRnBkQ0IwYUdsekxuSmxZV1JRWlcxSmJuQjFkQ2hjYmlBZ0lDQWdJQ0FnY0dWbGNpNTBiSE5EWlhKMElIeDhJSFJvYVhNdVkyOXVabWxuTG5Sc2MwTmxjblJjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQm9iM04wYm1GdFpTQTlYRzRnSUNBZ0lDQWdJSEJsWlhJdWNHVmxja2h2YzNSQmJHbGhjeUI4ZkNCMGFHbHpMbVY0ZEhKaFkzUkliM04wS0hCbFpYSXVjR1ZsY2tWdVpIQnZhVzUwS1R0Y2JpQWdJQ0FnSUhCbFpYSkZiblJ5YVdWelczQmxaWEl1Ym1GdFpWMGdQU0I3WEc0Z0lDQWdJQ0FnSUhWeWJEb2dkR2hwY3k1bGJuTjFjbVZIY25CalZYSnNLSEJsWlhJdWNHVmxja1Z1WkhCdmFXNTBLU3hjYmlBZ0lDQWdJQ0FnZEd4elEwRkRaWEowY3pvZ2V5QndaVzA2SUhSc2MxQmxiU0I5TEZ4dUlDQWdJQ0FnSUNCbmNuQmpUM0IwYVc5dWN6b2dlMXh1SUNBZ0lDQWdJQ0FnSUZ3aWMzTnNMWFJoY21kbGRDMXVZVzFsTFc5MlpYSnlhV1JsWENJNklHaHZjM1J1WVcxbExGeHVJQ0FnSUNBZ0lDQWdJR2h2YzNSdVlXMWxUM1psY25KcFpHVTZJR2h2YzNSdVlXMWxMRnh1SUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUdOb1lXNXVaV3hRWldWeWMxdHdaV1Z5TG01aGJXVmRJRDBnZTF4dUlDQWdJQ0FnSUNCbGJtUnZjbk5wYm1kUVpXVnlPaUIwY25WbExGeHVJQ0FnSUNBZ0lDQmphR0ZwYm1OdlpHVlJkV1Z5ZVRvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnYkdWa1oyVnlVWFZsY25rNklIUnlkV1VzWEc0Z0lDQWdJQ0FnSUdWMlpXNTBVMjkxY21ObE9pQjBjblZsTEZ4dUlDQWdJQ0FnZlR0Y2JpQWdJQ0FnSUc5eVozTmJjR1ZsY2k1dGMzQkpaRjBnUFNCdmNtZHpXM0JsWlhJdWJYTndTV1JkSUh4OElIdGNiaUFnSUNBZ0lDQWdiWE53YVdRNklIQmxaWEl1YlhOd1NXUXNYRzRnSUNBZ0lDQWdJSEJsWlhKek9pQmJYU3hjYmlBZ0lDQWdJSDA3WEc0Z0lDQWdJQ0J2Y21kelczQmxaWEl1YlhOd1NXUmRMbkJsWlhKekxuQjFjMmdvY0dWbGNpNXVZVzFsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdibUZ0WlRvZ1hDSnNaV2RoWTNrdGJXRnVkV0ZzWENJc1hHNGdJQ0FnSUNCMlpYSnphVzl1T2lCY0lqRXVNQzR3WENJc1hHNGdJQ0FnSUNCamJHbGxiblE2SUh0Y2JpQWdJQ0FnSUNBZ2IzSm5ZVzVwZW1GMGFXOXVPaUIwYUdsekxtTnZibVpwWnk1dGMzQkpaQ3hjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0J2Y21kaGJtbDZZWFJwYjI1ek9pQnZjbWR6TEZ4dUlDQWdJQ0FnY0dWbGNuTTZJSEJsWlhKRmJuUnlhV1Z6TEZ4dUlDQWdJQ0FnYjNKa1pYSmxjbk02SUh0OUxGeHVJQ0FnSUNBZ1kyaGhibTVsYkhNNklIdGNiaUFnSUNBZ0lDQWdXM1JvYVhNdVkyOXVabWxuTG1Ob1lXNXVaV3hkT2lCN1hHNGdJQ0FnSUNBZ0lDQWdjR1ZsY25NNklHTm9ZVzV1Wld4UVpXVnljeXhjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2MyaHZkV3hrVkhKbFlYUlFaV1Z5YzBGelRHOWpZV3hvYjNOMEtIQmxaWEp6T2lCTVpXZGhZM2xRWldWeVYybDBhRTVoYldWYlhTazZJR0p2YjJ4bFlXNGdlMXh1SUNBZ0lISmxkSFZ5YmlCd1pXVnljeTVsZG1WeWVTZ29jR1ZsY2lrZ1BUNGdkR2hwY3k1cGMweHZZMkZzUlc1a2NHOXBiblFvY0dWbGNpNXdaV1Z5Ulc1a2NHOXBiblFwS1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2FYTk1iMk5oYkVWdVpIQnZhVzUwS0dWdVpIQnZhVzUwT2lCemRISnBibWNwT2lCaWIyOXNaV0Z1SUh0Y2JpQWdJQ0JqYjI1emRDQm9iM04wSUQwZ2RHaHBjeTVsZUhSeVlXTjBTRzl6ZENobGJtUndiMmx1ZENrdWRHOU1iM2RsY2tOaGMyVW9LVHRjYmlBZ0lDQnlaWFIxY200Z2FHOXpkQ0E5UFQwZ1hDSnNiMk5oYkdodmMzUmNJaUI4ZkNCb2IzTjBJRDA5UFNCY0lqRXlOeTR3TGpBdU1Wd2lPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JsZUhSeVlXTjBTRzl6ZENobGJtUndiMmx1ZERvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0JqYjI1emRDQnpZVzVwZEdsNlpXUWdQU0JsYm1Sd2IybHVkQzV5WlhCc1lXTmxLQzllWjNKd1kzTS9PbHhjTDF4Y0x5OHNJRndpWENJcE8xeHVJQ0FnSUhKbGRIVnliaUJ6WVc1cGRHbDZaV1F1YzNCc2FYUW9YQ0k2WENJcFd6QmRPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JsYm5OMWNtVkhjbkJqVlhKc0tHVnVaSEJ2YVc1ME9pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdsbUlDZ3ZYbWR5Y0dOelB6cGNYQzljWEM4dmFTNTBaWE4wS0dWdVpIQnZhVzUwS1NrZ2NtVjBkWEp1SUdWdVpIQnZhVzUwTzF4dUlDQWdJSEpsZEhWeWJpQmdaM0p3WTNNNkx5OGtlMlZ1WkhCdmFXNTBmV0E3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJSEpsWVdSUVpXMUpibkIxZENoemIzVnlZMlUvT2lCemRISnBibWNnZkNCQ2RXWm1aWElwT2lCUWNtOXRhWE5sUEhOMGNtbHVaejRnZTF4dUlDQWdJR2xtSUNnaGMyOTFjbU5sS1NCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhjSWsxcGMzTnBibWNnWTJWeWRHbG1hV05oZEdVZ2IzSWdhMlY1SUcxaGRHVnlhV0ZzWENJcE8xeHVJQ0FnSUdsbUlDaENkV1ptWlhJdWFYTkNkV1ptWlhJb2MyOTFjbU5sS1NrZ2NtVjBkWEp1SUhOdmRYSmpaUzUwYjFOMGNtbHVaeWhjSW5WMFpqaGNJaWs3WEc0Z0lDQWdZMjl1YzNRZ2RISnBiVzFsWkNBOUlITnZkWEpqWlM1MGNtbHRLQ2s3WEc0Z0lDQWdhV1lnS0M4dExTMHRMVUpGUjBsT0lGdEJMVm9nWFNzdExTMHRMUzh1ZEdWemRDaDBjbWx0YldWa0tTa2djbVYwZFhKdUlIUnlhVzF0WldRN1hHNGdJQ0FnWTI5dWMzUWdjM1JoZEhNZ1BTQmhkMkZwZENCbWN5NXdjbTl0YVhObGN5NXpkR0YwS0hOdmRYSmpaU2t1WTJGMFkyZ29LQ2tnUFQ0Z2RXNWtaV1pwYm1Wa0tUdGNiaUFnSUNCcFppQW9jM1JoZEhNL0xtbHpSR2x5WldOMGIzSjVLQ2twSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJoZDJGcGRDQm5aWFJHYVhKemRFUnBja1pwYkdWT1lXMWxRMjl1ZEdWdWRDaHpiM1Z5WTJVcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdLR0YzWVdsMElISmxZV1JHYzBacGJHVW9jMjkxY21ObEtTa3VkRzlUZEhKcGJtY29LVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVR0Z5YzJWeklHRnVJR1Z5Y205eUlHbHVkRzhnWVNCQ1lYTmxSWEp5YjNKY2JpQWdJQ29nUUhOMWJXMWhjbmtnUTI5dWRtVnlkSE1nWVc1NUlHVnljbTl5SUdsdWRHOGdZU0J6ZEdGdVpHRnlaR2w2WldRZ1FtRnpaVVZ5Y205eVhHNGdJQ0FxSUVCd1lYSmhiU0I3UlhKeWIzSWdmQ0J6ZEhKcGJtZDlJR1Z5Y2lBdElGUm9aU0JsY25KdmNpQjBieUJ3WVhKelpWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnVzNKbFlYTnZibDBnTFNCUGNIUnBiMjVoYkNCeVpXRnpiMjRnWm05eUlIUm9aU0JsY25KdmNseHVJQ0FnS2lCQWNtVjBkWEp1SUh0Q1lYTmxSWEp5YjNKOUlGUm9aU0J3WVhKelpXUWdaWEp5YjNKY2JpQWdJQ292WEc0Z0lHOTJaWEp5YVdSbElIQmhjbk5sUlhKeWIzSThSU0JsZUhSbGJtUnpJRUpoYzJWRmNuSnZjajRvWlhKeU9pQkZjbkp2Y2lCOElITjBjbWx1WnlrNklFVWdlMXh1SUNBZ0lISmxkSFZ5YmlCR1lXSnlhV05EYkdsbGJuUkJaR0Z3ZEdWeUxuQmhjbk5sUlhKeWIzSThSVDRvWlhKeUtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1UzVmliV2wwY3lCaElIUnlZVzV6WVdOMGFXOXVJSFJ2SUhSb1pTQkdZV0p5YVdNZ2JtVjBkMjl5YTF4dUlDQWdLaUJBYzNWdGJXRnllU0JGZUdWamRYUmxjeUJoSUhSeVlXNXpZV04wYVc5dUlIUm9ZWFFnYlc5a2FXWnBaWE1nZEdobElHeGxaR2RsY2lCemRHRjBaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1lYQnBJQzBnVkdobElHTm9ZV2x1WTI5a1pTQm1kVzVqZEdsdmJpQjBieUJqWVd4c1hHNGdJQ0FxSUVCd1lYSmhiU0I3WVc1NVcxMTlJRnRoY21kelhTQXRJRUZ5WjNWdFpXNTBjeUIwYnlCd1lYTnpJSFJ2SUhSb1pTQmphR0ZwYm1OdlpHVWdablZ1WTNScGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0U1pXTnZjbVE4YzNSeWFXNW5MQ0J6ZEhKcGJtYytmU0JiZEhKaGJuTnBaVzUwUkdGMFlWMGdMU0JVY21GdWMybGxiblFnWkdGMFlTQm1iM0lnZEdobElIUnlZVzV6WVdOMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN1FYSnlZWGs4YzNSeWFXNW5QbjBnVzJWdVpHOXljMmx1WjA5eVoyRnVhWHBoZEdsdmJuTmRJQzBnVDNKbllXNXBlbUYwYVc5dWN5QjBhR0YwSUcxMWMzUWdaVzVrYjNKelpTQjBhR1VnZEhKaGJuTmhZM1JwYjI1Y2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHhWYVc1ME9FRnljbUY1UG4wZ1VISnZiV2x6WlNCeVpYTnZiSFpwYm1jZ2RHOGdkR2hsSUhSeVlXNXpZV04wYVc5dUlISmxjM1ZzZEZ4dUlDQWdLaTljYmlBZ1lYTjVibU1nYzNWaWJXbDBWSEpoYm5OaFkzUnBiMjRvWEc0Z0lDQWdZM1I0T2lCRGIyNTBaWGgwUEVaaFluSnBZME5zYVdWdWRFWnNZV2R6UGl4Y2JpQWdJQ0JoY0drNklITjBjbWx1Wnl4Y2JpQWdJQ0JoY21kelB6b2dZVzU1VzEwc1hHNGdJQ0FnZEhKaGJuTnBaVzUwUkdGMFlUODZJRkpsWTI5eVpEeHpkSEpwYm1jc0lITjBjbWx1Wno0c1hHNGdJQ0FnWlc1a2IzSnphVzVuVDNKbllXNXBlbUYwYVc5dWN6ODZJRUZ5Y21GNVBITjBjbWx1Wno0c1hHNGdJQ0FnWTJ4aGMzTk9ZVzFsUHpvZ2MzUnlhVzVuWEc0Z0lDazZJRkJ5YjIxcGMyVThWV2x1ZERoQmNuSmhlVDRnZTF4dUlDQWdJR2xtSUNoMGFHbHpMbk5vYjNWc1pGVnpaVXhsWjJGamVVZGhkR1YzWVhrb1kzUjRLU2tnZTF4dUlDQWdJQ0FnWTI5dWMzUWdiR1ZuWVdONVFYSm5jeUE5SUhSb2FYTXVjSEpsY0dGeVpVeGxaMkZqZVVGeVozTW9ZWEpuY3lrN1hHNGdJQ0FnSUNCamIyNXpkQ0IwY21GdWMybGxiblJOWVhBZ1BTQjBhR2x6TG1KMWFXeGtUR1ZuWVdONVZISmhibk5wWlc1MEtIUnlZVzV6YVdWdWRFUmhkR0VwTzF4dUlDQWdJQ0FnWTI5dWMzUWdjR1ZsY2tOdmJtWnBaM01nUFNCMGFHbHpMbUoxYVd4a1RHVm5ZV041VUdWbGNrTnZibVpwWjNNb1kzUjRLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjBhR2x6TG5OMVltMXBkRXhsWjJGamVWZHBkR2hGZUhCc2FXTnBkRVZ1Wkc5eWMyVnljeWhjYmlBZ0lDQWdJQ0FnWTNSNExGeHVJQ0FnSUNBZ0lDQmhjR2tzWEc0Z0lDQWdJQ0FnSUd4bFoyRmplVUZ5WjNNc1hHNGdJQ0FnSUNBZ0lIUnlZVzV6YVdWdWRFMWhjQ3hjYmlBZ0lDQWdJQ0FnY0dWbGNrTnZibVpwWjNNc1hHNGdJQ0FnSUNBZ0lHTnNZWE56VG1GdFpWeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRISmhibk5oWTNScGIyNG9YRzRnSUNBZ0lDQmpkSGdzWEc0Z0lDQWdJQ0JoY0drc1hHNGdJQ0FnSUNCMGNuVmxMRnh1SUNBZ0lDQWdZWEpuY3l4Y2JpQWdJQ0FnSUhSeVlXNXphV1Z1ZEVSaGRHRXNYRzRnSUNBZ0lDQmxibVJ2Y25OcGJtZFBjbWRoYm1sNllYUnBiMjV6TEZ4dUlDQWdJQ0FnWTJ4aGMzTk9ZVzFsWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSWFpoYkhWaGRHVnpJR0VnZEhKaGJuTmhZM1JwYjI0Z2IyNGdkR2hsSUVaaFluSnBZeUJ1WlhSM2IzSnJYRzRnSUNBcUlFQnpkVzF0WVhKNUlFVjRaV04xZEdWeklHRWdkSEpoYm5OaFkzUnBiMjRnZEdoaGRDQmtiMlZ6SUc1dmRDQnRiMlJwWm5rZ2RHaGxJR3hsWkdkbGNpQnpkR0YwWlZ4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdZWEJwSUMwZ1ZHaGxJR05vWVdsdVkyOWtaU0JtZFc1amRHbHZiaUIwYnlCallXeHNYRzRnSUNBcUlFQndZWEpoYlNCN1lXNTVXMTE5SUZ0aGNtZHpYU0F0SUVGeVozVnRaVzUwY3lCMGJ5QndZWE56SUhSdklIUm9aU0JqYUdGcGJtTnZaR1VnWm5WdVkzUnBiMjVjYmlBZ0lDb2dRSEJoY21GdElIdFNaV052Y21ROGMzUnlhVzVuTENCemRISnBibWMrZlNCYmRISmhibk5wWlc1MFJHRjBZVjBnTFNCVWNtRnVjMmxsYm5RZ1pHRjBZU0JtYjNJZ2RHaGxJSFJ5WVc1ellXTjBhVzl1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdRWEp5WVhrOGMzUnlhVzVuUG4wZ1cyVnVaRzl5YzJsdVowOXlaMkZ1YVhwaGRHbHZibk5kSUMwZ1QzSm5ZVzVwZW1GMGFXOXVjeUIwYUdGMElHMTFjM1FnWlc1a2IzSnpaU0IwYUdVZ2RISmhibk5oWTNScGIyNWNiaUFnSUNvZ1FISmxkSFZ5YmlCN1VISnZiV2x6WlR4VmFXNTBPRUZ5Y21GNVBuMGdVSEp2YldselpTQnlaWE52YkhacGJtY2dkRzhnZEdobElIUnlZVzV6WVdOMGFXOXVJSEpsYzNWc2RGeHVJQ0FnS2k5Y2JpQWdZWE41Ym1NZ1pYWmhiSFZoZEdWVWNtRnVjMkZqZEdsdmJpaGNiaUFnSUNCamRIZzZJRU52Ym5SbGVIUThSbUZpY21salEyeHBaVzUwUm14aFozTStMRnh1SUNBZ0lHRndhVG9nYzNSeWFXNW5MRnh1SUNBZ0lHRnlaM00vT2lCaGJubGJYU3hjYmlBZ0lDQjBjbUZ1YzJsbGJuUkVZWFJoUHpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnYzNSeWFXNW5QaXhjYmlBZ0lDQmxibVJ2Y25OcGJtZFBjbWRoYm1sNllYUnBiMjV6UHpvZ1FYSnlZWGs4YzNSeWFXNW5QaXhjYmlBZ0lDQmpiR0Z6YzA1aGJXVS9PaUJ6ZEhKcGJtZGNiaUFnS1RvZ1VISnZiV2x6WlR4VmFXNTBPRUZ5Y21GNVBpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkSEpoYm5OaFkzUnBiMjRvWEc0Z0lDQWdJQ0JqZEhnc1hHNGdJQ0FnSUNCaGNHa3NYRzRnSUNBZ0lDQm1ZV3h6WlN4Y2JpQWdJQ0FnSUdGeVozTXNYRzRnSUNBZ0lDQjBjbUZ1YzJsbGJuUkVZWFJoTEZ4dUlDQWdJQ0FnWlc1a2IzSnphVzVuVDNKbllXNXBlbUYwYVc5dWN5eGNiaUFnSUNBZ0lHTnNZWE56VG1GdFpWeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCdGFXZHlZWFJsS0Z4dUlDQWdJSEpsWm1WeVpXNWpaVG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eERiMjUwWlhoMFBFWmhZbkpwWTBOc2FXVnVkRVpzWVdkelBqNWNiaUFnS1RvZ1VISnZiV2x6WlR4VmFXNTBPRUZ5Y21GNVBpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIaEJjbWR6SUgwZ1BTQW9YRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGJZWEpuYzEwc0lGQmxjbk5wYzNSbGJtTmxTMlY1Y3k1TlNVZFNRVlJKVDA0c0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTV0YVdkeVlYUmxLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV6ZFdKdGFYUlVjbUZ1YzJGamRHbHZiaWhjYmlBZ0lDQWdJR04wZUVGeVozTmJNRjBnWVhNZ1EyOXVkR1Y0ZER4R1lXSnlhV05EYkdsbGJuUkdiR0ZuY3o0c1hHNGdJQ0FnSUNCY0ltMXBaM0poZEdWY0lpeGNiaUFnSUNBZ0lGdHlaV1psY21WdVkyVXNJR0Z5WjNOZExGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa1hHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVTJoMWRITWdaRzkzYmlCMGFHVWdZMjl1Ym1WamRHbHZiaUIwYnlCMGFHVWdSbUZpY21saklHNWxkSGR2Y210Y2JpQWdJQ29nUUhOMWJXMWhjbmtnUTJ4dmMyVnpJSFJvWlNCaFkzUnBkbVVnWkdsemNHRjBZMmdnS0hkb2FXTm9JR2x1SUhSMWNtNGdZMnh2YzJWeklHRnVlU0JuWVhSbGQyRjVYRzRnSUNBcUlHVjJaVzUwSUhOMVluTmpjbWx3ZEdsdmJpa2dkbWxoSUhSb1pTQmlZWE5sSUdOc1lYTnpMQ0IwYUdWdUlHTnNiM05sY3lCMGFHVWdaMUpRUXlCamJHbGxiblF1WEc0Z0lDQXFJRmR2Y210eklHTnZjbkpsWTNSc2VTQnlaV2RoY21Sc1pYTnpJRzltSUhkb1pYUm9aWElnWUhONWJuUm9aWFJwWTBWMlpXNTBjMkFnYVhNZ1pXNWhZbXhsWkM1Y2JpQWdJQ29nUUhKbGRIVnliaUI3VUhKdmJXbHpaVHgyYjJsa1BuMGdVSEp2YldselpTQjBhR0YwSUhKbGMyOXNkbVZ6SUhkb1pXNGdZV3hzSUdOdmJtNWxZM1JwYjI1eklHRnlaU0JqYkc5elpXUmNiaUFnSUNvdlhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklITm9kWFJrYjNkdUtGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4RGIyNTBaWGgwUEVaaFluSnBZME5zYVdWdWRFWnNZV2R6UGo1Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ0x5OGdRbUZ6WlNCamJHRnpjeUJvWVc1a2JHVnpJR1JwYzNCaGRHTm9MbU5zYjNObEtDa2dhVzUwWlhKdVlXeHNlUzVjYmlBZ0lDQmhkMkZwZENCemRYQmxjaTV6YUhWMFpHOTNiaWd1TGk1aGNtZHpLVHRjYmlBZ0lDQnBaaUFvZEdocGN5NWpiR2xsYm5RcElIdGNiaUFnSUNBZ0lIUm9hWE11Ykc5bkxuWmxjbUp2YzJVb1lFTnNiM05wYm1jZ0pIdDBhR2x6TG1OdmJtWnBaeTV0YzNCSlpIMGdaMkYwWlhkaGVTQmpiR2xsYm5SZ0tUdGNiaUFnSUNBZ0lIUm9hWE11WTJ4cFpXNTBMbU5zYjNObEtDazdYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCSFpYUnpJR0VnUTI5dWRISmhZM1FnYVc1emRHRnVZMlVnWm5KdmJTQmhJRWRoZEdWM1lYbGNiaUFnSUNvZ1FITjFiVzFoY25rZ1VtVjBjbWxsZG1WeklHRWdZMmhoYVc1amIyUmxJR052Ym5SeVlXTjBJR1p5YjIwZ2RHaGxJSE53WldOcFptbGxaQ0J1WlhSM2IzSnJYRzRnSUNBcUlFQndZWEpoYlNCN1IyRjBaWGRoZVgwZ1oyRjBaWGRoZVNBdElGUm9aU0JIWVhSbGQyRjVJR2x1YzNSaGJtTmxYRzRnSUNBcUlFQndZWEpoYlNCN1VHVmxja052Ym1acFozMGdZMjl1Wm1sbklDMGdWR2hsSUhCbFpYSWdZMjl1Wm1sbmRYSmhkR2x2Ymx4dUlDQWdLaUJBY21WMGRYSnVJSHREYjI1MGNtRnJkSDBnVkdobElFTnZiblJ5WVdOMElHbHVjM1JoYm1ObFhHNGdJQ0FxTDF4dUlDQnpkR0YwYVdNZ1oyVjBRMjl1ZEhKaFkzUW9YRzRnSUNBZ1oyRjBaWGRoZVRvZ1IyRjBaWGRoZVN4Y2JpQWdJQ0JqYjI1bWFXYzZJRkJsWlhKRGIyNW1hV2NzWEc0Z0lDQWdZMjl1ZEhKaFkzUk9ZVzFsUHpvZ2MzUnlhVzVuWEc0Z0lDazZJRU52Ym5SeVlXdDBJSHRjYmlBZ0lDQmpiMjV6ZENCc2IyY2dQU0IwYUdsekxteHZaeTVtYjNJb2RHaHBjeTVuWlhSRGIyNTBjbUZqZENrN1hHNGdJQ0FnWTI5dWMzUWdibVYwZDI5eWF5QTlJSFJvYVhNdVoyVjBUbVYwZDI5eWF5aG5ZWFJsZDJGNUxDQmpiMjVtYVdjdVkyaGhibTVsYkNrN1hHNGdJQ0FnYkdWMElHTnZiblJ5WVdOME9pQkRiMjUwY21GcmREdGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdiRzluTG1SbFluVm5LRnh1SUNBZ0lDQWdJQ0JnVW1WMGNtbGxkbWx1WnlCamFHRnBibU52WkdVZ0pIdGpiMjVtYVdjdVkyaGhhVzVqYjJSbFRtRnRaWDBnWTI5dWRISmhZM1FnSkh0amIyNTBjbUZqZEU1aGJXVWdmSHdnWTI5dVptbG5MbU52Ym5SeVlXTjBUbUZ0WlgwZ1puSnZiU0J1WlhSM2IzSnJJQ1I3WTI5dVptbG5MbU5vWVc1dVpXeDlZRnh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR052Ym5SeVlXTjBUbUZ0WlNBOUlHTnZiblJ5WVdOMFRtRnRaU0EvSUdOdmJuUnlZV04wVG1GdFpTQTZJR052Ym1acFp5NWpiMjUwY21GamRFNWhiV1U3WEc0Z0lDQWdJQ0JqYjI1MGNtRmpkQ0E5SUc1bGRIZHZjbXN1WjJWMFEyOXVkSEpoWTNRb1kyOXVabWxuTG1Ob1lXbHVZMjlrWlU1aGJXVXNJR052Ym5SeVlXTjBUbUZ0WlNrN1hHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QjBhR2x6TG5CaGNuTmxSWEp5YjNJb1pTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJqYjI1MGNtRmpkRHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSMlYwY3lCaElFNWxkSGR2Y21zZ2FXNXpkR0Z1WTJVZ1puSnZiU0JoSUVkaGRHVjNZWGxjYmlBZ0lDb2dRSE4xYlcxaGNua2dRMjl1Ym1WamRITWdkRzhnWVNCemNHVmphV1pwWXlCamFHRnVibVZzSUc5dUlIUm9aU0JHWVdKeWFXTWdibVYwZDI5eWExeHVJQ0FnS2lCQWNHRnlZVzBnZTBkaGRHVjNZWGw5SUdkaGRHVjNZWGtnTFNCVWFHVWdSMkYwWlhkaGVTQnBibk4wWVc1alpWeHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnWTJoaGJtNWxiRTVoYldVZ0xTQlVhR1VnYm1GdFpTQnZaaUIwYUdVZ1kyaGhibTVsYkNCMGJ5QmpiMjV1WldOMElIUnZYRzRnSUNBcUlFQnlaWFIxY200Z2UwNWxkSGR2Y210OUlGUm9aU0JPWlhSM2IzSnJJR2x1YzNSaGJtTmxYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdaMlYwVG1WMGQyOXlheWhuWVhSbGQyRjVPaUJIWVhSbGQyRjVMQ0JqYUdGdWJtVnNUbUZ0WlRvZ2MzUnlhVzVuS1RvZ1RtVjBkMjl5YXlCN1hHNGdJQ0FnWTI5dWMzUWdiRzluSUQwZ1RHOW5aMmx1Wnk1bWIzSW9kR2hwY3k1blpYUk9aWFIzYjNKcktUdGNiaUFnSUNCc1pYUWdibVYwZDI5eWF6b2dUbVYwZDI5eWF6dGNiaUFnSUNCMGNua2dlMXh1SUNBZ0lDQWdiRzluTG1SbFluVm5LR0JEYjI1dVpXTjBhVzVuSUhSdklHTm9ZVzV1Wld3Z0pIdGphR0Z1Ym1Wc1RtRnRaWDFnS1R0Y2JpQWdJQ0FnSUc1bGRIZHZjbXNnUFNCbllYUmxkMkY1TG1kbGRFNWxkSGR2Y21zb1kyaGhibTVsYkU1aGJXVXBPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVTZJR0Z1ZVNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnZEdocGN5NXdZWEp6WlVWeWNtOXlLR1VwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnVaWFIzYjNKck8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCSFpYUnpJR0VnUjJGMFpYZGhlU0JwYm5OMFlXNWpaU0JtYjNJZ1kyOXVibVZqZEdsdVp5QjBieUIwYUdVZ1JtRmljbWxqSUc1bGRIZHZjbXRjYmlBZ0lDb2dRSE4xYlcxaGNua2dRM0psWVhSbGN5QmhJRWRoZEdWM1lYa2dkWE5wYm1jZ2RHaGxJSEJ5YjNacFpHVmtJR052Ym1acFozVnlZWFJwYjI0Z1lXNWtJR05zYVdWdWRGeHVJQ0FnS2lCQWNHRnlZVzBnZTFCbFpYSkRiMjVtYVdkOUlHTnZibVpwWnlBdElGUm9aU0J3WldWeUlHTnZibVpwWjNWeVlYUnBiMjVjYmlBZ0lDb2dRSEJoY21GdElIdERiR2xsYm5SOUlGdGpiR2xsYm5SZElDMGdUM0IwYVc5dVlXd2daMUpRUXlCamJHbGxiblFzSUhkcGJHd2dZbVVnWTNKbFlYUmxaQ0JwWmlCdWIzUWdjSEp2ZG1sa1pXUmNiaUFnSUNvZ1FISmxkSFZ5YmlCN1VISnZiV2x6WlR4SFlYUmxkMkY1UG4wZ1VISnZiV2x6WlNCeVpYTnZiSFpwYm1jZ2RHOGdkR2hsSUVkaGRHVjNZWGtnYVc1emRHRnVZMlZjYmlBZ0lDb3ZYRzRnSUhOMFlYUnBZeUJoYzNsdVl5Qm5aWFJIWVhSbGQyRjVLRnh1SUNBZ0lHTjBlRG9nUTI5dWRHVjRkRHhHWVdKeWFXTkRiR2xsYm5SR2JHRm5jejRzWEc0Z0lDQWdZMjl1Wm1sbk9pQlFaV1Z5UTI5dVptbG5MRnh1SUNBZ0lHTnNhV1Z1ZEQ4NklFTnNhV1Z1ZEZ4dUlDQXBJSHRjYmlBZ0lDQnlaWFIxY200Z0tHRjNZV2wwSUhSb2FYTXVaMlYwUTI5dWJtVmpkR2x2YmloY2JpQWdJQ0FnSUdOc2FXVnVkQ0I4ZkNBb1lYZGhhWFFnZEdocGN5NW5aWFJEYkdsbGJuUW9ZMjl1Wm1sbktTa3NYRzRnSUNBZ0lDQmpiMjVtYVdjc1hHNGdJQ0FnSUNCamRIaGNiaUFnSUNBcEtTQmhjeUJIWVhSbGQyRjVPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkRjbVZoZEdWeklHRWdaMUpRUXlCamJHbGxiblFnWm05eUlHTnZibTVsWTNScGJtY2dkRzhnWVNCR1lXSnlhV01nY0dWbGNseHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCSmJtbDBhV0ZzYVhwbGN5QmhJR05zYVdWdWRDQjNhWFJvSUZSTVV5QmpjbVZrWlc1MGFXRnNjeUJtYjNJZ2MyVmpkWEpsSUdOdmJXMTFibWxqWVhScGIyNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0UVpXVnlRMjl1Wm1sbmZTQmpiMjVtYVdjZ0xTQlVhR1VnY0dWbGNpQmpiMjVtYVdkMWNtRjBhVzl1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlME5zYVdWdWRIMGdVSEp2YldselpTQnlaWE52YkhacGJtY2dkRzhnZEdobElHZFNVRU1nWTJ4cFpXNTBYRzRnSUNBcUwxeHVJQ0J6ZEdGMGFXTWdaMlYwUTJ4cFpXNTBLR052Ym1acFp6b2dVR1ZsY2tOdmJtWnBaeWs2SUVOc2FXVnVkQ0I3WEc0Z0lDQWdZMjl1YzNRZ2JHOW5JRDBnZEdocGN5NXNiMmN1Wm05eUtIUm9hWE11WjJWMFEyeHBaVzUwS1R0Y2JpQWdJQ0JzYjJjdVpHVmlkV2NvWUdkbGJtVnlZWFJwYm1jZ1ZFeFRJR055WldSbGJuUnBZV3h6SUdadmNpQnRjM0FnSkh0amIyNW1hV2N1YlhOd1NXUjlZQ2s3WEc0Z0lDQWdiR1YwSUhCaGRHaFBja05sY25RNklITjBjbWx1WnlCOElFSjFabVpsY2lBOUlHTnZibVpwWnk1MGJITkRaWEowSUdGeklITjBjbWx1WnlCOElFSjFabVpsY2p0Y2JseHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ2NHRjBhRTl5UTJWeWRDQTlQVDBnWENKemRISnBibWRjSWlrZ2UxeHVJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0J3WVhSb1QzSkRaWEowTG0xaGRHTm9LRnh1SUNBZ0lDQWdJQ0FnSUM4dExTMHRMVUpGUjBsT0lDaERSVkpVU1VaSlEwRlVSWHhMUlZsOFVGSkpWa0ZVUlNCTFJWa3BMUzB0TFMwdUt6OHRMUzB0TFVWT1JDQmNYREV0TFMwdExTUXZaMjF6WEc0Z0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ0lDQndZWFJvVDNKRFpYSjBJRDBnUW5WbVptVnlMbVp5YjIwb2NHRjBhRTl5UTJWeWRDd2dYQ0oxZEdZNFhDSXBPMXh1SUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ0lDQndZWFJvVDNKRFpYSjBJRDBnUW5WbVptVnlMbVp5YjIwb1puTXVjbVZoWkVacGJHVlRlVzVqS0hCaGRHaFBja05sY25Rc0lGd2lkWFJtT0Z3aUtTazdYRzRnSUNBZ0lDQWdJSDBnWTJGMFkyZ2dLR1U2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY2JpQWdJQ0FnSUNBZ0lDQWdJR0JHWVdsc1pXUWdkRzhnY21WaFpDQjBhR1VnZEd4eklHTmxjblJwWm1sallYUmxJR1p5YjIwZ0pIdHdZWFJvVDNKRFpYSjBmVG9nSkh0bGZXQmNiaUFnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdkR3h6UTNKbFpHVnVkR2xoYkhNZ1BTQm5jbkJqTG1OeVpXUmxiblJwWVd4ekxtTnlaV0YwWlZOemJDaHdZWFJvVDNKRFpYSjBLVHRjYmlBZ0lDQnNiMmN1WkdWaWRXY29ZR2RsYm1WeVlYUnBibWNnUjJGMFpYZGhlU0JEYkdsbGJuUWdabTl5SUhWeWJDQWtlMk52Ym1acFp5NXdaV1Z5Ulc1a2NHOXBiblI5WUNrN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCRGJHbGxiblFvWTI5dVptbG5MbkJsWlhKRmJtUndiMmx1ZEN3Z2RHeHpRM0psWkdWdWRHbGhiSE1zSUh0Y2JpQWdJQ0FnSUZ3aVozSndZeTV0WVhoZmNtVmpaV2wyWlY5dFpYTnpZV2RsWDJ4bGJtZDBhRndpT2lBb1kyOXVabWxuTG5OcGVtVk1hVzFwZENCOGZDQXhOU2tnS2lBeE1ESTBJQ29nTVRBeU5DeGNiaUFnSUNBZ0lGd2laM0p3WXk1dFlYaGZjMlZ1WkY5dFpYTnpZV2RsWDJ4bGJtZDBhRndpT2lBb1kyOXVabWxuTG5OcGVtVk1hVzFwZENCOGZDQXhOU2tnS2lBeE1ESTBJQ29nTVRBeU5DeGNiaUFnSUNCOUtUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1JYTjBZV0pzYVhOb1pYTWdZU0JqYjI1dVpXTjBhVzl1SUhSdklIUm9aU0JHWVdKeWFXTWdibVYwZDI5eWExeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCRGNtVmhkR1Z6SUdFZ1IyRjBaWGRoZVNCamIyNXVaV04wYVc5dUlIZHBkR2dnYVdSbGJuUnBkSGtnWVc1a0lITnBaMjVsY2x4dUlDQWdLaUJBY0dGeVlXMGdlME5zYVdWdWRIMGdZMnhwWlc1MElDMGdWR2hsSUdkU1VFTWdZMnhwWlc1MFhHNGdJQ0FxSUVCd1lYSmhiU0I3VUdWbGNrTnZibVpwWjMwZ1kyOXVabWxuSUMwZ1ZHaGxJSEJsWlhJZ1kyOXVabWxuZFhKaGRHbHZibHh1SUNBZ0tpQkFjbVYwZFhKdUlIdFFjbTl0YVhObFBFZGhkR1YzWVhrK2ZTQlFjbTl0YVhObElISmxjMjlzZG1sdVp5QjBieUIwYUdVZ1kyOXVibVZqZEdWa0lFZGhkR1YzWVhsY2JpQWdJQ29nUUcxbGNtMWhhV1JjYmlBZ0lDb2djMlZ4ZFdWdVkyVkVhV0ZuY21GdFhHNGdJQ0FxSUNBZ2NHRnlkR2xqYVhCaGJuUWdRMkZzYkdWeVhHNGdJQ0FxSUNBZ2NHRnlkR2xqYVhCaGJuUWdSbUZpY21salFXUmhjSFJsY2x4dUlDQWdLaUFnSUhCaGNuUnBZMmx3WVc1MElFbGtaVzUwYVhSNVhHNGdJQ0FxSUNBZ2NHRnlkR2xqYVhCaGJuUWdVMmxuYm1WeVhHNGdJQ0FxSUNBZ2NHRnlkR2xqYVhCaGJuUWdSMkYwWlhkaGVWeHVJQ0FnS2x4dUlDQWdLaUFnSUVOaGJHeGxjaTArUGtaaFluSnBZMEZrWVhCMFpYSTZJR2RsZEVOdmJtNWxZM1JwYjI0b1kyeHBaVzUwTENCamIyNW1hV2NwWEc0Z0lDQXFJQ0FnUm1GaWNtbGpRV1JoY0hSbGNpMCtQa2xrWlc1MGFYUjVPaUJuWlhSSlpHVnVkR2wwZVNodGMzQkpaQ3dnWTJWeWRFUnBjbVZqZEc5eWVWQmhkR2dwWEc0Z0lDQXFJQ0FnU1dSbGJuUnBkSGt0TFQ0K1JtRmljbWxqUVdSaGNIUmxjam9nYVdSbGJuUnBkSGxjYmlBZ0lDb2dJQ0JHWVdKeWFXTkJaR0Z3ZEdWeUxUNCtVMmxuYm1WeU9pQm5aWFJUYVdkdVpYSW9hMlY1UkdseVpXTjBiM0o1VUdGMGFDbGNiaUFnSUNvZ0lDQlRhV2R1WlhJdExUNCtSbUZpY21salFXUmhjSFJsY2pvZ2MybG5ibVZ5WEc0Z0lDQXFJQ0FnUm1GaWNtbGpRV1JoY0hSbGNpMCtQa1poWW5KcFkwRmtZWEIwWlhJNklFTnlaV0YwWlNCRGIyNXVaV04wVDNCMGFXOXVjMXh1SUNBZ0tpQWdJRVpoWW5KcFkwRmtZWEIwWlhJdFBqNUhZWFJsZDJGNU9pQmpiMjV1WldOMEtHOXdkR2x2Ym5NcFhHNGdJQ0FxSUNBZ1IyRjBaWGRoZVMwdFBqNUdZV0p5YVdOQlpHRndkR1Z5T2lCbllYUmxkMkY1WEc0Z0lDQXFJQ0FnUm1GaWNtbGpRV1JoY0hSbGNpMHRQajVEWVd4c1pYSTZJR2RoZEdWM1lYbGNiaUFnSUNvdlhHNGdJSE4wWVhScFl5QmhjM2x1WXlCblpYUkRiMjV1WldOMGFXOXVLRnh1SUNBZ0lHTnNhV1Z1ZERvZ1EyeHBaVzUwTEZ4dUlDQWdJR052Ym1acFp6b2dVR1ZsY2tOdmJtWnBaeXhjYmlBZ0lDQmpkSGc2SUVOdmJuUmxlSFE4Um1GaWNtbGpRMnhwWlc1MFJteGhaM00rWEc0Z0lDa2dlMXh1SUNBZ0lHTnZibk4wSUd4dlp5QTlJRXh2WjJkcGJtY3VabTl5S0hSb2FYTXVaMlYwUTI5dWJtVmpkR2x2YmlrN1hHNGdJQ0FnYkc5bkxtUmxZblZuS0Z4dUlDQWdJQ0FnWUZKbGRISnBaWFpwYm1jZ1VHVmxjaUJKWkdWdWRHbDBlU0JtYjNJZ0pIdGpiMjVtYVdjdWJYTndTV1I5SUhWdVpHVnlJQ1I3WTI5dVptbG5MbU5sY25SRFpYSjBUM0pFYVhKbFkzUnZjbmxRWVhSb2ZXQmNiaUFnSUNBcE8xeHVJQ0FnSUdOdmJuTjBJR2xrWlc1MGFYUjVJRDBnWVhkaGFYUWdaMlYwU1dSbGJuUnBkSGtvWEc0Z0lDQWdJQ0JqYjI1bWFXY3ViWE53U1dRc1hHNGdJQ0FnSUNCamIyNW1hV2N1WTJWeWRFTmxjblJQY2tScGNtVmpkRzl5ZVZCaGRHZ2dZWE1nWVc1NVhHNGdJQ0FnS1R0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ2JHOW5MbVJsWW5WbktGeHVJQ0FnSUNBZ0lDQmdjSEpsY0dGeWFXNW5JSFJ5WVc1ellXTjBhVzl1SUhOcFoyNWxjaUJtYjNJZ0pIdERjbmx3ZEc5VmRHbHNjeTVtWVdKeWFXTkpaRVp5YjIxRFpYSjBhV1pwWTJGMFpTaHBaR1Z1ZEdsMGVTNWpjbVZrWlc1MGFXRnNjeTUwYjFOMGNtbHVaeWdwS1gxZ1hHNGdJQ0FnSUNBcE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dVNklIVnVhMjV2ZDI0cElIdGNiaUFnSUNBZ0lHeHZaeTVsY25KdmNpaGdSbUZwYkdWa0lIUnZJR1Y0ZEhKaFkzUWdSbUZpY21saklFbEVJR1p5YjIwZ1kyVnlkR2xtYVdOaGRHVmdMQ0JsSUdGeklFVnljbTl5S1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JzWlhRZ2MybG5ibVZ5T2lCVGFXZHVaWEk3WEc0Z0lDQWdZMjl1YzNRZ1kyeHZjMlVnUFNBb0tTQTlQaUI3ZlR0Y2JpQWdJQ0JwWmlBb0lXTnZibVpwWnk1b2MyMHBJSHRjYmlBZ0lDQWdJSE5wWjI1bGNpQTlJR0YzWVdsMElHZGxkRk5wWjI1bGNpaGpiMjVtYVdjdWEyVjVRMlZ5ZEU5eVJHbHlaV04wYjNKNVVHRjBhQ0JoY3lCaGJua3BPMXh1SUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBdkx5QmpiMjV6ZENCb2MyMGdQU0J1WlhjZ1NGTk5VMmxuYm1WeVJtRmpkRzl5ZVVOMWMzUnZiU2hqYjI1bWFXY3VhSE50TG14cFluSmhjbmtwTzF4dUlDQWdJQ0FnTHk4Z1kyOXVjM1FnYVdSbGJuUnBabWxsY2lBOUlHaHpiUzVuWlhSVFMwbEdjbTl0UTJWeWRHbG1hV05oZEdWUVlYUm9LRnh1SUNBZ0lDQWdMeThnSUNCamIyNW1hV2N1WTJWeWRFTmxjblJQY2tScGNtVmpkRzl5ZVZCaGRHZ2dZWE1nWVc1NVhHNGdJQ0FnSUNBdkx5QXBPMXh1SUNBZ0lDQWdMeThnWTI5dWMzUWdjR3RqY3pFeFUybG5ibVZ5SUQwZ2FITnRMbTVsZDFOcFoyNWxjaWg3WEc0Z0lDQWdJQ0F2THlBZ0lHeGhZbVZzT2lCamIyNW1hV2N1YUhOdExuUnZhMlZ1VEdGaVpXd2dZWE1nYzNSeWFXNW5MRnh1SUNBZ0lDQWdMeThnSUNCd2FXNDZJRk4wY21sdVp5aGpiMjVtYVdjdWFITnRMbkJwYmlrZ1lYTWdjM1J5YVc1bkxGeHVJQ0FnSUNBZ0x5OGdJQ0JwWkdWdWRHbG1hV1Z5T2lCcFpHVnVkR2xtYVdWeUxGeHVJQ0FnSUNBZ0x5OGdJQ0F2THlCMWMyVnlWSGx3WlRvZ01TQXZLa05MVlY5VlUwVlNJQ292TEZ4dUlDQWdJQ0FnTHk4Z2ZTazdYRzRnSUNBZ0lDQXZMeUJ6YVdkdVpYSWdQU0J3YTJOek1URlRhV2R1WlhJdWMybG5ibVZ5TzF4dUlDQWdJQ0FnTHk4Z1kyeHZjMlVnUFNCd2EyTnpNVEZUYVdkdVpYSXVZMnh2YzJVN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1ZXNXpkWEJ3YjNKMFpXUkZjbkp2Y2loY0lraFRUU0JPVDFRZ1NVMVFURVZOUlU1VVJVUmNJaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdZMjl1YzNRZ2IzQjBhVzl1Y3lBOUlIdGNiaUFnSUNBZ0lHTnNhV1Z1ZEN4Y2JpQWdJQ0FnSUdsa1pXNTBhWFI1T2lCcFpHVnVkR2wwZVN4Y2JpQWdJQ0FnSUhOcFoyNWxjam9nYzJsbmJtVnlMRnh1SUNBZ0lDQWdMeThnUkdWbVlYVnNkQ0IwYVcxbGIzVjBjeUJtYjNJZ1pHbG1abVZ5Wlc1MElHZFNVRU1nWTJGc2JITmNiaUFnSUNBZ0lHVjJZV3gxWVhSbFQzQjBhVzl1Y3pvZ0tDa2dQVDRnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZXlCa1pXRmtiR2x1WlRvZ1JHRjBaUzV1YjNjb0tTQXJJREV3TURBZ0tpQmpkSGd1WjJWMEtGd2laWFpoYkhWaGRHVlVhVzFsYjNWMFhDSXBJSDA3SUM4dklHUmxabUYxYkhSeklIUnZJRFVnYzJWamIyNWtjMXh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJR1Z1Wkc5eWMyVlBjSFJwYjI1ek9pQW9LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lHUmxZV1JzYVc1bE9pQkVZWFJsTG01dmR5Z3BJQ3NnTVRBd01DQXFJR04wZUM1blpYUW9YQ0psYm1SdmNuTmxWR2x0Wlc5MWRGd2lLU0I5T3lBdkx5QmtaV1poZFd4MGN5QjBieUF4TlNCelpXTnZibVJ6WEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnYzNWaWJXbDBUM0IwYVc5dWN6b2dLQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2V5QmtaV0ZrYkdsdVpUb2dSR0YwWlM1dWIzY29LU0FySURFd01EQWdLaUJqZEhndVoyVjBLRndpYzNWaWJXbDBWR2x0Wlc5MWRGd2lLU0I5T3lBdkx5QmtaV1poZFd4MGN5QjBieUExSUhObFkyOXVaSE5jYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0JqYjIxdGFYUlRkR0YwZFhOUGNIUnBiMjV6T2lBb0tTQTlQaUI3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUI3SUdSbFlXUnNhVzVsT2lCRVlYUmxMbTV2ZHlncElDc2dNVEF3TUNBcUlHTjBlQzVuWlhRb1hDSmpiMjF0YVhSVWFXMWxiM1YwWENJcElIMDdJQzh2SUdSbFptRjFiSFJ6SUhSdklERWdiV2x1ZFhSbFhHNGdJQ0FnSUNCOUxGeHVJQ0FnSUgwZ1lYTWdRMjl1Ym1WamRFOXdkR2x2Ym5NN1hHNWNiaUFnSUNCc2IyY3VaR1ZpZFdjb1lFTnZibTVsWTNScGJtY2dkRzhnSkh0amIyNW1hV2N1YlhOd1NXUjlZQ2s3WEc0Z0lDQWdZMjl1YzNRZ1oyRjBaWGRoZVNBOUlHTnZibTVsWTNRb2IzQjBhVzl1Y3lrN1hHNWNiaUFnSUNBdkx5QlVUMFJQT2lCeVpYQnNZV05sUDF4dUlDQWdJR2xtSUNoamIyNW1hV2N1YUhOdEtTQjdYRzRnSUNBZ0lDQm5ZWFJsZDJGNUxtTnNiM05sSUQwZ2JtVjNJRkJ5YjNoNUtHZGhkR1YzWVhrdVkyeHZjMlVzSUh0Y2JpQWdJQ0FnSUNBZ1lYQndiSGtvZEdGeVoyVjBPaUFvS1NBOVBpQjJiMmxrTENCMGFHbHpRWEpuT2lCaGJua3NJR0Z5WjBGeWNtRjVPaUJoYm5sYlhTazZJR0Z1ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdVbVZtYkdWamRDNWhjSEJzZVNoMFlYSm5aWFFzSUhSb2FYTkJjbWNzSUdGeVowRnljbUY1S1R0Y2JpQWdJQ0FnSUNBZ0lDQmpiRzl6WlNncE8xeHVJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHZGhkR1YzWVhrN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVOeVpXRjBaWE1nWVNCdVpYY2dSR2x6Y0dGMFkyZ2dhVzV6ZEdGdVkyVWdabTl5SUhSb1pTQkdZV0p5YVdNZ1kyeHBaVzUwTGx4dUlDQWdLaUJBYzNWdGJXRnllU0JVYUdseklHWjFibU4wYVc5dUlHbHpJSEpsYzNCdmJuTnBZbXhsSUdadmNpQmpjbVZoZEdsdVp5QmhJRzVsZHlCR1lXSnlhV05EYkdsbGJuUkVhWE53WVhSamFDQnBibk4wWVc1alpTQjBhR0YwSUdOaGJpQmlaU0IxYzJWa0lIUnZJR2x1ZEdWeVlXTjBJSGRwZEdnZ2RHaGxJRVpoWW5KcFl5QnVaWFIzYjNKckxseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1JHbHpjR0YwWTJoOUlFRWdibVYzSUVScGMzQmhkR05vSUdsdWMzUmhibU5sSUdOdmJtWnBaM1Z5WldRZ1ptOXlJSFJvWlNCR1lXSnlhV01nWTJ4cFpXNTBMbHh1SUNBZ0tpQkFjbVZ0WVhKcmN5QlVhR1VnUkdsemNHRjBZMmdnYVc1emRHRnVZMlVnYVhNZ2RYTmxaQ0IwYnlCbGJtTmhjSE4xYkdGMFpTQjBhR1VnYkc5bmFXTWdabTl5SUdsdWRHVnlZV04wYVc1bklIZHBkR2dnZEdobElFWmhZbkpwWXlCdVpYUjNiM0pyTENCemRXTm9JR0Z6SUhOMVltMXBkSFJwYm1jZ2RISmhibk5oWTNScGIyNXpJRzl5SUhGMVpYSjVhVzVuSUdSaGRHRXVYRzRnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FxSUdOdmJuTjBJR1poWW5KcFkwUnBjM0JoZEdOb0lEMGdabUZpY21salEyeHBaVzUwUVdSaGNIUmxjaTVFYVhOd1lYUmphQ2dwTzF4dUlDQWdLaUJtWVdKeWFXTkVhWE53WVhSamFDNXpkV0p0YVhSVWNtRnVjMkZqZEdsdmJpZ25ZM0psWVhSbFVISnZaSFZqZENjc0lIc2dibUZ0WlRvZ0oxQnliMlIxWTNRZ1FTY3NJSEJ5YVdObE9pQXhNREFnZlNrN1hHNGdJQ0FxTDF4dUlDQnZkbVZ5Y21sa1pTQkVhWE53WVhSamFDZ3BPaUJHWVdKeWFXTkRiR2xsYm5SRWFYTndZWFJqYUNCN1hHNGdJQ0FnY21WMGRYSnVJRzVsZHlCR1lXSnlhV05EYkdsbGJuUkJaR0Z3ZEdWeVcxd2lYMkpoYzJWRWFYTndZWFJqYUZ3aVhTaDBhR2x6TG1Oc2FXVnVkQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRkJoY25ObGN5QmhiaUJsY25KdmNpQnBiblJ2SUdFZ1FtRnpaVVZ5Y205eVhHNGdJQ0FxSUVCemRXMXRZWEo1SUVOdmJuWmxjblJ6SUdGdWVTQmxjbkp2Y2lCcGJuUnZJR0VnYzNSaGJtUmhjbVJwZW1Wa0lFSmhjMlZGY25KdmNpQjFjMmx1WnlCMGFHVWdjR0Z5Wlc1MElHTnNZWE56SUdsdGNHeGxiV1Z1ZEdGMGFXOXVYRzRnSUNBcUlFQndZWEpoYlNCN1JYSnliM0lnZkNCemRISnBibWQ5SUdWeWNpQXRJRlJvWlNCbGNuSnZjaUIwYnlCd1lYSnpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1czSmxZWE52YmwwZ0xTQlBjSFJwYjI1aGJDQnlaV0Z6YjI0Z1ptOXlJSFJvWlNCbGNuSnZjbHh1SUNBZ0tpQkFjbVYwZFhKdUlIdENZWE5sUlhKeWIzSjlJRlJvWlNCd1lYSnpaV1FnWlhKeWIzSmNiaUFnSUNvdlhHNGdJSEJ5YjNSbFkzUmxaQ0J6ZEdGMGFXTWdjR0Z5YzJWRmNuSnZjanhGSUdWNGRHVnVaSE1nUW1GelpVVnljbTl5UGloY2JpQWdJQ0JsY25JNklFVnljbTl5SUh3Z2MzUnlhVzVuSUh3Z1IyRjBaWGRoZVVWeWNtOXlYRzRnSUNrNklFVWdlMXh1SUNBZ0lDOHZJR2xtSUNoY2JpQWdJQ0F2THlBZ0lFMUpVMU5KVGtkZlVGSkpWa0ZVUlY5RVFWUkJYMUpGUjBWWUxuUmxjM1FvWEc0Z0lDQWdMeThnSUNBZ0lIUjVjR1Z2WmlCbGNuSWdQVDA5SUZ3aWMzUnlhVzVuWENJZ1B5QmxjbklnT2lCbGNuSXViV1Z6YzJGblpWeHVJQ0FnSUM4dklDQWdLVnh1SUNBZ0lDOHZJQ2xjYmlBZ0lDQXZMeUFnSUhKbGRIVnliaUJ1WlhjZ1ZXNWhkWFJvYjNKcGVtVmtVSEpwZG1GMFpVUmhkR0ZCWTJObGMzTW9aWEp5S1NCaGN5QkZPMXh1WEc0Z0lDQWdiR1YwSUcxelp5QTlJSFI1Y0dWdlppQmxjbklnUFQwOUlGd2ljM1J5YVc1blhDSWdQeUJsY25JZ09pQmxjbkl1YldWemMyRm5aVHRjYmlBZ0lDQnBaaUFvWlhKeUlHbHVjM1JoYm1ObGIyWWdSMkYwWlhkaGVVVnljbTl5SUNZbUlHVnljaTVrWlhSaGFXeHpMbXhsYm1kMGFDQW1KaUJsY25JdVkyOWtaU0E5UFQwZ01UQXBJSHRjYmlBZ0lDQWdJRzF6WnlBOUlHQWtlMlZ5Y2k1a1pYUmhhV3h6V3pCZExtMWxjM05oWjJWOVlEdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9YRzRnSUNBZ0lDQmxjbklnYVc1emRHRnVZMlZ2WmlCRmJtUnZjbk5sUlhKeWIzSWdKaVpjYmlBZ0lDQWdJR1Z5Y2k1a1pYUmhhV3h6TG14bGJtZDBhQ0FtSmx4dUlDQWdJQ0FnWlhKeUxtTnZaR1VnUFQwOUlERXdJQ1ltWEc0Z0lDQWdJQ0JsY25JdVpHVjBZV2xzYzFzd1hTNXRaWE56WVdkbFB5NXBibU5zZFdSbGN5aFZibk4xY0hCdmNuUmxaRVZ5Y205eUxtNWhiV1VwWEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0J0YzJjZ1BTQmdKSHRsY25JdVpHVjBZV2xzYzFzd1hTNXRaWE56WVdkbGZXQTdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLRzF6Wnk1cGJtTnNkV1JsY3loY0lrMVdRME5mVWtWQlJGOURUMDVHVEVsRFZGd2lLU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVFhaalkxSmxZV1JEYjI1bWJHbGpkRVZ5Y205eUtHVnljaWtnWVhNZ1JUdGNibHh1SUNBZ0lHbG1JQ2h0YzJjdWFXNWpiSFZrWlhNb1hDSkVSVUZFVEVsT1JWOUZXRU5GUlVSRlJGd2lLU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnVkhKaGJuTmhZM1JwYjI1VWFXMWxiM1YwUlhKeWIzSW9aWEp5S1NCaGN5QkZPMXh1WEc0Z0lDQWdhV1lnS0cxelp5NXBibU5zZFdSbGN5aGNJa1ZPUkU5U1UwVk5SVTVVWDFCUFRFbERXVjlHUVVsTVZWSkZYQ0lwS1Z4dUlDQWdJQ0FnY21WMGRYSnVJRzVsZHlCRmJtUnZjbk5sYldWdWRGQnZiR2xqZVVWeWNtOXlLR1Z5Y2lrZ1lYTWdSVHRjYmx4dUlDQWdJR2xtSUNodGMyY3VhVzVqYkhWa1pYTW9YQ0pRU0VGT1ZFOU5YMUpGUVVSZlEwOU9Sa3hKUTFSY0lpa3BYRzRnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRkJvWVc1MGIyMVNaV0ZrUTI5dVpteHBZM1JGY25KdmNpaGxjbklwSUdGeklFVTdYRzVjYmlBZ0lDQnBaaUFvWlhKeUlHbHVjM1JoYm1ObGIyWWdSWEp5YjNJZ0ppWWdLR1Z5Y2lCaGN5QmhibmtwTG1OdlpHVXBJSHRjYmlBZ0lDQWdJSE4zYVhSamFDQW9LR1Z5Y2lCaGN5QmhibmtwTG1OdlpHVXBJSHRjYmlBZ0lDQWdJQ0FnWTJGelpTQTVPbHh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1JXNWtiM0p6WlcxbGJuUkZjbkp2Y2lobGNuSXBJR0Z6SUVVN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHMXpaeTVwYm1Oc2RXUmxjeWhXWVd4cFpHRjBhVzl1UlhKeWIzSXVibUZ0WlNrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lGWmhiR2xrWVhScGIyNUZjbkp2Y2lobGNuSXBJR0Z6SUVVN1hHNGdJQ0FnYVdZZ0tHMXpaeTVwYm1Oc2RXUmxjeWhPYjNSR2IzVnVaRVZ5Y205eUxtNWhiV1VwS1NCeVpYUjFjbTRnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvWlhKeUtTQmhjeUJGTzF4dUlDQWdJR2xtSUNodGMyY3VhVzVqYkhWa1pYTW9RMjl1Wm14cFkzUkZjbkp2Y2k1dVlXMWxLU2tnY21WMGRYSnVJRzVsZHlCRGIyNW1iR2xqZEVWeWNtOXlLR1Z5Y2lrZ1lYTWdSVHRjYmlBZ0lDQnBaaUFvYlhObkxtbHVZMngxWkdWektFSmhaRkpsY1hWbGMzUkZjbkp2Y2k1dVlXMWxLU2xjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlLR1Z5Y2lrZ1lYTWdSVHRjYmlBZ0lDQnBaaUFvYlhObkxtbHVZMngxWkdWektGRjFaWEo1UlhKeWIzSXVibUZ0WlNrcElISmxkSFZ5YmlCdVpYY2dVWFZsY25sRmNuSnZjaWhsY25JcElHRnpJRVU3WEc0Z0lDQWdhV1lnS0cxelp5NXBibU5zZFdSbGN5aFFZV2RwYm1kRmNuSnZjaTV1WVcxbEtTa2djbVYwZFhKdUlHNWxkeUJRWVdkcGJtZEZjbkp2Y2lobGNuSXBJR0Z6SUVVN1hHNGdJQ0FnYVdZZ0tHMXpaeTVwYm1Oc2RXUmxjeWhWYm5OMWNIQnZjblJsWkVWeWNtOXlMbTVoYldVcEtWeHVJQ0FnSUNBZ2NtVjBkWEp1SUc1bGR5QlZibk4xY0hCdmNuUmxaRVZ5Y205eUtHVnljaWtnWVhNZ1JUdGNiaUFnSUNCcFppQW9iWE5uTG1sdVkyeDFaR1Z6S0UxcFozSmhkR2x2YmtWeWNtOXlMbTVoYldVcEtTQnlaWFIxY200Z2JtVjNJRTFwWjNKaGRHbHZia1Z5Y205eUtHVnljaWtnWVhNZ1JUdGNiaUFnSUNCcFppQW9iWE5uTG1sdVkyeDFaR1Z6S0U5aWMyVnlkbVZ5UlhKeWIzSXVibUZ0WlNrcElISmxkSFZ5YmlCdVpYY2dUMkp6WlhKMlpYSkZjbkp2Y2lobGNuSXBJR0Z6SUVVN1hHNGdJQ0FnYVdZZ0tHMXpaeTVwYm1Oc2RXUmxjeWhCZFhSb2IzSnBlbUYwYVc5dVJYSnliM0l1Ym1GdFpTa3BYRzRnSUNBZ0lDQnlaWFIxY200Z2JtVjNJRUYxZEdodmNtbDZZWFJwYjI1RmNuSnZjaWhsY25JcElHRnpJRVU3WEc0Z0lDQWdhV1lnS0cxelp5NXBibU5zZFdSbGN5aEdiM0ppYVdSa1pXNUZjbkp2Y2k1dVlXMWxLU2tnY21WMGRYSnVJRzVsZHlCR2IzSmlhV1JrWlc1RmNuSnZjaWhsY25JcElHRnpJRVU3WEc0Z0lDQWdhV1lnS0cxelp5NXBibU5zZFdSbGN5aERiMjV1WldOMGFXOXVSWEp5YjNJdWJtRnRaU2twWEc0Z0lDQWdJQ0J5WlhSMWNtNGdibVYzSUVOdmJtNWxZM1JwYjI1RmNuSnZjaWhsY25JcElHRnpJRVU3WEc0Z0lDQWdhV1lnS0cxelp5NXBibU5zZFdSbGN5aFRaWEpwWVd4cGVtRjBhVzl1UlhKeWIzSXVibUZ0WlNrcFhHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lGTmxjbWxoYkdsNllYUnBiMjVGY25KdmNpaGxjbklwSUdGeklFVTdYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QkpiblJsY201aGJFVnljbTl5S0dWeWNpa2dZWE1nUlR0Y2JpQWdmVnh1ZlZ4dVhHNUdZV0p5YVdORGJHbGxiblJCWkdGd2RHVnlMbVJsWTI5eVlYUnBiMjRvS1R0Y2JrRmtZWEIwWlhJdWMyVjBRM1Z5Y21WdWRDaEdZV0p5YVdOR2JHRjJiM1Z5S1R0Y2JpSmRmUT09Il19
|