githolon 0.119.9 → 0.119.12

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.
@@ -3239,7 +3239,7 @@ var init_maintenance_desk_pb = __esm({
3239
3239
 
3240
3240
  // ../adapter/proto/nomos/runtime/v2/correspondence_desk_pb.js
3241
3241
  import { enumDesc as enumDesc5, fileDesc as fileDesc9, messageDesc as messageDesc9, tsEnum as tsEnum5 } from "@bufbuild/protobuf/codegenv2";
3242
- var file_nomos_runtime_v2_correspondence_desk, VerifyWorkspaceChainResultSchema, VerifyChainHistorySchema, SyncWorkspaceRequestSchema, SyncWorkspaceResponseSchema, CustodyOfferReceiptSchema, CustodyOfferAdmissionReceiptSchema, CustodyOfferFailureSchema, RuntimeTransportFailureSchema, SyncPhaseTimingsSchema, RefreshReplicaCredentialRequestSchema, DeliverWorkspaceEffectsRequestSchema, DeliverHttpObligationRequestSchema, HttpObligationDeliveredSchema, CorrespondenceRecoveredSchema, WorkspaceEffectsDeliveredSchema, CorrespondenceRetryReasonSchema, RemoteGeneratedOfferRequestSchema, RemoteGeneratedOfferAcceptedSchema, PeerHttpEffectSchema, PeerHttpResponseSchema, PeerEffectFailureSchema, PeerEffectReceiptSchema, RetainedRefSchema, RetainFrontierEffectSchema, FrontierRetainedSchema, PersistBornCustodyEffectSchema, PersistedBornCustodySchema, PersistBornCustodyReceiptSchema, CorrespondencePendingSchema, PeerConsoleEnrolmentEffectSchema, PeerHistoryAcquisitionEffectSchema, PeerHistoryAcquisitionReceiptSchema, PeerWakeEffectSchema, PeerWokenSchema, PeerCredentialRefreshEffectSchema, PeerCredentialRefreshedSchema, PeerDeviceIdentityEffectSchema, PeerDeviceIdentityLoadSchema, PeerDeviceIdentitySaveSchema, DeviceRecoveryRecordSchema, DeviceRecoveryAdmissionSchema, PeerDeviceIdentitySchema, PeerLawPackageEffectSchema, PeerLawPackageSchema, PeerWorkspaceDiscoveryEffectSchema, PeerLocalCustodyEffectSchema, PeerLocalCustodyReceiptSchema, ContinueCorrespondenceRequestSchema, BornCustodyRefSchema, BornCustodySchema, CustodyOfferBatchRequestSchema, LiveOfferFrameSchema, LiveFrontierSchema, LiveCheckpointRequestSchema, LiveCheckpointOfferSchema, LiveCheckpointChunkSchema, LiveHistoryRequestSchema, LiveRefRequestSchema, LivePackSchema, LiveStreamRefusalSchema, LiveStreamAnswerSchema, PeerStreamEffectSchema, PeerStreamReceiptSchema, PeerSocketEffectSchema, PeerSocketReceiptSchema, PeerSocketClosureSchema, LiveLinkClosureSchema, PeerSocketObservedSchema, CustodyIntentOfferSchema, CustodyInlineOffersSchema, CustodyAdmissionSchema, CustodySessionAdmissionSchema, CustodyIntentAdmissionSchema, CustodyIntentAdmittedSchema, CustodyIntentRefusedSchema, CustodyIntentDeadLetteredSchema, CustodyIntentBlockedSchema, CustodyIntentQuarantinedSchema, WorkspaceEffectDeferredSchema, PeerGitRefsAlongsideSchema, PeerGitRefsFetchedSchema, PeerHttpMethodSchema, PeerHttpMethod, PeerEffectFailureReasonSchema, PeerEffectFailureReason, DeviceRecoveryAdmissionStageSchema, DeviceRecoveryAdmissionStage, PeerSocketCloseInitiatorSchema, PeerSocketCloseInitiator, LiveLinkRoleSchema, LiveLinkRole;
3242
+ var file_nomos_runtime_v2_correspondence_desk, VerifyWorkspaceChainResultSchema, VerifyChainHistorySchema, SyncWorkspaceRequestSchema, SyncWorkspaceResponseSchema, CustodyOfferReceiptSchema, CustodyOfferAdmissionReceiptSchema, CustodyOfferFailureSchema, RuntimeTransportFailureSchema, SyncPhaseTimingsSchema, RefreshReplicaCredentialRequestSchema, DeliverWorkspaceEffectsRequestSchema, DeliverHttpObligationRequestSchema, HttpObligationDeliveredSchema, CorrespondenceRecoveredSchema, WorkspaceEffectsDeliveredSchema, CorrespondenceRetryReasonSchema, RemoteGeneratedOfferRequestSchema, RemoteGeneratedOfferAcceptedSchema, PeerHttpEffectSchema, PeerHttpResponseSchema, PeerEffectFailureSchema, PeerEffectReceiptSchema, RetainedRefSchema, RetainFrontierEffectSchema, FrontierRetainedSchema, PersistBornCustodyEffectSchema, PersistedBornCustodySchema, PersistBornCustodyReceiptSchema, CorrespondencePendingSchema, PeerConsoleEnrolmentEffectSchema, PeerHistoryAcquisitionEffectSchema, PeerHistoryAcquisitionReceiptSchema, PeerWakeEffectSchema, PeerWokenSchema, PeerCredentialRefreshEffectSchema, PeerCredentialRefreshedSchema, PeerDeviceIdentityEffectSchema, PeerDeviceIdentityLoadSchema, PeerDeviceIdentitySaveSchema, DeviceRecoveryRecordSchema, DeviceRecoveryAdmissionSchema, PeerDeviceIdentitySchema, PeerLawPackageEffectSchema, PeerLawPackageSchema, PeerWorkspaceDiscoveryEffectSchema, PeerLocalCustodyEffectSchema, PeerLocalCustodyReceiptSchema, ContinueCorrespondenceRequestSchema, BornCustodyRefSchema, BornCustodySchema, CustodyOfferBatchRequestSchema, LiveOfferFrameSchema, LiveFrontierSchema, LiveCheckpointRequestSchema, LiveCheckpointOfferSchema, LiveCheckpointChunkSchema, LiveHistoryRequestSchema, LiveRefRequestSchema, LivePackSchema, LiveStreamRefusalSchema, LiveStreamAnswerSchema, PeerStreamEffectSchema, PeerStreamReceiptSchema, PeerSocketEffectSchema, PeerSocketReceiptSchema, PeerSocketClosureSchema, LiveLinkClosureSchema, PeerSocketObservedSchema, CustodyIntentOfferSchema, CustodyInlineOffersSchema, CustodyAdmissionSchema, CustodySessionAdmissionSchema, CustodyIntentAdmissionSchema, CustodyIntentAdmittedSchema, CustodyIntentRefusedSchema, CustodyIntentDeadLetteredSchema, CustodyIntentBlockedSchema, CustodyIntentQuarantinedSchema, WorkspaceEffectDeferredSchema, PeerGitRefsAlongsideSchema, PeerGitRefsFetchedSchema, NetworkRestoredSchema, PeerHttpMethodSchema, PeerHttpMethod, PeerEffectFailureReasonSchema, PeerEffectFailureReason, DeviceRecoveryAdmissionStageSchema, DeviceRecoveryAdmissionStage, PeerSocketCloseInitiatorSchema, PeerSocketCloseInitiator, LiveLinkRoleSchema, LiveLinkRole;
3243
3243
  var init_correspondence_desk_pb = __esm({
3244
3244
  "../adapter/proto/nomos/runtime/v2/correspondence_desk_pb.js"() {
3245
3245
  "use strict";
@@ -3248,7 +3248,7 @@ var init_correspondence_desk_pb = __esm({
3248
3248
  init_workspace_placement_pb();
3249
3249
  init_custody_desk_pb();
3250
3250
  init_maintenance_desk_pb();
3251
- file_nomos_runtime_v2_correspondence_desk = /* @__PURE__ */ fileDesc9("Cipub21vcy9ydW50aW1lL3YyL2NvcnJlc3BvbmRlbmNlX2Rlc2sucHJvdG8SEG5vbW9zLnJ1bnRpbWUudjIi0AIKFVNoYXJlV29ya3NwYWNlUmVxdWVzdBIPCgdzdWJqZWN0GAEgASgJEhAKCHJlbGF0aW9uGAIgASgJEhoKEmFzc2VydGVyX3ByaW5jaXBhbBgDIAEoCRIOCgZvYmplY3QYBCABKAkSHAoPaG9tZV9sYXdfc2hhMjU2GAUgASgJSACIAQESGgoNYXV0aG9yX3NlY3JldBgGIAEoDEgBiAEBEh8KEmFzc2VydGVyX3dvcmtzcGFjZRgHIAEoCUgCiAEBEhgKC2F0dGVzdGVkX2F0GAggASgJSAOIAQESFwoKYXV0aF90b2tlbhgJIAEoDEgEiAEBQhIKEF9ob21lX2xhd19zaGEyNTZCEAoOX2F1dGhvcl9zZWNyZXRCFQoTX2Fzc2VydGVyX3dvcmtzcGFjZUIOCgxfYXR0ZXN0ZWRfYXRCDQoLX2F1dGhfdG9rZW4ikgEKFFNoYXJlV29ya3NwYWNlUmVzdWx0EjgKB291dGNvbWUYASABKA4yJy5ub21vcy5ydW50aW1lLnYyLlNoYXJlV29ya3NwYWNlT3V0Y29tZRITCgZzdGF0dXMYAiABKA1IAIgBARIUCgdtZXNzYWdlGAMgASgJSAGIAQFCCQoHX3N0YXR1c0IKCghfbWVzc2FnZSLKAQodUGFyZW50U2lnbmVyRW5yb2xsbWVudFJlcXVlc3QSDgoGcGFyZW50GAEgASgJEhEKCXByaW5jaXBhbBgCIAEoCRIXCgprZXlfc2hhMjU2GAMgASgJSACIAQESFwoKcHVibGljX2tleRgEIAEoDEgBiAEBEhcKCmF1dGhfdG9rZW4YBSABKAxIAogBARIOCgZyZW1vdGUYBiABKAhCDQoLX2tleV9zaGEyNTZCDQoLX3B1YmxpY19rZXlCDQoLX2F1dGhfdG9rZW4i1AEKFlBhcmVudFNpZ25lckVucm9sbG1lbnQSDgoGcGFyZW50GAEgASgJEhEKCXByaW5jaXBhbBgCIAEoCRISCgprZXlfc2hhMjU2GAMgASgJEg4KBm9iamVjdBgEIAEoCRIQCghyZWxhdGlvbhgFIAEoCRIQCghlbnJvbGxlZBgGIAEoCBIPCgdyZXZva2VkGAcgASgIEhkKDHZlcmlmaWVkX3ZpYRgIIAEoCUgAiAEBEhIKCmNoZWNrZWRfYXQYCSABKAlCDwoNX3ZlcmlmaWVkX3ZpYSLcAgojRW5zdXJlUGFyZW50U2lnbmVyRW5yb2xsbWVudFJlcXVlc3QSDgoGcGFyZW50GAEgASgJEhEKCXByaW5jaXBhbBgCIAEoCRIXCgpwdWJsaWNfa2V5GAMgASgMSACIAQESGgoNYXV0aG9yX3NlY3JldBgEIAEoDEgBiAEBEhMKBmRvbWFpbhgFIAEoCUgCiAEBEhYKCWRpcmVjdGl2ZRgGIAEoCUgDiAEBEhcKCmF1dGhfdG9rZW4YByABKAxIBIgBARIVCghpZF90b2tlbhgIIAEoDEgFiAEBEhkKDHZlcmlmaWVkX3ZpYRgJIAEoCUgGiAEBQg0KC19wdWJsaWNfa2V5QhAKDl9hdXRob3Jfc2VjcmV0QgkKB19kb21haW5CDAoKX2RpcmVjdGl2ZUINCgtfYXV0aF90b2tlbkILCglfaWRfdG9rZW5CDwoNX3ZlcmlmaWVkX3ZpYSLZAQoiRW5zdXJlUGFyZW50U2lnbmVyRW5yb2xsbWVudFJlc3VsdBIOCgZwYXJlbnQYASABKAkSEQoJcHJpbmNpcGFsGAIgASgJEhIKCmtleV9zaGEyNTYYAyABKAkSEAoIZW5yb2xsZWQYBCABKAgSEAoIcmVwYWlyZWQYBSABKAgSEwoGZG9tYWluGAYgASgJSACIAQESFgoJZGlyZWN0aXZlGAcgASgJSAGIAQESEgoKY2hlY2tlZF9hdBgIIAEoCUIJCgdfZG9tYWluQgwKCl9kaXJlY3RpdmUiHQobVmVyaWZ5V29ya3NwYWNlQ2hhaW5SZXF1ZXN0IrsBChpWZXJpZnlXb3Jrc3BhY2VDaGFpblJlc3VsdBINCgV2YWxpZBgBIAEoCBISCgVlcnJvchgCIAEoCUgAiAEBEhgKC3BsYW5zX3JlcnVuGAMgASgESAGIAQESOgoHaGlzdG9yeRgEIAEoCzIkLm5vbW9zLnJ1bnRpbWUudjIuVmVyaWZ5Q2hhaW5IaXN0b3J5SAKIAQFCCAoGX2Vycm9yQg4KDF9wbGFuc19yZXJ1bkIKCghfaGlzdG9yeSKHAQoSVmVyaWZ5Q2hhaW5IaXN0b3J5Eg0KBXN0YXRlGAEgASgJEg4KBmFuY2hvchgCIAEoCRIQCghib3VuZGFyeRgDIAMoCRIMCgR3YWxrGAQgASgJEh0KEHZlcmlmaWVkX2NvbW1pdHMYBSABKARIAIgBAUITChFfdmVyaWZpZWRfY29tbWl0cyJ/ChRTeW5jV29ya3NwYWNlUmVxdWVzdBINCgVhZG1pdBgCIAEoCBIRCgl3b3Jrc3BhY2UYAyABKAkSHwoScmVwbGFjZV9sb2NhbF9oZWFkGAQgASgJSACIAQFCFQoTX3JlcGxhY2VfbG9jYWxfaGVhZEoECAEQAlIHc2Vzc2lvbiKGCgoVU3luY1dvcmtzcGFjZVJlc3BvbnNlEhEKCXdvcmtzcGFjZRgBIAEoCRIaCg1wcmV2aW91c19oZWFkGAIgASgJSACIAQESGQoMY3VycmVudF9oZWFkGAMgASgJSAGIAQESEAoIYWRtaXR0ZWQYBCABKAQSDwoHcmVmdXNlZBgFIAEoBBIQCghkZWZlcnJlZBgGIAEoBBISCgpsb2NhbF9vbmx5GAcgASgIEg4KBnB1bGxlZBgIIAEoCBIQCghkaXZlcmdlZBgJIAEoCBIaChJyZWNvbm5lY3RfcmVxdWlyZWQYCiABKAgSEwoLc3RpbGxfYWhlYWQYCyABKAgSDwoHb2ZmbGluZRgMIAEoCBITCgtwdXNoX2ZhaWxlZBgNIAEoCBIdChVkaXJlY3Rfb2ZmZXJfZGVmZXJyZWQYDiABKAgSNQoOYmlydGhfb3V0Y29tZXMYDyADKAsyHS5ub21vcy5rZXJuZWwudjEuQmlydGhPdXRjb21lEhsKE2FkbWl0dGVkX2ludGVudF9pZHMYECADKAkSHAoUY29udmVyZ2VkX2ludGVudF9pZHMYESADKAkSQgoKcHVzaF9lcnJvchgSIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZVRyYW5zcG9ydEZhaWx1cmVIAogBARJHCg9kaXNjb3ZlcnlfZXJyb3IYEyABKAsyKS5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVUcmFuc3BvcnRGYWlsdXJlSAOIAQESMwoHdGltaW5ncxgUIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuU3luY1BoYXNlVGltaW5ncxJBCg1vZmZlcl9yZWNlaXB0GBUgASgLMiUubm9tb3MucnVudGltZS52Mi5DdXN0b2R5T2ZmZXJSZWNlaXB0SASIAQESOQoOcmVtb3RlX3JlZnVzYWwYFiABKAsyHC5ub21vcy5rZXJuZWwudjEuU3luY1JlZnVzYWxIBYgBARJHChRjdXN0b2R5X2Rpc2FncmVlbWVudBgXIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5RGlzYWdyZWVtZW50SAaIAQESGAoQY3VzdG9keV9yZXBsYWNlZBgYIAEoCBIVCg1tYWluX2FkdmFuY2VkGBkgASgIEkAKD3JlYm9ybl9yZW1vdGVseRgaIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlUmViaXJ0aEgHiAEBEkcKFHByZXNlcnZlZF9sb2NhbF9jb3B5GBsgASgLMiQubm9tb3MucnVudGltZS52Mi5QcmVzZXJ2ZWRMb2NhbENvcHlICIgBARIxCiRjdXN0b2RpYW5fd2FybWluZ19yZXRyeV9hZnRlcl9taWxsaXMYHCABKA1ICYgBAUIQCg5fcHJldmlvdXNfaGVhZEIPCg1fY3VycmVudF9oZWFkQg0KC19wdXNoX2Vycm9yQhIKEF9kaXNjb3ZlcnlfZXJyb3JCEAoOX29mZmVyX3JlY2VpcHRCEQoPX3JlbW90ZV9yZWZ1c2FsQhcKFV9jdXN0b2R5X2Rpc2FncmVlbWVudEISChBfcmVib3JuX3JlbW90ZWx5QhcKFV9wcmVzZXJ2ZWRfbG9jYWxfY29weUInCiVfY3VzdG9kaWFuX3dhcm1pbmdfcmV0cnlfYWZ0ZXJfbWlsbGlzIugBChNDdXN0b2R5T2ZmZXJSZWNlaXB0EhIKCnJlcXVlc3RfaWQYASABKAkSQwoJYWRtaXNzaW9uGAogASgLMi4ubm9tb3MucnVudGltZS52Mi5DdXN0b2R5T2ZmZXJBZG1pc3Npb25SZWNlaXB0SAASOAoHZmFpbHVyZRgLIAEoCzIlLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keU9mZmVyRmFpbHVyZUgAEjMKB2Jsb2NrZWQYDCABKAsyIC5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVCbG9ja2VkSABCCQoHb3V0Y29tZSKGAgocQ3VzdG9keU9mZmVyQWRtaXNzaW9uUmVjZWlwdBIMCgRtYWluGAEgASgJEhgKC3NlYWxlZF9tYWluGAIgASgJSACIAQESOwoIc2Vzc2lvbnMYAyADKAsyKS5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlTZXNzaW9uQWRtaXNzaW9uEjUKDmJpcnRoX291dGNvbWVzGAQgAygLMh0ubm9tb3Mua2VybmVsLnYxLkJpcnRoT3V0Y29tZRI6Cgd0aW1pbmdzGAUgASgLMikubm9tb3MucnVudGltZS52Mi5DdXN0b2R5QWRtaXNzaW9uVGltaW5nc0IOCgxfc2VhbGVkX21haW4iswEKE0N1c3RvZHlPZmZlckZhaWx1cmUSDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEhEKCWNvbXBvbmVudBgDIAEoCRIWCgl3b3Jrc3BhY2UYBCABKAlIAIgBARITCgZkb21haW4YBSABKAlIAYgBARIWCglkaXJlY3RpdmUYBiABKAlIAogBAUIMCgpfd29ya3NwYWNlQgkKB19kb21haW5CDAoKX2RpcmVjdGl2ZSJdChdSdW50aW1lVHJhbnNwb3J0RmFpbHVyZRIQCghlbmRwb2ludBgBIAEoCRIOCgZzdGF0dXMYAiABKBESDwoHcmVmdXNlZBgDIAEoCBIPCgdtZXNzYWdlGAQgASgJIsUBChBTeW5jUGhhc2VUaW1pbmdzEhMKC3B1c2hfbWlsbGlzGAEgASgBEhQKDGFkbWl0X21pbGxpcxgCIAEoARIXCg9wcmVmZXRjaF9taWxsaXMYAyABKAESFwoPY29udmVyZ2VfbWlsbGlzGAQgASgBEhIKCnB1c2hfYnl0ZXMYBSABKAQSFQoNc2VydmVyX21pbGxpcxgGIAEoARIVCg1vZmZlcl9pbl9wdXNoGAcgASgIEhIKCnB1bGxfYnl0ZXMYCCABKAQiNAofUmVmcmVzaFJlcGxpY2FDcmVkZW50aWFsUmVxdWVzdBIRCgl3b3Jrc3BhY2UYASABKAkiiwEKDEdpdFJlYWRMZWFzZRIWCg5mb3JtYXRfdmVyc2lvbhgBIAEoDRIRCgl3b3Jrc3BhY2UYAiABKAkSDgoGcmVtb3RlGAMgASgJEg0KBXRva2VuGAQgASgJEhMKC3R0bF9zZWNvbmRzGAUgASgNEhwKFGV4cGlyZXNfdW5peF9zZWNvbmRzGAYgASgEIm4KD0dpdEZldGNoUmVxdWVzdBIPCgdzZXNzaW9uGAEgASgJEi0KBWxlYXNlGAIgASgLMh4ubm9tb3MucnVudGltZS52Mi5HaXRSZWFkTGVhc2USDAoEd2FudBgDIAEoCRINCgVoYXZlcxgEIAMoCSJqCg5HaXRGZXRjaFJlc3VsdBIdChBzdGFnZWRfcGFja19maWxlGAEgASgJSACIAQESDAoEaGVhZBgCIAEoCRIWCg5yZWNlaXZlZF9ieXRlcxgDIAEoBEITChFfc3RhZ2VkX3BhY2tfZmlsZSK2AQoeRGVsaXZlcldvcmtzcGFjZUVmZmVjdHNSZXF1ZXN0EhYKDnNvdXJjZV9zZXNzaW9uGAEgASgJEhgKEHRhcmdldF93b3Jrc3BhY2UYAiABKAkSGgoNc291cmNlX2NvbW1pdBgDIAEoCUgAiAEBEh4KEXNvdXJjZV9vZmZlcl9wYXRoGAQgASgJSAGIAQFCEAoOX3NvdXJjZV9jb21taXRCFAoSX3NvdXJjZV9vZmZlcl9wYXRoIlEKHERlbGl2ZXJIdHRwT2JsaWdhdGlvblJlcXVlc3QSFgoOc291cmNlX3Nlc3Npb24YASABKAkSGQoRc291cmNlX29mZmVyX3BhdGgYAiABKAkiuwEKF0h0dHBPYmxpZ2F0aW9uRGVsaXZlcmVkEhgKEHNvdXJjZV93b3Jrc3BhY2UYASABKAkSEQoJYXR0ZW1wdGVkGAIgASgIEhEKCWRlbGl2ZXJlZBgDIAEoCBIRCglyZXRyeWFibGUYBCABKAgSGwoTcHJlcGFyYXRpb25fcGVuZGluZxgFIAEoCBIcCg9yZXRyeV9hdF9taWxsaXMYBiABKARIAIgBAUISChBfcmV0cnlfYXRfbWlsbGlzIjYKHFJlY292ZXJDb3JyZXNwb25kZW5jZVJlcXVlc3QSFgoOc291cmNlX3Nlc3Npb24YASABKAkirAEKF0NvcnJlc3BvbmRlbmNlUmVjb3ZlcmVkEhgKEHNvdXJjZV93b3Jrc3BhY2UYASABKAkSDwoHcGVuZGluZxgCIAEoCBIgChNuZXh0X3dha2VfYXRfbWlsbGlzGAMgASgESACIAQESGgoNcmV0YWluZWRfaGVhZBgEIAEoCUgBiAEBQhYKFF9uZXh0X3dha2VfYXRfbWlsbGlzQhAKDl9yZXRhaW5lZF9oZWFkIvYCChlXb3Jrc3BhY2VFZmZlY3RzRGVsaXZlcmVkEhgKEHNvdXJjZV93b3Jrc3BhY2UYASABKAkSGAoQdGFyZ2V0X3dvcmtzcGFjZRgCIAEoCRIRCglhdHRlbXB0ZWQYAyABKAQSEQoJZGVsaXZlcmVkGAQgASgEEg8KB3JlZnVzZWQYBSABKAQSEQoJcmV0cnlhYmxlGAYgASgEEhwKD3JldHJ5X2F0X21pbGxpcxgHIAEoBEgAiAEBEhsKE3ByZXBhcmF0aW9uX3BlbmRpbmcYCCABKAgSGAoLdGFyZ2V0X2hlYWQYCSABKAlIAYgBARIfChdzb3VyY2Vfb3V0Y29tZV9yZWNvcmRlZBgKIAEoCBJBCgxyZXRyeV9yZWFzb24YCyABKAsyKy5ub21vcy5ydW50aW1lLnYyLkNvcnJlc3BvbmRlbmNlUmV0cnlSZWFzb25CEgoQX3JldHJ5X2F0X21pbGxpc0IOCgxfdGFyZ2V0X2hlYWQiOwoZQ29ycmVzcG9uZGVuY2VSZXRyeVJlYXNvbhIOCgZyZWFzb24YASABKAkSDgoGZGV0YWlsGAIgASgJIqwDChtSZW1vdGVHZW5lcmF0ZWRPZmZlclJlcXVlc3QSFgoOc291cmNlX3Nlc3Npb24YASABKAkSGAoQdGFyZ2V0X3dvcmtzcGFjZRgCIAEoCRINCgVhY3RvchgDIAEoCRIVCg1hdXRob3Jfc2VjcmV0GAQgASgMEhIKCmF1dGhfdG9rZW4YBSABKAwSLgoEY2FsbBgGIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5EaXJlY3RpdmVDYWxsSAASQAoPbW9kZWxfbGlmZWN5Y2xlGAkgASgLMiUubm9tb3Mua2VybmVsLnYxLk1vZGVsTGlmZWN5Y2xlSW50ZW50SAASQQoRYmlydGhfY2VydGlmaWNhdGUYByABKAsyIS5ub21vcy5rZXJuZWwudjEuQmlydGhDZXJ0aWZpY2F0ZUgBiAEBEiEKFHJlcXVpcmVkX3RhcmdldF9oZWFkGAggASgJSAKIAQESEAoIbGF3X3VzZHoYCiABKAxCCAoGaW50ZW50QhQKEl9iaXJ0aF9jZXJ0aWZpY2F0ZUIXChVfcmVxdWlyZWRfdGFyZ2V0X2hlYWQiPwocUmVtb3RlR2VuZXJhdGVkT2ZmZXJBY2NlcHRlZBIRCgl3b3Jrc3BhY2UYASABKAkSDAoEaGVhZBgCIAEoCSLKAgoOUGVlckh0dHBFZmZlY3QSEQoJZWZmZWN0X2lkGAEgASgJEjAKBm1ldGhvZBgCIAEoDjIgLm5vbW9zLnJ1bnRpbWUudjIuUGVlckh0dHBNZXRob2QSCwoDdXJsGAMgASgJEhkKDGNvbnRlbnRfdHlwZRgEIAEoCUgAiAEBEgwKBGJvZHkYBSABKAwSGQoMYmVhcmVyX3Rva2VuGAYgASgMSAGIAQESEwoGYWNjZXB0GAcgASgJSAKIAQESGwoOdGltZW91dF9taWxsaXMYCCABKA1IA4gBARIcCg9pZGVtcG90ZW5jeV9rZXkYCSABKAlIBIgBAUIPCg1fY29udGVudF90eXBlQg8KDV9iZWFyZXJfdG9rZW5CCQoHX2FjY2VwdEIRCg9fdGltZW91dF9taWxsaXNCEgoQX2lkZW1wb3RlbmN5X2tleSJcChBQZWVySHR0cFJlc3BvbnNlEg4KBnN0YXR1cxgBIAEoDRIZCgxjb250ZW50X3R5cGUYAiABKAlIAIgBARIMCgRib2R5GAMgASgMQg8KDV9jb250ZW50X3R5cGUiXwoRUGVlckVmZmVjdEZhaWx1cmUSOQoGcmVhc29uGAEgASgOMikubm9tb3MucnVudGltZS52Mi5QZWVyRWZmZWN0RmFpbHVyZVJlYXNvbhIPCgdtZXNzYWdlGAIgASgJItAIChFQZWVyRWZmZWN0UmVjZWlwdBIRCgllZmZlY3RfaWQYASABKAkSNgoIcmVzcG9uc2UYCiABKAsyIi5ub21vcy5ydW50aW1lLnYyLlBlZXJIdHRwUmVzcG9uc2VIABI2CgdmYWlsdXJlGAsgASgLMiMubm9tb3MucnVudGltZS52Mi5QZWVyRWZmZWN0RmFpbHVyZUgAEjsKCWdpdF9mZXRjaBgMIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuUGVlckdpdEZldGNoUmVzcG9uc2VIABI5CghnaXRfcHVzaBgNIAEoCzIlLm5vbW9zLnJ1bnRpbWUudjIuUGVlckdpdFB1c2hSZXNwb25zZUgAEk0KFmJvcm5fY3VzdG9keV9wZXJzaXN0ZWQYDiABKAsyKy5ub21vcy5ydW50aW1lLnYyLlBlcnNpc3RCb3JuQ3VzdG9keVJlY2VpcHRIABJQChR3b3Jrc3BhY2VfZGlzY292ZXJlZBgPIAEoCzIwLm5vbW9zLmRpc2NvdmVyeS52MS5EaXNjb3ZlcmVkV29ya3NwYWNlUGxhY2VtZW50SAASQgoNbG9jYWxfY3VzdG9keRgQIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuUGVlckxvY2FsQ3VzdG9keVJlY2VpcHRIABI/ChFmcm9udGllcl9yZXRhaW5lZBgRIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuRnJvbnRpZXJSZXRhaW5lZEgAEiwKBXdva2VuGBIgASgLMhsubm9tb3MucnVudGltZS52Mi5QZWVyV29rZW5IABJJChRjcmVkZW50aWFsX3JlZnJlc2hlZBgTIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuUGVlckNyZWRlbnRpYWxSZWZyZXNoZWRIABI/Cg9kZXZpY2VfaWRlbnRpdHkYFCABKAsyJC5ub21vcy5ydW50aW1lLnYyLlBlZXJEZXZpY2VJZGVudGl0eUgAEjcKC2xhd19wYWNrYWdlGBUgASgLMiAubm9tb3MucnVudGltZS52Mi5QZWVyTGF3UGFja2FnZUgAEk4KE2hpc3RvcnlfYWNxdWlzaXRpb24YFiABKAsyLy5ub21vcy5ydW50aW1lLnYyLlBlZXJIaXN0b3J5QWNxdWlzaXRpb25SZWNlaXB0SAASQQoQY29uc29sZV9lbnJvbGxlZBgXIAEoCzIlLm5vbW9zLnJ1bnRpbWUudjIuUGVlckNvbnNvbGVFbnJvbGxlZEgAElIKGWNvbnNvbGVfZW5yb2xtZW50X3JlZnVzZWQYGCABKAsyLS5ub21vcy5ydW50aW1lLnYyLlBlZXJDb25zb2xlRW5yb2xtZW50UmVmdXNlZEgAEjUKBnN0cmVhbRgZIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuUGVlclN0cmVhbVJlY2VpcHRIAEIJCgdvdXRjb21lIqcCChJQZWVyR2l0RmV0Y2hFZmZlY3QSEQoJZWZmZWN0X2lkGAEgASgJEi0KBWxlYXNlGAIgASgLMh4ubm9tb3MucnVudGltZS52Mi5HaXRSZWFkTGVhc2USEQoEd2FudBgDIAEoCUgAiAEBEg0KBWhhdmVzGAQgAygJEhEKCXJlZmVyZW5jZRgFIAEoCRISCgVkZXB0aBgGIAEoDUgBiAEBEjMKCWFsb25nc2lkZRgHIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuUGVlckh0dHBFZmZlY3QSPgoOYWxvbmdzaWRlX3JlZnMYCCABKAsyJi5ub21vcy5ydW50aW1lLnYyLlBlZXJHaXRSZWZzQWxvbmdzaWRlQgcKBV93YW50QggKBl9kZXB0aCLQAQoUUGVlckdpdEZldGNoUmVzcG9uc2USDAoEcGFjaxgBIAEoDBIMCgRoZWFkGAIgASgJEhYKDnJlY2VpdmVkX2J5dGVzGAMgASgEEg8KB3NoYWxsb3cYBCADKAkSNQoJYWxvbmdzaWRlGAUgASgLMiIubm9tb3MucnVudGltZS52Mi5QZWVySHR0cFJlc3BvbnNlEjwKDmFsb25nc2lkZV9yZWZzGAYgASgLMiQubm9tb3MucnVudGltZS52Mi5QZWVyR2l0UmVmc0ZldGNoZWQimAEKEVBlZXJHaXRQdXNoRWZmZWN0EhEKCWVmZmVjdF9pZBgBIAEoCRIOCgZyZW1vdGUYAiABKAkSGQoMYmVhcmVyX3Rva2VuGAMgASgMSACIAQESGAoQc2Vzc2lvbl9pZGVudGl0eRgEIAEoCRIMCgRoZWFkGAUgASgJEgwKBHBhY2sYBiABKAxCDwoNX2JlYXJlcl90b2tlbiJYChNQZWVyR2l0UHVzaFJlc3BvbnNlEhEKCXJlZmVyZW5jZRgBIAEoCRIMCgRoZWFkGAIgASgJEhIKCnNlbnRfYnl0ZXMYAyABKAQSDAoEbm9vcBgEIAEoCCItCgtSZXRhaW5lZFJlZhIRCglyZWZlcmVuY2UYASABKAkSCwoDb2lkGAIgASgJIocBChRSZXRhaW5Gcm9udGllckVmZmVjdBIRCgllZmZlY3RfaWQYASABKAkSEQoJd29ya3NwYWNlGAIgASgJEg4KBmJyYW5jaBgDIAEoCRIMCgRoZWFkGAQgASgJEisKBHJlZnMYBSADKAsyHS5ub21vcy5ydW50aW1lLnYyLlJldGFpbmVkUmVmIqIBChBGcm9udGllclJldGFpbmVkEhEKCXdvcmtzcGFjZRgBIAEoCRIOCgZicmFuY2gYAiABKAkSDAoEaGVhZBgDIAEoCRIQCghyZXRhaW5lZBgEIAEoCBITCgZkZXRhaWwYBSABKAlIAIgBARIrCgRyZWZzGAYgAygLMh0ubm9tb3MucnVudGltZS52Mi5SZXRhaW5lZFJlZkIJCgdfZGV0YWlsIl4KGFBlcnNpc3RCb3JuQ3VzdG9keUVmZmVjdBIRCgllZmZlY3RfaWQYASABKAkSLwoIY2hpbGRyZW4YAiADKAsyHS5ub21vcy5ydW50aW1lLnYyLkJvcm5DdXN0b2R5IpcBChRQZXJzaXN0ZWRCb3JuQ3VzdG9keRIRCgl3b3Jrc3BhY2UYASABKAkSDAoEaGVhZBgCIAEoCRIRCglwZXJzaXN0ZWQYAyABKAgSEwoGZGV0YWlsGAQgASgJSACIAQESKwoEcmVmcxgFIAMoCzIdLm5vbW9zLnJ1bnRpbWUudjIuUmV0YWluZWRSZWZCCQoHX2RldGFpbCJVChlQZXJzaXN0Qm9ybkN1c3RvZHlSZWNlaXB0EjgKCGNoaWxkcmVuGAEgAygLMiYubm9tb3MucnVudGltZS52Mi5QZXJzaXN0ZWRCb3JuQ3VzdG9keSLOBwoVQ29ycmVzcG9uZGVuY2VQZW5kaW5nEg8KB3dvcmtfaWQYASABKAkSMAoEaHR0cBgCIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuUGVlckh0dHBFZmZlY3RIABI5CglnaXRfZmV0Y2gYAyABKAsyJC5ub21vcy5ydW50aW1lLnYyLlBlZXJHaXRGZXRjaEVmZmVjdEgAEjcKCGdpdF9wdXNoGAQgASgLMiMubm9tb3MucnVudGltZS52Mi5QZWVyR2l0UHVzaEVmZmVjdEgAEkoKFHBlcnNpc3RfYm9ybl9jdXN0b2R5GAUgASgLMioubm9tb3MucnVudGltZS52Mi5QZXJzaXN0Qm9ybkN1c3RvZHlFZmZlY3RIABJNChN3b3Jrc3BhY2VfZGlzY292ZXJ5GAYgASgLMi4ubm9tb3MucnVudGltZS52Mi5QZWVyV29ya3NwYWNlRGlzY292ZXJ5RWZmZWN0SAASQQoNbG9jYWxfY3VzdG9keRgHIAEoCzIoLm5vbW9zLnJ1bnRpbWUudjIuUGVlckxvY2FsQ3VzdG9keUVmZmVjdEgAEkEKD3JldGFpbl9mcm9udGllchgIIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuUmV0YWluRnJvbnRpZXJFZmZlY3RIABIwCgR3YWtlGAkgASgLMiAubm9tb3MucnVudGltZS52Mi5QZWVyV2FrZUVmZmVjdEgAEksKEnJlZnJlc2hfY3JlZGVudGlhbBgKIAEoCzItLm5vbW9zLnJ1bnRpbWUudjIuUGVlckNyZWRlbnRpYWxSZWZyZXNoRWZmZWN0SAASRQoPZGV2aWNlX2lkZW50aXR5GAsgASgLMioubm9tb3MucnVudGltZS52Mi5QZWVyRGV2aWNlSWRlbnRpdHlFZmZlY3RIABI9CgtsYXdfcGFja2FnZRgMIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuUGVlckxhd1BhY2thZ2VFZmZlY3RIABJNChNoaXN0b3J5X2FjcXVpc2l0aW9uGA0gASgLMi4ubm9tb3MucnVudGltZS52Mi5QZWVySGlzdG9yeUFjcXVpc2l0aW9uRWZmZWN0SAASSQoRY29uc29sZV9lbnJvbG1lbnQYDiABKAsyLC5ub21vcy5ydW50aW1lLnYyLlBlZXJDb25zb2xlRW5yb2xtZW50RWZmZWN0SAASNAoGc3RyZWFtGA8gASgLMiIubm9tb3MucnVudGltZS52Mi5QZWVyU3RyZWFtRWZmZWN0SABCCAoGZWZmZWN0IqABChpQZWVyQ29uc29sZUVucm9sbWVudEVmZmVjdBIRCgllZmZlY3RfaWQYASABKAkSFwoPZGV2aWNlX2lkZW50aXR5GAIgASgJEhIKCmNhcGFiaWxpdHkYAyABKAkSDwoHY29uc29sZRgEIAEoCRIOCgZ0ZW5hbnQYBSABKAkSDQoFc2NvcGUYBiABKAkSEgoKd29ya3NwYWNlcxgHIAMoCSKpAQoTUGVlckNvbnNvbGVFbnJvbGxlZBIRCglwcmluY2lwYWwYASABKAkSEAoIa2V5X2hhc2gYAiABKAkSPwoFaGVhZHMYAyADKAsyMC5ub21vcy5ydW50aW1lLnYyLlBlZXJDb25zb2xlRW5yb2xsZWQuSGVhZHNFbnRyeRosCgpIZWFkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEicgobUGVlckNvbnNvbGVFbnJvbG1lbnRSZWZ1c2VkEg4KBnN0YXR1cxgBIAEoDRIPCgdtZXNzYWdlGAIgASgJEgwKBGNvZGUYAyABKAkSFgoJcmV0cnlhYmxlGAQgASgISACIAQFCDAoKX3JldHJ5YWJsZSJjChxQZWVySGlzdG9yeUFjcXVpc2l0aW9uRWZmZWN0EhEKCWVmZmVjdF9pZBgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkSHQoVY3JlZGVudGlhbF9jYXBhYmlsaXR5GAMgASgJIlUKHVBlZXJIaXN0b3J5QWNxdWlzaXRpb25SZWNlaXB0EhEKCXdvcmtzcGFjZRgBIAEoCRIPCgdjaGFuZ2VkGAIgASgIEhAKCGNvbXBsZXRlGAMgASgIIjkKDlBlZXJXYWtlRWZmZWN0EhEKCWVmZmVjdF9pZBgBIAEoCRIUCgxkZWxheV9taWxsaXMYAiABKA0iCwoJUGVlcldva2VuItYBChtQZWVyQ3JlZGVudGlhbFJlZnJlc2hFZmZlY3QSEQoJZWZmZWN0X2lkGAEgASgJEhIKCmNhcGFiaWxpdHkYAiABKAkSHQoQZGV2aWNlX2NoYWxsZW5nZRgDIAEoCUgAiAEBEhQKDGFsbG93X2NhY2hlZBgEIAEoCBInChpyZWplY3RlZF9hdXRoX3Rva2VuX3NoYTI1NhgFIAEoDEgBiAEBQhMKEV9kZXZpY2VfY2hhbGxlbmdlQh0KG19yZWplY3RlZF9hdXRoX3Rva2VuX3NoYTI1NiJvChdQZWVyQ3JlZGVudGlhbFJlZnJlc2hlZBIXCgphdXRoX3Rva2VuGAEgASgMSACIAQESGgoNYXV0aG9yX3NlY3JldBgCIAEoDEgBiAEBQg0KC19hdXRoX3Rva2VuQhAKDl9hdXRob3Jfc2VjcmV0IsYCChhQZWVyRGV2aWNlSWRlbnRpdHlFZmZlY3QSEQoJZWZmZWN0X2lkGAEgASgJEhAKCGlkZW50aXR5GAIgASgJEjgKBGxvYWQYAyABKAsyKC5ub21vcy5ydW50aW1lLnYyLlBlZXJEZXZpY2VJZGVudGl0eUxvYWRIABI4CgRzYXZlGAQgASgLMigubm9tb3MucnVudGltZS52Mi5QZWVyRGV2aWNlSWRlbnRpdHlTYXZlSAASQQoNbG9hZF9yZWNvdmVyeRgFIAEoCzIoLm5vbW9zLnJ1bnRpbWUudjIuUGVlckRldmljZVJlY292ZXJ5TG9hZEgAEkEKDXNhdmVfcmVjb3ZlcnkYBiABKAsyKC5ub21vcy5ydW50aW1lLnYyLlBlZXJEZXZpY2VSZWNvdmVyeVNhdmVIAEILCglvcGVyYXRpb24iGAoWUGVlckRldmljZUlkZW50aXR5TG9hZCIoChZQZWVyRGV2aWNlSWRlbnRpdHlTYXZlEg4KBnNlY3JldBgBIAEoDCIYChZQZWVyRGV2aWNlUmVjb3ZlcnlMb2FkIlAKFlBlZXJEZXZpY2VSZWNvdmVyeVNhdmUSNgoGcmVjb3JkGAEgASgLMiYubm9tb3MucnVudGltZS52Mi5EZXZpY2VSZWNvdmVyeVJlY29yZCKLAgoURGV2aWNlUmVjb3ZlcnlSZWNvcmQSDwoHdmVyc2lvbhgBIAEoDRITCgthcHBsaWNhdGlvbhgCIAEoCRIRCglwcmluY2lwYWwYAyABKAkSFwoPcHJldmlvdXNfc2VjcmV0GAQgASgMEhgKEGNhbmRpZGF0ZV9zZWNyZXQYBSABKAwSFwoPZW5yb2xsbWVudF9oZWFkGAYgASgJEhUKDXJlY292ZXJ5X2hlYWQYByABKAkSRAoRcGVuZGluZ19hZG1pc3Npb24YCCABKAsyKS5ub21vcy5ydW50aW1lLnYyLkRldmljZVJlY292ZXJ5QWRtaXNzaW9uEhEKCWNvbXBsZXRlZBgJIAEoCCKxAQoXRGV2aWNlUmVjb3ZlcnlBZG1pc3Npb24SPQoFc3RhZ2UYASABKA4yLi5ub21vcy5ydW50aW1lLnYyLkRldmljZVJlY292ZXJ5QWRtaXNzaW9uU3RhZ2USEgoKcmVxdWVzdF9pZBgCIAEoBBIRCgl3b3Jrc3BhY2UYAyABKAkSMAoGZWZmZWN0GAQgASgLMiAubm9tb3MucnVudGltZS52Mi5QZWVySHR0cEVmZmVjdCJuChJQZWVyRGV2aWNlSWRlbnRpdHkSEwoGc2VjcmV0GAEgASgMSACIAQESOAoIcmVjb3ZlcnkYAiABKAsyJi5ub21vcy5ydW50aW1lLnYyLkRldmljZVJlY292ZXJ5UmVjb3JkQgkKB19zZWNyZXQiPQoUUGVlckxhd1BhY2thZ2VFZmZlY3QSEQoJZWZmZWN0X2lkGAEgASgJEhIKCmxhd19zaGEyNTYYAiABKAkiIgoOUGVlckxhd1BhY2thZ2USEAoIbGF3X3VzZHoYASABKAwiRAocUGVlcldvcmtzcGFjZURpc2NvdmVyeUVmZmVjdBIRCgllZmZlY3RfaWQYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIj4KFlBlZXJMb2NhbEN1c3RvZHlFZmZlY3QSEQoJZWZmZWN0X2lkGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSKDAQoXUGVlckxvY2FsQ3VzdG9keVJlY2VpcHQSEQoJd29ya3NwYWNlGAEgASgJEhEKCWF2YWlsYWJsZRgCIAEoCBI2CgdvcGVuaW5nGAMgASgLMiAubm9tb3MucnVudGltZS52Mi5DdXN0b2R5T3BlbmluZ0gAiAEBQgoKCF9vcGVuaW5nIi8KGkhpc3RvcnlBY3F1aXNpdGlvblJlY292ZXJ5EhEKCXdvcmtzcGFjZRgBIAEoCSLeAQodQ29udGludWVDb3JyZXNwb25kZW5jZVJlcXVlc3QSDwoHd29ya19pZBgBIAEoCRI0CgdyZWNlaXB0GAIgASgLMiMubm9tb3MucnVudGltZS52Mi5QZWVyRWZmZWN0UmVjZWlwdBJWChtyZWNvdmVyX2hpc3RvcnlfYWNxdWlzaXRpb24YAyABKAsyLC5ub21vcy5ydW50aW1lLnYyLkhpc3RvcnlBY3F1aXNpdGlvblJlY292ZXJ5SACIAQFCHgocX3JlY292ZXJfaGlzdG9yeV9hY3F1aXNpdGlvbiKGAgoUUmVtb3RlT2ZmZXJBZG1pc3Npb24SEQoJd29ya3NwYWNlGAEgASgJEgwKBG1haW4YAiABKAkSGAoLc2VhbGVkX21haW4YAyABKAlIAIgBARIvCgd2ZXJkaWN0GAQgASgLMh4ubm9tb3Mua2VybmVsLnYxLk9mZmVyUmVzcG9uc2USMwoMYm9ybl9jdXN0b2R5GAUgAygLMh0ubm9tb3MucnVudGltZS52Mi5Cb3JuQ3VzdG9keRITCgtyZXN1bHRfcGFjaxgGIAEoDBIYCgtyZXN1bHRfYmFzZRgHIAEoCUgBiAEBQg4KDF9zZWFsZWRfbWFpbkIOCgxfcmVzdWx0X2Jhc2UiSgoOQm9ybkN1c3RvZHlSZWYSKgoDcmVmGAEgASgLMh0ubm9tb3MucnVudGltZS52Mi5SZXRhaW5lZFJlZhIMCgRwYWNrGAIgASgMIoEBCgtCb3JuQ3VzdG9keRItCgVjaGlsZBgBIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5Cb3JuV29ya3NwYWNlEgwKBHBhY2sYAiABKAwSNQoLcHVibGljYXRpb24YAyADKAsyIC5ub21vcy5ydW50aW1lLnYyLkJvcm5DdXN0b2R5UmVmIqoDChhDdXN0b2R5T2ZmZXJCYXRjaFJlcXVlc3QSGAoQcHJvdG9jb2xfdmVyc2lvbhgBIAEoDRISCgpyZXF1ZXN0X2lkGAIgASgJEjcKBmlubGluZRgDIAEoCzIlLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUlubGluZU9mZmVyc0gAEkYKEXNlc3Npb25fY2FuZGlkYXRlGAQgASgLMikubm9tb3MucnVudGltZS52Mi5DdXN0b2R5U2Vzc2lvbkNhbmRpZGF0ZUgAEhYKCWJhc2VfaGVhZBgFIAEoCUgBiAEBEhUKDWV2aWRlbmNlX3BhY2sYBiABKAwSGgoNb2JzZXJ2ZWRfaGVhZBgHIAEoCUgCiAEBEhkKEWZhc3RfZm9yd2FyZF9vbmx5GAggASgIEhwKD2NvbnRpbnVlc19hZnRlchgJIAEoCUgDiAEBEh0KFWFja25vd2xlZGdlX2FkbWlzc2lvbhgKIAEoCEIICgZzb3VyY2VCDAoKX2Jhc2VfaGVhZEIQCg5fb2JzZXJ2ZWRfaGVhZEISChBfY29udGludWVzX2FmdGVyIu4ECg5MaXZlT2ZmZXJGcmFtZRIyCghmcm9udGllchgBIAEoCzIeLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZUZyb250aWVySAASPAoGb2ZmZXJzGAIgASgLMioubm9tb3MucnVudGltZS52Mi5DdXN0b2R5T2ZmZXJCYXRjaFJlcXVlc3RIABI0CglhZG1pc3Npb24YAyABKAsyHy5ub21vcy5ydW50aW1lLnYyLkxpdmVBZG1pc3Npb25IABJFChJjaGVja3BvaW50X3JlcXVlc3QYBCABKAsyJy5ub21vcy5ydW50aW1lLnYyLkxpdmVDaGVja3BvaW50UmVxdWVzdEgAEkEKEGNoZWNrcG9pbnRfb2ZmZXIYBSABKAsyJS5ub21vcy5ydW50aW1lLnYyLkxpdmVDaGVja3BvaW50T2ZmZXJIABJBChBjaGVja3BvaW50X2NodW5rGAYgASgLMiUubm9tb3MucnVudGltZS52Mi5MaXZlQ2hlY2twb2ludENodW5rSAASPwoPaGlzdG9yeV9yZXF1ZXN0GAcgASgLMiQubm9tb3MucnVudGltZS52Mi5MaXZlSGlzdG9yeVJlcXVlc3RIABI3CgtyZWZfcmVxdWVzdBgIIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZVJlZlJlcXVlc3RIABIqCgRwYWNrGAkgASgLMhoubm9tb3MucnVudGltZS52Mi5MaXZlUGFja0gAEjYKB3JlZnVzYWwYCiABKAsyIy5ub21vcy5ydW50aW1lLnYyLkxpdmVTdHJlYW1SZWZ1c2FsSABCCQoHbWVzc2FnZSJaCg1MaXZlQWRtaXNzaW9uEhIKCnJlcXVlc3RfaWQYASABKAkSNQoJYWRtaXNzaW9uGAIgASgLMiIubm9tb3MucnVudGltZS52Mi5DdXN0b2R5QWRtaXNzaW9uIt4BCgxMaXZlRnJvbnRpZXISDAoEaGVhZBgBIAEoCRIQCghyZXNwb25zZRgCIAEoCBISCgptYXhfb2ZmZXJzGAMgASgNEhwKFHJlbW91bnRfYWZ0ZXJfb2ZmZXJzGAQgASgNEhcKD291dGNvbWVzX2RpZ2VzdBgFIAEoCRIvCghvdXRjb21lcxgGIAMoCzIdLm5vbW9zLnJ1bnRpbWUudjIuUmV0YWluZWRSZWYSEwoGc2VhbGVkGAcgASgJSACIAQESEgoKaGVsZF90cmVlcxgIIAMoCUIJCgdfc2VhbGVkIpABChVMaXZlQ2hlY2twb2ludFJlcXVlc3QSEQoEaGVhZBgBIAEoCUgAiAEBEhQKB3BhY2tfaWQYAiABKAlIAYgBARIOCgZvZmZzZXQYAyABKAQSFQoNd2luZG93X2NodW5rcxgEIAEoDRISCgpoZWxkX3RyZWVzGAUgAygJQgcKBV9oZWFkQgoKCF9wYWNrX2lkIs4CChNMaXZlQ2hlY2twb2ludE9mZmVyEgwKBGhlYWQYASABKAkSDwoHcGFja19pZBgCIAEoCRINCgVieXRlcxgDIAEoBBITCgtjaHVua19ieXRlcxgEIAEoDRIPCgdzaGFsbG93GAYgAygJEi8KCG91dGNvbWVzGAcgAygLMh0ubm9tb3MucnVudGltZS52Mi5SZXRhaW5lZFJlZhIPCgdyZW1vdW50GAggASgIEhoKDW9mZmVyc19iZWhpbmQYCSABKARIAIgBARISCgpyZXF1ZXN0X2lkGAogASgJEhMKBnNlYWxlZBgLIAEoCUgBiAEBEgwKBG1haW4YDCABKAkSFQoNb21pdHRlZF90cmVlcxgNIAMoCRIUCgxzaGFyZWRfdHJlZXMYDiADKAlCEAoOX29mZmVyc19iZWhpbmRCCQoHX3NlYWxlZEoECAUQBiJZChNMaXZlQ2hlY2twb2ludENodW5rEg8KB3BhY2tfaWQYASABKAkSDgoGb2Zmc2V0GAIgASgEEg0KBWJ5dGVzGAMgASgMEhIKCnJlcXVlc3RfaWQYBCABKAkikgEKEkxpdmVIaXN0b3J5UmVxdWVzdBISCgpyZXF1ZXN0X2lkGAEgASgJEhAKCGJvdW5kYXJ5GAIgASgJEg0KBWRlcHRoGAMgASgNEhQKB3BhY2tfaWQYBCABKAlIAIgBARIOCgZvZmZzZXQYBSABKAQSFQoNd2luZG93X2NodW5rcxgGIAEoDUIKCghfcGFja19pZCJiCg5MaXZlUmVmUmVxdWVzdBISCgpyZXF1ZXN0X2lkGAEgASgJEhEKCXJlZmVyZW5jZRgCIAEoCRIRCgR3YW50GAMgASgJSACIAQESDQoFd2FudHMYBCADKAlCBwoFX3dhbnQinAEKCExpdmVQYWNrEhIKCnJlcXVlc3RfaWQYASABKAkSEQoJcmVmZXJlbmNlGAIgASgJEgwKBGhlYWQYAyABKAkSDAoEcGFjaxgEIAEoDBIPCgdzaGFsbG93GAUgAygJEgwKBGJhc2UYBiABKAkSDgoGb2ZmZXJzGAcgASgNEhMKBnNlYWxlZBgIIAEoCUgAiAEBQgkKB19zZWFsZWQifgoRTGl2ZVN0cmVhbVJlZnVzYWwSEgoKcmVxdWVzdF9pZBgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSHwoScmV0cnlfYWZ0ZXJfbWlsbGlzGAQgASgNSACIAQFCFQoTX3JldHJ5X2FmdGVyX21pbGxpcyL7AQoRTGl2ZVN0cmVhbVJlcXVlc3QSMgoIZnJvbnRpZXIYASABKAsyHi5ub21vcy5ydW50aW1lLnYyLkxpdmVGcm9udGllckgAEj0KCmNoZWNrcG9pbnQYAiABKAsyJy5ub21vcy5ydW50aW1lLnYyLkxpdmVDaGVja3BvaW50UmVxdWVzdEgAEjcKB2hpc3RvcnkYAyABKAsyJC5ub21vcy5ydW50aW1lLnYyLkxpdmVIaXN0b3J5UmVxdWVzdEgAEi8KA3JlZhgEIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZVJlZlJlcXVlc3RIAEIJCgdyZXF1ZXN0IkQKEExpdmVTdHJlYW1BbnN3ZXISMAoGZnJhbWVzGAEgAygLMiAubm9tb3MucnVudGltZS52Mi5MaXZlT2ZmZXJGcmFtZSLiAgoQUGVlclN0cmVhbUVmZmVjdBIRCgllZmZlY3RfaWQYASABKAkSEQoJd29ya3NwYWNlGAIgASgJEj0KCmNoZWNrcG9pbnQYAyABKAsyJy5ub21vcy5ydW50aW1lLnYyLkxpdmVDaGVja3BvaW50UmVxdWVzdEgAEjcKB2hpc3RvcnkYBCABKAsyJC5ub21vcy5ydW50aW1lLnYyLkxpdmVIaXN0b3J5UmVxdWVzdEgAEi8KA3JlZhgFIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZVJlZlJlcXVlc3RIABIvCgVsZXZlbBgGIAEoCzIeLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZUZyb250aWVySAASEgoKc3RhcnRfb25seRgHIAEoCBIQCgh1cHN0cmVhbRgIIAEoCRIdChVjcmVkZW50aWFsX2NhcGFiaWxpdHkYCSABKAlCCQoHcmVxdWVzdCLjAgoRUGVlclN0cmVhbVJlY2VpcHQSKgoEcGFjaxgBIAEoCzIaLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZVBhY2tIABIPCgVsZXZlbBgCIAEoCUgAEjYKB3JlZnVzYWwYAyABKAsyIy5ub21vcy5ydW50aW1lLnYyLkxpdmVTdHJlYW1SZWZ1c2FsSAASLwoIb3V0Y29tZXMYBCADKAsyHS5ub21vcy5ydW50aW1lLnYyLlJldGFpbmVkUmVmEhYKDnJlY2VpdmVkX2J5dGVzGAUgASgEEhMKBnNlYWxlZBgGIAEoCUgBiAEBEh0KEHN0YWdlZF9wYWNrX2ZpbGUYByABKAlIAogBARIRCgRtYWluGAggASgJSAOIAQESFQoNb21pdHRlZF90cmVlcxgJIAMoCUIJCgdvdXRjb21lQgkKB19zZWFsZWRCEwoRX3N0YWdlZF9wYWNrX2ZpbGVCBwoFX21haW4iawoQUGVlclNvY2tldEVmZmVjdBIVCg1jb25uZWN0aW9uX2lkGAEgASgJEhIKCG9wZW5fdXJsGAIgASgJSAASDgoEc2VuZBgDIAEoDEgAEg8KBWNsb3NlGAQgASgISABCCwoJb3BlcmF0aW9uIqkBChFQZWVyU29ja2V0UmVjZWlwdBIVCg1jb25uZWN0aW9uX2lkGAEgASgJEhAKBm9wZW5lZBgCIAEoCEgAEhIKCHJlY2VpdmVkGAMgASgMSAASEAoGY2xvc2VkGAQgASgISAASNgoHY2xvc3VyZRgFIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuUGVlclNvY2tldENsb3N1cmVIAEINCgtvYnNlcnZhdGlvbiKNAQoRUGVlclNvY2tldENsb3N1cmUSEQoEY29kZRgBIAEoDUgAiAEBEg4KBnJlYXNvbhgCIAEoCRINCgVjbGVhbhgDIAEoCBI9Cglpbml0aWF0b3IYBCABKA4yKi5ub21vcy5ydW50aW1lLnYyLlBlZXJTb2NrZXRDbG9zZUluaXRpYXRvckIHCgVfY29kZSLiAwoPTGl2ZUxpbmtDbG9zdXJlEhUKDWNvbm5lY3Rpb25faWQYASABKAkSEQoJd29ya3NwYWNlGAIgASgJEiwKBHJvbGUYAyABKA4yHi5ub21vcy5ydW50aW1lLnYyLkxpdmVMaW5rUm9sZRIzCgZzb2NrZXQYBCABKAsyIy5ub21vcy5ydW50aW1lLnYyLlBlZXJTb2NrZXRDbG9zdXJlEh0KFWNsb3NlZF9hdF91bml4X21pbGxpcxgFIAEoBBITCgtvcGVuX21pbGxpcxgGIAEoBBISCgphZG1pc3Npb25zGAcgASgNEiYKGWxhc3RfYWRtaXNzaW9uX3JlcXVlc3RfaWQYCCABKAlIAIgBARIfChJsYXN0X2FkbWl0dGVkX21haW4YCSABKAlIAYgBARIdChBsYXN0X3NlYWxlZF9tYWluGAogASgJSAKIAQESGgoNbGFzdF9mcm9udGllchgLIAEoCUgDiAEBEhoKEnVuYW5zd2VyZWRfYmF0Y2hlcxgMIAEoDUIcChpfbGFzdF9hZG1pc3Npb25fcmVxdWVzdF9pZEIVChNfbGFzdF9hZG1pdHRlZF9tYWluQhMKEV9sYXN0X3NlYWxlZF9tYWluQhAKDl9sYXN0X2Zyb250aWVyIi0KElBlZXJTb2NrZXRPYnNlcnZlZBIXCg9ydW5nX3dvcmtzcGFjZXMYASADKAkiPQoXRXhwb3J0TGl2ZU9mZmVyc1JlcXVlc3QSDwoHc2Vzc2lvbhgBIAEoCRIRCgliYXNlX2hlYWQYAiABKAkiTgoSQ3VzdG9keUludGVudE9mZmVyEg8KB3Nlc3Npb24YASABKAkSEgoKY29tbWl0X29pZBgCIAEoCRITCgtjaGFuZ2VfdXNkYRgDIAEoDCJLChNDdXN0b2R5SW5saW5lT2ZmZXJzEjQKBm9mZmVycxgBIAMoCzIkLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUludGVudE9mZmVyIiwKF0N1c3RvZHlTZXNzaW9uQ2FuZGlkYXRlEhEKCXJlZmVyZW5jZRgBIAEoCSKCBAoQQ3VzdG9keUFkbWlzc2lvbhIMCgRtYWluGAEgASgJEhgKC3NlYWxlZF9tYWluGAIgASgJSACIAQESOwoIc2Vzc2lvbnMYAyADKAsyKS5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlTZXNzaW9uQWRtaXNzaW9uEjUKDmJpcnRoX291dGNvbWVzGAQgAygLMh0ubm9tb3Mua2VybmVsLnYxLkJpcnRoT3V0Y29tZRIzCgxib3JuX2N1c3RvZHkYBSADKAsyHS5ub21vcy5ydW50aW1lLnYyLkJvcm5DdXN0b2R5EhMKC3Jlc3VsdF9wYWNrGAYgASgMEhgKC3Jlc3VsdF9iYXNlGAcgASgJSAGIAQESOgoHdGltaW5ncxgIIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUFkbWlzc2lvblRpbWluZ3MSHgoRcmVjb3ZlcnlfcmVxdWlyZWQYCSABKAhIAogBARJGChFsb2NhbF9tYWludGVuYW5jZRgKIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuTWFpbnRlbmFuY2VTY2hlZHVsZWRIA4gBAUIOCgxfc2VhbGVkX21haW5CDgoMX3Jlc3VsdF9iYXNlQhQKEl9yZWNvdmVyeV9yZXF1aXJlZEIUChJfbG9jYWxfbWFpbnRlbmFuY2UiZQoXQ3VzdG9keVNlc3Npb25BZG1pc3Npb24SDwoHc2Vzc2lvbhgBIAEoCRI5CgdpbnRlbnRzGAIgAygLMigubm9tb3MucnVudGltZS52Mi5DdXN0b2R5SW50ZW50QWRtaXNzaW9uItQDChZDdXN0b2R5SW50ZW50QWRtaXNzaW9uEhIKCmNvbW1pdF9vaWQYASABKAkSFgoJaW50ZW50X2lkGAIgASgJSAGIAQESOwoIYWRtaXR0ZWQYCiABKAsyJy5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlJbnRlbnRBZG1pdHRlZEgAEjkKB3NraXBwZWQYCyABKAsyJi5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlJbnRlbnRTa2lwcGVkSAASOQoHcmVmdXNlZBgMIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUludGVudFJlZnVzZWRIABJECg1kZWFkX2xldHRlcmVkGA0gASgLMisubm9tb3MucnVudGltZS52Mi5DdXN0b2R5SW50ZW50RGVhZExldHRlcmVkSAASOQoHYmxvY2tlZBgOIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUludGVudEJsb2NrZWRIABJBCgtxdWFyYW50aW5lZBgPIAEoCzIqLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUludGVudFF1YXJhbnRpbmVkSABCCQoHb3V0Y29tZUIMCgpfaW50ZW50X2lkIpABChVDdXN0b2R5SW50ZW50QWRtaXR0ZWQSDAoEaGVhZBgBIAEoCRIzCgdjcmVhdGVkGAIgAygLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyQWdncmVnYXRlUmVmEjQKCGFmZmVjdGVkGAMgAygLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyQWdncmVnYXRlUmVmIi8KFEN1c3RvZHlJbnRlbnRTa2lwcGVkEhcKD2FscmVhZHlfb25fbWFpbhgBIAEoCCKaAQoUQ3VzdG9keUludGVudFJlZnVzZWQSDwoHbWVzc2FnZRgBIAEoCRIRCgRoaW50GAMgASgJSACIAQESNAoHcmVmdXNhbBgEIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxSZWZ1c2FsSAGIAQFCBwoFX2hpbnRCCgoIX3JlZnVzYWxKBAgCEANSDWRlYWRfbGV0dGVyZWQifgoZQ3VzdG9keUludGVudERlYWRMZXR0ZXJlZBIPCgdtZXNzYWdlGAEgASgJEhEKBGhpbnQYAiABKAlIAIgBARIeChFjdXN0b2R5X3JlZmVyZW5jZRgDIAEoCUgBiAEBQgcKBV9oaW50QhQKEl9jdXN0b2R5X3JlZmVyZW5jZSImChRDdXN0b2R5SW50ZW50QmxvY2tlZBIOCgZkZXRhaWwYASABKAkilQEKGEN1c3RvZHlJbnRlbnRRdWFyYW50aW5lZBIOCgZyZWFzb24YASABKAkSGQoRYXV0aG9yZWRfbGF3X2hhc2gYAiABKAkSGAoQY3VycmVudF9sYXdfaGFzaBgDIAEoCRIeChFjdXN0b2R5X3JlZmVyZW5jZRgEIAEoCUgAiAEBQhQKEl9jdXN0b2R5X3JlZmVyZW5jZSLtAQoXQ3VzdG9keUFkbWlzc2lvblRpbWluZ3MSFAoMdG90YWxfbWlsbGlzGAEgASgBEhMKC3NjYW5fbWlsbGlzGAIgASgBEhQKDGZldGNoX21pbGxpcxgDIAEoARITCgtzZWFsX21pbGxpcxgEIAEoARIYChBnYXRlX2ZvbGRfbWlsbGlzGAUgASgBEhQKDGludGVudF9jb3VudBgGIAEoDRIVCg1zZXNzaW9uX2NvdW50GAcgASgNEjUKBXNwYW5zGAggAygLMiYubm9tb3MucnVudGltZS52Mi5DdXN0b2R5QWRtaXNzaW9uU3BhbiKXAQoUQ3VzdG9keUFkbWlzc2lvblNwYW4SCgoCaWQYASABKAkSDQoFdHJhY2sYAiABKAkSDAoEbmFtZRgDIAEoCRIMCgRraW5kGAQgASgJEg0KBWRlcHRoGAUgASgNEhsKE3N0YXJ0ZWRfdW5peF9taWxsaXMYBiABKAESHAoUZmluaXNoZWRfdW5peF9taWxsaXMYByABKAEiXQoXV29ya3NwYWNlRWZmZWN0RGVmZXJyZWQSGAoQdGFyZ2V0X3dvcmtzcGFjZRgBIAEoCRIaChJyZXRyeV9hZnRlcl9taWxsaXMYAiABKAQSDAoEaGVsZBgDIAEoBCL6AQoNT3V0Ym94U3VtbWFyeRIRCgl3b3Jrc3BhY2UYASABKAkSDwoHZW50cmllcxgCIAEoBBI0Cgd0YXJnZXRzGAMgAygLMiMubm9tb3MucnVudGltZS52Mi5PdXRib3hUYXJnZXRDb3VudBIfChJuZXh0X2R1ZV9hdF9taWxsaXMYBCABKARIAIgBARIUCgx3b3JrX3BlbmRpbmcYBSABKAgSEAoIcmVzaWRlbnQYBiABKAgSFQoNZW50cmllc190b3RhbBgHIAEoDRIYChBlbnRyaWVzX3ByZXBhcmVkGAggASgNQhUKE19uZXh0X2R1ZV9hdF9taWxsaXMiPgoRT3V0Ym94VGFyZ2V0Q291bnQSGAoQdGFyZ2V0X3dvcmtzcGFjZRgBIAEoCRIPCgdlbnRyaWVzGAIgASgEIkMKFFBlZXJHaXRSZWZzQWxvbmdzaWRlEg4KBnByZWZpeBgBIAEoCRIMCgRoZWxkGAIgAygJEg0KBWxpbWl0GAMgASgNImEKElBlZXJHaXRSZWZzRmV0Y2hlZBIrCgRyZWZzGAEgAygLMh0ubm9tb3MucnVudGltZS52Mi5SZXRhaW5lZFJlZhIMCgRwYWNrGAIgASgMEhAKCGRlZmVycmVkGAMgASgNKrwBChVTaGFyZVdvcmtzcGFjZU91dGNvbWUSJwojU0hBUkVfV09SS1NQQUNFX09VVENPTUVfVU5TUEVDSUZJRUQQABIlCiFTSEFSRV9XT1JLU1BBQ0VfT1VUQ09NRV9ERUxJVkVSRUQQARIuCipTSEFSRV9XT1JLU1BBQ0VfT1VUQ09NRV9BV0FJVElOR19SRUNJUElFTlQQAhIjCh9TSEFSRV9XT1JLU1BBQ0VfT1VUQ09NRV9SRUZVU0VEEAMqZwoOUGVlckh0dHBNZXRob2QSIAocUEVFUl9IVFRQX01FVEhPRF9VTlNQRUNJRklFRBAAEhgKFFBFRVJfSFRUUF9NRVRIT0RfR0VUEAESGQoVUEVFUl9IVFRQX01FVEhPRF9QT1NUEAIqvwEKF1BlZXJFZmZlY3RGYWlsdXJlUmVhc29uEioKJlBFRVJfRUZGRUNUX0ZBSUxVUkVfUkVBU09OX1VOU1BFQ0lGSUVEEAASJgoiUEVFUl9FRkZFQ1RfRkFJTFVSRV9SRUFTT05fT0ZGTElORRABEiYKIlBFRVJfRUZGRUNUX0ZBSUxVUkVfUkVBU09OX1RJTUVPVVQQAhIoCiRQRUVSX0VGRkVDVF9GQUlMVVJFX1JFQVNPTl9UUkFOU1BPUlQQAyqtAQocRGV2aWNlUmVjb3ZlcnlBZG1pc3Npb25TdGFnZRIvCitERVZJQ0VfUkVDT1ZFUllfQURNSVNTSU9OX1NUQUdFX1VOU1BFQ0lGSUVEEAASLgoqREVWSUNFX1JFQ09WRVJZX0FETUlTU0lPTl9TVEFHRV9FTlJPTExNRU5UEAESLAooREVWSUNFX1JFQ09WRVJZX0FETUlTU0lPTl9TVEFHRV9SRUNPVkVSWRACKr8BChhQZWVyU29ja2V0Q2xvc2VJbml0aWF0b3ISKwonUEVFUl9TT0NLRVRfQ0xPU0VfSU5JVElBVE9SX1VOU1BFQ0lGSUVEEAASJwojUEVFUl9TT0NLRVRfQ0xPU0VfSU5JVElBVE9SX1JVTlRJTUUQARIlCiFQRUVSX1NPQ0tFVF9DTE9TRV9JTklUSUFUT1JfU0hFTEwQAhImCiJQRUVSX1NPQ0tFVF9DTE9TRV9JTklUSUFUT1JfUkVNT1RFEAMqYQoMTGl2ZUxpbmtSb2xlEh4KGkxJVkVfTElOS19ST0xFX1VOU1BFQ0lGSUVEEAASFwoTTElWRV9MSU5LX1JPTEVfUEVFUhABEhgKFExJVkVfTElOS19ST0xFX1JFTEFZEAJiBnByb3RvMw", [file_nomos_kernel_v1_kernel, file_nomos_runtime_v2_placement_desk, file_nomos_discovery_v1_workspace_placement, file_nomos_runtime_v2_custody_desk, file_nomos_runtime_v2_maintenance_desk]);
3251
+ file_nomos_runtime_v2_correspondence_desk = /* @__PURE__ */ fileDesc9("Cipub21vcy9ydW50aW1lL3YyL2NvcnJlc3BvbmRlbmNlX2Rlc2sucHJvdG8SEG5vbW9zLnJ1bnRpbWUudjIi0AIKFVNoYXJlV29ya3NwYWNlUmVxdWVzdBIPCgdzdWJqZWN0GAEgASgJEhAKCHJlbGF0aW9uGAIgASgJEhoKEmFzc2VydGVyX3ByaW5jaXBhbBgDIAEoCRIOCgZvYmplY3QYBCABKAkSHAoPaG9tZV9sYXdfc2hhMjU2GAUgASgJSACIAQESGgoNYXV0aG9yX3NlY3JldBgGIAEoDEgBiAEBEh8KEmFzc2VydGVyX3dvcmtzcGFjZRgHIAEoCUgCiAEBEhgKC2F0dGVzdGVkX2F0GAggASgJSAOIAQESFwoKYXV0aF90b2tlbhgJIAEoDEgEiAEBQhIKEF9ob21lX2xhd19zaGEyNTZCEAoOX2F1dGhvcl9zZWNyZXRCFQoTX2Fzc2VydGVyX3dvcmtzcGFjZUIOCgxfYXR0ZXN0ZWRfYXRCDQoLX2F1dGhfdG9rZW4ikgEKFFNoYXJlV29ya3NwYWNlUmVzdWx0EjgKB291dGNvbWUYASABKA4yJy5ub21vcy5ydW50aW1lLnYyLlNoYXJlV29ya3NwYWNlT3V0Y29tZRITCgZzdGF0dXMYAiABKA1IAIgBARIUCgdtZXNzYWdlGAMgASgJSAGIAQFCCQoHX3N0YXR1c0IKCghfbWVzc2FnZSLKAQodUGFyZW50U2lnbmVyRW5yb2xsbWVudFJlcXVlc3QSDgoGcGFyZW50GAEgASgJEhEKCXByaW5jaXBhbBgCIAEoCRIXCgprZXlfc2hhMjU2GAMgASgJSACIAQESFwoKcHVibGljX2tleRgEIAEoDEgBiAEBEhcKCmF1dGhfdG9rZW4YBSABKAxIAogBARIOCgZyZW1vdGUYBiABKAhCDQoLX2tleV9zaGEyNTZCDQoLX3B1YmxpY19rZXlCDQoLX2F1dGhfdG9rZW4i1AEKFlBhcmVudFNpZ25lckVucm9sbG1lbnQSDgoGcGFyZW50GAEgASgJEhEKCXByaW5jaXBhbBgCIAEoCRISCgprZXlfc2hhMjU2GAMgASgJEg4KBm9iamVjdBgEIAEoCRIQCghyZWxhdGlvbhgFIAEoCRIQCghlbnJvbGxlZBgGIAEoCBIPCgdyZXZva2VkGAcgASgIEhkKDHZlcmlmaWVkX3ZpYRgIIAEoCUgAiAEBEhIKCmNoZWNrZWRfYXQYCSABKAlCDwoNX3ZlcmlmaWVkX3ZpYSLcAgojRW5zdXJlUGFyZW50U2lnbmVyRW5yb2xsbWVudFJlcXVlc3QSDgoGcGFyZW50GAEgASgJEhEKCXByaW5jaXBhbBgCIAEoCRIXCgpwdWJsaWNfa2V5GAMgASgMSACIAQESGgoNYXV0aG9yX3NlY3JldBgEIAEoDEgBiAEBEhMKBmRvbWFpbhgFIAEoCUgCiAEBEhYKCWRpcmVjdGl2ZRgGIAEoCUgDiAEBEhcKCmF1dGhfdG9rZW4YByABKAxIBIgBARIVCghpZF90b2tlbhgIIAEoDEgFiAEBEhkKDHZlcmlmaWVkX3ZpYRgJIAEoCUgGiAEBQg0KC19wdWJsaWNfa2V5QhAKDl9hdXRob3Jfc2VjcmV0QgkKB19kb21haW5CDAoKX2RpcmVjdGl2ZUINCgtfYXV0aF90b2tlbkILCglfaWRfdG9rZW5CDwoNX3ZlcmlmaWVkX3ZpYSLZAQoiRW5zdXJlUGFyZW50U2lnbmVyRW5yb2xsbWVudFJlc3VsdBIOCgZwYXJlbnQYASABKAkSEQoJcHJpbmNpcGFsGAIgASgJEhIKCmtleV9zaGEyNTYYAyABKAkSEAoIZW5yb2xsZWQYBCABKAgSEAoIcmVwYWlyZWQYBSABKAgSEwoGZG9tYWluGAYgASgJSACIAQESFgoJZGlyZWN0aXZlGAcgASgJSAGIAQESEgoKY2hlY2tlZF9hdBgIIAEoCUIJCgdfZG9tYWluQgwKCl9kaXJlY3RpdmUiHQobVmVyaWZ5V29ya3NwYWNlQ2hhaW5SZXF1ZXN0IrsBChpWZXJpZnlXb3Jrc3BhY2VDaGFpblJlc3VsdBINCgV2YWxpZBgBIAEoCBISCgVlcnJvchgCIAEoCUgAiAEBEhgKC3BsYW5zX3JlcnVuGAMgASgESAGIAQESOgoHaGlzdG9yeRgEIAEoCzIkLm5vbW9zLnJ1bnRpbWUudjIuVmVyaWZ5Q2hhaW5IaXN0b3J5SAKIAQFCCAoGX2Vycm9yQg4KDF9wbGFuc19yZXJ1bkIKCghfaGlzdG9yeSKHAQoSVmVyaWZ5Q2hhaW5IaXN0b3J5Eg0KBXN0YXRlGAEgASgJEg4KBmFuY2hvchgCIAEoCRIQCghib3VuZGFyeRgDIAMoCRIMCgR3YWxrGAQgASgJEh0KEHZlcmlmaWVkX2NvbW1pdHMYBSABKARIAIgBAUITChFfdmVyaWZpZWRfY29tbWl0cyJ/ChRTeW5jV29ya3NwYWNlUmVxdWVzdBINCgVhZG1pdBgCIAEoCBIRCgl3b3Jrc3BhY2UYAyABKAkSHwoScmVwbGFjZV9sb2NhbF9oZWFkGAQgASgJSACIAQFCFQoTX3JlcGxhY2VfbG9jYWxfaGVhZEoECAEQAlIHc2Vzc2lvbiKGCgoVU3luY1dvcmtzcGFjZVJlc3BvbnNlEhEKCXdvcmtzcGFjZRgBIAEoCRIaCg1wcmV2aW91c19oZWFkGAIgASgJSACIAQESGQoMY3VycmVudF9oZWFkGAMgASgJSAGIAQESEAoIYWRtaXR0ZWQYBCABKAQSDwoHcmVmdXNlZBgFIAEoBBIQCghkZWZlcnJlZBgGIAEoBBISCgpsb2NhbF9vbmx5GAcgASgIEg4KBnB1bGxlZBgIIAEoCBIQCghkaXZlcmdlZBgJIAEoCBIaChJyZWNvbm5lY3RfcmVxdWlyZWQYCiABKAgSEwoLc3RpbGxfYWhlYWQYCyABKAgSDwoHb2ZmbGluZRgMIAEoCBITCgtwdXNoX2ZhaWxlZBgNIAEoCBIdChVkaXJlY3Rfb2ZmZXJfZGVmZXJyZWQYDiABKAgSNQoOYmlydGhfb3V0Y29tZXMYDyADKAsyHS5ub21vcy5rZXJuZWwudjEuQmlydGhPdXRjb21lEhsKE2FkbWl0dGVkX2ludGVudF9pZHMYECADKAkSHAoUY29udmVyZ2VkX2ludGVudF9pZHMYESADKAkSQgoKcHVzaF9lcnJvchgSIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZVRyYW5zcG9ydEZhaWx1cmVIAogBARJHCg9kaXNjb3ZlcnlfZXJyb3IYEyABKAsyKS5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVUcmFuc3BvcnRGYWlsdXJlSAOIAQESMwoHdGltaW5ncxgUIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuU3luY1BoYXNlVGltaW5ncxJBCg1vZmZlcl9yZWNlaXB0GBUgASgLMiUubm9tb3MucnVudGltZS52Mi5DdXN0b2R5T2ZmZXJSZWNlaXB0SASIAQESOQoOcmVtb3RlX3JlZnVzYWwYFiABKAsyHC5ub21vcy5rZXJuZWwudjEuU3luY1JlZnVzYWxIBYgBARJHChRjdXN0b2R5X2Rpc2FncmVlbWVudBgXIAEoCzIkLm5vbW9zLmtlcm5lbC52MS5DdXN0b2R5RGlzYWdyZWVtZW50SAaIAQESGAoQY3VzdG9keV9yZXBsYWNlZBgYIAEoCBIVCg1tYWluX2FkdmFuY2VkGBkgASgIEkAKD3JlYm9ybl9yZW1vdGVseRgaIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlUmViaXJ0aEgHiAEBEkcKFHByZXNlcnZlZF9sb2NhbF9jb3B5GBsgASgLMiQubm9tb3MucnVudGltZS52Mi5QcmVzZXJ2ZWRMb2NhbENvcHlICIgBARIxCiRjdXN0b2RpYW5fd2FybWluZ19yZXRyeV9hZnRlcl9taWxsaXMYHCABKA1ICYgBAUIQCg5fcHJldmlvdXNfaGVhZEIPCg1fY3VycmVudF9oZWFkQg0KC19wdXNoX2Vycm9yQhIKEF9kaXNjb3ZlcnlfZXJyb3JCEAoOX29mZmVyX3JlY2VpcHRCEQoPX3JlbW90ZV9yZWZ1c2FsQhcKFV9jdXN0b2R5X2Rpc2FncmVlbWVudEISChBfcmVib3JuX3JlbW90ZWx5QhcKFV9wcmVzZXJ2ZWRfbG9jYWxfY29weUInCiVfY3VzdG9kaWFuX3dhcm1pbmdfcmV0cnlfYWZ0ZXJfbWlsbGlzIugBChNDdXN0b2R5T2ZmZXJSZWNlaXB0EhIKCnJlcXVlc3RfaWQYASABKAkSQwoJYWRtaXNzaW9uGAogASgLMi4ubm9tb3MucnVudGltZS52Mi5DdXN0b2R5T2ZmZXJBZG1pc3Npb25SZWNlaXB0SAASOAoHZmFpbHVyZRgLIAEoCzIlLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keU9mZmVyRmFpbHVyZUgAEjMKB2Jsb2NrZWQYDCABKAsyIC5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVCbG9ja2VkSABCCQoHb3V0Y29tZSKGAgocQ3VzdG9keU9mZmVyQWRtaXNzaW9uUmVjZWlwdBIMCgRtYWluGAEgASgJEhgKC3NlYWxlZF9tYWluGAIgASgJSACIAQESOwoIc2Vzc2lvbnMYAyADKAsyKS5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlTZXNzaW9uQWRtaXNzaW9uEjUKDmJpcnRoX291dGNvbWVzGAQgAygLMh0ubm9tb3Mua2VybmVsLnYxLkJpcnRoT3V0Y29tZRI6Cgd0aW1pbmdzGAUgASgLMikubm9tb3MucnVudGltZS52Mi5DdXN0b2R5QWRtaXNzaW9uVGltaW5nc0IOCgxfc2VhbGVkX21haW4iswEKE0N1c3RvZHlPZmZlckZhaWx1cmUSDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEhEKCWNvbXBvbmVudBgDIAEoCRIWCgl3b3Jrc3BhY2UYBCABKAlIAIgBARITCgZkb21haW4YBSABKAlIAYgBARIWCglkaXJlY3RpdmUYBiABKAlIAogBAUIMCgpfd29ya3NwYWNlQgkKB19kb21haW5CDAoKX2RpcmVjdGl2ZSJdChdSdW50aW1lVHJhbnNwb3J0RmFpbHVyZRIQCghlbmRwb2ludBgBIAEoCRIOCgZzdGF0dXMYAiABKBESDwoHcmVmdXNlZBgDIAEoCBIPCgdtZXNzYWdlGAQgASgJIsUBChBTeW5jUGhhc2VUaW1pbmdzEhMKC3B1c2hfbWlsbGlzGAEgASgBEhQKDGFkbWl0X21pbGxpcxgCIAEoARIXCg9wcmVmZXRjaF9taWxsaXMYAyABKAESFwoPY29udmVyZ2VfbWlsbGlzGAQgASgBEhIKCnB1c2hfYnl0ZXMYBSABKAQSFQoNc2VydmVyX21pbGxpcxgGIAEoARIVCg1vZmZlcl9pbl9wdXNoGAcgASgIEhIKCnB1bGxfYnl0ZXMYCCABKAQiNAofUmVmcmVzaFJlcGxpY2FDcmVkZW50aWFsUmVxdWVzdBIRCgl3b3Jrc3BhY2UYASABKAkiiwEKDEdpdFJlYWRMZWFzZRIWCg5mb3JtYXRfdmVyc2lvbhgBIAEoDRIRCgl3b3Jrc3BhY2UYAiABKAkSDgoGcmVtb3RlGAMgASgJEg0KBXRva2VuGAQgASgJEhMKC3R0bF9zZWNvbmRzGAUgASgNEhwKFGV4cGlyZXNfdW5peF9zZWNvbmRzGAYgASgEIm4KD0dpdEZldGNoUmVxdWVzdBIPCgdzZXNzaW9uGAEgASgJEi0KBWxlYXNlGAIgASgLMh4ubm9tb3MucnVudGltZS52Mi5HaXRSZWFkTGVhc2USDAoEd2FudBgDIAEoCRINCgVoYXZlcxgEIAMoCSJqCg5HaXRGZXRjaFJlc3VsdBIdChBzdGFnZWRfcGFja19maWxlGAEgASgJSACIAQESDAoEaGVhZBgCIAEoCRIWCg5yZWNlaXZlZF9ieXRlcxgDIAEoBEITChFfc3RhZ2VkX3BhY2tfZmlsZSK2AQoeRGVsaXZlcldvcmtzcGFjZUVmZmVjdHNSZXF1ZXN0EhYKDnNvdXJjZV9zZXNzaW9uGAEgASgJEhgKEHRhcmdldF93b3Jrc3BhY2UYAiABKAkSGgoNc291cmNlX2NvbW1pdBgDIAEoCUgAiAEBEh4KEXNvdXJjZV9vZmZlcl9wYXRoGAQgASgJSAGIAQFCEAoOX3NvdXJjZV9jb21taXRCFAoSX3NvdXJjZV9vZmZlcl9wYXRoIlEKHERlbGl2ZXJIdHRwT2JsaWdhdGlvblJlcXVlc3QSFgoOc291cmNlX3Nlc3Npb24YASABKAkSGQoRc291cmNlX29mZmVyX3BhdGgYAiABKAkiuwEKF0h0dHBPYmxpZ2F0aW9uRGVsaXZlcmVkEhgKEHNvdXJjZV93b3Jrc3BhY2UYASABKAkSEQoJYXR0ZW1wdGVkGAIgASgIEhEKCWRlbGl2ZXJlZBgDIAEoCBIRCglyZXRyeWFibGUYBCABKAgSGwoTcHJlcGFyYXRpb25fcGVuZGluZxgFIAEoCBIcCg9yZXRyeV9hdF9taWxsaXMYBiABKARIAIgBAUISChBfcmV0cnlfYXRfbWlsbGlzIjYKHFJlY292ZXJDb3JyZXNwb25kZW5jZVJlcXVlc3QSFgoOc291cmNlX3Nlc3Npb24YASABKAkirAEKF0NvcnJlc3BvbmRlbmNlUmVjb3ZlcmVkEhgKEHNvdXJjZV93b3Jrc3BhY2UYASABKAkSDwoHcGVuZGluZxgCIAEoCBIgChNuZXh0X3dha2VfYXRfbWlsbGlzGAMgASgESACIAQESGgoNcmV0YWluZWRfaGVhZBgEIAEoCUgBiAEBQhYKFF9uZXh0X3dha2VfYXRfbWlsbGlzQhAKDl9yZXRhaW5lZF9oZWFkIvYCChlXb3Jrc3BhY2VFZmZlY3RzRGVsaXZlcmVkEhgKEHNvdXJjZV93b3Jrc3BhY2UYASABKAkSGAoQdGFyZ2V0X3dvcmtzcGFjZRgCIAEoCRIRCglhdHRlbXB0ZWQYAyABKAQSEQoJZGVsaXZlcmVkGAQgASgEEg8KB3JlZnVzZWQYBSABKAQSEQoJcmV0cnlhYmxlGAYgASgEEhwKD3JldHJ5X2F0X21pbGxpcxgHIAEoBEgAiAEBEhsKE3ByZXBhcmF0aW9uX3BlbmRpbmcYCCABKAgSGAoLdGFyZ2V0X2hlYWQYCSABKAlIAYgBARIfChdzb3VyY2Vfb3V0Y29tZV9yZWNvcmRlZBgKIAEoCBJBCgxyZXRyeV9yZWFzb24YCyABKAsyKy5ub21vcy5ydW50aW1lLnYyLkNvcnJlc3BvbmRlbmNlUmV0cnlSZWFzb25CEgoQX3JldHJ5X2F0X21pbGxpc0IOCgxfdGFyZ2V0X2hlYWQiOwoZQ29ycmVzcG9uZGVuY2VSZXRyeVJlYXNvbhIOCgZyZWFzb24YASABKAkSDgoGZGV0YWlsGAIgASgJIqwDChtSZW1vdGVHZW5lcmF0ZWRPZmZlclJlcXVlc3QSFgoOc291cmNlX3Nlc3Npb24YASABKAkSGAoQdGFyZ2V0X3dvcmtzcGFjZRgCIAEoCRINCgVhY3RvchgDIAEoCRIVCg1hdXRob3Jfc2VjcmV0GAQgASgMEhIKCmF1dGhfdG9rZW4YBSABKAwSLgoEY2FsbBgGIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5EaXJlY3RpdmVDYWxsSAASQAoPbW9kZWxfbGlmZWN5Y2xlGAkgASgLMiUubm9tb3Mua2VybmVsLnYxLk1vZGVsTGlmZWN5Y2xlSW50ZW50SAASQQoRYmlydGhfY2VydGlmaWNhdGUYByABKAsyIS5ub21vcy5rZXJuZWwudjEuQmlydGhDZXJ0aWZpY2F0ZUgBiAEBEiEKFHJlcXVpcmVkX3RhcmdldF9oZWFkGAggASgJSAKIAQESEAoIbGF3X3VzZHoYCiABKAxCCAoGaW50ZW50QhQKEl9iaXJ0aF9jZXJ0aWZpY2F0ZUIXChVfcmVxdWlyZWRfdGFyZ2V0X2hlYWQiPwocUmVtb3RlR2VuZXJhdGVkT2ZmZXJBY2NlcHRlZBIRCgl3b3Jrc3BhY2UYASABKAkSDAoEaGVhZBgCIAEoCSLKAgoOUGVlckh0dHBFZmZlY3QSEQoJZWZmZWN0X2lkGAEgASgJEjAKBm1ldGhvZBgCIAEoDjIgLm5vbW9zLnJ1bnRpbWUudjIuUGVlckh0dHBNZXRob2QSCwoDdXJsGAMgASgJEhkKDGNvbnRlbnRfdHlwZRgEIAEoCUgAiAEBEgwKBGJvZHkYBSABKAwSGQoMYmVhcmVyX3Rva2VuGAYgASgMSAGIAQESEwoGYWNjZXB0GAcgASgJSAKIAQESGwoOdGltZW91dF9taWxsaXMYCCABKA1IA4gBARIcCg9pZGVtcG90ZW5jeV9rZXkYCSABKAlIBIgBAUIPCg1fY29udGVudF90eXBlQg8KDV9iZWFyZXJfdG9rZW5CCQoHX2FjY2VwdEIRCg9fdGltZW91dF9taWxsaXNCEgoQX2lkZW1wb3RlbmN5X2tleSJcChBQZWVySHR0cFJlc3BvbnNlEg4KBnN0YXR1cxgBIAEoDRIZCgxjb250ZW50X3R5cGUYAiABKAlIAIgBARIMCgRib2R5GAMgASgMQg8KDV9jb250ZW50X3R5cGUiXwoRUGVlckVmZmVjdEZhaWx1cmUSOQoGcmVhc29uGAEgASgOMikubm9tb3MucnVudGltZS52Mi5QZWVyRWZmZWN0RmFpbHVyZVJlYXNvbhIPCgdtZXNzYWdlGAIgASgJItAIChFQZWVyRWZmZWN0UmVjZWlwdBIRCgllZmZlY3RfaWQYASABKAkSNgoIcmVzcG9uc2UYCiABKAsyIi5ub21vcy5ydW50aW1lLnYyLlBlZXJIdHRwUmVzcG9uc2VIABI2CgdmYWlsdXJlGAsgASgLMiMubm9tb3MucnVudGltZS52Mi5QZWVyRWZmZWN0RmFpbHVyZUgAEjsKCWdpdF9mZXRjaBgMIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuUGVlckdpdEZldGNoUmVzcG9uc2VIABI5CghnaXRfcHVzaBgNIAEoCzIlLm5vbW9zLnJ1bnRpbWUudjIuUGVlckdpdFB1c2hSZXNwb25zZUgAEk0KFmJvcm5fY3VzdG9keV9wZXJzaXN0ZWQYDiABKAsyKy5ub21vcy5ydW50aW1lLnYyLlBlcnNpc3RCb3JuQ3VzdG9keVJlY2VpcHRIABJQChR3b3Jrc3BhY2VfZGlzY292ZXJlZBgPIAEoCzIwLm5vbW9zLmRpc2NvdmVyeS52MS5EaXNjb3ZlcmVkV29ya3NwYWNlUGxhY2VtZW50SAASQgoNbG9jYWxfY3VzdG9keRgQIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuUGVlckxvY2FsQ3VzdG9keVJlY2VpcHRIABI/ChFmcm9udGllcl9yZXRhaW5lZBgRIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuRnJvbnRpZXJSZXRhaW5lZEgAEiwKBXdva2VuGBIgASgLMhsubm9tb3MucnVudGltZS52Mi5QZWVyV29rZW5IABJJChRjcmVkZW50aWFsX3JlZnJlc2hlZBgTIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuUGVlckNyZWRlbnRpYWxSZWZyZXNoZWRIABI/Cg9kZXZpY2VfaWRlbnRpdHkYFCABKAsyJC5ub21vcy5ydW50aW1lLnYyLlBlZXJEZXZpY2VJZGVudGl0eUgAEjcKC2xhd19wYWNrYWdlGBUgASgLMiAubm9tb3MucnVudGltZS52Mi5QZWVyTGF3UGFja2FnZUgAEk4KE2hpc3RvcnlfYWNxdWlzaXRpb24YFiABKAsyLy5ub21vcy5ydW50aW1lLnYyLlBlZXJIaXN0b3J5QWNxdWlzaXRpb25SZWNlaXB0SAASQQoQY29uc29sZV9lbnJvbGxlZBgXIAEoCzIlLm5vbW9zLnJ1bnRpbWUudjIuUGVlckNvbnNvbGVFbnJvbGxlZEgAElIKGWNvbnNvbGVfZW5yb2xtZW50X3JlZnVzZWQYGCABKAsyLS5ub21vcy5ydW50aW1lLnYyLlBlZXJDb25zb2xlRW5yb2xtZW50UmVmdXNlZEgAEjUKBnN0cmVhbRgZIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuUGVlclN0cmVhbVJlY2VpcHRIAEIJCgdvdXRjb21lIqcCChJQZWVyR2l0RmV0Y2hFZmZlY3QSEQoJZWZmZWN0X2lkGAEgASgJEi0KBWxlYXNlGAIgASgLMh4ubm9tb3MucnVudGltZS52Mi5HaXRSZWFkTGVhc2USEQoEd2FudBgDIAEoCUgAiAEBEg0KBWhhdmVzGAQgAygJEhEKCXJlZmVyZW5jZRgFIAEoCRISCgVkZXB0aBgGIAEoDUgBiAEBEjMKCWFsb25nc2lkZRgHIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuUGVlckh0dHBFZmZlY3QSPgoOYWxvbmdzaWRlX3JlZnMYCCABKAsyJi5ub21vcy5ydW50aW1lLnYyLlBlZXJHaXRSZWZzQWxvbmdzaWRlQgcKBV93YW50QggKBl9kZXB0aCLQAQoUUGVlckdpdEZldGNoUmVzcG9uc2USDAoEcGFjaxgBIAEoDBIMCgRoZWFkGAIgASgJEhYKDnJlY2VpdmVkX2J5dGVzGAMgASgEEg8KB3NoYWxsb3cYBCADKAkSNQoJYWxvbmdzaWRlGAUgASgLMiIubm9tb3MucnVudGltZS52Mi5QZWVySHR0cFJlc3BvbnNlEjwKDmFsb25nc2lkZV9yZWZzGAYgASgLMiQubm9tb3MucnVudGltZS52Mi5QZWVyR2l0UmVmc0ZldGNoZWQimAEKEVBlZXJHaXRQdXNoRWZmZWN0EhEKCWVmZmVjdF9pZBgBIAEoCRIOCgZyZW1vdGUYAiABKAkSGQoMYmVhcmVyX3Rva2VuGAMgASgMSACIAQESGAoQc2Vzc2lvbl9pZGVudGl0eRgEIAEoCRIMCgRoZWFkGAUgASgJEgwKBHBhY2sYBiABKAxCDwoNX2JlYXJlcl90b2tlbiJYChNQZWVyR2l0UHVzaFJlc3BvbnNlEhEKCXJlZmVyZW5jZRgBIAEoCRIMCgRoZWFkGAIgASgJEhIKCnNlbnRfYnl0ZXMYAyABKAQSDAoEbm9vcBgEIAEoCCItCgtSZXRhaW5lZFJlZhIRCglyZWZlcmVuY2UYASABKAkSCwoDb2lkGAIgASgJIocBChRSZXRhaW5Gcm9udGllckVmZmVjdBIRCgllZmZlY3RfaWQYASABKAkSEQoJd29ya3NwYWNlGAIgASgJEg4KBmJyYW5jaBgDIAEoCRIMCgRoZWFkGAQgASgJEisKBHJlZnMYBSADKAsyHS5ub21vcy5ydW50aW1lLnYyLlJldGFpbmVkUmVmIqIBChBGcm9udGllclJldGFpbmVkEhEKCXdvcmtzcGFjZRgBIAEoCRIOCgZicmFuY2gYAiABKAkSDAoEaGVhZBgDIAEoCRIQCghyZXRhaW5lZBgEIAEoCBITCgZkZXRhaWwYBSABKAlIAIgBARIrCgRyZWZzGAYgAygLMh0ubm9tb3MucnVudGltZS52Mi5SZXRhaW5lZFJlZkIJCgdfZGV0YWlsIl4KGFBlcnNpc3RCb3JuQ3VzdG9keUVmZmVjdBIRCgllZmZlY3RfaWQYASABKAkSLwoIY2hpbGRyZW4YAiADKAsyHS5ub21vcy5ydW50aW1lLnYyLkJvcm5DdXN0b2R5IpcBChRQZXJzaXN0ZWRCb3JuQ3VzdG9keRIRCgl3b3Jrc3BhY2UYASABKAkSDAoEaGVhZBgCIAEoCRIRCglwZXJzaXN0ZWQYAyABKAgSEwoGZGV0YWlsGAQgASgJSACIAQESKwoEcmVmcxgFIAMoCzIdLm5vbW9zLnJ1bnRpbWUudjIuUmV0YWluZWRSZWZCCQoHX2RldGFpbCJVChlQZXJzaXN0Qm9ybkN1c3RvZHlSZWNlaXB0EjgKCGNoaWxkcmVuGAEgAygLMiYubm9tb3MucnVudGltZS52Mi5QZXJzaXN0ZWRCb3JuQ3VzdG9keSLOBwoVQ29ycmVzcG9uZGVuY2VQZW5kaW5nEg8KB3dvcmtfaWQYASABKAkSMAoEaHR0cBgCIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuUGVlckh0dHBFZmZlY3RIABI5CglnaXRfZmV0Y2gYAyABKAsyJC5ub21vcy5ydW50aW1lLnYyLlBlZXJHaXRGZXRjaEVmZmVjdEgAEjcKCGdpdF9wdXNoGAQgASgLMiMubm9tb3MucnVudGltZS52Mi5QZWVyR2l0UHVzaEVmZmVjdEgAEkoKFHBlcnNpc3RfYm9ybl9jdXN0b2R5GAUgASgLMioubm9tb3MucnVudGltZS52Mi5QZXJzaXN0Qm9ybkN1c3RvZHlFZmZlY3RIABJNChN3b3Jrc3BhY2VfZGlzY292ZXJ5GAYgASgLMi4ubm9tb3MucnVudGltZS52Mi5QZWVyV29ya3NwYWNlRGlzY292ZXJ5RWZmZWN0SAASQQoNbG9jYWxfY3VzdG9keRgHIAEoCzIoLm5vbW9zLnJ1bnRpbWUudjIuUGVlckxvY2FsQ3VzdG9keUVmZmVjdEgAEkEKD3JldGFpbl9mcm9udGllchgIIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuUmV0YWluRnJvbnRpZXJFZmZlY3RIABIwCgR3YWtlGAkgASgLMiAubm9tb3MucnVudGltZS52Mi5QZWVyV2FrZUVmZmVjdEgAEksKEnJlZnJlc2hfY3JlZGVudGlhbBgKIAEoCzItLm5vbW9zLnJ1bnRpbWUudjIuUGVlckNyZWRlbnRpYWxSZWZyZXNoRWZmZWN0SAASRQoPZGV2aWNlX2lkZW50aXR5GAsgASgLMioubm9tb3MucnVudGltZS52Mi5QZWVyRGV2aWNlSWRlbnRpdHlFZmZlY3RIABI9CgtsYXdfcGFja2FnZRgMIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuUGVlckxhd1BhY2thZ2VFZmZlY3RIABJNChNoaXN0b3J5X2FjcXVpc2l0aW9uGA0gASgLMi4ubm9tb3MucnVudGltZS52Mi5QZWVySGlzdG9yeUFjcXVpc2l0aW9uRWZmZWN0SAASSQoRY29uc29sZV9lbnJvbG1lbnQYDiABKAsyLC5ub21vcy5ydW50aW1lLnYyLlBlZXJDb25zb2xlRW5yb2xtZW50RWZmZWN0SAASNAoGc3RyZWFtGA8gASgLMiIubm9tb3MucnVudGltZS52Mi5QZWVyU3RyZWFtRWZmZWN0SABCCAoGZWZmZWN0IqABChpQZWVyQ29uc29sZUVucm9sbWVudEVmZmVjdBIRCgllZmZlY3RfaWQYASABKAkSFwoPZGV2aWNlX2lkZW50aXR5GAIgASgJEhIKCmNhcGFiaWxpdHkYAyABKAkSDwoHY29uc29sZRgEIAEoCRIOCgZ0ZW5hbnQYBSABKAkSDQoFc2NvcGUYBiABKAkSEgoKd29ya3NwYWNlcxgHIAMoCSKpAQoTUGVlckNvbnNvbGVFbnJvbGxlZBIRCglwcmluY2lwYWwYASABKAkSEAoIa2V5X2hhc2gYAiABKAkSPwoFaGVhZHMYAyADKAsyMC5ub21vcy5ydW50aW1lLnYyLlBlZXJDb25zb2xlRW5yb2xsZWQuSGVhZHNFbnRyeRosCgpIZWFkc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEicgobUGVlckNvbnNvbGVFbnJvbG1lbnRSZWZ1c2VkEg4KBnN0YXR1cxgBIAEoDRIPCgdtZXNzYWdlGAIgASgJEgwKBGNvZGUYAyABKAkSFgoJcmV0cnlhYmxlGAQgASgISACIAQFCDAoKX3JldHJ5YWJsZSJjChxQZWVySGlzdG9yeUFjcXVpc2l0aW9uRWZmZWN0EhEKCWVmZmVjdF9pZBgBIAEoCRIRCgl3b3Jrc3BhY2UYAiABKAkSHQoVY3JlZGVudGlhbF9jYXBhYmlsaXR5GAMgASgJIlUKHVBlZXJIaXN0b3J5QWNxdWlzaXRpb25SZWNlaXB0EhEKCXdvcmtzcGFjZRgBIAEoCRIPCgdjaGFuZ2VkGAIgASgIEhAKCGNvbXBsZXRlGAMgASgIIjkKDlBlZXJXYWtlRWZmZWN0EhEKCWVmZmVjdF9pZBgBIAEoCRIUCgxkZWxheV9taWxsaXMYAiABKA0iCwoJUGVlcldva2VuItYBChtQZWVyQ3JlZGVudGlhbFJlZnJlc2hFZmZlY3QSEQoJZWZmZWN0X2lkGAEgASgJEhIKCmNhcGFiaWxpdHkYAiABKAkSHQoQZGV2aWNlX2NoYWxsZW5nZRgDIAEoCUgAiAEBEhQKDGFsbG93X2NhY2hlZBgEIAEoCBInChpyZWplY3RlZF9hdXRoX3Rva2VuX3NoYTI1NhgFIAEoDEgBiAEBQhMKEV9kZXZpY2VfY2hhbGxlbmdlQh0KG19yZWplY3RlZF9hdXRoX3Rva2VuX3NoYTI1NiJvChdQZWVyQ3JlZGVudGlhbFJlZnJlc2hlZBIXCgphdXRoX3Rva2VuGAEgASgMSACIAQESGgoNYXV0aG9yX3NlY3JldBgCIAEoDEgBiAEBQg0KC19hdXRoX3Rva2VuQhAKDl9hdXRob3Jfc2VjcmV0IsYCChhQZWVyRGV2aWNlSWRlbnRpdHlFZmZlY3QSEQoJZWZmZWN0X2lkGAEgASgJEhAKCGlkZW50aXR5GAIgASgJEjgKBGxvYWQYAyABKAsyKC5ub21vcy5ydW50aW1lLnYyLlBlZXJEZXZpY2VJZGVudGl0eUxvYWRIABI4CgRzYXZlGAQgASgLMigubm9tb3MucnVudGltZS52Mi5QZWVyRGV2aWNlSWRlbnRpdHlTYXZlSAASQQoNbG9hZF9yZWNvdmVyeRgFIAEoCzIoLm5vbW9zLnJ1bnRpbWUudjIuUGVlckRldmljZVJlY292ZXJ5TG9hZEgAEkEKDXNhdmVfcmVjb3ZlcnkYBiABKAsyKC5ub21vcy5ydW50aW1lLnYyLlBlZXJEZXZpY2VSZWNvdmVyeVNhdmVIAEILCglvcGVyYXRpb24iGAoWUGVlckRldmljZUlkZW50aXR5TG9hZCIoChZQZWVyRGV2aWNlSWRlbnRpdHlTYXZlEg4KBnNlY3JldBgBIAEoDCIYChZQZWVyRGV2aWNlUmVjb3ZlcnlMb2FkIlAKFlBlZXJEZXZpY2VSZWNvdmVyeVNhdmUSNgoGcmVjb3JkGAEgASgLMiYubm9tb3MucnVudGltZS52Mi5EZXZpY2VSZWNvdmVyeVJlY29yZCKLAgoURGV2aWNlUmVjb3ZlcnlSZWNvcmQSDwoHdmVyc2lvbhgBIAEoDRITCgthcHBsaWNhdGlvbhgCIAEoCRIRCglwcmluY2lwYWwYAyABKAkSFwoPcHJldmlvdXNfc2VjcmV0GAQgASgMEhgKEGNhbmRpZGF0ZV9zZWNyZXQYBSABKAwSFwoPZW5yb2xsbWVudF9oZWFkGAYgASgJEhUKDXJlY292ZXJ5X2hlYWQYByABKAkSRAoRcGVuZGluZ19hZG1pc3Npb24YCCABKAsyKS5ub21vcy5ydW50aW1lLnYyLkRldmljZVJlY292ZXJ5QWRtaXNzaW9uEhEKCWNvbXBsZXRlZBgJIAEoCCKxAQoXRGV2aWNlUmVjb3ZlcnlBZG1pc3Npb24SPQoFc3RhZ2UYASABKA4yLi5ub21vcy5ydW50aW1lLnYyLkRldmljZVJlY292ZXJ5QWRtaXNzaW9uU3RhZ2USEgoKcmVxdWVzdF9pZBgCIAEoBBIRCgl3b3Jrc3BhY2UYAyABKAkSMAoGZWZmZWN0GAQgASgLMiAubm9tb3MucnVudGltZS52Mi5QZWVySHR0cEVmZmVjdCJuChJQZWVyRGV2aWNlSWRlbnRpdHkSEwoGc2VjcmV0GAEgASgMSACIAQESOAoIcmVjb3ZlcnkYAiABKAsyJi5ub21vcy5ydW50aW1lLnYyLkRldmljZVJlY292ZXJ5UmVjb3JkQgkKB19zZWNyZXQiPQoUUGVlckxhd1BhY2thZ2VFZmZlY3QSEQoJZWZmZWN0X2lkGAEgASgJEhIKCmxhd19zaGEyNTYYAiABKAkiIgoOUGVlckxhd1BhY2thZ2USEAoIbGF3X3VzZHoYASABKAwiRAocUGVlcldvcmtzcGFjZURpc2NvdmVyeUVmZmVjdBIRCgllZmZlY3RfaWQYASABKAkSEQoJd29ya3NwYWNlGAIgASgJIj4KFlBlZXJMb2NhbEN1c3RvZHlFZmZlY3QSEQoJZWZmZWN0X2lkGAEgASgJEhEKCXdvcmtzcGFjZRgCIAEoCSKDAQoXUGVlckxvY2FsQ3VzdG9keVJlY2VpcHQSEQoJd29ya3NwYWNlGAEgASgJEhEKCWF2YWlsYWJsZRgCIAEoCBI2CgdvcGVuaW5nGAMgASgLMiAubm9tb3MucnVudGltZS52Mi5DdXN0b2R5T3BlbmluZ0gAiAEBQgoKCF9vcGVuaW5nIi8KGkhpc3RvcnlBY3F1aXNpdGlvblJlY292ZXJ5EhEKCXdvcmtzcGFjZRgBIAEoCSLeAQodQ29udGludWVDb3JyZXNwb25kZW5jZVJlcXVlc3QSDwoHd29ya19pZBgBIAEoCRI0CgdyZWNlaXB0GAIgASgLMiMubm9tb3MucnVudGltZS52Mi5QZWVyRWZmZWN0UmVjZWlwdBJWChtyZWNvdmVyX2hpc3RvcnlfYWNxdWlzaXRpb24YAyABKAsyLC5ub21vcy5ydW50aW1lLnYyLkhpc3RvcnlBY3F1aXNpdGlvblJlY292ZXJ5SACIAQFCHgocX3JlY292ZXJfaGlzdG9yeV9hY3F1aXNpdGlvbiKGAgoUUmVtb3RlT2ZmZXJBZG1pc3Npb24SEQoJd29ya3NwYWNlGAEgASgJEgwKBG1haW4YAiABKAkSGAoLc2VhbGVkX21haW4YAyABKAlIAIgBARIvCgd2ZXJkaWN0GAQgASgLMh4ubm9tb3Mua2VybmVsLnYxLk9mZmVyUmVzcG9uc2USMwoMYm9ybl9jdXN0b2R5GAUgAygLMh0ubm9tb3MucnVudGltZS52Mi5Cb3JuQ3VzdG9keRITCgtyZXN1bHRfcGFjaxgGIAEoDBIYCgtyZXN1bHRfYmFzZRgHIAEoCUgBiAEBQg4KDF9zZWFsZWRfbWFpbkIOCgxfcmVzdWx0X2Jhc2UiSgoOQm9ybkN1c3RvZHlSZWYSKgoDcmVmGAEgASgLMh0ubm9tb3MucnVudGltZS52Mi5SZXRhaW5lZFJlZhIMCgRwYWNrGAIgASgMIoEBCgtCb3JuQ3VzdG9keRItCgVjaGlsZBgBIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5Cb3JuV29ya3NwYWNlEgwKBHBhY2sYAiABKAwSNQoLcHVibGljYXRpb24YAyADKAsyIC5ub21vcy5ydW50aW1lLnYyLkJvcm5DdXN0b2R5UmVmIqoDChhDdXN0b2R5T2ZmZXJCYXRjaFJlcXVlc3QSGAoQcHJvdG9jb2xfdmVyc2lvbhgBIAEoDRISCgpyZXF1ZXN0X2lkGAIgASgJEjcKBmlubGluZRgDIAEoCzIlLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUlubGluZU9mZmVyc0gAEkYKEXNlc3Npb25fY2FuZGlkYXRlGAQgASgLMikubm9tb3MucnVudGltZS52Mi5DdXN0b2R5U2Vzc2lvbkNhbmRpZGF0ZUgAEhYKCWJhc2VfaGVhZBgFIAEoCUgBiAEBEhUKDWV2aWRlbmNlX3BhY2sYBiABKAwSGgoNb2JzZXJ2ZWRfaGVhZBgHIAEoCUgCiAEBEhkKEWZhc3RfZm9yd2FyZF9vbmx5GAggASgIEhwKD2NvbnRpbnVlc19hZnRlchgJIAEoCUgDiAEBEh0KFWFja25vd2xlZGdlX2FkbWlzc2lvbhgKIAEoCEIICgZzb3VyY2VCDAoKX2Jhc2VfaGVhZEIQCg5fb2JzZXJ2ZWRfaGVhZEISChBfY29udGludWVzX2FmdGVyIu4ECg5MaXZlT2ZmZXJGcmFtZRIyCghmcm9udGllchgBIAEoCzIeLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZUZyb250aWVySAASPAoGb2ZmZXJzGAIgASgLMioubm9tb3MucnVudGltZS52Mi5DdXN0b2R5T2ZmZXJCYXRjaFJlcXVlc3RIABI0CglhZG1pc3Npb24YAyABKAsyHy5ub21vcy5ydW50aW1lLnYyLkxpdmVBZG1pc3Npb25IABJFChJjaGVja3BvaW50X3JlcXVlc3QYBCABKAsyJy5ub21vcy5ydW50aW1lLnYyLkxpdmVDaGVja3BvaW50UmVxdWVzdEgAEkEKEGNoZWNrcG9pbnRfb2ZmZXIYBSABKAsyJS5ub21vcy5ydW50aW1lLnYyLkxpdmVDaGVja3BvaW50T2ZmZXJIABJBChBjaGVja3BvaW50X2NodW5rGAYgASgLMiUubm9tb3MucnVudGltZS52Mi5MaXZlQ2hlY2twb2ludENodW5rSAASPwoPaGlzdG9yeV9yZXF1ZXN0GAcgASgLMiQubm9tb3MucnVudGltZS52Mi5MaXZlSGlzdG9yeVJlcXVlc3RIABI3CgtyZWZfcmVxdWVzdBgIIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZVJlZlJlcXVlc3RIABIqCgRwYWNrGAkgASgLMhoubm9tb3MucnVudGltZS52Mi5MaXZlUGFja0gAEjYKB3JlZnVzYWwYCiABKAsyIy5ub21vcy5ydW50aW1lLnYyLkxpdmVTdHJlYW1SZWZ1c2FsSABCCQoHbWVzc2FnZSJaCg1MaXZlQWRtaXNzaW9uEhIKCnJlcXVlc3RfaWQYASABKAkSNQoJYWRtaXNzaW9uGAIgASgLMiIubm9tb3MucnVudGltZS52Mi5DdXN0b2R5QWRtaXNzaW9uIt4BCgxMaXZlRnJvbnRpZXISDAoEaGVhZBgBIAEoCRIQCghyZXNwb25zZRgCIAEoCBISCgptYXhfb2ZmZXJzGAMgASgNEhwKFHJlbW91bnRfYWZ0ZXJfb2ZmZXJzGAQgASgNEhcKD291dGNvbWVzX2RpZ2VzdBgFIAEoCRIvCghvdXRjb21lcxgGIAMoCzIdLm5vbW9zLnJ1bnRpbWUudjIuUmV0YWluZWRSZWYSEwoGc2VhbGVkGAcgASgJSACIAQESEgoKaGVsZF90cmVlcxgIIAMoCUIJCgdfc2VhbGVkIpABChVMaXZlQ2hlY2twb2ludFJlcXVlc3QSEQoEaGVhZBgBIAEoCUgAiAEBEhQKB3BhY2tfaWQYAiABKAlIAYgBARIOCgZvZmZzZXQYAyABKAQSFQoNd2luZG93X2NodW5rcxgEIAEoDRISCgpoZWxkX3RyZWVzGAUgAygJQgcKBV9oZWFkQgoKCF9wYWNrX2lkIs4CChNMaXZlQ2hlY2twb2ludE9mZmVyEgwKBGhlYWQYASABKAkSDwoHcGFja19pZBgCIAEoCRINCgVieXRlcxgDIAEoBBITCgtjaHVua19ieXRlcxgEIAEoDRIPCgdzaGFsbG93GAYgAygJEi8KCG91dGNvbWVzGAcgAygLMh0ubm9tb3MucnVudGltZS52Mi5SZXRhaW5lZFJlZhIPCgdyZW1vdW50GAggASgIEhoKDW9mZmVyc19iZWhpbmQYCSABKARIAIgBARISCgpyZXF1ZXN0X2lkGAogASgJEhMKBnNlYWxlZBgLIAEoCUgBiAEBEgwKBG1haW4YDCABKAkSFQoNb21pdHRlZF90cmVlcxgNIAMoCRIUCgxzaGFyZWRfdHJlZXMYDiADKAlCEAoOX29mZmVyc19iZWhpbmRCCQoHX3NlYWxlZEoECAUQBiJZChNMaXZlQ2hlY2twb2ludENodW5rEg8KB3BhY2tfaWQYASABKAkSDgoGb2Zmc2V0GAIgASgEEg0KBWJ5dGVzGAMgASgMEhIKCnJlcXVlc3RfaWQYBCABKAkikgEKEkxpdmVIaXN0b3J5UmVxdWVzdBISCgpyZXF1ZXN0X2lkGAEgASgJEhAKCGJvdW5kYXJ5GAIgASgJEg0KBWRlcHRoGAMgASgNEhQKB3BhY2tfaWQYBCABKAlIAIgBARIOCgZvZmZzZXQYBSABKAQSFQoNd2luZG93X2NodW5rcxgGIAEoDUIKCghfcGFja19pZCJiCg5MaXZlUmVmUmVxdWVzdBISCgpyZXF1ZXN0X2lkGAEgASgJEhEKCXJlZmVyZW5jZRgCIAEoCRIRCgR3YW50GAMgASgJSACIAQESDQoFd2FudHMYBCADKAlCBwoFX3dhbnQinAEKCExpdmVQYWNrEhIKCnJlcXVlc3RfaWQYASABKAkSEQoJcmVmZXJlbmNlGAIgASgJEgwKBGhlYWQYAyABKAkSDAoEcGFjaxgEIAEoDBIPCgdzaGFsbG93GAUgAygJEgwKBGJhc2UYBiABKAkSDgoGb2ZmZXJzGAcgASgNEhMKBnNlYWxlZBgIIAEoCUgAiAEBQgkKB19zZWFsZWQifgoRTGl2ZVN0cmVhbVJlZnVzYWwSEgoKcmVxdWVzdF9pZBgBIAEoCRIMCgRjb2RlGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSHwoScmV0cnlfYWZ0ZXJfbWlsbGlzGAQgASgNSACIAQFCFQoTX3JldHJ5X2FmdGVyX21pbGxpcyL7AQoRTGl2ZVN0cmVhbVJlcXVlc3QSMgoIZnJvbnRpZXIYASABKAsyHi5ub21vcy5ydW50aW1lLnYyLkxpdmVGcm9udGllckgAEj0KCmNoZWNrcG9pbnQYAiABKAsyJy5ub21vcy5ydW50aW1lLnYyLkxpdmVDaGVja3BvaW50UmVxdWVzdEgAEjcKB2hpc3RvcnkYAyABKAsyJC5ub21vcy5ydW50aW1lLnYyLkxpdmVIaXN0b3J5UmVxdWVzdEgAEi8KA3JlZhgEIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZVJlZlJlcXVlc3RIAEIJCgdyZXF1ZXN0IkQKEExpdmVTdHJlYW1BbnN3ZXISMAoGZnJhbWVzGAEgAygLMiAubm9tb3MucnVudGltZS52Mi5MaXZlT2ZmZXJGcmFtZSLiAgoQUGVlclN0cmVhbUVmZmVjdBIRCgllZmZlY3RfaWQYASABKAkSEQoJd29ya3NwYWNlGAIgASgJEj0KCmNoZWNrcG9pbnQYAyABKAsyJy5ub21vcy5ydW50aW1lLnYyLkxpdmVDaGVja3BvaW50UmVxdWVzdEgAEjcKB2hpc3RvcnkYBCABKAsyJC5ub21vcy5ydW50aW1lLnYyLkxpdmVIaXN0b3J5UmVxdWVzdEgAEi8KA3JlZhgFIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZVJlZlJlcXVlc3RIABIvCgVsZXZlbBgGIAEoCzIeLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZUZyb250aWVySAASEgoKc3RhcnRfb25seRgHIAEoCBIQCgh1cHN0cmVhbRgIIAEoCRIdChVjcmVkZW50aWFsX2NhcGFiaWxpdHkYCSABKAlCCQoHcmVxdWVzdCLjAgoRUGVlclN0cmVhbVJlY2VpcHQSKgoEcGFjaxgBIAEoCzIaLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZVBhY2tIABIPCgVsZXZlbBgCIAEoCUgAEjYKB3JlZnVzYWwYAyABKAsyIy5ub21vcy5ydW50aW1lLnYyLkxpdmVTdHJlYW1SZWZ1c2FsSAASLwoIb3V0Y29tZXMYBCADKAsyHS5ub21vcy5ydW50aW1lLnYyLlJldGFpbmVkUmVmEhYKDnJlY2VpdmVkX2J5dGVzGAUgASgEEhMKBnNlYWxlZBgGIAEoCUgBiAEBEh0KEHN0YWdlZF9wYWNrX2ZpbGUYByABKAlIAogBARIRCgRtYWluGAggASgJSAOIAQESFQoNb21pdHRlZF90cmVlcxgJIAMoCUIJCgdvdXRjb21lQgkKB19zZWFsZWRCEwoRX3N0YWdlZF9wYWNrX2ZpbGVCBwoFX21haW4iawoQUGVlclNvY2tldEVmZmVjdBIVCg1jb25uZWN0aW9uX2lkGAEgASgJEhIKCG9wZW5fdXJsGAIgASgJSAASDgoEc2VuZBgDIAEoDEgAEg8KBWNsb3NlGAQgASgISABCCwoJb3BlcmF0aW9uIqkBChFQZWVyU29ja2V0UmVjZWlwdBIVCg1jb25uZWN0aW9uX2lkGAEgASgJEhAKBm9wZW5lZBgCIAEoCEgAEhIKCHJlY2VpdmVkGAMgASgMSAASEAoGY2xvc2VkGAQgASgISAASNgoHY2xvc3VyZRgFIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuUGVlclNvY2tldENsb3N1cmVIAEINCgtvYnNlcnZhdGlvbiKNAQoRUGVlclNvY2tldENsb3N1cmUSEQoEY29kZRgBIAEoDUgAiAEBEg4KBnJlYXNvbhgCIAEoCRINCgVjbGVhbhgDIAEoCBI9Cglpbml0aWF0b3IYBCABKA4yKi5ub21vcy5ydW50aW1lLnYyLlBlZXJTb2NrZXRDbG9zZUluaXRpYXRvckIHCgVfY29kZSLiAwoPTGl2ZUxpbmtDbG9zdXJlEhUKDWNvbm5lY3Rpb25faWQYASABKAkSEQoJd29ya3NwYWNlGAIgASgJEiwKBHJvbGUYAyABKA4yHi5ub21vcy5ydW50aW1lLnYyLkxpdmVMaW5rUm9sZRIzCgZzb2NrZXQYBCABKAsyIy5ub21vcy5ydW50aW1lLnYyLlBlZXJTb2NrZXRDbG9zdXJlEh0KFWNsb3NlZF9hdF91bml4X21pbGxpcxgFIAEoBBITCgtvcGVuX21pbGxpcxgGIAEoBBISCgphZG1pc3Npb25zGAcgASgNEiYKGWxhc3RfYWRtaXNzaW9uX3JlcXVlc3RfaWQYCCABKAlIAIgBARIfChJsYXN0X2FkbWl0dGVkX21haW4YCSABKAlIAYgBARIdChBsYXN0X3NlYWxlZF9tYWluGAogASgJSAKIAQESGgoNbGFzdF9mcm9udGllchgLIAEoCUgDiAEBEhoKEnVuYW5zd2VyZWRfYmF0Y2hlcxgMIAEoDUIcChpfbGFzdF9hZG1pc3Npb25fcmVxdWVzdF9pZEIVChNfbGFzdF9hZG1pdHRlZF9tYWluQhMKEV9sYXN0X3NlYWxlZF9tYWluQhAKDl9sYXN0X2Zyb250aWVyIi0KElBlZXJTb2NrZXRPYnNlcnZlZBIXCg9ydW5nX3dvcmtzcGFjZXMYASADKAkiPQoXRXhwb3J0TGl2ZU9mZmVyc1JlcXVlc3QSDwoHc2Vzc2lvbhgBIAEoCRIRCgliYXNlX2hlYWQYAiABKAkiTgoSQ3VzdG9keUludGVudE9mZmVyEg8KB3Nlc3Npb24YASABKAkSEgoKY29tbWl0X29pZBgCIAEoCRITCgtjaGFuZ2VfdXNkYRgDIAEoDCJLChNDdXN0b2R5SW5saW5lT2ZmZXJzEjQKBm9mZmVycxgBIAMoCzIkLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUludGVudE9mZmVyIiwKF0N1c3RvZHlTZXNzaW9uQ2FuZGlkYXRlEhEKCXJlZmVyZW5jZRgBIAEoCSKCBAoQQ3VzdG9keUFkbWlzc2lvbhIMCgRtYWluGAEgASgJEhgKC3NlYWxlZF9tYWluGAIgASgJSACIAQESOwoIc2Vzc2lvbnMYAyADKAsyKS5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlTZXNzaW9uQWRtaXNzaW9uEjUKDmJpcnRoX291dGNvbWVzGAQgAygLMh0ubm9tb3Mua2VybmVsLnYxLkJpcnRoT3V0Y29tZRIzCgxib3JuX2N1c3RvZHkYBSADKAsyHS5ub21vcy5ydW50aW1lLnYyLkJvcm5DdXN0b2R5EhMKC3Jlc3VsdF9wYWNrGAYgASgMEhgKC3Jlc3VsdF9iYXNlGAcgASgJSAGIAQESOgoHdGltaW5ncxgIIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUFkbWlzc2lvblRpbWluZ3MSHgoRcmVjb3ZlcnlfcmVxdWlyZWQYCSABKAhIAogBARJGChFsb2NhbF9tYWludGVuYW5jZRgKIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuTWFpbnRlbmFuY2VTY2hlZHVsZWRIA4gBAUIOCgxfc2VhbGVkX21haW5CDgoMX3Jlc3VsdF9iYXNlQhQKEl9yZWNvdmVyeV9yZXF1aXJlZEIUChJfbG9jYWxfbWFpbnRlbmFuY2UiZQoXQ3VzdG9keVNlc3Npb25BZG1pc3Npb24SDwoHc2Vzc2lvbhgBIAEoCRI5CgdpbnRlbnRzGAIgAygLMigubm9tb3MucnVudGltZS52Mi5DdXN0b2R5SW50ZW50QWRtaXNzaW9uItQDChZDdXN0b2R5SW50ZW50QWRtaXNzaW9uEhIKCmNvbW1pdF9vaWQYASABKAkSFgoJaW50ZW50X2lkGAIgASgJSAGIAQESOwoIYWRtaXR0ZWQYCiABKAsyJy5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlJbnRlbnRBZG1pdHRlZEgAEjkKB3NraXBwZWQYCyABKAsyJi5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlJbnRlbnRTa2lwcGVkSAASOQoHcmVmdXNlZBgMIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUludGVudFJlZnVzZWRIABJECg1kZWFkX2xldHRlcmVkGA0gASgLMisubm9tb3MucnVudGltZS52Mi5DdXN0b2R5SW50ZW50RGVhZExldHRlcmVkSAASOQoHYmxvY2tlZBgOIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUludGVudEJsb2NrZWRIABJBCgtxdWFyYW50aW5lZBgPIAEoCzIqLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUludGVudFF1YXJhbnRpbmVkSABCCQoHb3V0Y29tZUIMCgpfaW50ZW50X2lkIpABChVDdXN0b2R5SW50ZW50QWRtaXR0ZWQSDAoEaGVhZBgBIAEoCRIzCgdjcmVhdGVkGAIgAygLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyQWdncmVnYXRlUmVmEjQKCGFmZmVjdGVkGAMgAygLMiIubm9tb3Mua2VybmVsLnYxLk9mZmVyQWdncmVnYXRlUmVmIi8KFEN1c3RvZHlJbnRlbnRTa2lwcGVkEhcKD2FscmVhZHlfb25fbWFpbhgBIAEoCCKaAQoUQ3VzdG9keUludGVudFJlZnVzZWQSDwoHbWVzc2FnZRgBIAEoCRIRCgRoaW50GAMgASgJSACIAQESNAoHcmVmdXNhbBgEIAEoCzIeLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxSZWZ1c2FsSAGIAQFCBwoFX2hpbnRCCgoIX3JlZnVzYWxKBAgCEANSDWRlYWRfbGV0dGVyZWQifgoZQ3VzdG9keUludGVudERlYWRMZXR0ZXJlZBIPCgdtZXNzYWdlGAEgASgJEhEKBGhpbnQYAiABKAlIAIgBARIeChFjdXN0b2R5X3JlZmVyZW5jZRgDIAEoCUgBiAEBQgcKBV9oaW50QhQKEl9jdXN0b2R5X3JlZmVyZW5jZSImChRDdXN0b2R5SW50ZW50QmxvY2tlZBIOCgZkZXRhaWwYASABKAkilQEKGEN1c3RvZHlJbnRlbnRRdWFyYW50aW5lZBIOCgZyZWFzb24YASABKAkSGQoRYXV0aG9yZWRfbGF3X2hhc2gYAiABKAkSGAoQY3VycmVudF9sYXdfaGFzaBgDIAEoCRIeChFjdXN0b2R5X3JlZmVyZW5jZRgEIAEoCUgAiAEBQhQKEl9jdXN0b2R5X3JlZmVyZW5jZSLtAQoXQ3VzdG9keUFkbWlzc2lvblRpbWluZ3MSFAoMdG90YWxfbWlsbGlzGAEgASgBEhMKC3NjYW5fbWlsbGlzGAIgASgBEhQKDGZldGNoX21pbGxpcxgDIAEoARITCgtzZWFsX21pbGxpcxgEIAEoARIYChBnYXRlX2ZvbGRfbWlsbGlzGAUgASgBEhQKDGludGVudF9jb3VudBgGIAEoDRIVCg1zZXNzaW9uX2NvdW50GAcgASgNEjUKBXNwYW5zGAggAygLMiYubm9tb3MucnVudGltZS52Mi5DdXN0b2R5QWRtaXNzaW9uU3BhbiKXAQoUQ3VzdG9keUFkbWlzc2lvblNwYW4SCgoCaWQYASABKAkSDQoFdHJhY2sYAiABKAkSDAoEbmFtZRgDIAEoCRIMCgRraW5kGAQgASgJEg0KBWRlcHRoGAUgASgNEhsKE3N0YXJ0ZWRfdW5peF9taWxsaXMYBiABKAESHAoUZmluaXNoZWRfdW5peF9taWxsaXMYByABKAEiXQoXV29ya3NwYWNlRWZmZWN0RGVmZXJyZWQSGAoQdGFyZ2V0X3dvcmtzcGFjZRgBIAEoCRIaChJyZXRyeV9hZnRlcl9taWxsaXMYAiABKAQSDAoEaGVsZBgDIAEoBCL6AQoNT3V0Ym94U3VtbWFyeRIRCgl3b3Jrc3BhY2UYASABKAkSDwoHZW50cmllcxgCIAEoBBI0Cgd0YXJnZXRzGAMgAygLMiMubm9tb3MucnVudGltZS52Mi5PdXRib3hUYXJnZXRDb3VudBIfChJuZXh0X2R1ZV9hdF9taWxsaXMYBCABKARIAIgBARIUCgx3b3JrX3BlbmRpbmcYBSABKAgSEAoIcmVzaWRlbnQYBiABKAgSFQoNZW50cmllc190b3RhbBgHIAEoDRIYChBlbnRyaWVzX3ByZXBhcmVkGAggASgNQhUKE19uZXh0X2R1ZV9hdF9taWxsaXMiPgoRT3V0Ym94VGFyZ2V0Q291bnQSGAoQdGFyZ2V0X3dvcmtzcGFjZRgBIAEoCRIPCgdlbnRyaWVzGAIgASgEIkMKFFBlZXJHaXRSZWZzQWxvbmdzaWRlEg4KBnByZWZpeBgBIAEoCRIMCgRoZWxkGAIgAygJEg0KBWxpbWl0GAMgASgNImEKElBlZXJHaXRSZWZzRmV0Y2hlZBIrCgRyZWZzGAEgAygLMh0ubm9tb3MucnVudGltZS52Mi5SZXRhaW5lZFJlZhIMCgRwYWNrGAIgASgMEhAKCGRlZmVycmVkGAMgASgNIhgKFk5ldHdvcmtSZXN0b3JlZFJlcXVlc3QiKAoPTmV0d29ya1Jlc3RvcmVkEhUKDWxpbmtzX3JldHJpZWQYASABKA0qvAEKFVNoYXJlV29ya3NwYWNlT3V0Y29tZRInCiNTSEFSRV9XT1JLU1BBQ0VfT1VUQ09NRV9VTlNQRUNJRklFRBAAEiUKIVNIQVJFX1dPUktTUEFDRV9PVVRDT01FX0RFTElWRVJFRBABEi4KKlNIQVJFX1dPUktTUEFDRV9PVVRDT01FX0FXQUlUSU5HX1JFQ0lQSUVOVBACEiMKH1NIQVJFX1dPUktTUEFDRV9PVVRDT01FX1JFRlVTRUQQAypnCg5QZWVySHR0cE1ldGhvZBIgChxQRUVSX0hUVFBfTUVUSE9EX1VOU1BFQ0lGSUVEEAASGAoUUEVFUl9IVFRQX01FVEhPRF9HRVQQARIZChVQRUVSX0hUVFBfTUVUSE9EX1BPU1QQAiq/AQoXUGVlckVmZmVjdEZhaWx1cmVSZWFzb24SKgomUEVFUl9FRkZFQ1RfRkFJTFVSRV9SRUFTT05fVU5TUEVDSUZJRUQQABImCiJQRUVSX0VGRkVDVF9GQUlMVVJFX1JFQVNPTl9PRkZMSU5FEAESJgoiUEVFUl9FRkZFQ1RfRkFJTFVSRV9SRUFTT05fVElNRU9VVBACEigKJFBFRVJfRUZGRUNUX0ZBSUxVUkVfUkVBU09OX1RSQU5TUE9SVBADKq0BChxEZXZpY2VSZWNvdmVyeUFkbWlzc2lvblN0YWdlEi8KK0RFVklDRV9SRUNPVkVSWV9BRE1JU1NJT05fU1RBR0VfVU5TUEVDSUZJRUQQABIuCipERVZJQ0VfUkVDT1ZFUllfQURNSVNTSU9OX1NUQUdFX0VOUk9MTE1FTlQQARIsCihERVZJQ0VfUkVDT1ZFUllfQURNSVNTSU9OX1NUQUdFX1JFQ09WRVJZEAIqvwEKGFBlZXJTb2NrZXRDbG9zZUluaXRpYXRvchIrCidQRUVSX1NPQ0tFVF9DTE9TRV9JTklUSUFUT1JfVU5TUEVDSUZJRUQQABInCiNQRUVSX1NPQ0tFVF9DTE9TRV9JTklUSUFUT1JfUlVOVElNRRABEiUKIVBFRVJfU09DS0VUX0NMT1NFX0lOSVRJQVRPUl9TSEVMTBACEiYKIlBFRVJfU09DS0VUX0NMT1NFX0lOSVRJQVRPUl9SRU1PVEUQAyphCgxMaXZlTGlua1JvbGUSHgoaTElWRV9MSU5LX1JPTEVfVU5TUEVDSUZJRUQQABIXChNMSVZFX0xJTktfUk9MRV9QRUVSEAESGAoUTElWRV9MSU5LX1JPTEVfUkVMQVkQAmIGcHJvdG8z", [file_nomos_kernel_v1_kernel, file_nomos_runtime_v2_placement_desk, file_nomos_discovery_v1_workspace_placement, file_nomos_runtime_v2_custody_desk, file_nomos_runtime_v2_maintenance_desk]);
3252
3252
  VerifyWorkspaceChainResultSchema = /* @__PURE__ */ messageDesc9(file_nomos_runtime_v2_correspondence_desk, 7);
3253
3253
  VerifyChainHistorySchema = /* @__PURE__ */ messageDesc9(file_nomos_runtime_v2_correspondence_desk, 8);
3254
3254
  SyncWorkspaceRequestSchema = /* @__PURE__ */ messageDesc9(file_nomos_runtime_v2_correspondence_desk, 9);
@@ -3330,6 +3330,7 @@ var init_correspondence_desk_pb = __esm({
3330
3330
  WorkspaceEffectDeferredSchema = /* @__PURE__ */ messageDesc9(file_nomos_runtime_v2_correspondence_desk, 106);
3331
3331
  PeerGitRefsAlongsideSchema = /* @__PURE__ */ messageDesc9(file_nomos_runtime_v2_correspondence_desk, 109);
3332
3332
  PeerGitRefsFetchedSchema = /* @__PURE__ */ messageDesc9(file_nomos_runtime_v2_correspondence_desk, 110);
3333
+ NetworkRestoredSchema = /* @__PURE__ */ messageDesc9(file_nomos_runtime_v2_correspondence_desk, 112);
3333
3334
  PeerHttpMethodSchema = /* @__PURE__ */ enumDesc5(file_nomos_runtime_v2_correspondence_desk, 1);
3334
3335
  PeerHttpMethod = /* @__PURE__ */ tsEnum5(PeerHttpMethodSchema);
3335
3336
  PeerEffectFailureReasonSchema = /* @__PURE__ */ enumDesc5(file_nomos_runtime_v2_correspondence_desk, 2);
@@ -3594,12 +3595,12 @@ var init_residency_desk_pb = __esm({
3594
3595
  "use strict";
3595
3596
  init_custody_desk_pb();
3596
3597
  init_kernel_pb();
3597
- file_nomos_runtime_v2_residency_desk = /* @__PURE__ */ fileDesc23("CiVub21vcy9ydW50aW1lL3YyL3Jlc2lkZW5jeV9kZXNrLnByb3RvEhBub21vcy5ydW50aW1lLnYyIhoKGFJlc2lkZW5jeVByZXNzdXJlUmVxdWVzdCJIChVSZXRhaW5Gcm9udGllclJlcXVlc3QSEQoJd29ya3NwYWNlGAEgASgJEg4KBmJyYW5jaBgCIAEoCRIMCgRoZWFkGAMgASgJIm8KGVJlc2lkZW5jeVByZXNzdXJlUmVsaWV2ZWQSGgoSZXZpY3RlZF93b3Jrc3BhY2VzGAEgAygJEhcKD3dhcm1fd29ya3NwYWNlcxgCIAMoCRIdChV3YXJtX3Jlc2lkZW5jeV9taWxsaXMYAyABKAQi6gcKF1Jlc2lkZW50V29ya3NwYWNlRGV0YWlsEhEKCXdvcmtzcGFjZRgBIAEoCRITCgtpZGxlX21pbGxpcxgCIAEoBBIdChByZXBvc2l0b3J5X2J5dGVzGAMgASgESACIAQESKAobbWF0ZXJpYWxpemVkX2Zyb250aWVyX2J5dGVzGAQgASgESAGIAQESPwoJcmVhZGluZXNzGAUgASgOMiwubm9tb3MucnVudGltZS52Mi5SZXNpZGVudFdvcmtzcGFjZVJlYWRpbmVzcxIYCgtzcWxpdGVfaGVhZBgGIAEoCUgCiAEBEhUKCGdpdF9oZWFkGAcgASgJSAOIAQESPgoPaGlzdG9yeV9wb3N0dXJlGAggASgOMiUubm9tb3MucnVudGltZS52Mi5Mb2NhbEhpc3RvcnlQb3N0dXJlEhoKEnNoYWxsb3dfYm91bmRhcmllcxgJIAEoDRIvCiJyZXBvc2l0b3J5X21lYXN1cmVkX2F0X3VuaXhfbWlsbGlzGAogASgESASIAQESLQogZnJvbnRpZXJfbWVhc3VyZWRfYXRfdW5peF9taWxsaXMYCyABKARIBYgBARI7CglwbGFjZW1lbnQYDCABKAsyIy5ub21vcy5ydW50aW1lLnYyLlJlc2lkZW50UGxhY2VtZW50SAaIAQESNQoGb3V0Ym94GA0gASgLMiAubm9tb3MucnVudGltZS52Mi5SZXNpZGVudE91dGJveEgHiAEBEj4KBmNlbnN1cxgOIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuUmVzaWRlbnRBZ2dyZWdhdGVDZW5zdXNICIgBARIdChBmdWxsX3JlcGxheV9oZWFkGA8gASgJSAmIAQESIgoVbG9jYWxfaGlzdG9yeV9jb21taXRzGBAgASgESAqIAQESKAobcGxhY2VtZW50X3Vub2JzZXJ2ZWRfcmVhc29uGBEgASgJSAuIAQFCEwoRX3JlcG9zaXRvcnlfYnl0ZXNCHgocX21hdGVyaWFsaXplZF9mcm9udGllcl9ieXRlc0IOCgxfc3FsaXRlX2hlYWRCCwoJX2dpdF9oZWFkQiUKI19yZXBvc2l0b3J5X21lYXN1cmVkX2F0X3VuaXhfbWlsbGlzQiMKIV9mcm9udGllcl9tZWFzdXJlZF9hdF91bml4X21pbGxpc0IMCgpfcGxhY2VtZW50QgkKB19vdXRib3hCCQoHX2NlbnN1c0ITChFfZnVsbF9yZXBsYXlfaGVhZEIYChZfbG9jYWxfaGlzdG9yeV9jb21taXRzQh4KHF9wbGFjZW1lbnRfdW5vYnNlcnZlZF9yZWFzb24iiwIKF1Jlc2lkZW50QWdncmVnYXRlQ2Vuc3VzEgwKBGhlYWQYASABKAkSHAoPYWdncmVnYXRlX2NvdW50GAIgASgESACIAQESFwoKc3RhdGVfcm9vdBgDIAEoCUgBiAEBEjYKCXRvcF90eXBlcxgEIAMoCzIjLm5vbW9zLmtlcm5lbC52MS5BZ2dyZWdhdGVUeXBlQ291bnQSHQoQdHlwZXNfc3RhdGVfcm9vdBgFIAEoCUgCiAEBEhwKFG9ic2VydmVkX3VuaXhfbWlsbGlzGAYgASgEQhIKEF9hZ2dyZWdhdGVfY291bnRCDQoLX3N0YXRlX3Jvb3RCEwoRX3R5cGVzX3N0YXRlX3Jvb3QisQEKFVJlc2lkZW50UGxhY2VtZW50UnVsZRISCgpwZWVyX2NsYXNzGAEgASgJEkAKEGtlcm5lbF9yZXNpZGVuY3kYAiABKA4yJi5ub21vcy5rZXJuZWwudjEuS2VybmVsUmVzaWRlbmN5SW50ZW50EkIKEWN1c3RvZHlfcmV0ZW50aW9uGAMgASgOMicubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlSZXRlbnRpb25JbnRlbnQiqgMKEVJlc2lkZW50UGxhY2VtZW50EhUKCGZyb250aWVyGAEgASgJSACIAQESEwoLZGVjbGFyYXRpb24YAiABKAkSEgoKYWRvcHRlZF9ieRgDIAEoCRI2CgVydWxlcxgEIAMoCzInLm5vbW9zLnJ1bnRpbWUudjIuUmVzaWRlbnRQbGFjZW1lbnRSdWxlEhQKDHJlbW90ZV9uYW1lcxgFIAMoCRIiChpyZWNpcGllbnRfbWFpbGJveF9kZWNsYXJlZBgGIAEoCBJKChplZmZlY3RpdmVfa2VybmVsX3Jlc2lkZW5jeRgHIAEoDjImLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxSZXNpZGVuY3lJbnRlbnQSTAobZWZmZWN0aXZlX2N1c3RvZHlfcmV0ZW50aW9uGAggASgOMicubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlSZXRlbnRpb25JbnRlbnQSHgoWZWZmZWN0aXZlX3JlbW90ZV9uYW1lcxgJIAMoCRIcChRvYnNlcnZlZF91bml4X21pbGxpcxgKIAEoBEILCglfZnJvbnRpZXIikQEKDlJlc2lkZW50T3V0Ym94Eg8KB2VudHJpZXMYASABKA0SFAoMd29ya19wZW5kaW5nGAIgASgIEiEKFG5leHRfZHVlX3VuaXhfbWlsbGlzGAMgASgESACIAQESHAoUb2JzZXJ2ZWRfdW5peF9taWxsaXMYBCABKARCFwoVX25leHRfZHVlX3VuaXhfbWlsbGlzIuABChFLZXJuZWxXb3JrQ291bnRlchIOCgZmYW1pbHkYASABKAkSEQoJb3BlcmF0aW9uGAIgASgJEg0KBWNhbGxzGAMgASgEEhAKCGZhaWx1cmVzGAQgASgEEhIKCmNwdV9taWNyb3MYBSABKAQSEwoLd2FsbF9taWNyb3MYBiABKAQSOgoLY3B1X2J1Y2tldHMYByADKAsyJS5ub21vcy5ydW50aW1lLnYyLktlcm5lbFdvcmtDcHVCdWNrZXQSIgoabGFzdF9jb21wbGV0ZWRfdW5peF9taWxsaXMYCCABKAQiNwoTS2VybmVsV29ya0NwdUJ1Y2tldBIRCglsZV9taWNyb3MYASABKAQSDQoFY2FsbHMYAiABKAQiUgoQQWN0aXZlS2VybmVsV29yaxIOCgZmYW1pbHkYASABKAkSEQoJb3BlcmF0aW9uGAIgASgJEhsKE3N0YXJ0ZWRfdW5peF9taWxsaXMYAyABKAQiygEKEktlcm5lbFdvcmtTbmFwc2hvdBIbChNzdGFydGVkX3VuaXhfbWlsbGlzGAEgASgEEhwKFG9ic2VydmVkX3VuaXhfbWlsbGlzGAIgASgEEjUKCGNvdW50ZXJzGAMgAygLMiMubm9tb3MucnVudGltZS52Mi5LZXJuZWxXb3JrQ291bnRlchI3CgZhY3RpdmUYBCABKAsyIi5ub21vcy5ydW50aW1lLnYyLkFjdGl2ZUtlcm5lbFdvcmtIAIgBAUIJCgdfYWN0aXZlIrYECgpIb3N0SGVhbHRoEg8KB3JlcGxpY2EYASABKAQSFQoNa2VybmVsX3NoYTI1NhgCIAEoCRIbChNyZXNpZGVudF93b3Jrc3BhY2VzGAMgAygJEhoKEndhc21fbGluZWFyX21lbV9tYhgEIAEoARIWCg5wcm9jZXNzX3Jzc19tYhgFIAEoARIXCg9yc3NfY3JpdGljYWxfbWIYBiABKA0SPAoJcmVzaWRlbnRzGAcgAygLMikubm9tb3MucnVudGltZS52Mi5SZXNpZGVudFdvcmtzcGFjZURldGFpbBI+CgtrZXJuZWxfd29yaxgIIAEoCzIkLm5vbW9zLnJ1bnRpbWUudjIuS2VybmVsV29ya1NuYXBzaG90SACIAQESMgoIb3BlbmluZ3MYCSADKAsyIC5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlPcGVuaW5nEkQKCWFydGlmYWN0cxgKIAEoCzIsLm5vbW9zLnJ1bnRpbWUudjIuQXJ0aWZhY3RzVHJhbnNwb3J0U25hcHNob3RIAYgBARI8CglyZXRlbnRpb24YCyADKAsyKS5ub21vcy5ydW50aW1lLnYyLlJldGVudGlvbk91dGNvbWVDb3VudGVyEkIKFGNvcnJlc3BvbmRlbmNlX2hvbGRzGAwgAygLMiQubm9tb3MucnVudGltZS52Mi5Db3JyZXNwb25kZW5jZUhvbGRCDgoMX2tlcm5lbF93b3JrQgwKCl9hcnRpZmFjdHMivwEKF0FydGlmYWN0c1JlcXVlc3RDb3VudGVyEhEKCW9wZXJhdGlvbhgBIAEoCRIPCgdvdXRjb21lGAIgASgJEhAKCHJlcXVlc3RzGAMgASgEEhMKC3dhbGxfbWljcm9zGAQgASgEEhYKDnJlc3BvbnNlX2J5dGVzGAUgASgEEkEKD2xhdGVuY3lfYnVja2V0cxgGIAMoCzIoLm5vbW9zLnJ1bnRpbWUudjIuQXJ0aWZhY3RzTGF0ZW5jeUJ1Y2tldCI9ChZBcnRpZmFjdHNMYXRlbmN5QnVja2V0EhEKCWxlX21pY3JvcxgBIAEoBBIQCghyZXF1ZXN0cxgCIAEoBCK3AQoaQXJ0aWZhY3RzVHJhbnNwb3J0U25hcHNob3QSGwoTc3RhcnRlZF91bml4X21pbGxpcxgBIAEoBBI7Cghjb3VudGVycxgCIAMoCzIpLm5vbW9zLnJ1bnRpbWUudjIuQXJ0aWZhY3RzUmVxdWVzdENvdW50ZXISEQoJaW5fZmxpZ2h0GAMgASgNEiwKJG9sZGVzdF9pbl9mbGlnaHRfc3RhcnRlZF91bml4X21pbGxpcxgEIAEoBCJSChdSZXRlbnRpb25PdXRjb21lQ291bnRlchIPCgdvdXRjb21lGAEgASgJEhQKDHB1YmxpY2F0aW9ucxgCIAEoBBIQCghhdHRlbXB0cxgDIAEoBCJ8ChRLZXJuZWxSZWZyZXNoT3V0Y29tZRIqCgRob3N0GAEgASgLMhwubm9tb3MucnVudGltZS52Mi5Ib3N0SGVhbHRoEg8KB2NoYW5nZWQYAiABKAgSFwoPcHJldmlvdXNfc2hhMjU2GAMgASgJEg4KBnNoYTI1NhgEIAEoCSLJAQoSQ29ycmVzcG9uZGVuY2VIb2xkEhgKEHNvdXJjZV93b3Jrc3BhY2UYASABKAkSGAoQdGFyZ2V0X3dvcmtzcGFjZRgCIAEoCRIZChFzb3VyY2Vfb2ZmZXJfcGF0aBgDIAEoCRIOCgZyZWFzb24YBCABKAkSDgoGZGV0YWlsGAUgASgJEhAKCGZhaWx1cmVzGAYgASgNEhcKD3JldHJ5X2F0X21pbGxpcxgHIAEoBBIZChFoZWxkX3NpbmNlX21pbGxpcxgIIAEoBCL8AQoNUmVzaWRlbmN5SG9zdBIPCgdob3N0X2lkGAEgASgJEg4KBnN0YXR1cxgCIAEoCRIMCgRsaXZlGAMgASgIEhoKEmxhc3RfY2hhbmdlX21pbGxpcxgEIAEoBBIvCgRob3N0GAUgASgLMhwubm9tb3MucnVudGltZS52Mi5Ib3N0SGVhbHRoSACIAQESPAoHcmVmcmVzaBgGIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuS2VybmVsUmVmcmVzaE91dGNvbWVIAYgBARISCgVlcnJvchgHIAEoCUgCiAEBQgcKBV9ob3N0QgoKCF9yZWZyZXNoQggKBl9lcnJvciKpAQoPUmVzaWRlbmN5UmVwb3J0EgoKAm9rGAEgASgIEhIKCm5vd19taWxsaXMYAiABKAQSFQoNaG9zdF9jYXBhY2l0eRgDIAEoDRISCgpsaXZlX2hvc3RzGAQgASgNEhsKE3Jlc2lkZW50X3dvcmtzcGFjZXMYBSABKA0SLgoFaG9zdHMYBiADKAsyHy5ub21vcy5ydW50aW1lLnYyLlJlc2lkZW5jeUhvc3QimQEKEFBlZXJTdGF0dXNSZXBvcnQSCgoCb2sYASABKAgSEQoJd29ya3NwYWNlGAIgASgJEjYKC3BlZXJfb2ZmaWNlGAMgASgLMiEubm9tb3MucnVudGltZS52Mi5Xb3Jrc3BhY2VTdGF0dXMSLgoIcGh5c2ljYWwYBCABKAsyHC5ub21vcy5ydW50aW1lLnYyLkhvc3RIZWFsdGgiRQoNUmVzdGFydGVkSG9zdBIPCgdob3N0X2lkGAEgASgJEgwKBGxpdmUYAiABKAgSFQoNa2VybmVsX3NoYTI1NhgDIAEoCSIuCgxSZXN0YXJ0RXJyb3ISDwoHaG9zdF9pZBgBIAEoCRINCgVlcnJvchgCIAEoCSKRAQoNUmVzdGFydFJlcG9ydBIKCgJvaxgBIAEoCBIQCghob3N0X2lkcxgCIAMoCRIyCglyZXN0YXJ0ZWQYAyADKAsyHy5ub21vcy5ydW50aW1lLnYyLlJlc3RhcnRlZEhvc3QSLgoGZXJyb3JzGAQgAygLMh4ubm9tb3MucnVudGltZS52Mi5SZXN0YXJ0RXJyb3IqzwIKGlJlc2lkZW50V29ya3NwYWNlUmVhZGluZXNzEiwKKFJFU0lERU5UX1dPUktTUEFDRV9SRUFESU5FU1NfVU5TUEVDSUZJRUQQABIsCihSRVNJREVOVF9XT1JLU1BBQ0VfUkVBRElORVNTX1NRTElURV9PTkxZEAESMQotUkVTSURFTlRfV09SS1NQQUNFX1JFQURJTkVTU19HSVRfQ1VTVE9EWV9PTkxZEAISNwozUkVTSURFTlRfV09SS1NQQUNFX1JFQURJTkVTU19TUUxJVEVfQU5EX0dJVF9BTElHTkVEEAMSOAo0UkVTSURFTlRfV09SS1NQQUNFX1JFQURJTkVTU19TUUxJVEVfR0lUX0ZVTExfSElTVE9SWRAEEi8KK1JFU0lERU5UX1dPUktTUEFDRV9SRUFESU5FU1NfSEVBRFNfRElWRVJHRUQQBSqDAQoTTG9jYWxIaXN0b3J5UG9zdHVyZRIlCiFMT0NBTF9ISVNUT1JZX1BPU1RVUkVfVU5TUEVDSUZJRUQQABIhCh1MT0NBTF9ISVNUT1JZX1BPU1RVUkVfUEFSVElBTBABEiIKHkxPQ0FMX0hJU1RPUllfUE9TVFVSRV9DT01QTEVURRACYgZwcm90bzM", [file_nomos_runtime_v2_custody_desk, file_nomos_kernel_v1_kernel]);
3598
+ file_nomos_runtime_v2_residency_desk = /* @__PURE__ */ fileDesc23("CiVub21vcy9ydW50aW1lL3YyL3Jlc2lkZW5jeV9kZXNrLnByb3RvEhBub21vcy5ydW50aW1lLnYyIhoKGFJlc2lkZW5jeVByZXNzdXJlUmVxdWVzdCJIChVSZXRhaW5Gcm9udGllclJlcXVlc3QSEQoJd29ya3NwYWNlGAEgASgJEg4KBmJyYW5jaBgCIAEoCRIMCgRoZWFkGAMgASgJIm8KGVJlc2lkZW5jeVByZXNzdXJlUmVsaWV2ZWQSGgoSZXZpY3RlZF93b3Jrc3BhY2VzGAEgAygJEhcKD3dhcm1fd29ya3NwYWNlcxgCIAMoCRIdChV3YXJtX3Jlc2lkZW5jeV9taWxsaXMYAyABKAQi6gcKF1Jlc2lkZW50V29ya3NwYWNlRGV0YWlsEhEKCXdvcmtzcGFjZRgBIAEoCRITCgtpZGxlX21pbGxpcxgCIAEoBBIdChByZXBvc2l0b3J5X2J5dGVzGAMgASgESACIAQESKAobbWF0ZXJpYWxpemVkX2Zyb250aWVyX2J5dGVzGAQgASgESAGIAQESPwoJcmVhZGluZXNzGAUgASgOMiwubm9tb3MucnVudGltZS52Mi5SZXNpZGVudFdvcmtzcGFjZVJlYWRpbmVzcxIYCgtzcWxpdGVfaGVhZBgGIAEoCUgCiAEBEhUKCGdpdF9oZWFkGAcgASgJSAOIAQESPgoPaGlzdG9yeV9wb3N0dXJlGAggASgOMiUubm9tb3MucnVudGltZS52Mi5Mb2NhbEhpc3RvcnlQb3N0dXJlEhoKEnNoYWxsb3dfYm91bmRhcmllcxgJIAEoDRIvCiJyZXBvc2l0b3J5X21lYXN1cmVkX2F0X3VuaXhfbWlsbGlzGAogASgESASIAQESLQogZnJvbnRpZXJfbWVhc3VyZWRfYXRfdW5peF9taWxsaXMYCyABKARIBYgBARI7CglwbGFjZW1lbnQYDCABKAsyIy5ub21vcy5ydW50aW1lLnYyLlJlc2lkZW50UGxhY2VtZW50SAaIAQESNQoGb3V0Ym94GA0gASgLMiAubm9tb3MucnVudGltZS52Mi5SZXNpZGVudE91dGJveEgHiAEBEj4KBmNlbnN1cxgOIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuUmVzaWRlbnRBZ2dyZWdhdGVDZW5zdXNICIgBARIdChBmdWxsX3JlcGxheV9oZWFkGA8gASgJSAmIAQESIgoVbG9jYWxfaGlzdG9yeV9jb21taXRzGBAgASgESAqIAQESKAobcGxhY2VtZW50X3Vub2JzZXJ2ZWRfcmVhc29uGBEgASgJSAuIAQFCEwoRX3JlcG9zaXRvcnlfYnl0ZXNCHgocX21hdGVyaWFsaXplZF9mcm9udGllcl9ieXRlc0IOCgxfc3FsaXRlX2hlYWRCCwoJX2dpdF9oZWFkQiUKI19yZXBvc2l0b3J5X21lYXN1cmVkX2F0X3VuaXhfbWlsbGlzQiMKIV9mcm9udGllcl9tZWFzdXJlZF9hdF91bml4X21pbGxpc0IMCgpfcGxhY2VtZW50QgkKB19vdXRib3hCCQoHX2NlbnN1c0ITChFfZnVsbF9yZXBsYXlfaGVhZEIYChZfbG9jYWxfaGlzdG9yeV9jb21taXRzQh4KHF9wbGFjZW1lbnRfdW5vYnNlcnZlZF9yZWFzb24iiwIKF1Jlc2lkZW50QWdncmVnYXRlQ2Vuc3VzEgwKBGhlYWQYASABKAkSHAoPYWdncmVnYXRlX2NvdW50GAIgASgESACIAQESFwoKc3RhdGVfcm9vdBgDIAEoCUgBiAEBEjYKCXRvcF90eXBlcxgEIAMoCzIjLm5vbW9zLmtlcm5lbC52MS5BZ2dyZWdhdGVUeXBlQ291bnQSHQoQdHlwZXNfc3RhdGVfcm9vdBgFIAEoCUgCiAEBEhwKFG9ic2VydmVkX3VuaXhfbWlsbGlzGAYgASgEQhIKEF9hZ2dyZWdhdGVfY291bnRCDQoLX3N0YXRlX3Jvb3RCEwoRX3R5cGVzX3N0YXRlX3Jvb3QisQEKFVJlc2lkZW50UGxhY2VtZW50UnVsZRISCgpwZWVyX2NsYXNzGAEgASgJEkAKEGtlcm5lbF9yZXNpZGVuY3kYAiABKA4yJi5ub21vcy5rZXJuZWwudjEuS2VybmVsUmVzaWRlbmN5SW50ZW50EkIKEWN1c3RvZHlfcmV0ZW50aW9uGAMgASgOMicubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlSZXRlbnRpb25JbnRlbnQiqgMKEVJlc2lkZW50UGxhY2VtZW50EhUKCGZyb250aWVyGAEgASgJSACIAQESEwoLZGVjbGFyYXRpb24YAiABKAkSEgoKYWRvcHRlZF9ieRgDIAEoCRI2CgVydWxlcxgEIAMoCzInLm5vbW9zLnJ1bnRpbWUudjIuUmVzaWRlbnRQbGFjZW1lbnRSdWxlEhQKDHJlbW90ZV9uYW1lcxgFIAMoCRIiChpyZWNpcGllbnRfbWFpbGJveF9kZWNsYXJlZBgGIAEoCBJKChplZmZlY3RpdmVfa2VybmVsX3Jlc2lkZW5jeRgHIAEoDjImLm5vbW9zLmtlcm5lbC52MS5LZXJuZWxSZXNpZGVuY3lJbnRlbnQSTAobZWZmZWN0aXZlX2N1c3RvZHlfcmV0ZW50aW9uGAggASgOMicubm9tb3Mua2VybmVsLnYxLkN1c3RvZHlSZXRlbnRpb25JbnRlbnQSHgoWZWZmZWN0aXZlX3JlbW90ZV9uYW1lcxgJIAMoCRIcChRvYnNlcnZlZF91bml4X21pbGxpcxgKIAEoBEILCglfZnJvbnRpZXIikQEKDlJlc2lkZW50T3V0Ym94Eg8KB2VudHJpZXMYASABKA0SFAoMd29ya19wZW5kaW5nGAIgASgIEiEKFG5leHRfZHVlX3VuaXhfbWlsbGlzGAMgASgESACIAQESHAoUb2JzZXJ2ZWRfdW5peF9taWxsaXMYBCABKARCFwoVX25leHRfZHVlX3VuaXhfbWlsbGlzIuABChFLZXJuZWxXb3JrQ291bnRlchIOCgZmYW1pbHkYASABKAkSEQoJb3BlcmF0aW9uGAIgASgJEg0KBWNhbGxzGAMgASgEEhAKCGZhaWx1cmVzGAQgASgEEhIKCmNwdV9taWNyb3MYBSABKAQSEwoLd2FsbF9taWNyb3MYBiABKAQSOgoLY3B1X2J1Y2tldHMYByADKAsyJS5ub21vcy5ydW50aW1lLnYyLktlcm5lbFdvcmtDcHVCdWNrZXQSIgoabGFzdF9jb21wbGV0ZWRfdW5peF9taWxsaXMYCCABKAQiNwoTS2VybmVsV29ya0NwdUJ1Y2tldBIRCglsZV9taWNyb3MYASABKAQSDQoFY2FsbHMYAiABKAQiUgoQQWN0aXZlS2VybmVsV29yaxIOCgZmYW1pbHkYASABKAkSEQoJb3BlcmF0aW9uGAIgASgJEhsKE3N0YXJ0ZWRfdW5peF9taWxsaXMYAyABKAQiygEKEktlcm5lbFdvcmtTbmFwc2hvdBIbChNzdGFydGVkX3VuaXhfbWlsbGlzGAEgASgEEhwKFG9ic2VydmVkX3VuaXhfbWlsbGlzGAIgASgEEjUKCGNvdW50ZXJzGAMgAygLMiMubm9tb3MucnVudGltZS52Mi5LZXJuZWxXb3JrQ291bnRlchI3CgZhY3RpdmUYBCABKAsyIi5ub21vcy5ydW50aW1lLnYyLkFjdGl2ZUtlcm5lbFdvcmtIAIgBAUIJCgdfYWN0aXZlIoEFCgpIb3N0SGVhbHRoEg8KB3JlcGxpY2EYASABKAQSFQoNa2VybmVsX3NoYTI1NhgCIAEoCRIbChNyZXNpZGVudF93b3Jrc3BhY2VzGAMgAygJEhoKEndhc21fbGluZWFyX21lbV9tYhgEIAEoARIWCg5wcm9jZXNzX3Jzc19tYhgFIAEoARIXCg9yc3NfY3JpdGljYWxfbWIYBiABKA0SPAoJcmVzaWRlbnRzGAcgAygLMikubm9tb3MucnVudGltZS52Mi5SZXNpZGVudFdvcmtzcGFjZURldGFpbBI+CgtrZXJuZWxfd29yaxgIIAEoCzIkLm5vbW9zLnJ1bnRpbWUudjIuS2VybmVsV29ya1NuYXBzaG90SACIAQESMgoIb3BlbmluZ3MYCSADKAsyIC5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlPcGVuaW5nEkQKCWFydGlmYWN0cxgKIAEoCzIsLm5vbW9zLnJ1bnRpbWUudjIuQXJ0aWZhY3RzVHJhbnNwb3J0U25hcHNob3RIAYgBARI8CglyZXRlbnRpb24YCyADKAsyKS5ub21vcy5ydW50aW1lLnYyLlJldGVudGlvbk91dGNvbWVDb3VudGVyEkIKFGNvcnJlc3BvbmRlbmNlX2hvbGRzGAwgAygLMiQubm9tb3MucnVudGltZS52Mi5Db3JyZXNwb25kZW5jZUhvbGQSPQoHaW5ncmVzcxgNIAEoCzInLm5vbW9zLnJ1bnRpbWUudjIuS2VybmVsSW5ncmVzc1NuYXBzaG90SAKIAQFCDgoMX2tlcm5lbF93b3JrQgwKCl9hcnRpZmFjdHNCCgoIX2luZ3Jlc3MiuQIKFUtlcm5lbEluZ3Jlc3NTbmFwc2hvdBIPCgdwZW5kaW5nGAEgASgNEg0KBWJ5dGVzGAIgASgEEhMKC21heF9wZW5kaW5nGAMgASgNEhEKCW1heF9ieXRlcxgEIAEoBBIUCgxmaWxsX3BlcmNlbnQYBSABKAESGQoRcGVha19maWxsX3BlcmNlbnQYBiABKAESEAoIcmVmdXNhbHMYByABKAQSDgoGcG9zdGVkGAggASgNEhoKEndhaXRpbmdfZm9yZWdyb3VuZBgJIAEoDRIaChJ3YWl0aW5nX2JhY2tncm91bmQYCiABKA0SGAoQaW5fZmxpZ2h0X3dpbmRvdxgLIAEoDRIRCglhYmFuZG9uZWQYDCABKAQSIAoYbGF3X2ltcG9ydHNfZGVkdXBsaWNhdGVkGA0gASgEIr8BChdBcnRpZmFjdHNSZXF1ZXN0Q291bnRlchIRCglvcGVyYXRpb24YASABKAkSDwoHb3V0Y29tZRgCIAEoCRIQCghyZXF1ZXN0cxgDIAEoBBITCgt3YWxsX21pY3JvcxgEIAEoBBIWCg5yZXNwb25zZV9ieXRlcxgFIAEoBBJBCg9sYXRlbmN5X2J1Y2tldHMYBiADKAsyKC5ub21vcy5ydW50aW1lLnYyLkFydGlmYWN0c0xhdGVuY3lCdWNrZXQiPQoWQXJ0aWZhY3RzTGF0ZW5jeUJ1Y2tldBIRCglsZV9taWNyb3MYASABKAQSEAoIcmVxdWVzdHMYAiABKAQitwEKGkFydGlmYWN0c1RyYW5zcG9ydFNuYXBzaG90EhsKE3N0YXJ0ZWRfdW5peF9taWxsaXMYASABKAQSOwoIY291bnRlcnMYAiADKAsyKS5ub21vcy5ydW50aW1lLnYyLkFydGlmYWN0c1JlcXVlc3RDb3VudGVyEhEKCWluX2ZsaWdodBgDIAEoDRIsCiRvbGRlc3RfaW5fZmxpZ2h0X3N0YXJ0ZWRfdW5peF9taWxsaXMYBCABKAQiUgoXUmV0ZW50aW9uT3V0Y29tZUNvdW50ZXISDwoHb3V0Y29tZRgBIAEoCRIUCgxwdWJsaWNhdGlvbnMYAiABKAQSEAoIYXR0ZW1wdHMYAyABKAQifAoUS2VybmVsUmVmcmVzaE91dGNvbWUSKgoEaG9zdBgBIAEoCzIcLm5vbW9zLnJ1bnRpbWUudjIuSG9zdEhlYWx0aBIPCgdjaGFuZ2VkGAIgASgIEhcKD3ByZXZpb3VzX3NoYTI1NhgDIAEoCRIOCgZzaGEyNTYYBCABKAkiyQEKEkNvcnJlc3BvbmRlbmNlSG9sZBIYChBzb3VyY2Vfd29ya3NwYWNlGAEgASgJEhgKEHRhcmdldF93b3Jrc3BhY2UYAiABKAkSGQoRc291cmNlX29mZmVyX3BhdGgYAyABKAkSDgoGcmVhc29uGAQgASgJEg4KBmRldGFpbBgFIAEoCRIQCghmYWlsdXJlcxgGIAEoDRIXCg9yZXRyeV9hdF9taWxsaXMYByABKAQSGQoRaGVsZF9zaW5jZV9taWxsaXMYCCABKAQi/AEKDVJlc2lkZW5jeUhvc3QSDwoHaG9zdF9pZBgBIAEoCRIOCgZzdGF0dXMYAiABKAkSDAoEbGl2ZRgDIAEoCBIaChJsYXN0X2NoYW5nZV9taWxsaXMYBCABKAQSLwoEaG9zdBgFIAEoCzIcLm5vbW9zLnJ1bnRpbWUudjIuSG9zdEhlYWx0aEgAiAEBEjwKB3JlZnJlc2gYBiABKAsyJi5ub21vcy5ydW50aW1lLnYyLktlcm5lbFJlZnJlc2hPdXRjb21lSAGIAQESEgoFZXJyb3IYByABKAlIAogBAUIHCgVfaG9zdEIKCghfcmVmcmVzaEIICgZfZXJyb3IiqQEKD1Jlc2lkZW5jeVJlcG9ydBIKCgJvaxgBIAEoCBISCgpub3dfbWlsbGlzGAIgASgEEhUKDWhvc3RfY2FwYWNpdHkYAyABKA0SEgoKbGl2ZV9ob3N0cxgEIAEoDRIbChNyZXNpZGVudF93b3Jrc3BhY2VzGAUgASgNEi4KBWhvc3RzGAYgAygLMh8ubm9tb3MucnVudGltZS52Mi5SZXNpZGVuY3lIb3N0IpkBChBQZWVyU3RhdHVzUmVwb3J0EgoKAm9rGAEgASgIEhEKCXdvcmtzcGFjZRgCIAEoCRI2CgtwZWVyX29mZmljZRgDIAEoCzIhLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlU3RhdHVzEi4KCHBoeXNpY2FsGAQgASgLMhwubm9tb3MucnVudGltZS52Mi5Ib3N0SGVhbHRoIkUKDVJlc3RhcnRlZEhvc3QSDwoHaG9zdF9pZBgBIAEoCRIMCgRsaXZlGAIgASgIEhUKDWtlcm5lbF9zaGEyNTYYAyABKAkiLgoMUmVzdGFydEVycm9yEg8KB2hvc3RfaWQYASABKAkSDQoFZXJyb3IYAiABKAkikQEKDVJlc3RhcnRSZXBvcnQSCgoCb2sYASABKAgSEAoIaG9zdF9pZHMYAiADKAkSMgoJcmVzdGFydGVkGAMgAygLMh8ubm9tb3MucnVudGltZS52Mi5SZXN0YXJ0ZWRIb3N0Ei4KBmVycm9ycxgEIAMoCzIeLm5vbW9zLnJ1bnRpbWUudjIuUmVzdGFydEVycm9yKs8CChpSZXNpZGVudFdvcmtzcGFjZVJlYWRpbmVzcxIsCihSRVNJREVOVF9XT1JLU1BBQ0VfUkVBRElORVNTX1VOU1BFQ0lGSUVEEAASLAooUkVTSURFTlRfV09SS1NQQUNFX1JFQURJTkVTU19TUUxJVEVfT05MWRABEjEKLVJFU0lERU5UX1dPUktTUEFDRV9SRUFESU5FU1NfR0lUX0NVU1RPRFlfT05MWRACEjcKM1JFU0lERU5UX1dPUktTUEFDRV9SRUFESU5FU1NfU1FMSVRFX0FORF9HSVRfQUxJR05FRBADEjgKNFJFU0lERU5UX1dPUktTUEFDRV9SRUFESU5FU1NfU1FMSVRFX0dJVF9GVUxMX0hJU1RPUlkQBBIvCitSRVNJREVOVF9XT1JLU1BBQ0VfUkVBRElORVNTX0hFQURTX0RJVkVSR0VEEAUqgwEKE0xvY2FsSGlzdG9yeVBvc3R1cmUSJQohTE9DQUxfSElTVE9SWV9QT1NUVVJFX1VOU1BFQ0lGSUVEEAASIQodTE9DQUxfSElTVE9SWV9QT1NUVVJFX1BBUlRJQUwQARIiCh5MT0NBTF9ISVNUT1JZX1BPU1RVUkVfQ09NUExFVEUQAmIGcHJvdG8z", [file_nomos_runtime_v2_custody_desk, file_nomos_kernel_v1_kernel]);
3598
3599
  RetainFrontierRequestSchema = /* @__PURE__ */ messageDesc23(file_nomos_runtime_v2_residency_desk, 1);
3599
3600
  ResidencyPressureRelievedSchema = /* @__PURE__ */ messageDesc23(file_nomos_runtime_v2_residency_desk, 2);
3600
3601
  ResidentPlacementSchema = /* @__PURE__ */ messageDesc23(file_nomos_runtime_v2_residency_desk, 6);
3601
3602
  ResidentOutboxSchema = /* @__PURE__ */ messageDesc23(file_nomos_runtime_v2_residency_desk, 7);
3602
- CorrespondenceHoldSchema = /* @__PURE__ */ messageDesc23(file_nomos_runtime_v2_residency_desk, 18);
3603
+ CorrespondenceHoldSchema = /* @__PURE__ */ messageDesc23(file_nomos_runtime_v2_residency_desk, 19);
3603
3604
  LocalHistoryPostureSchema = /* @__PURE__ */ enumDesc16(file_nomos_runtime_v2_residency_desk, 1);
3604
3605
  LocalHistoryPosture = /* @__PURE__ */ tsEnum16(LocalHistoryPostureSchema);
3605
3606
  }
@@ -3630,7 +3631,7 @@ var init_runtime_pb = __esm({
3630
3631
  init_recovery_desk_pb();
3631
3632
  init_records_desk_pb();
3632
3633
  init_residency_desk_pb();
3633
- file_nomos_runtime_v2_runtime = /* @__PURE__ */ fileDesc24("Ch5ub21vcy9ydW50aW1lL3YyL3J1bnRpbWUucHJvdG8SEG5vbW9zLnJ1bnRpbWUudjIi7x4KDlJ1bnRpbWVSZXF1ZXN0EhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoBBIyCgV0cmFjZRgDIAEoCzIeLm5vbW9zLnJ1bnRpbWUudjIuVHJhY2VDb250ZXh0SAGIAQESNwoGdGFyZ2V0GAQgASgLMiIubm9tb3MucnVudGltZS52Mi5JbnZvY2F0aW9uVGFyZ2V0SAKIAQESOgoLa2VybmVsX2NhbGwYCiABKAsyIy5ub21vcy5ydW50aW1lLnYyLktlcm5lbENhbGxSZXF1ZXN0SAASQgoPbGlzdF93b3Jrc3BhY2VzGAwgASgLMicubm9tb3MucnVudGltZS52Mi5MaXN0V29ya3NwYWNlc1JlcXVlc3RIABJACg5zeW5jX3dvcmtzcGFjZRgOIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuU3luY1dvcmtzcGFjZVJlcXVlc3RIABIvCgV3YXRjaBgRIAEoCzIeLm5vbW9zLnJ1bnRpbWUudjIuV2F0Y2hSZXF1ZXN0SAASMwoHdW53YXRjaBgSIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuVW53YXRjaFJlcXVlc3RIABJACg5wcmVwYXJlX2RvbWFpbhgTIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuUHJlcGFyZURvbWFpblJlcXVlc3RIABI6CgtjbG9zZV9yZWFsbRgVIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuQ2xvc2VSZWFsbVJlcXVlc3RIABI6CgtkZWFkX2xldHRlchgWIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuRGVhZExldHRlclJlcXVlc3RIABJACg5oaXN0b3JpY19xdWVyeRgXIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuSGlzdG9yaWNRdWVyeVJlcXVlc3RIABJEChB3b3Jrc3BhY2Vfc3RhdHVzGBogASgLMigubm9tb3MucnVudGltZS52Mi5Xb3Jrc3BhY2VTdGF0dXNSZXF1ZXN0SAASTwoWcmVtb3RlX2dlbmVyYXRlZF9vZmZlchgbIAEoCzItLm5vbW9zLnJ1bnRpbWUudjIuUmVtb3RlR2VuZXJhdGVkT2ZmZXJSZXF1ZXN0SAASSgoTd29ya3NwYWNlX3BsYWNlbWVudBgcIAEoCzIrLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlUGxhY2VtZW50UmVxdWVzdEgAEkoKE3JlZnJlc2hfY3JlZGVudGlhbHMYHSABKAsyKy5ub21vcy5ydW50aW1lLnYyLlJlZnJlc2hDcmVkZW50aWFsc1JlcXVlc3RIABJVChlkZWxpdmVyX3dvcmtzcGFjZV9lZmZlY3RzGB4gASgLMjAubm9tb3MucnVudGltZS52Mi5EZWxpdmVyV29ya3NwYWNlRWZmZWN0c1JlcXVlc3RIABJKChNhdXRob3JpbmdfcHJlZmxpZ2h0GCAgASgLMisubm9tb3MucnVudGltZS52Mi5BdXRob3JpbmdQcmVmbGlnaHRSZXF1ZXN0SAASTwoWbGlzdF93b3Jrc3BhY2VfbW9tZW50cxghIAEoCzItLm5vbW9zLnJ1bnRpbWUudjIuTGlzdFdvcmtzcGFjZU1vbWVudHNSZXF1ZXN0SAASWQobZXN0aW1hdGVfd29ya3NwYWNlX3RyYW5zZmVyGCIgASgLMjIubm9tb3MucnVudGltZS52Mi5Fc3RpbWF0ZVdvcmtzcGFjZVRyYW5zZmVyUmVxdWVzdEgAEk8KFnJlYWRfd29ya3NwYWNlX2dlbmVzaXMYIyABKAsyLS5ub21vcy5ydW50aW1lLnYyLlJlYWRXb3Jrc3BhY2VHZW5lc2lzUmVxdWVzdEgAEk0KFWxpc3RfY2hpbGRfd29ya3NwYWNlcxgkIAEoCzIsLm5vbW9zLnJ1bnRpbWUudjIuTGlzdENoaWxkV29ya3NwYWNlc1JlcXVlc3RIABI3CglmcmFtZXdvcmsYJSABKAsyIi5ub21vcy5ydW50aW1lLnYyLkZyYW1ld29ya1JlcXVlc3RIABJSChdjb250aW51ZV9jb3JyZXNwb25kZW5jZRgmIAEoCzIvLm5vbW9zLnJ1bnRpbWUudjIuQ29udGludWVDb3JyZXNwb25kZW5jZVJlcXVlc3RIABJVChlpZGVudGl0eV9wcm92aWRlcl93aXRuZXNzGCcgASgLMjAubm9tb3MucnVudGltZS52Mi5JZGVudGl0eVByb3ZpZGVyV2l0bmVzc1JlcXVlc3RIABJEChBtYWludGVuYW5jZV90aWNrGCggASgLMigubm9tb3MucnVudGltZS52Mi5NYWludGVuYW5jZVRpY2tSZXF1ZXN0SAASSAoScmVzaWRlbmN5X3ByZXNzdXJlGCkgASgLMioubm9tb3MucnVudGltZS52Mi5SZXNpZGVuY3lQcmVzc3VyZVJlcXVlc3RIABJEChBjdXN0b2R5X2FkdmFuY2VkGCogASgLMigubm9tb3MucnVudGltZS52Mi5DdXN0b2R5QWR2YW5jZWRSZXF1ZXN0SAASSgoUYWRtaXRfY3VzdG9keV9vZmZlcnMYKyABKAsyKi5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlPZmZlckJhdGNoUmVxdWVzdEgAEkkKE2luc3BlY3RfbGF3X3BhY2thZ2UYLCABKAsyKi5ub21vcy5ydW50aW1lLnYyLkluc3BlY3RMYXdQYWNrYWdlUmVxdWVzdEgAEkkKE2NvbnRpbnVlX2xvY2FsX3JlYWQYLSABKAsyKi5ub21vcy5ydW50aW1lLnYyLkNvbnRpbnVlTG9jYWxSZWFkUmVxdWVzdEgAEkIKD3JldGFpbl9mcm9udGllchguIAEoCzInLm5vbW9zLnJ1bnRpbWUudjIuUmV0YWluRnJvbnRpZXJSZXF1ZXN0SAASPQoOc29ja2V0X3JlY2VpcHQYLyABKAsyIy5ub21vcy5ydW50aW1lLnYyLlBlZXJTb2NrZXRSZWNlaXB0SAASRwoSZXhwb3J0X2xpdmVfb2ZmZXJzGDAgASgLMikubm9tb3MucnVudGltZS52Mi5FeHBvcnRMaXZlT2ZmZXJzUmVxdWVzdEgAEkoKE3ByZXBhcmVfYXBwbGljYXRpb24YMSABKAsyKy5ub21vcy5ydW50aW1lLnYyLlByZXBhcmVBcHBsaWNhdGlvblJlcXVlc3RIABJMChRhd2FpdF9hdXRoZW50aWNhdGlvbhgyIAEoCzIsLm5vbW9zLnJ1bnRpbWUudjIuQXdhaXRBdXRoZW50aWNhdGlvblJlcXVlc3RIABJQChZyZWNvdmVyX2NvcnJlc3BvbmRlbmNlGDMgASgLMi4ubm9tb3MucnVudGltZS52Mi5SZWNvdmVyQ29ycmVzcG9uZGVuY2VSZXF1ZXN0SAASSwoUb3Blbl9yZWNlaXZpbmdfZ3JvdXAYNCABKAsyKy5ub21vcy5ydW50aW1lLnYyLk9wZW5SZWNlaXZpbmdHcm91cFJlcXVlc3RIABJTChhjb252ZXJnZV9yZWNlaXZpbmdfZ3JvdXAYNSABKAsyLy5ub21vcy5ydW50aW1lLnYyLkNvbnZlcmdlUmVjZWl2aW5nR3JvdXBSZXF1ZXN0SAASUQoXYWRvcHRfYXBwbGljYXRpb25fbW9kZWwYNiABKAsyLi5ub21vcy5ydW50aW1lLnYyLkFkb3B0QXBwbGljYXRpb25Nb2RlbFJlcXVlc3RIABJPChZyZXNvbHZlX3dvcmtzcGFjZV9uYW1lGDcgASgLMi0ubm9tb3MucnVudGltZS52Mi5SZXNvbHZlV29ya3NwYWNlTmFtZVJlcXVlc3RIABJTChhjaGVja19yZWZlcmVuY2VfdmVyc2lvbnMYOCABKAsyLy5ub21vcy5ydW50aW1lLnYyLkNoZWNrUmVmZXJlbmNlVmVyc2lvbnNSZXF1ZXN0SAASUQoXZGVsaXZlcl9odHRwX29ibGlnYXRpb24YOSABKAsyLi5ub21vcy5ydW50aW1lLnYyLkRlbGl2ZXJIdHRwT2JsaWdhdGlvblJlcXVlc3RIABJXChpyZWZyZXNoX3JlcGxpY2FfY3JlZGVudGlhbBg6IAEoCzIxLm5vbW9zLnJ1bnRpbWUudjIuUmVmcmVzaFJlcGxpY2FDcmVkZW50aWFsUmVxdWVzdEgAEjwKDGJpbmRfc2Vzc2lvbhg7IAEoCzIkLm5vbW9zLnJ1bnRpbWUudjIuQmluZFNlc3Npb25SZXF1ZXN0SAASUAoXcHJldmlld19sb2NhbF9jb3B5X2Ryb3AYPCABKAsyLS5ub21vcy5ydW50aW1lLnYyLlByZXZpZXdMb2NhbENvcHlEcm9wUmVxdWVzdEgAEkEKD2Ryb3BfbG9jYWxfY29weRg9IAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuRHJvcExvY2FsQ29weVJlcXVlc3RIABJXChpjb25maWd1cmVfcHJvdmlkZXJfb3JpZ2lucxg+IAEoCzIxLm5vbW9zLnJ1bnRpbWUudjIuQ29uZmlndXJlUHJvdmlkZXJPcmlnaW5zUmVxdWVzdEgAEkIKD2ZldGNoX3dvcmtzcGFjZRg/IAEoCzInLm5vbW9zLnJ1bnRpbWUudjIuRmV0Y2hXb3Jrc3BhY2VSZXF1ZXN0SAASSwoUcHJvdmlkZV9sYXdfcHJvZHVjdHMYQCABKAsyKy5ub21vcy5ydW50aW1lLnYyLlByb3ZpZGVMYXdQcm9kdWN0c1JlcXVlc3RIABJAChFzZXJ2ZV9saXZlX3N0cmVhbRhBIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZVN0cmVhbVJlcXVlc3RIAEIJCgdjb21tYW5kQggKBl90cmFjZUIJCgdfdGFyZ2V0SgQICxAMSgQIDRAOSgQIDxAQSgQIEBARSgQIFBAVSgQIGBAZSgQIGRAaSgQIHxAgUgdjb25uZWN0Ug9zdGFydF9hdXRvX3N5bmNSDnN0b3BfYXV0b19zeW5jUhJzbmFwc2hvdF93b3Jrc3BhY2VSFXJlc29sdmVfY3VzdG9keV9icmVha1IPbW9kZWxfbGlmZWN5Y2xlUh1lc3RhYmxpc2hfYXBwbGljYXRpb25fY3VzdG9keVIRYWNxdWlyZV93b3Jrc3BhY2UiNgoQSW52b2NhdGlvblRhcmdldBIRCgl3b3Jrc3BhY2UYASABKAkSDwoHc2Vzc2lvbhgCIAEoCSLRHgoPUnVudGltZVJlc3BvbnNlEhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoBBIzCgdmYWlsdXJlGAogASgLMiAubm9tb3MucnVudGltZS52Mi5SdW50aW1lRmFpbHVyZUgAEjQKC2tlcm5lbF9jYWxsGAsgASgLMh0ubm9tb3Mua2VybmVsLnYxLkNhbGxSZXNwb25zZUgAEjkKDndvcmtzcGFjZV9saXN0GA0gASgLMh8ubm9tb3MucnVudGltZS52Mi5Xb3Jrc3BhY2VMaXN0SAASQQoOc3luY193b3Jrc3BhY2UYDyABKAsyJy5ub21vcy5ydW50aW1lLnYyLlN5bmNXb3Jrc3BhY2VSZXNwb25zZUgAEjcKDXdhdGNoX3N0YXJ0ZWQYEiABKAsyHi5ub21vcy5ydW50aW1lLnYyLldhdGNoU3RhcnRlZEgAEjcKDXdhdGNoX3N0b3BwZWQYEyABKAsyHi5ub21vcy5ydW50aW1lLnYyLldhdGNoU3RvcHBlZEgAEjsKD2RvbWFpbl9wcmVwYXJlZBgUIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuRG9tYWluUHJlcGFyZWRIABI1CgxyZWFsbV9jbG9zZWQYFiABKAsyHS5ub21vcy5ydW50aW1lLnYyLlJlYWxtQ2xvc2VkSAASMwoHYmxvY2tlZBgXIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZUJsb2NrZWRIABJIChZyZW1vdGVfb2ZmZXJfYWRtaXNzaW9uGBggASgLMiYubm9tb3MucnVudGltZS52Mi5SZW1vdGVPZmZlckFkbWlzc2lvbkgAEjsKC2RlYWRfbGV0dGVyGBkgASgLMiQubm9tb3MucnVudGltZS52Mi5EZWFkTGV0dGVyUmVzcG9uc2VIABI9ChB3b3Jrc3BhY2Vfc3RhdHVzGBwgASgLMiEubm9tb3MucnVudGltZS52Mi5Xb3Jrc3BhY2VTdGF0dXNIABJQChZyZW1vdGVfZ2VuZXJhdGVkX29mZmVyGB0gASgLMi4ubm9tb3MucnVudGltZS52Mi5SZW1vdGVHZW5lcmF0ZWRPZmZlckFjY2VwdGVkSAASSAoTd29ya3NwYWNlX3BsYWNlbWVudBgeIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlUGxhY2VtZW50U3RhdGVIABJHChVjcmVkZW50aWFsc19yZWZyZXNoZWQYHyABKAsyJi5ub21vcy5ydW50aW1lLnYyLkNyZWRlbnRpYWxzUmVmcmVzaGVkSAASUgobd29ya3NwYWNlX2VmZmVjdHNfZGVsaXZlcmVkGCAgASgLMisubm9tb3MucnVudGltZS52Mi5Xb3Jrc3BhY2VFZmZlY3RzRGVsaXZlcmVkSAASSQoTYXV0aG9yaW5nX3ByZWZsaWdodBghIAEoCzIqLm5vbW9zLnJ1bnRpbWUudjIuQXV0aG9yaW5nUHJlZmxpZ2h0UmVzdWx0SAASQgoRd29ya3NwYWNlX21vbWVudHMYIiABKAsyJS5ub21vcy5ydW50aW1lLnYyLldvcmtzcGFjZU1vbWVudExpc3RIABJSCht3b3Jrc3BhY2VfdHJhbnNmZXJfZXN0aW1hdGUYIyABKAsyKy5ub21vcy5ydW50aW1lLnYyLldvcmtzcGFjZVRyYW5zZmVyRXN0aW1hdGVIABI/ChF3b3Jrc3BhY2VfZ2VuZXNpcxgkIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlR2VuZXNpc0gAEkAKEGNoaWxkX3dvcmtzcGFjZXMYJSABKAsyJC5ub21vcy5ydW50aW1lLnYyLkNoaWxkV29ya3NwYWNlTGlzdEgAEjgKCWZyYW1ld29yaxgmIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuRnJhbWV3b3JrUmVzcG9uc2VIABJJChZjb3JyZXNwb25kZW5jZV9wZW5kaW5nGCcgASgLMicubm9tb3MucnVudGltZS52Mi5Db3JyZXNwb25kZW5jZVBlbmRpbmdIABJTChlpZGVudGl0eV9wcm92aWRlcl93aXRuZXNzGCggASgLMi4ubm9tb3MucnVudGltZS52Mi5JZGVudGl0eVByb3ZpZGVyV2l0bmVzc1JlYWR5SAASQQoSbWFpbnRlbmFuY2VfdGlja2VkGCkgASgLMiMubm9tb3MucnVudGltZS52Mi5NYWludGVuYW5jZVRpY2tlZEgAElIKG3Jlc2lkZW5jeV9wcmVzc3VyZV9yZWxpZXZlZBgqIAEoCzIrLm5vbW9zLnJ1bnRpbWUudjIuUmVzaWRlbmN5UHJlc3N1cmVSZWxpZXZlZEgAEkcKFW1haW50ZW5hbmNlX3NjaGVkdWxlZBgrIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuTWFpbnRlbmFuY2VTY2hlZHVsZWRIABJFChdjdXN0b2R5X29mZmVyc19hZG1pdHRlZBgsIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUFkbWlzc2lvbkgAEkgKFmxhd19wYWNrYWdlX2luc3BlY3Rpb24YLSABKAsyJi5ub21vcy5ydW50aW1lLnYyLkxhd1BhY2thZ2VJbnNwZWN0aW9uSAASQAoSbG9jYWxfcmVhZF9wZW5kaW5nGC4gASgLMiIubm9tb3MucnVudGltZS52Mi5Mb2NhbFJlYWRQZW5kaW5nSAASPwoRZnJvbnRpZXJfcmV0YWluZWQYLyABKAsyIi5ub21vcy5ydW50aW1lLnYyLkZyb250aWVyUmV0YWluZWRIABJFChRhcHBsaWNhdGlvbl9wcmVwYXJlZBgzIAEoCzIlLm5vbW9zLnJ1bnRpbWUudjIuQXBwbGljYXRpb25QcmVwYXJlZEgAEk0KGGF1dGhlbnRpY2F0aW9uX3JlYWRpbmVzcxgyIAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuQXV0aGVudGljYXRpb25SZWFkaW5lc3NIABI/Cg9zb2NrZXRfb2JzZXJ2ZWQYMCABKAsyJC5ub21vcy5ydW50aW1lLnYyLlBlZXJTb2NrZXRPYnNlcnZlZEgAEkEKC2xpdmVfb2ZmZXJzGDEgASgLMioubm9tb3MucnVudGltZS52Mi5DdXN0b2R5T2ZmZXJCYXRjaFJlcXVlc3RIABJNChhjb3JyZXNwb25kZW5jZV9yZWNvdmVyZWQYNCABKAsyKS5ub21vcy5ydW50aW1lLnYyLkNvcnJlc3BvbmRlbmNlUmVjb3ZlcmVkSAASSAoWcmVjZWl2aW5nX2dyb3VwX29wZW5lZBg1IAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuUmVjZWl2aW5nR3JvdXBPcGVuZWRIABJSChtyZWNlaXZpbmdfZ3JvdXBfY29udmVyZ2VuY2UYNiABKAsyKy5ub21vcy5ydW50aW1lLnYyLlJlY2VpdmluZ0dyb3VwQ29udmVyZ2VuY2VIABJOChlhcHBsaWNhdGlvbl9tb2RlbF9hZG9wdGVkGDcgASgLMikubm9tb3MucnVudGltZS52Mi5BcHBsaWNhdGlvbk1vZGVsQWRvcHRlZEgAEkoKF3Jlc29sdmVkX3dvcmtzcGFjZV9uYW1lGDggASgLMicubm9tb3MucnVudGltZS52Mi5SZXNvbHZlZFdvcmtzcGFjZU5hbWVIABJGChJyZWZlcmVuY2VfdmVyc2lvbnMYOSABKAsyKC5ub21vcy5ydW50aW1lLnYyLlJlZmVyZW5jZVZlcnNpb25SZXBvcnRIABI/ChF3b3Jrc3BhY2Vfb3BlbmluZxg6IAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlT3BlbmluZ0gAEk4KGWh0dHBfb2JsaWdhdGlvbl9kZWxpdmVyZWQYOyABKAsyKS5ub21vcy5ydW50aW1lLnYyLkh0dHBPYmxpZ2F0aW9uRGVsaXZlcmVkSAASNwoNc2Vzc2lvbl9ib3VuZBg8IAEoCzIeLm5vbW9zLnJ1bnRpbWUudjIuU2Vzc2lvbkJvdW5kSAASOwoLdW5hdmFpbGFibGUYPSABKAsyJC5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVVbmF2YWlsYWJsZUgAEjMKB3JlZnVzZWQYPiABKAsyIC5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVSZWZ1c2FsSAASPQoQaGlzdG9yeV9hY3F1aXJlZBg/IAEoCzIhLm5vbW9zLnJ1bnRpbWUudjIuSGlzdG9yeUFjcXVpcmVkSAASSQoXbG9jYWxfY29weV9kcm9wX3ByZXZpZXcYQCABKAsyJi5ub21vcy5ydW50aW1lLnYyLkxvY2FsQ29weURyb3BQcmV2aWV3SAASTQoZbG9jYWxfY29weV9kcm9wX3NjaGVkdWxlZBhBIAEoCzIoLm5vbW9zLnJ1bnRpbWUudjIuTG9jYWxDb3B5RHJvcFNjaGVkdWxlZEgAElIKG3Byb3ZpZGVyX29yaWdpbnNfY29uZmlndXJlZBhCIAEoCzIrLm5vbW9zLnJ1bnRpbWUudjIuUHJvdmlkZXJPcmlnaW5zQ29uZmlndXJlZEgAEjsKD3dvcmtzcGFjZV9mZXRjaBhDIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlRmV0Y2hIABJCCgxsYXdfcHJvZHVjdHMYRCABKAsyKi5ub21vcy5rZXJuZWwudjEuRXhwb3J0TGF3UHJvZHVjdHNSZXNwb25zZUgAEkAKEmxpdmVfc3RyZWFtX3NlcnZlZBhFIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZVN0cmVhbUFuc3dlckgAQgkKB291dGNvbWVKBAgMEA1KBAgOEA9KBAgQEBFKBAgREBJKBAgVEBZKBAgaEBtKBAgbEBxSCWNvbm5lY3RlZFIRYXV0b19zeW5jX3N0YXJ0ZWRSEWF1dG9fc3luY19zdG9wcGVkUhJ3b3Jrc3BhY2Vfc25hcHNob3RSFmN1c3RvZHlfYnJlYWtfcmVzb2x2ZWRSD21vZGVsX2xpZmVjeWNsZVIfYXBwbGljYXRpb25fY3VzdG9keV9lc3RhYmxpc2hlZCL3AQoZQ3VzdG9keU9mZmVyQmF0Y2hSZXNwb25zZRIYChBwcm90b2NvbF92ZXJzaW9uGAEgASgNEhIKCnJlcXVlc3RfaWQYAiABKAkSNwoJYWRtaXNzaW9uGAogASgLMiIubm9tb3MucnVudGltZS52Mi5DdXN0b2R5QWRtaXNzaW9uSAASMwoHZmFpbHVyZRgLIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZUZhaWx1cmVIABIzCgdibG9ja2VkGAwgASgLMiAubm9tb3MucnVudGltZS52Mi5SdW50aW1lQmxvY2tlZEgAQgkKB291dGNvbWUiEwoRQ2xvc2VSZWFsbVJlcXVlc3QiDQoLUmVhbG1DbG9zZWRiBnByb3RvMw", [file_nomos_kernel_v1_kernel, file_nomos_runtime_v2_application_desk, file_nomos_runtime_v2_application_readiness_desk, file_nomos_runtime_v2_authentication_desk, file_nomos_runtime_v2_correspondence_desk, file_nomos_runtime_v2_credentials_desk, file_nomos_runtime_v2_custody_desk, file_nomos_runtime_v2_framework, file_nomos_runtime_v2_identity_desk, file_nomos_runtime_v2_interaction_desk, file_nomos_runtime_v2_law_desk, file_nomos_runtime_v2_maintenance_desk, file_nomos_runtime_v2_model_adoption_desk, file_nomos_runtime_v2_observability_desk, file_nomos_runtime_v2_placement_desk, file_nomos_runtime_v2_receiving_group_desk, file_nomos_runtime_v2_recovery_desk, file_nomos_runtime_v2_records_desk, file_nomos_runtime_v2_residency_desk]);
3634
+ file_nomos_runtime_v2_runtime = /* @__PURE__ */ fileDesc24("Ch5ub21vcy9ydW50aW1lL3YyL3J1bnRpbWUucHJvdG8SEG5vbW9zLnJ1bnRpbWUudjIitR8KDlJ1bnRpbWVSZXF1ZXN0EhgKEHByb3RvY29sX3ZlcnNpb24YASABKA0SEgoKcmVxdWVzdF9pZBgCIAEoBBIyCgV0cmFjZRgDIAEoCzIeLm5vbW9zLnJ1bnRpbWUudjIuVHJhY2VDb250ZXh0SAGIAQESNwoGdGFyZ2V0GAQgASgLMiIubm9tb3MucnVudGltZS52Mi5JbnZvY2F0aW9uVGFyZ2V0SAKIAQESOgoLa2VybmVsX2NhbGwYCiABKAsyIy5ub21vcy5ydW50aW1lLnYyLktlcm5lbENhbGxSZXF1ZXN0SAASQgoPbGlzdF93b3Jrc3BhY2VzGAwgASgLMicubm9tb3MucnVudGltZS52Mi5MaXN0V29ya3NwYWNlc1JlcXVlc3RIABJACg5zeW5jX3dvcmtzcGFjZRgOIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuU3luY1dvcmtzcGFjZVJlcXVlc3RIABIvCgV3YXRjaBgRIAEoCzIeLm5vbW9zLnJ1bnRpbWUudjIuV2F0Y2hSZXF1ZXN0SAASMwoHdW53YXRjaBgSIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuVW53YXRjaFJlcXVlc3RIABJACg5wcmVwYXJlX2RvbWFpbhgTIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuUHJlcGFyZURvbWFpblJlcXVlc3RIABI6CgtjbG9zZV9yZWFsbRgVIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuQ2xvc2VSZWFsbVJlcXVlc3RIABI6CgtkZWFkX2xldHRlchgWIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuRGVhZExldHRlclJlcXVlc3RIABJACg5oaXN0b3JpY19xdWVyeRgXIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuSGlzdG9yaWNRdWVyeVJlcXVlc3RIABJEChB3b3Jrc3BhY2Vfc3RhdHVzGBogASgLMigubm9tb3MucnVudGltZS52Mi5Xb3Jrc3BhY2VTdGF0dXNSZXF1ZXN0SAASTwoWcmVtb3RlX2dlbmVyYXRlZF9vZmZlchgbIAEoCzItLm5vbW9zLnJ1bnRpbWUudjIuUmVtb3RlR2VuZXJhdGVkT2ZmZXJSZXF1ZXN0SAASSgoTd29ya3NwYWNlX3BsYWNlbWVudBgcIAEoCzIrLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlUGxhY2VtZW50UmVxdWVzdEgAEkoKE3JlZnJlc2hfY3JlZGVudGlhbHMYHSABKAsyKy5ub21vcy5ydW50aW1lLnYyLlJlZnJlc2hDcmVkZW50aWFsc1JlcXVlc3RIABJVChlkZWxpdmVyX3dvcmtzcGFjZV9lZmZlY3RzGB4gASgLMjAubm9tb3MucnVudGltZS52Mi5EZWxpdmVyV29ya3NwYWNlRWZmZWN0c1JlcXVlc3RIABJKChNhdXRob3JpbmdfcHJlZmxpZ2h0GCAgASgLMisubm9tb3MucnVudGltZS52Mi5BdXRob3JpbmdQcmVmbGlnaHRSZXF1ZXN0SAASTwoWbGlzdF93b3Jrc3BhY2VfbW9tZW50cxghIAEoCzItLm5vbW9zLnJ1bnRpbWUudjIuTGlzdFdvcmtzcGFjZU1vbWVudHNSZXF1ZXN0SAASWQobZXN0aW1hdGVfd29ya3NwYWNlX3RyYW5zZmVyGCIgASgLMjIubm9tb3MucnVudGltZS52Mi5Fc3RpbWF0ZVdvcmtzcGFjZVRyYW5zZmVyUmVxdWVzdEgAEk8KFnJlYWRfd29ya3NwYWNlX2dlbmVzaXMYIyABKAsyLS5ub21vcy5ydW50aW1lLnYyLlJlYWRXb3Jrc3BhY2VHZW5lc2lzUmVxdWVzdEgAEk0KFWxpc3RfY2hpbGRfd29ya3NwYWNlcxgkIAEoCzIsLm5vbW9zLnJ1bnRpbWUudjIuTGlzdENoaWxkV29ya3NwYWNlc1JlcXVlc3RIABI3CglmcmFtZXdvcmsYJSABKAsyIi5ub21vcy5ydW50aW1lLnYyLkZyYW1ld29ya1JlcXVlc3RIABJSChdjb250aW51ZV9jb3JyZXNwb25kZW5jZRgmIAEoCzIvLm5vbW9zLnJ1bnRpbWUudjIuQ29udGludWVDb3JyZXNwb25kZW5jZVJlcXVlc3RIABJVChlpZGVudGl0eV9wcm92aWRlcl93aXRuZXNzGCcgASgLMjAubm9tb3MucnVudGltZS52Mi5JZGVudGl0eVByb3ZpZGVyV2l0bmVzc1JlcXVlc3RIABJEChBtYWludGVuYW5jZV90aWNrGCggASgLMigubm9tb3MucnVudGltZS52Mi5NYWludGVuYW5jZVRpY2tSZXF1ZXN0SAASSAoScmVzaWRlbmN5X3ByZXNzdXJlGCkgASgLMioubm9tb3MucnVudGltZS52Mi5SZXNpZGVuY3lQcmVzc3VyZVJlcXVlc3RIABJEChBjdXN0b2R5X2FkdmFuY2VkGCogASgLMigubm9tb3MucnVudGltZS52Mi5DdXN0b2R5QWR2YW5jZWRSZXF1ZXN0SAASSgoUYWRtaXRfY3VzdG9keV9vZmZlcnMYKyABKAsyKi5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlPZmZlckJhdGNoUmVxdWVzdEgAEkkKE2luc3BlY3RfbGF3X3BhY2thZ2UYLCABKAsyKi5ub21vcy5ydW50aW1lLnYyLkluc3BlY3RMYXdQYWNrYWdlUmVxdWVzdEgAEkkKE2NvbnRpbnVlX2xvY2FsX3JlYWQYLSABKAsyKi5ub21vcy5ydW50aW1lLnYyLkNvbnRpbnVlTG9jYWxSZWFkUmVxdWVzdEgAEkIKD3JldGFpbl9mcm9udGllchguIAEoCzInLm5vbW9zLnJ1bnRpbWUudjIuUmV0YWluRnJvbnRpZXJSZXF1ZXN0SAASPQoOc29ja2V0X3JlY2VpcHQYLyABKAsyIy5ub21vcy5ydW50aW1lLnYyLlBlZXJTb2NrZXRSZWNlaXB0SAASRwoSZXhwb3J0X2xpdmVfb2ZmZXJzGDAgASgLMikubm9tb3MucnVudGltZS52Mi5FeHBvcnRMaXZlT2ZmZXJzUmVxdWVzdEgAEkoKE3ByZXBhcmVfYXBwbGljYXRpb24YMSABKAsyKy5ub21vcy5ydW50aW1lLnYyLlByZXBhcmVBcHBsaWNhdGlvblJlcXVlc3RIABJMChRhd2FpdF9hdXRoZW50aWNhdGlvbhgyIAEoCzIsLm5vbW9zLnJ1bnRpbWUudjIuQXdhaXRBdXRoZW50aWNhdGlvblJlcXVlc3RIABJQChZyZWNvdmVyX2NvcnJlc3BvbmRlbmNlGDMgASgLMi4ubm9tb3MucnVudGltZS52Mi5SZWNvdmVyQ29ycmVzcG9uZGVuY2VSZXF1ZXN0SAASSwoUb3Blbl9yZWNlaXZpbmdfZ3JvdXAYNCABKAsyKy5ub21vcy5ydW50aW1lLnYyLk9wZW5SZWNlaXZpbmdHcm91cFJlcXVlc3RIABJTChhjb252ZXJnZV9yZWNlaXZpbmdfZ3JvdXAYNSABKAsyLy5ub21vcy5ydW50aW1lLnYyLkNvbnZlcmdlUmVjZWl2aW5nR3JvdXBSZXF1ZXN0SAASUQoXYWRvcHRfYXBwbGljYXRpb25fbW9kZWwYNiABKAsyLi5ub21vcy5ydW50aW1lLnYyLkFkb3B0QXBwbGljYXRpb25Nb2RlbFJlcXVlc3RIABJPChZyZXNvbHZlX3dvcmtzcGFjZV9uYW1lGDcgASgLMi0ubm9tb3MucnVudGltZS52Mi5SZXNvbHZlV29ya3NwYWNlTmFtZVJlcXVlc3RIABJTChhjaGVja19yZWZlcmVuY2VfdmVyc2lvbnMYOCABKAsyLy5ub21vcy5ydW50aW1lLnYyLkNoZWNrUmVmZXJlbmNlVmVyc2lvbnNSZXF1ZXN0SAASUQoXZGVsaXZlcl9odHRwX29ibGlnYXRpb24YOSABKAsyLi5ub21vcy5ydW50aW1lLnYyLkRlbGl2ZXJIdHRwT2JsaWdhdGlvblJlcXVlc3RIABJXChpyZWZyZXNoX3JlcGxpY2FfY3JlZGVudGlhbBg6IAEoCzIxLm5vbW9zLnJ1bnRpbWUudjIuUmVmcmVzaFJlcGxpY2FDcmVkZW50aWFsUmVxdWVzdEgAEjwKDGJpbmRfc2Vzc2lvbhg7IAEoCzIkLm5vbW9zLnJ1bnRpbWUudjIuQmluZFNlc3Npb25SZXF1ZXN0SAASUAoXcHJldmlld19sb2NhbF9jb3B5X2Ryb3AYPCABKAsyLS5ub21vcy5ydW50aW1lLnYyLlByZXZpZXdMb2NhbENvcHlEcm9wUmVxdWVzdEgAEkEKD2Ryb3BfbG9jYWxfY29weRg9IAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuRHJvcExvY2FsQ29weVJlcXVlc3RIABJXChpjb25maWd1cmVfcHJvdmlkZXJfb3JpZ2lucxg+IAEoCzIxLm5vbW9zLnJ1bnRpbWUudjIuQ29uZmlndXJlUHJvdmlkZXJPcmlnaW5zUmVxdWVzdEgAEkIKD2ZldGNoX3dvcmtzcGFjZRg/IAEoCzInLm5vbW9zLnJ1bnRpbWUudjIuRmV0Y2hXb3Jrc3BhY2VSZXF1ZXN0SAASSwoUcHJvdmlkZV9sYXdfcHJvZHVjdHMYQCABKAsyKy5ub21vcy5ydW50aW1lLnYyLlByb3ZpZGVMYXdQcm9kdWN0c1JlcXVlc3RIABJAChFzZXJ2ZV9saXZlX3N0cmVhbRhBIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuTGl2ZVN0cmVhbVJlcXVlc3RIABJEChBuZXR3b3JrX3Jlc3RvcmVkGEIgASgLMigubm9tb3MucnVudGltZS52Mi5OZXR3b3JrUmVzdG9yZWRSZXF1ZXN0SABCCQoHY29tbWFuZEIICgZfdHJhY2VCCQoHX3RhcmdldEoECAsQDEoECA0QDkoECA8QEEoECBAQEUoECBQQFUoECBgQGUoECBkQGkoECB8QIFIHY29ubmVjdFIPc3RhcnRfYXV0b19zeW5jUg5zdG9wX2F1dG9fc3luY1ISc25hcHNob3Rfd29ya3NwYWNlUhVyZXNvbHZlX2N1c3RvZHlfYnJlYWtSD21vZGVsX2xpZmVjeWNsZVIdZXN0YWJsaXNoX2FwcGxpY2F0aW9uX2N1c3RvZHlSEWFjcXVpcmVfd29ya3NwYWNlIjYKEEludm9jYXRpb25UYXJnZXQSEQoJd29ya3NwYWNlGAEgASgJEg8KB3Nlc3Npb24YAiABKAkikB8KD1J1bnRpbWVSZXNwb25zZRIYChBwcm90b2NvbF92ZXJzaW9uGAEgASgNEhIKCnJlcXVlc3RfaWQYAiABKAQSMwoHZmFpbHVyZRgKIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZUZhaWx1cmVIABI0CgtrZXJuZWxfY2FsbBgLIAEoCzIdLm5vbW9zLmtlcm5lbC52MS5DYWxsUmVzcG9uc2VIABI5Cg53b3Jrc3BhY2VfbGlzdBgNIAEoCzIfLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlTGlzdEgAEkEKDnN5bmNfd29ya3NwYWNlGA8gASgLMicubm9tb3MucnVudGltZS52Mi5TeW5jV29ya3NwYWNlUmVzcG9uc2VIABI3Cg13YXRjaF9zdGFydGVkGBIgASgLMh4ubm9tb3MucnVudGltZS52Mi5XYXRjaFN0YXJ0ZWRIABI3Cg13YXRjaF9zdG9wcGVkGBMgASgLMh4ubm9tb3MucnVudGltZS52Mi5XYXRjaFN0b3BwZWRIABI7Cg9kb21haW5fcHJlcGFyZWQYFCABKAsyIC5ub21vcy5ydW50aW1lLnYyLkRvbWFpblByZXBhcmVkSAASNQoMcmVhbG1fY2xvc2VkGBYgASgLMh0ubm9tb3MucnVudGltZS52Mi5SZWFsbUNsb3NlZEgAEjMKB2Jsb2NrZWQYFyABKAsyIC5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVCbG9ja2VkSAASSAoWcmVtb3RlX29mZmVyX2FkbWlzc2lvbhgYIAEoCzImLm5vbW9zLnJ1bnRpbWUudjIuUmVtb3RlT2ZmZXJBZG1pc3Npb25IABI7CgtkZWFkX2xldHRlchgZIAEoCzIkLm5vbW9zLnJ1bnRpbWUudjIuRGVhZExldHRlclJlc3BvbnNlSAASPQoQd29ya3NwYWNlX3N0YXR1cxgcIAEoCzIhLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlU3RhdHVzSAASUAoWcmVtb3RlX2dlbmVyYXRlZF9vZmZlchgdIAEoCzIuLm5vbW9zLnJ1bnRpbWUudjIuUmVtb3RlR2VuZXJhdGVkT2ZmZXJBY2NlcHRlZEgAEkgKE3dvcmtzcGFjZV9wbGFjZW1lbnQYHiABKAsyKS5ub21vcy5ydW50aW1lLnYyLldvcmtzcGFjZVBsYWNlbWVudFN0YXRlSAASRwoVY3JlZGVudGlhbHNfcmVmcmVzaGVkGB8gASgLMiYubm9tb3MucnVudGltZS52Mi5DcmVkZW50aWFsc1JlZnJlc2hlZEgAElIKG3dvcmtzcGFjZV9lZmZlY3RzX2RlbGl2ZXJlZBggIAEoCzIrLm5vbW9zLnJ1bnRpbWUudjIuV29ya3NwYWNlRWZmZWN0c0RlbGl2ZXJlZEgAEkkKE2F1dGhvcmluZ19wcmVmbGlnaHQYISABKAsyKi5ub21vcy5ydW50aW1lLnYyLkF1dGhvcmluZ1ByZWZsaWdodFJlc3VsdEgAEkIKEXdvcmtzcGFjZV9tb21lbnRzGCIgASgLMiUubm9tb3MucnVudGltZS52Mi5Xb3Jrc3BhY2VNb21lbnRMaXN0SAASUgobd29ya3NwYWNlX3RyYW5zZmVyX2VzdGltYXRlGCMgASgLMisubm9tb3MucnVudGltZS52Mi5Xb3Jrc3BhY2VUcmFuc2ZlckVzdGltYXRlSAASPwoRd29ya3NwYWNlX2dlbmVzaXMYJCABKAsyIi5ub21vcy5ydW50aW1lLnYyLldvcmtzcGFjZUdlbmVzaXNIABJAChBjaGlsZF93b3Jrc3BhY2VzGCUgASgLMiQubm9tb3MucnVudGltZS52Mi5DaGlsZFdvcmtzcGFjZUxpc3RIABI4CglmcmFtZXdvcmsYJiABKAsyIy5ub21vcy5ydW50aW1lLnYyLkZyYW1ld29ya1Jlc3BvbnNlSAASSQoWY29ycmVzcG9uZGVuY2VfcGVuZGluZxgnIAEoCzInLm5vbW9zLnJ1bnRpbWUudjIuQ29ycmVzcG9uZGVuY2VQZW5kaW5nSAASUwoZaWRlbnRpdHlfcHJvdmlkZXJfd2l0bmVzcxgoIAEoCzIuLm5vbW9zLnJ1bnRpbWUudjIuSWRlbnRpdHlQcm92aWRlcldpdG5lc3NSZWFkeUgAEkEKEm1haW50ZW5hbmNlX3RpY2tlZBgpIAEoCzIjLm5vbW9zLnJ1bnRpbWUudjIuTWFpbnRlbmFuY2VUaWNrZWRIABJSChtyZXNpZGVuY3lfcHJlc3N1cmVfcmVsaWV2ZWQYKiABKAsyKy5ub21vcy5ydW50aW1lLnYyLlJlc2lkZW5jeVByZXNzdXJlUmVsaWV2ZWRIABJHChVtYWludGVuYW5jZV9zY2hlZHVsZWQYKyABKAsyJi5ub21vcy5ydW50aW1lLnYyLk1haW50ZW5hbmNlU2NoZWR1bGVkSAASRQoXY3VzdG9keV9vZmZlcnNfYWRtaXR0ZWQYLCABKAsyIi5ub21vcy5ydW50aW1lLnYyLkN1c3RvZHlBZG1pc3Npb25IABJIChZsYXdfcGFja2FnZV9pbnNwZWN0aW9uGC0gASgLMiYubm9tb3MucnVudGltZS52Mi5MYXdQYWNrYWdlSW5zcGVjdGlvbkgAEkAKEmxvY2FsX3JlYWRfcGVuZGluZxguIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuTG9jYWxSZWFkUGVuZGluZ0gAEj8KEWZyb250aWVyX3JldGFpbmVkGC8gASgLMiIubm9tb3MucnVudGltZS52Mi5Gcm9udGllclJldGFpbmVkSAASRQoUYXBwbGljYXRpb25fcHJlcGFyZWQYMyABKAsyJS5ub21vcy5ydW50aW1lLnYyLkFwcGxpY2F0aW9uUHJlcGFyZWRIABJNChhhdXRoZW50aWNhdGlvbl9yZWFkaW5lc3MYMiABKAsyKS5ub21vcy5ydW50aW1lLnYyLkF1dGhlbnRpY2F0aW9uUmVhZGluZXNzSAASPwoPc29ja2V0X29ic2VydmVkGDAgASgLMiQubm9tb3MucnVudGltZS52Mi5QZWVyU29ja2V0T2JzZXJ2ZWRIABJBCgtsaXZlX29mZmVycxgxIAEoCzIqLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keU9mZmVyQmF0Y2hSZXF1ZXN0SAASTQoYY29ycmVzcG9uZGVuY2VfcmVjb3ZlcmVkGDQgASgLMikubm9tb3MucnVudGltZS52Mi5Db3JyZXNwb25kZW5jZVJlY292ZXJlZEgAEkgKFnJlY2VpdmluZ19ncm91cF9vcGVuZWQYNSABKAsyJi5ub21vcy5ydW50aW1lLnYyLlJlY2VpdmluZ0dyb3VwT3BlbmVkSAASUgobcmVjZWl2aW5nX2dyb3VwX2NvbnZlcmdlbmNlGDYgASgLMisubm9tb3MucnVudGltZS52Mi5SZWNlaXZpbmdHcm91cENvbnZlcmdlbmNlSAASTgoZYXBwbGljYXRpb25fbW9kZWxfYWRvcHRlZBg3IAEoCzIpLm5vbW9zLnJ1bnRpbWUudjIuQXBwbGljYXRpb25Nb2RlbEFkb3B0ZWRIABJKChdyZXNvbHZlZF93b3Jrc3BhY2VfbmFtZRg4IAEoCzInLm5vbW9zLnJ1bnRpbWUudjIuUmVzb2x2ZWRXb3Jrc3BhY2VOYW1lSAASRgoScmVmZXJlbmNlX3ZlcnNpb25zGDkgASgLMigubm9tb3MucnVudGltZS52Mi5SZWZlcmVuY2VWZXJzaW9uUmVwb3J0SAASPwoRd29ya3NwYWNlX29wZW5pbmcYOiABKAsyIi5ub21vcy5ydW50aW1lLnYyLldvcmtzcGFjZU9wZW5pbmdIABJOChlodHRwX29ibGlnYXRpb25fZGVsaXZlcmVkGDsgASgLMikubm9tb3MucnVudGltZS52Mi5IdHRwT2JsaWdhdGlvbkRlbGl2ZXJlZEgAEjcKDXNlc3Npb25fYm91bmQYPCABKAsyHi5ub21vcy5ydW50aW1lLnYyLlNlc3Npb25Cb3VuZEgAEjsKC3VuYXZhaWxhYmxlGD0gASgLMiQubm9tb3MucnVudGltZS52Mi5SdW50aW1lVW5hdmFpbGFibGVIABIzCgdyZWZ1c2VkGD4gASgLMiAubm9tb3MucnVudGltZS52Mi5SdW50aW1lUmVmdXNhbEgAEj0KEGhpc3RvcnlfYWNxdWlyZWQYPyABKAsyIS5ub21vcy5ydW50aW1lLnYyLkhpc3RvcnlBY3F1aXJlZEgAEkkKF2xvY2FsX2NvcHlfZHJvcF9wcmV2aWV3GEAgASgLMiYubm9tb3MucnVudGltZS52Mi5Mb2NhbENvcHlEcm9wUHJldmlld0gAEk0KGWxvY2FsX2NvcHlfZHJvcF9zY2hlZHVsZWQYQSABKAsyKC5ub21vcy5ydW50aW1lLnYyLkxvY2FsQ29weURyb3BTY2hlZHVsZWRIABJSChtwcm92aWRlcl9vcmlnaW5zX2NvbmZpZ3VyZWQYQiABKAsyKy5ub21vcy5ydW50aW1lLnYyLlByb3ZpZGVyT3JpZ2luc0NvbmZpZ3VyZWRIABI7Cg93b3Jrc3BhY2VfZmV0Y2gYQyABKAsyIC5ub21vcy5ydW50aW1lLnYyLldvcmtzcGFjZUZldGNoSAASQgoMbGF3X3Byb2R1Y3RzGEQgASgLMioubm9tb3Mua2VybmVsLnYxLkV4cG9ydExhd1Byb2R1Y3RzUmVzcG9uc2VIABJAChJsaXZlX3N0cmVhbV9zZXJ2ZWQYRSABKAsyIi5ub21vcy5ydW50aW1lLnYyLkxpdmVTdHJlYW1BbnN3ZXJIABI9ChBuZXR3b3JrX3Jlc3RvcmVkGEYgASgLMiEubm9tb3MucnVudGltZS52Mi5OZXR3b3JrUmVzdG9yZWRIAEIJCgdvdXRjb21lSgQIDBANSgQIDhAPSgQIEBARSgQIERASSgQIFRAWSgQIGhAbSgQIGxAcUgljb25uZWN0ZWRSEWF1dG9fc3luY19zdGFydGVkUhFhdXRvX3N5bmNfc3RvcHBlZFISd29ya3NwYWNlX3NuYXBzaG90UhZjdXN0b2R5X2JyZWFrX3Jlc29sdmVkUg9tb2RlbF9saWZlY3ljbGVSH2FwcGxpY2F0aW9uX2N1c3RvZHlfZXN0YWJsaXNoZWQi9wEKGUN1c3RvZHlPZmZlckJhdGNoUmVzcG9uc2USGAoQcHJvdG9jb2xfdmVyc2lvbhgBIAEoDRISCgpyZXF1ZXN0X2lkGAIgASgJEjcKCWFkbWlzc2lvbhgKIAEoCzIiLm5vbW9zLnJ1bnRpbWUudjIuQ3VzdG9keUFkbWlzc2lvbkgAEjMKB2ZhaWx1cmUYCyABKAsyIC5ub21vcy5ydW50aW1lLnYyLlJ1bnRpbWVGYWlsdXJlSAASMwoHYmxvY2tlZBgMIAEoCzIgLm5vbW9zLnJ1bnRpbWUudjIuUnVudGltZUJsb2NrZWRIAEIJCgdvdXRjb21lIhMKEUNsb3NlUmVhbG1SZXF1ZXN0Ig0KC1JlYWxtQ2xvc2VkYgZwcm90bzM", [file_nomos_kernel_v1_kernel, file_nomos_runtime_v2_application_desk, file_nomos_runtime_v2_application_readiness_desk, file_nomos_runtime_v2_authentication_desk, file_nomos_runtime_v2_correspondence_desk, file_nomos_runtime_v2_credentials_desk, file_nomos_runtime_v2_custody_desk, file_nomos_runtime_v2_framework, file_nomos_runtime_v2_identity_desk, file_nomos_runtime_v2_interaction_desk, file_nomos_runtime_v2_law_desk, file_nomos_runtime_v2_maintenance_desk, file_nomos_runtime_v2_model_adoption_desk, file_nomos_runtime_v2_observability_desk, file_nomos_runtime_v2_placement_desk, file_nomos_runtime_v2_receiving_group_desk, file_nomos_runtime_v2_recovery_desk, file_nomos_runtime_v2_records_desk, file_nomos_runtime_v2_residency_desk]);
3634
3635
  RuntimeRequestSchema = /* @__PURE__ */ messageDesc24(file_nomos_runtime_v2_runtime, 0);
3635
3636
  InvocationTargetSchema = /* @__PURE__ */ messageDesc24(file_nomos_runtime_v2_runtime, 1);
3636
3637
  RuntimeResponseSchema = /* @__PURE__ */ messageDesc24(file_nomos_runtime_v2_runtime, 2);
@@ -3957,7 +3958,7 @@ function bootKernelMachine(source, makeHost) {
3957
3958
  };
3958
3959
  return { imports, start, dispose };
3959
3960
  }
3960
- var writeBootLaw, assertUsdz, verifyLawClosure;
3961
+ var writeBootLaw, assertUsdz, unsignedWasiPointers, verifyLawClosure;
3961
3962
  var init_kernel_machine_desk = __esm({
3962
3963
  "../adapter/kernel_machine_desk.ts"() {
3963
3964
  "use strict";
@@ -3976,6 +3977,48 @@ var init_kernel_machine_desk = __esm({
3976
3977
  if (bytes.byteLength < 4 || bytes[0] !== 80 || bytes[1] !== 75 || bytes[2] !== 3 || bytes[3] !== 4)
3977
3978
  throw new Error(`${name} must be opaque USDZ bytes`);
3978
3979
  };
3980
+ unsignedWasiPointers = (imports) => {
3981
+ const pointerArguments = {
3982
+ args_sizes_get: [0, 1],
3983
+ args_get: [0, 1],
3984
+ environ_sizes_get: [0, 1],
3985
+ environ_get: [0, 1],
3986
+ clock_res_get: [1],
3987
+ clock_time_get: [2],
3988
+ fd_fdstat_get: [1],
3989
+ fd_filestat_get: [1],
3990
+ fd_pread: [1, 4],
3991
+ fd_prestat_get: [1],
3992
+ fd_prestat_dir_name: [1],
3993
+ fd_pwrite: [1, 4],
3994
+ fd_read: [1, 3],
3995
+ fd_readdir: [1, 4],
3996
+ fd_seek: [3],
3997
+ fd_tell: [1],
3998
+ fd_write: [1, 3],
3999
+ path_create_directory: [1],
4000
+ path_filestat_get: [2, 4],
4001
+ path_filestat_set_times: [2],
4002
+ path_link: [2, 5],
4003
+ path_open: [2, 8],
4004
+ path_readlink: [1, 3, 5],
4005
+ path_remove_directory: [1],
4006
+ path_rename: [1, 4],
4007
+ path_symlink: [0, 3],
4008
+ path_unlink_file: [1],
4009
+ poll_oneoff: [0, 1],
4010
+ random_get: [0]
4011
+ };
4012
+ for (const [name, indexes] of Object.entries(pointerArguments)) {
4013
+ const original = imports[name];
4014
+ if (original === void 0) continue;
4015
+ imports[name] = (...args) => {
4016
+ for (const index of indexes) args[index] = args[index] >>> 0;
4017
+ return original(...args);
4018
+ };
4019
+ }
4020
+ return imports;
4021
+ };
3979
4022
  verifyLawClosure = (machine, closureFile, capability) => {
3980
4023
  const response = callKernelOperation(machine, {
3981
4024
  case: "custody",
@@ -4312,7 +4355,9 @@ function nodeKernelWasiHost(directory2, stderr) {
4312
4355
  returnOnExit: true
4313
4356
  });
4314
4357
  let memory;
4315
- const imports = { ...wasi2.wasiImport };
4358
+ const imports = unsignedWasiPointers(
4359
+ { ...wasi2.wasiImport }
4360
+ );
4316
4361
  const openDescriptors = /* @__PURE__ */ new Set([3]);
4317
4362
  const pathOpen = imports.path_open;
4318
4363
  const fdClose = imports.fd_close;
@@ -5211,6 +5256,42 @@ var init_custody_transport = __esm({
5211
5256
  }
5212
5257
  });
5213
5258
 
5259
+ // ../adapter/custody_fetch_pool.ts
5260
+ function memoryStagedPack(fetched) {
5261
+ let bytes = fetched.pack;
5262
+ return {
5263
+ bytes: fetched.pack.byteLength,
5264
+ shallow: fetched.shallow,
5265
+ unshallow: fetched.unshallow,
5266
+ pack: () => {
5267
+ if (bytes === void 0) throw new Error("staged pack was discarded before it was applied");
5268
+ return bytes;
5269
+ },
5270
+ discard: () => {
5271
+ bytes = void 0;
5272
+ }
5273
+ };
5274
+ }
5275
+ async function fetchStagedInMemory(remote, headers, request, fetchImpl) {
5276
+ const fetched = await fetchPackWithBoundaries(remote, headers, {
5277
+ wants: request.wants,
5278
+ haves: request.haves,
5279
+ advertisement: request.advertisement,
5280
+ depth: request.depth,
5281
+ shallow: request.shallow ?? [],
5282
+ observe: request.observe
5283
+ }, fetchImpl);
5284
+ return fetched ? memoryStagedPack(fetched) : null;
5285
+ }
5286
+ var CUSTODY_STAGED_BYTES_BUDGET;
5287
+ var init_custody_fetch_pool = __esm({
5288
+ "../adapter/custody_fetch_pool.ts"() {
5289
+ "use strict";
5290
+ init_custody_transport();
5291
+ CUSTODY_STAGED_BYTES_BUDGET = 256 * 1024 * 1024;
5292
+ }
5293
+ });
5294
+
5214
5295
  // ../adapter/pack_import_steps.ts
5215
5296
  var IMPORT_STEP_TARGET_MILLIS, IMPORT_STEP_FIRST_BYTES, IMPORT_STEP_MIN_BYTES, IMPORT_STEP_MAX_BYTES, ImportStepBudget, yieldToQueuedWork;
5216
5297
  var init_pack_import_steps = __esm({
@@ -5690,17 +5771,27 @@ function gitCustodyDesk(kernel, fetchImpl = fetch, observe, phaseStarted, import
5690
5771
  throw error;
5691
5772
  }
5692
5773
  };
5693
- const acquireReference = async (workspace, ledger, remoteReference, localReference, have, acquisition) => {
5694
- const refs = acquisition?.advertisement.refs ?? await lsRefs(
5774
+ const applyTurn = (lanes) => lanes ? (work) => lanes.apply(work) : (work) => {
5775
+ try {
5776
+ return Promise.resolve(work());
5777
+ } catch (error) {
5778
+ return Promise.reject(error);
5779
+ }
5780
+ };
5781
+ const stagePack = (lanes, ledger, request) => lanes ? lanes.fetches.fetchPack(ledger.remote, ledger.headers ?? {}, request, fetchImpl) : fetchStagedInMemory(ledger.remote, ledger.headers ?? {}, request, fetchImpl);
5782
+ const listed = (lanes, work) => lanes ? lanes.fetches.run(work) : work();
5783
+ const acquireReference = async (workspace, ledger, remoteReference, localReference, have, acquisition, lanes) => {
5784
+ const refs = acquisition?.advertisement.refs ?? await listed(lanes, () => lsRefs(
5695
5785
  ledger.remote,
5696
5786
  ledger.headers ?? {},
5697
5787
  { service: "git-upload-pack", prefix: remoteReference },
5698
5788
  fetchImpl
5699
- );
5789
+ ));
5700
5790
  const head = refs[remoteReference];
5701
5791
  if (!head) return void 0;
5792
+ const turn = applyTurn(lanes);
5702
5793
  const isMain = localReference === branchRef("main");
5703
- const liveHave = () => isMain ? resolveRef(workspace, localReference) : have;
5794
+ const liveHave = () => isMain ? resolveRef(workspace, localReference) : have();
5704
5795
  const durableBaseOf = (live) => {
5705
5796
  const remoteTrackingReference = receiptRef(ledger);
5706
5797
  const trackedHead = resolveRef(workspace, remoteTrackingReference);
@@ -5711,42 +5802,43 @@ function gitCustodyDesk(kernel, fetchImpl = fetch, observe, phaseStarted, import
5711
5802
  }
5712
5803
  return true;
5713
5804
  };
5714
- let local = liveHave();
5715
- if (isMain && local !== void 0 && head !== local && durableBaseOf(local)) return head;
5716
- const haves = knownHeads(workspace);
5717
- if (head !== local && !haves.includes(head) && !acquisition?.imported.has(head)) {
5718
- const pack = await fetchPack(
5719
- ledger.remote,
5720
- ledger.headers ?? {},
5721
- { wants: [head], haves, advertisement: acquisition?.advertisement },
5722
- fetchImpl
5723
- );
5724
- if (pack) {
5725
- await importFetchedPack(
5726
- workspace,
5727
- pack,
5728
- ledger.operatorCustody === true ? void 0 : head
5729
- );
5730
- }
5731
- }
5732
- local = liveHave();
5733
- if (isMain && local === void 0) {
5734
- await measured(workspace, "restore", () => restoreMain(workspace, head, ledger.operatorCustody === true));
5735
- writeRef(workspace, receiptRef(ledger), head);
5736
- } else if (isMain && head === local) {
5737
- if (ledger.operatorCustody === true) {
5738
- await measured(workspace, "restore", () => restoreMain(workspace, head, true));
5739
- }
5740
- if (resolveRef(workspace, receiptRef(ledger)) !== head) {
5805
+ const settle = async () => {
5806
+ const local = liveHave();
5807
+ if (isMain && local === void 0) {
5808
+ await measured(workspace, "restore", () => restoreMain(workspace, head, ledger.operatorCustody === true));
5741
5809
  writeRef(workspace, receiptRef(ledger), head);
5810
+ } else if (isMain && head === local) {
5811
+ if (ledger.operatorCustody === true) {
5812
+ await measured(workspace, "restore", () => restoreMain(workspace, head, true));
5813
+ }
5814
+ if (resolveRef(workspace, receiptRef(ledger)) !== head) {
5815
+ writeRef(workspace, receiptRef(ledger), head);
5816
+ }
5817
+ } else if (isMain) {
5818
+ if (durableBaseOf(local)) return head;
5819
+ throw new Error(`custody remote advanced for '${workspace}': local ${local}, observed ${head}; peer convergence is required before changing main`);
5820
+ } else {
5821
+ writeRef(workspace, localReference, head);
5742
5822
  }
5743
- } else if (isMain) {
5744
- if (durableBaseOf(local)) return head;
5745
- throw new Error(`custody remote advanced for '${workspace}': local ${local}, observed ${head}; peer convergence is required before changing main`);
5746
- } else {
5747
- writeRef(workspace, localReference, head);
5823
+ return head;
5824
+ };
5825
+ const decided = await turn(async () => {
5826
+ const local = liveHave();
5827
+ if (isMain && local !== void 0 && head !== local && durableBaseOf(local)) return { head };
5828
+ const haves = knownHeads(workspace);
5829
+ if (head !== local && !haves.includes(head) && !acquisition?.imported.has(head)) return { haves };
5830
+ return { head: await settle() };
5831
+ });
5832
+ if ("head" in decided) return decided.head;
5833
+ const staged = await stagePack(lanes, ledger, { wants: [head], haves: decided.haves, advertisement: acquisition?.advertisement });
5834
+ try {
5835
+ return await turn(async () => {
5836
+ if (staged) await importFetchedPack(workspace, staged.pack(), ledger.operatorCustody === true ? void 0 : head);
5837
+ return settle();
5838
+ });
5839
+ } finally {
5840
+ staged?.discard();
5748
5841
  }
5749
- return head;
5750
5842
  };
5751
5843
  const packDeltaOrFull = (workspace, head, base) => {
5752
5844
  try {
@@ -5766,13 +5858,16 @@ function gitCustodyDesk(kernel, fetchImpl = fetch, observe, phaseStarted, import
5766
5858
  importPack: applyPack,
5767
5859
  pack: packDelta
5768
5860
  }, fetchImpl);
5769
- const acquireMain = (workspace, ledger) => acquiring(workspace, ledger, "main", () => measured(workspace, "acquire", async () => {
5861
+ const acquireMain = (workspace, ledger, lanes) => acquiring(workspace, ledger, "main", () => measured(workspace, "acquire", async () => {
5770
5862
  const reference = branchRef("main");
5771
- await kernel.writeSkeleton(workspace, "main");
5772
- const local = resolveRef(workspace, reference);
5773
- const advertisement = await measured(workspace, "advertise", () => discoverRefs(ledger.remote, ledger.headers ?? {}, {
5863
+ const turn = applyTurn(lanes);
5864
+ const local = await turn(async () => {
5865
+ await kernel.writeSkeleton(workspace, "main");
5866
+ return resolveRef(workspace, reference);
5867
+ });
5868
+ const advertisement = await listed(lanes, () => measured(workspace, "advertise", () => discoverRefs(ledger.remote, ledger.headers ?? {}, {
5774
5869
  signal: ledger.signal ?? AbortSignal.timeout(COLD_OPEN_LISTING_MILLIS)
5775
- }, fetchImpl));
5870
+ }, fetchImpl)));
5776
5871
  observedRemoteRefs.set(custodyKey(workspace, ledger), new Map(Object.entries(advertisement.refs)));
5777
5872
  const delivered = new Map(Object.entries(advertisement.refs).filter(([ref]) => isCorrespondenceRef(ref)));
5778
5873
  const imported = /* @__PURE__ */ new Set();
@@ -5788,62 +5883,74 @@ function gitCustodyDesk(kernel, fetchImpl = fetch, observe, phaseStarted, import
5788
5883
  const wants2 = [...new Set(references.map((ref) => advertisement.refs[ref]))].filter((oid) => !haves2.includes(oid));
5789
5884
  if (wants2.length) {
5790
5885
  const detail = { references, wants: wants2, haves: haves2 };
5791
- const fetched = await measured(workspace, "fetch", () => fetchPackWithBoundaries(ledger.remote, ledger.headers ?? {}, {
5886
+ const staged = await measured(workspace, "fetch", () => stagePack(lanes, ledger, {
5792
5887
  wants: wants2,
5793
5888
  haves: haves2,
5794
5889
  advertisement,
5795
5890
  ...ledger.operatorCustody && workspace !== ANCHOR_WORKSPACE ? { depth: 1 } : {},
5796
5891
  ...observe ? { observe: (timing) => Object.assign(detail, timing) } : {}
5797
- }, fetchImpl), detail);
5798
- if (fetched) {
5799
- await measured(
5800
- workspace,
5801
- "import",
5802
- () => importFetchedPack(workspace, fetched.pack, void 0, fetched),
5803
- { references, wants: wants2, haves: haves2, bytes: fetched.pack.byteLength }
5804
- );
5805
- for (const oid of wants2) imported.add(oid);
5892
+ }), detail);
5893
+ try {
5894
+ if (staged) {
5895
+ await turn(() => measured(
5896
+ workspace,
5897
+ "import",
5898
+ () => importFetchedPack(workspace, staged.pack(), void 0, staged),
5899
+ { references, wants: wants2, haves: haves2, bytes: staged.bytes }
5900
+ ));
5901
+ for (const oid of wants2) imported.add(oid);
5902
+ }
5903
+ } finally {
5904
+ staged?.discard();
5806
5905
  }
5807
5906
  }
5808
5907
  for (const oid of haves2) imported.add(oid);
5809
5908
  }
5810
- const head = await acquireReference(workspace, ledger, reference, reference, local, acquisition);
5909
+ const head = await acquireReference(workspace, ledger, reference, reference, () => local, acquisition, lanes);
5811
5910
  if (head) sealedMain.set(custodyKey(workspace, ledger), head);
5812
5911
  const haves = knownHeads(workspace);
5813
5912
  const wants = [...new Set([...delivered.values()].filter((oid) => !haves.includes(oid) && !imported.has(oid)))];
5814
5913
  if (wants.length > 0) {
5815
- const pack = await fetchPack(ledger.remote, ledger.headers ?? {}, { wants, haves, advertisement }, fetchImpl);
5816
- if (pack) await importFetchedPack(workspace, pack);
5817
- }
5818
- for (const [reference2, oid] of delivered) {
5819
- if (resolveRef(workspace, reference2) === void 0) writeRef(workspace, reference2, oid);
5914
+ const staged = await stagePack(lanes, ledger, { wants, haves, advertisement });
5915
+ try {
5916
+ if (staged) await turn(() => importFetchedPack(workspace, staged.pack()));
5917
+ } finally {
5918
+ staged?.discard();
5919
+ }
5820
5920
  }
5921
+ await turn(() => {
5922
+ for (const [reference2, oid] of delivered) {
5923
+ if (resolveRef(workspace, reference2) === void 0) writeRef(workspace, reference2, oid);
5924
+ }
5925
+ });
5821
5926
  if (ledger.localCustody) {
5822
5927
  await acquireReference(
5823
5928
  workspace,
5824
5929
  ledger,
5825
5930
  "refs/remotes/nomos/main",
5826
5931
  "refs/remotes/nomos/main",
5827
- resolveRef(workspace, "refs/remotes/nomos/main"),
5828
- acquisition
5932
+ () => resolveRef(workspace, "refs/remotes/nomos/main"),
5933
+ acquisition,
5934
+ lanes
5829
5935
  );
5830
5936
  }
5831
- await placement.acquire(workspace, ledger, acquisition);
5937
+ await turn(() => placement.acquire(workspace, ledger, acquisition));
5832
5938
  if (ledger.localCustody) {
5833
5939
  await acquireReference(
5834
5940
  workspace,
5835
5941
  ledger,
5836
5942
  "refs/remotes/nomos/placement",
5837
5943
  "refs/remotes/nomos/placement",
5838
- resolveRef(workspace, "refs/remotes/nomos/placement"),
5839
- acquisition
5944
+ () => resolveRef(workspace, "refs/remotes/nomos/placement"),
5945
+ acquisition,
5946
+ lanes
5840
5947
  );
5841
5948
  }
5842
5949
  return head ? { head } : {};
5843
5950
  }));
5844
5951
  const desk = {
5845
- async acquireMain(workspace, ledger) {
5846
- const acquired = await acquireMain(workspace, ledger);
5952
+ async acquireMain(workspace, ledger, lanes) {
5953
+ const acquired = await acquireMain(workspace, ledger, lanes);
5847
5954
  if (workspace === ANCHOR_WORKSPACE && ledger.operatorCustody === true) {
5848
5955
  for (let slice = 0; slice < ANCHOR_DEEPEN_SLICES; slice += 1) {
5849
5956
  if (!knownShallowBoundary(workspace)?.size) break;
@@ -5941,8 +6048,7 @@ function gitCustodyDesk(kernel, fetchImpl = fetch, observe, phaseStarted, import
5941
6048
  const fullReference = branchRef(reference);
5942
6049
  return acquiring(workspace, ledger, fullReference, async () => {
5943
6050
  await kernel.writeSkeleton(workspace, "main");
5944
- const local = resolveRef(workspace, fullReference);
5945
- await acquireReference(workspace, ledger, fullReference, fullReference, local);
6051
+ await acquireReference(workspace, ledger, fullReference, fullReference, () => resolveRef(workspace, fullReference));
5946
6052
  });
5947
6053
  },
5948
6054
  seal(workspace, ledger, retention) {
@@ -6171,6 +6277,7 @@ var init_git_custody_desk = __esm({
6171
6277
  "use strict";
6172
6278
  init_kernel_pb();
6173
6279
  init_custody_transport();
6280
+ init_custody_fetch_pool();
6174
6281
  init_pack_import_steps();
6175
6282
  init_residency_desk_pb();
6176
6283
  init_kernel_failure();
@@ -8022,6 +8129,7 @@ var init_kernel_residency = __esm({
8022
8129
  "use strict";
8023
8130
  KernelResidency = class {
8024
8131
  #open = /* @__PURE__ */ new Set();
8132
+ #trap;
8025
8133
  workspaces() {
8026
8134
  return [...this.#open];
8027
8135
  }
@@ -8036,9 +8144,16 @@ var init_kernel_residency = __esm({
8036
8144
  released(workspace) {
8037
8145
  this.#open.delete(workspace.trim());
8038
8146
  }
8039
- /** The machine trapped: it is discarded with every workspace it held. */
8040
- trapped() {
8147
+ /** The machine trapped: it is discarded with every workspace it held. `reason` is the bounded
8148
+ * trap text the host reports when it discards the machine; the first trap is the one kept. */
8149
+ trapped(reason) {
8041
8150
  this.#open.clear();
8151
+ this.#trap ??= reason.slice(0, 2e3);
8152
+ }
8153
+ /** Why this machine trapped, once it has; undefined while it has not. Never cleared: nothing
8154
+ * revives a trapped machine, the host replaces it (and this record with it). */
8155
+ get trap() {
8156
+ return this.#trap;
8042
8157
  }
8043
8158
  /** Before the kernel sees a request: a release leaves first, so a failed release cannot keep it. */
8044
8159
  before(request) {
@@ -8049,7 +8164,7 @@ var init_kernel_residency = __esm({
8049
8164
  }
8050
8165
  after(request, response) {
8051
8166
  if (response.outcome.case === "failure" && response.outcome.value.code === "NMS-KERNEL-TRAP") {
8052
- this.trapped();
8167
+ this.trapped(`${response.outcome.value.code}: ${response.outcome.value.message}`);
8053
8168
  return;
8054
8169
  }
8055
8170
  const operation = request.operation;
@@ -8853,6 +8968,15 @@ var init_kernel_port = __esm({
8853
8968
  residentWorkspaces() {
8854
8969
  return this.#residency.workspaces();
8855
8970
  }
8971
+ /**
8972
+ * Why the kernel behind this port trapped, once it has (CAP-965); undefined while it has not.
8973
+ * Every kernel call passes [#call], which records a trap however it surfaced: thrown, answered
8974
+ * as an NMS-KERNEL-TRAP failure, or caught and answered as typed paper by a desk above. The host
8975
+ * reads this after every request and discards the machine; reading it never enters the kernel.
8976
+ */
8977
+ kernelTrap() {
8978
+ return this.#residency.trap;
8979
+ }
8856
8980
  /**
8857
8981
  * Answer only the peer-local inventory question.
8858
8982
  *
@@ -9958,14 +10082,13 @@ var init_kernel_port = __esm({
9958
10082
  );
9959
10083
  } catch (error) {
9960
10084
  this.#attached?.lost();
9961
- if (error instanceof Error && /NMS-KERNEL-TRAP|\btrap\b|unreachable|out of bounds/i.test(error.message)) {
9962
- this.#residency.trapped();
9963
- }
10085
+ const trapped = error instanceof Error && /NMS-KERNEL-TRAP|\btrap\b|unreachable|out of bounds/i.test(error.message);
9964
10086
  if (error instanceof Error && /\btrap\b|unreachable|out of bounds/i.test(error.message)) {
9965
10087
  const top = request.operation.case ?? "empty";
9966
10088
  const nested = request.operation.case === "custody" ? request.operation.value.operation.case ?? "empty" : request.operation.case === "query" ? request.operation.value.query.case === "named" ? `named:${request.operation.value.query.value.operation}` : request.operation.value.query.case ?? "empty" : "";
9967
10089
  error.message = `kernel-operation=${top}/${nested}: ${error.message}`;
9968
10090
  }
10091
+ if (trapped) this.#residency.trapped(error.message);
9969
10092
  const pending = readIndexPendingAnswer(request, error instanceof Error ? error.message : String(error));
9970
10093
  if (pending !== void 0) return pending;
9971
10094
  rethrowTypedKernelFailure(error);
@@ -16900,7 +17023,7 @@ var init_read_maintenance_desk = __esm({
16900
17023
  const failures = demand.failures + 1;
16901
17024
  this.#pending.delete(workspace);
16902
17025
  const retryMillis = Math.min(30 * 60 * 1e3, 1e3 * 2 ** Math.min(failures - 1, 10));
16903
- slowQuantumObserver?.(`[nomos-kernel-perf] ${JSON.stringify({
17026
+ (slowQuantumObserver ?? ((line) => console.warn(line)))(`[nomos-kernel-perf] ${JSON.stringify({
16904
17027
  op: "peer_maintenance_failure",
16905
17028
  failed: true,
16906
17029
  workspace,
@@ -18192,6 +18315,8 @@ function reduceReplicaFollow(state, event, policy) {
18192
18315
  };
18193
18316
  }
18194
18317
  return due(event.nowUnixMillis);
18318
+ case ReplicaFollowEventKind.NetworkRestored:
18319
+ return state.case === ReplicaFollowPhase.Offline || state.case === ReplicaFollowPhase.Backoff && !state.refusal ? due(event.nowUnixMillis) : { state, effects: [] };
18195
18320
  case ReplicaFollowEventKind.Reconnected:
18196
18321
  if (state.case === ReplicaFollowPhase.Backoff && state.refusal?.blocked) {
18197
18322
  return refusedEvent(state, state.refusal, event.nowUnixMillis);
@@ -18451,6 +18576,7 @@ var init_replica_follow_state = __esm({
18451
18576
  CredentialReplaced: "credential_replaced",
18452
18577
  Failed: "failed",
18453
18578
  Reconnected: "reconnected",
18579
+ NetworkRestored: "network_restored",
18454
18580
  DependencyAdvanced: "dependency_advanced",
18455
18581
  RebornRemotely: "reborn_remotely",
18456
18582
  LocalCopyDropAuthorized: "local_copy_drop_authorized",
@@ -18807,6 +18933,20 @@ var init_replica_follow_controller = __esm({
18807
18933
  reconnected(workspace, remoteAdvanced = false) {
18808
18934
  return this.#event(workspace, ReplicaFollowEventKind.Reconnected, remoteAdvanced);
18809
18935
  }
18936
+ networkRestored() {
18937
+ if (!this.#recovered) return [];
18938
+ const woken = [];
18939
+ for (const follow of this.#desk.all()) {
18940
+ this.#desk.transition(follow.spec.workspace, {
18941
+ case: ReplicaFollowEventKind.NetworkRestored,
18942
+ nowUnixMillis: this.#now()
18943
+ });
18944
+ if (this.#desk.get(follow.spec.workspace)?.state.case === ReplicaFollowPhase.Due) {
18945
+ woken.push(follow.spec.workspace);
18946
+ }
18947
+ }
18948
+ return woken;
18949
+ }
18810
18950
  /** Another workspace advanced or settled; every held dependency gets one retry. */
18811
18951
  dependencyAdvanced(except) {
18812
18952
  if (!this.#recovered) return [];
@@ -20009,7 +20149,7 @@ import { create as create48 } from "@bufbuild/protobuf";
20009
20149
  function outcomesDigest(oids) {
20010
20150
  return sha256Hex(new TextEncoder().encode([...new Set(oids)].sort().join("\n")));
20011
20151
  }
20012
- var CHECKPOINT_CHUNK_BYTES, CHECKPOINT_WINDOW_CHUNKS, MAX_CHECKPOINT_WINDOW_CHUNKS, CHECKPOINT_STALE_OFFERS, MAX_STREAM_BATCH_OFFERS, MAX_HISTORY_SLICE, MAX_HELD_SLICES, CHECKPOINT_CACHE_BYTES, MAX_CHECKPOINT_OUTCOMES, PLACEMENT_REF2, LEVEL_BATCH2, MAX_CHECKPOINT_VARIANTS, NO_TREES2, footprint, hex2, frame, refusal, OFF_MAIN_AFTER_MILLIS, MAX_UNFOUND_HEADS, LiveStreamServer;
20152
+ var CHECKPOINT_CHUNK_BYTES, CHECKPOINT_WINDOW_CHUNKS, MAX_CHECKPOINT_WINDOW_CHUNKS, CHECKPOINT_STALE_OFFERS, MAX_STREAM_BATCH_OFFERS, LEVEL_PACK_BYTES, MAX_HISTORY_SLICE, MAX_HELD_SLICES, CHECKPOINT_CACHE_BYTES, MAX_CHECKPOINT_OUTCOMES, PLACEMENT_REF2, LEVEL_BATCH2, MAX_CHECKPOINT_VARIANTS, NO_TREES2, footprint, hex2, frame, refusal, OFF_MAIN_AFTER_MILLIS, MAX_UNFOUND_HEADS, LiveStreamServer;
20013
20153
  var init_live_stream_server = __esm({
20014
20154
  "../peer-office/src/runtime/live_stream_server.ts"() {
20015
20155
  "use strict";
@@ -20023,6 +20163,7 @@ var init_live_stream_server = __esm({
20023
20163
  MAX_CHECKPOINT_WINDOW_CHUNKS = 32;
20024
20164
  CHECKPOINT_STALE_OFFERS = 64;
20025
20165
  MAX_STREAM_BATCH_OFFERS = 256;
20166
+ LEVEL_PACK_BYTES = 4 * 1024 * 1024 - 16 * 1024;
20026
20167
  MAX_HISTORY_SLICE = 256;
20027
20168
  MAX_HELD_SLICES = 4;
20028
20169
  CHECKPOINT_CACHE_BYTES = 1024 * 1024 * 1024;
@@ -20154,7 +20295,7 @@ var init_live_stream_server = __esm({
20154
20295
  )];
20155
20296
  }
20156
20297
  const maxOffers = Math.min(Math.max(1, frontier.maxOffers || MAX_STREAM_BATCH_OFFERS), MAX_STREAM_BATCH_OFFERS);
20157
- return [...answer, this.#batch(workspace, requestId, head, main, maxOffers)];
20298
+ return [...answer, ...this.#batch(workspace, requestId, head, main, maxOffers, remountAsk(), behind ?? 0n)];
20158
20299
  }
20159
20300
  /** Whether this peer's custody of the workspace is shallow. Unknown counts as shallow: it keeps the
20160
20301
  * existing wait for history rather than calling a head off main. */
@@ -20172,21 +20313,44 @@ var init_live_stream_server = __esm({
20172
20313
  * bounded walk and one bounded pack (O(batch)). The copy's kernel adopts exactly these commits on
20173
20314
  * the same parent, judging each offer, so its next head is one this peer holds.
20174
20315
  */
20175
- #batch(workspace, requestId, base, main, maxOffers) {
20316
+ #batch(workspace, requestId, base, main, maxOffers, remountAsk, behind) {
20176
20317
  const mount = workspaceMount(workspace);
20177
- const intents = this.#kernel.transportIntentsAbove(mount, requestId, BigInt(maxOffers), base, main, true).intents;
20178
- const batchHead = intents.at(-1)?.oid ?? main;
20179
- return frame({ case: "pack", value: create48(LivePackSchema, {
20180
- requestId: `${LEVEL_BATCH2}${base}`,
20181
- reference: "refs/heads/main",
20182
- head: batchHead,
20183
- base,
20184
- pack: this.#kernel.packDelta(mount, requestId, batchHead, base),
20185
- offers: intents.length,
20186
- ...this.#sealed(workspace) ? { sealed: this.#sealed(workspace) } : {}
20187
- }) });
20318
+ let limit = maxOffers;
20319
+ for (; ; ) {
20320
+ const intents = this.#kernel.transportIntentsAbove(mount, requestId, BigInt(limit), base, main, true).intents;
20321
+ const batchHead = intents.at(-1)?.oid ?? main;
20322
+ const pack = this.#kernel.packDelta(mount, requestId, batchHead, base);
20323
+ if (pack.byteLength <= LEVEL_PACK_BYTES) {
20324
+ return [frame({ case: "pack", value: create48(LivePackSchema, {
20325
+ requestId: `${LEVEL_BATCH2}${base}`,
20326
+ reference: "refs/heads/main",
20327
+ head: batchHead,
20328
+ base,
20329
+ pack,
20330
+ offers: intents.length,
20331
+ ...this.#sealed(workspace) ? { sealed: this.#sealed(workspace) } : {}
20332
+ }) })];
20333
+ }
20334
+ if (intents.length > 1) {
20335
+ limit = Math.floor(intents.length / 2);
20336
+ continue;
20337
+ }
20338
+ const sealed = this.#sealedOnMain(workspace, requestId, main);
20339
+ const above = sealed !== void 0 && sealed !== batchHead && this.#reaches(mount, requestId, batchHead, sealed);
20340
+ return this.#checkpoint(workspace, requestId, remountAsk, behind, above ? sealed : main);
20341
+ }
20188
20342
  }
20189
- #checkpoint(workspace, requestId, request, remountBehind) {
20343
+ /** Whether `head` is on the walk from `above` down this peer's main, i.e. `above` is at or past it. */
20344
+ #reaches(mount, requestId, head, above) {
20345
+ try {
20346
+ return this.#kernel.historySummary(mount, requestId, head, above).reachedBase;
20347
+ } catch {
20348
+ return false;
20349
+ }
20350
+ }
20351
+ /** `atHead`: the checkpoint is taken at exactly that head (a level batch's fallback, above an offer
20352
+ * no frame can carry), never the newest held one below it. */
20353
+ #checkpoint(workspace, requestId, request, remountBehind, atHead) {
20190
20354
  const mount = workspaceMount(workspace);
20191
20355
  const main = this.#kernel.head(mount, requestId);
20192
20356
  if (!main) return [refusal("", "nomos.stream.opening", "the workspace has no main on this peer yet", 250)];
@@ -20201,7 +20365,11 @@ var init_live_stream_server = __esm({
20201
20365
  }
20202
20366
  }
20203
20367
  const resumed = checkpoint !== void 0;
20204
- if (!checkpoint) checkpoint = this.#thin(this.#current(workspace, requestId, main), trees);
20368
+ if (!checkpoint) {
20369
+ const newest = this.#checkpoints.get(workspace)?.at(-1);
20370
+ const whole = atHead === void 0 ? this.#current(workspace, requestId, main) : newest?.head === atHead ? newest : this.#build(workspace, requestId, atHead);
20371
+ checkpoint = this.#thin(whole, trees);
20372
+ }
20205
20373
  checkpoint.servedAt = this.#now();
20206
20374
  const sealed = this.#sealed(workspace);
20207
20375
  const offset = resumed ? Number(request.offset) : 0;
@@ -20797,15 +20965,15 @@ var init_live_correspondence_desk = __esm({
20797
20965
  if (this.writeBurst && !link.publisher) link.owedSince ??= this.clock.monotonicNanoseconds();
20798
20966
  }
20799
20967
  /** Local commits the custodian has not yet admitted: those not yet offered, and those offered
20800
- * whose admission has not come back. Undefined when the link carries no follower stream or
20801
- * local history cannot be counted from the custodian's base.
20968
+ * whose admission has not come back. Offline copies are counted from their durable tracked
20969
+ * base, including new offline edits. Undefined when custody/history cannot be counted.
20802
20970
  *
20803
20971
  * Counting asks the kernel to walk history twice. Every follow report asks, and a save reports
20804
20972
  * on its own turn, so during a local-write burst the last count is served instead and one fresh
20805
20973
  * report follows when the burst lets it (writes quiet, or the staleness cap). */
20806
20974
  progress(workspace) {
20807
20975
  const link = this.#links.get(workspace);
20808
- if (!link || link.publisher || link.state !== "open" || !link.stream && !link.dirty) {
20976
+ if (link?.publisher) {
20809
20977
  this.#progress.delete(workspace);
20810
20978
  return void 0;
20811
20979
  }
@@ -20827,14 +20995,14 @@ var init_live_correspondence_desk = __esm({
20827
20995
  }
20828
20996
  #count(link, mount) {
20829
20997
  const head = this.kernel.head(mount, ++this.#requestId);
20830
- const acknowledged = this.#currentCursor(link, mount, head)?.local ?? this.#heldPeerMain(link, mount, head) ?? this.kernel.resolveRef(mount, ++this.#requestId, TRACKED_MAIN2);
20998
+ const acknowledged = (link ? this.#currentCursor(link, mount, head)?.local ?? this.#heldPeerMain(link, mount, head) : void 0) ?? this.kernel.resolveRef(mount, ++this.#requestId, TRACKED_MAIN2);
20831
20999
  if (!head || !acknowledged) return void 0;
20832
21000
  const count = (base, tip) => {
20833
21001
  if (base === tip) return 0;
20834
21002
  const summary = this.#chain(mount, base, tip);
20835
21003
  return summary?.reachedBase ? Number(summary.commitCount) : void 0;
20836
21004
  };
20837
- const sent = link.stream?.unanswered.length ? link.stream.sent : void 0;
21005
+ const sent = link?.state === "open" && link.stream?.unanswered.length ? link.stream.sent : void 0;
20838
21006
  const unacknowledged = sent ? count(acknowledged, sent) : 0;
20839
21007
  const unsent = count(sent ?? acknowledged, head);
20840
21008
  return unacknowledged === void 0 || unsent === void 0 ? void 0 : { unsent, unacknowledged };
@@ -20935,6 +21103,18 @@ var init_live_correspondence_desk = __esm({
20935
21103
  operation
20936
21104
  }) });
20937
21105
  }
21106
+ /** A physical offline-to-online edge invalidates transport retry deadlines,
21107
+ * not custody evidence. Open links and their unacknowledged work stay intact. */
21108
+ networkRestored() {
21109
+ let retried = 0;
21110
+ for (const link of this.#links.values()) {
21111
+ if (link.state === "open") continue;
21112
+ if (link.state === "opening") this.#closeByRuntime(link, "network restored during open");
21113
+ this.#open(link);
21114
+ retried++;
21115
+ }
21116
+ return retried;
21117
+ }
20938
21118
  #open(link) {
20939
21119
  link.id = `live:${++this.#sequence}:${link.binding.workspace}`;
20940
21120
  link.state = "opening";
@@ -25543,6 +25723,9 @@ var init_replica_follow_lane = __esm({
25543
25723
  const delay = this.#controller.reconnected(workspace);
25544
25724
  if (delay !== void 0) this.#scheduleAt(workspace, this.#now() + delay);
25545
25725
  }
25726
+ networkRestored() {
25727
+ for (const workspace of this.#controller.networkRestored()) this.schedule(workspace);
25728
+ }
25546
25729
  /** The upstream announced a new frontier: news even to a follow the kernel refused. */
25547
25730
  remoteAdvanced(workspace) {
25548
25731
  const delay = this.#controller.reconnected(workspace, true);
@@ -25928,6 +26111,9 @@ var init_correspondence_desk = __esm({
25928
26111
  #lastClosure = /* @__PURE__ */ new Map();
25929
26112
  /** The last follow summary published, so an unchanged summary is not re-sent. */
25930
26113
  #followsReported = "";
26114
+ // Scheduler probes may report phase/time changes, but are not new custody
26115
+ // evidence. Reuse counts from the last actual observation on those probes.
26116
+ #reportedStreamProgress = /* @__PURE__ */ new Map();
25931
26117
  /** Workspaces whose custodian is opening them from verified custody, and since when (CAP-769). */
25932
26118
  #warming = new CustodianWarmingLedger();
25933
26119
  /** One-use handoff from recovery to its scheduled selector, never a durable inventory cache. */
@@ -26283,6 +26469,10 @@ var init_correspondence_desk = __esm({
26283
26469
  this.#onSyncCompleted?.(binding.session, event);
26284
26470
  }
26285
26471
  }
26472
+ networkRestored() {
26473
+ this.#followLane.networkRestored();
26474
+ this.reportFollows();
26475
+ }
26286
26476
  /** The live link to a followed workspace's upstream opened or reopened. */
26287
26477
  replicaLinkOpened(workspace) {
26288
26478
  this.#followLane.reconnected(workspace);
@@ -26316,13 +26506,17 @@ var init_correspondence_desk = __esm({
26316
26506
  /** The live stream's count of local commits not yet offered and not yet admitted, per workspace. */
26317
26507
  streamProgress;
26318
26508
  /** Publish, application-wide, how many follows this peer keeps up with and how many are in sync. */
26319
- reportFollows(force = false) {
26509
+ reportFollows(force = false, refreshStreamProgress = true) {
26320
26510
  let workspaces;
26321
26511
  try {
26322
26512
  workspaces = this.#follows.knownWorkspaces();
26323
26513
  } catch {
26324
26514
  return;
26325
26515
  }
26516
+ const followed = new Set(workspaces);
26517
+ for (const workspace of this.#reportedStreamProgress.keys()) {
26518
+ if (!followed.has(workspace)) this.#reportedStreamProgress.delete(workspace);
26519
+ }
26326
26520
  let settled = 0;
26327
26521
  let live = 0;
26328
26522
  const now2 = this.#nowMillis();
@@ -26352,7 +26546,10 @@ var init_correspondence_desk = __esm({
26352
26546
  const dueAt2 = state.case === ReplicaFollowPhase.Due || state.case === ReplicaFollowPhase.ReplacingLocal ? state.dueAtUnixMillis : void 0;
26353
26547
  const attempt = state.case === ReplicaFollowPhase.Running || state.case === ReplicaFollowPhase.Offline || state.case === ReplicaFollowPhase.InvalidCredential || state.case === ReplicaFollowPhase.Backoff || state.case === ReplicaFollowPhase.ReplacingLocal ? state.attempt : void 0;
26354
26548
  const activeEffect = state.case === ReplicaFollowPhase.Running ? this.#activeSyncEffect(workspace) : void 0;
26355
- const stream = this.streamProgress?.(workspace);
26549
+ if (refreshStreamProgress || force || !this.#reportedStreamProgress.has(workspace)) {
26550
+ this.#reportedStreamProgress.set(workspace, this.streamProgress?.(workspace));
26551
+ }
26552
+ const stream = this.#reportedStreamProgress.get(workspace);
26356
26553
  const custodianWarming = this.#warmingPosture(workspace, state, now2);
26357
26554
  return [create65(FollowObservationSchema, {
26358
26555
  workspace,
@@ -26487,7 +26684,7 @@ var init_correspondence_desk = __esm({
26487
26684
  [...this.#syncWorkspaces.values()].flatMap((active) => [...active.workspaces])
26488
26685
  );
26489
26686
  const followCandidates = this.#followLane.candidates(activeSyncWorkspaces, excludedWorkspaces);
26490
- this.reportFollows();
26687
+ this.reportFollows(false, false);
26491
26688
  const due2 = [
26492
26689
  ...followCandidates,
26493
26690
  ...[...this.#outboxDueAt.entries()].map(([workspace2, at]) => ({
@@ -29801,7 +29998,7 @@ var init_peer_office = __esm({
29801
29998
  const yieldedRequest = resumed ?? request;
29802
29999
  const continued = yieldedRequest.command.case === "continueCorrespondence" ? yieldedRequest.command.value.workId : void 0;
29803
30000
  const background = continued === void 0 ? this.#backgroundPapers.has(yieldedRequest.requestId) : this.#backgroundWork.has(continued);
29804
- const foreground = !background && (continued === void 0 ? yieldedRequest.command.case !== "socketReceipt" : this.#foregroundWork.delete(continued));
30001
+ const foreground = !background && (continued === void 0 ? !["socketReceipt", "networkRestored", "listWorkspaces"].includes(yieldedRequest.command.case ?? "") : this.#foregroundWork.delete(continued));
29805
30002
  if (background) {
29806
30003
  const held = this.#yieldBackground(yieldedRequest, continued);
29807
30004
  if (held) return { responseProtobuf: toBinary27(RuntimeResponseSchema, held) };
@@ -30006,6 +30203,14 @@ var init_peer_office = __esm({
30006
30203
  let pendingWorkId;
30007
30204
  let pendingEffectId;
30008
30205
  try {
30206
+ if (request.command.case === "networkRestored") {
30207
+ const linksRetried = this.#live.networkRestored();
30208
+ this.#correspondence.networkRestored();
30209
+ return this.#response(request, {
30210
+ case: "networkRestored",
30211
+ value: create76(NetworkRestoredSchema, { linksRetried })
30212
+ });
30213
+ }
30009
30214
  if (request.command.case === "socketReceipt") {
30010
30215
  const rung = /* @__PURE__ */ new Set();
30011
30216
  this.#rungThisReceipt = rung;
@@ -30115,6 +30320,7 @@ var init_peer_office = __esm({
30115
30320
  }
30116
30321
  }
30117
30322
  switch (request.command.case) {
30323
+ case "networkRestored":
30118
30324
  case "socketReceipt":
30119
30325
  throw new Error("socket receipts must enter through the peer lifecycle");
30120
30326
  case "bindSession": {
@@ -30794,6 +31000,11 @@ var init_peer_office = __esm({
30794
31000
  residentWorkspaces() {
30795
31001
  return this.#residency.residentWorkspaces();
30796
31002
  }
31003
+ /** Why this office's kernel trapped, once it has (CAP-965): the kernel port's record, which a desk
31004
+ * that answered the trap as typed paper cannot hide. The host discards the machine on it. */
31005
+ kernelTrap() {
31006
+ return this.#kernel.kernelTrap();
31007
+ }
30797
31008
  retentionOutstandingDetails() {
30798
31009
  return this.#residency.retentionOutstandingDetails();
30799
31010
  }
@@ -31285,6 +31496,7 @@ function createPeerOfficeFrameRunner(kernel, credentials, profile, observations,
31285
31496
  correspondenceHolds: () => peer2.correspondenceHolds(),
31286
31497
  residentObservation: (workspace) => peer2.residentObservation(workspace),
31287
31498
  residentWorkspaces: () => peer2.residentWorkspaces(),
31499
+ kernelTrap: () => peer2.kernelTrap(),
31288
31500
  drainEvents,
31289
31501
  runBackground,
31290
31502
  close() {
@@ -32653,6 +32865,7 @@ var init_runtime_selection = __esm({
32653
32865
  // src/peer_office.ts
32654
32866
  var peer_office_exports = {};
32655
32867
  __export(peer_office_exports, {
32868
+ catchUpLocalReplica: () => catchUpLocalReplica,
32656
32869
  generateDeviceKey: () => generateDeviceKey,
32657
32870
  inspectLawArchive: () => inspectLawArchive,
32658
32871
  invokeLocalPeerOffice: () => invokeLocalPeerOffice,
@@ -33200,6 +33413,17 @@ async function verifyRemoteChain(cloud, workspace) {
33200
33413
  }
33201
33414
  return verdict;
33202
33415
  }
33416
+ async function catchUpLocalReplica(cloud, workspace) {
33417
+ const response = await invokeLocalPeerOffice(cloud, {
33418
+ case: "syncWorkspace",
33419
+ value: create82(SyncWorkspaceRequestSchema, { workspace, admit: false })
33420
+ });
33421
+ if (response.outcome.case !== "syncWorkspace") {
33422
+ throw new Error(`Peer Office returned '${response.outcome.case || "empty"}' while catching ${workspace}'s replica up with its custodian${unavailableDetail(response)}`);
33423
+ }
33424
+ const head = response.outcome.value.currentHead;
33425
+ return head === void 0 ? {} : { head };
33426
+ }
33203
33427
  async function readServedLaw(cloud, workspace) {
33204
33428
  const session = `githolon-status-${workspace}`;
33205
33429
  await bindLocalSession(cloud, { workspace, session });