__vite_ssr_exportName__("ProviderSetupInput", () => { try { return ProviderSetupInput } catch {} });
__vite_ssr_exportName__("CodexAuthCallbackInput", () => { try { return CodexAuthCallbackInput } catch {} });
__vite_ssr_exportName__("CodexAuthCallbackState", () => { try { return CodexAuthCallbackState } catch {} });
__vite_ssr_exportName__("ProviderAuthMethod", () => { try { return ProviderAuthMethod } catch {} });
__vite_ssr_exportName__("ProviderAuthInteraction", () => { try { return ProviderAuthInteraction } catch {} });
__vite_ssr_exportName__("ProviderAuthResponse", () => { try { return ProviderAuthResponse } catch {} });
__vite_ssr_exportName__("ProviderAuthStartInput", () => { try { return ProviderAuthStartInput } catch {} });
__vite_ssr_exportName__("ProviderAuthRespondInput", () => { try { return ProviderAuthRespondInput } catch {} });
__vite_ssr_exportName__("ProviderAuthState", () => { try { return ProviderAuthState } catch {} });
__vite_ssr_exportName__("ProviderAuthCompleteInput", () => { try { return ProviderAuthCompleteInput } catch {} });
__vite_ssr_exportName__("ProviderAuthCancelInput", () => { try { return ProviderAuthCancelInput } catch {} });
__vite_ssr_exportName__("ProviderInstallState", () => { try { return ProviderInstallState } catch {} });
__vite_ssr_exportName__("ProviderInstallCancelInput", () => { try { return ProviderInstallCancelInput } catch {} });
__vite_ssr_exportName__("ProviderSetupError", () => { try { return ProviderSetupError } catch {} });
__vite_ssr_exportName__("ChatGptReconnectProfile", () => { try { return ChatGptReconnectProfile } catch {} });
__vite_ssr_exportName__("ChatGptTransferredProfile", () => { try { return ChatGptTransferredProfile } catch {} });
__vite_ssr_exportName__("ChatGptReconnectProfileInput", () => { try { return ChatGptReconnectProfileInput } catch {} });
__vite_ssr_exportName__("ChatGptImportProfileInput", () => { try { return ChatGptImportProfileInput } catch {} });
__vite_ssr_exportName__("ChatGptHandoffInput", () => { try { return ChatGptHandoffInput } catch {} });
__vite_ssr_exportName__("ChatGptHandoffState", () => { try { return ChatGptHandoffState } catch {} });
const __vite_ssr_import_0__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Schema.js");
const __vite_ssr_import_1__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/contracts/src/baseSchemas.ts", {"importedNames":["EnvironmentId","ForwardCompatibleArray","ForwardCompatibleOptional","IsoDateTime","TrimmedNonEmptyString"]});
const __vite_ssr_import_2__ = await __vite_ssr_import__("/@fs/home/ubuntu/wt/pr-24263/packages/contracts/src/providerInstance.ts", {"importedNames":["ProviderDriverKind","ProviderInstanceId"]});



const ProviderSetupInput = __vite_ssr_import_0__.Struct({ instanceId: __vite_ssr_import_2__.ProviderInstanceId });
const CodexAuthCallbackInput = __vite_ssr_import_0__.Struct({
	authorizationUrl: __vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isMaxLength(16384)),
	returnUrl: __vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isMaxLength(4096)),
	environmentId: __vite_ssr_import_1__.EnvironmentId,
	instanceId: __vite_ssr_import_2__.ProviderInstanceId,
	flowId: __vite_ssr_import_1__.TrimmedNonEmptyString.check(__vite_ssr_import_0__.isMaxLength(128))
});
const CodexAuthCallbackState = __vite_ssr_import_0__.Union([__vite_ssr_import_0__.Struct({ phase: __vite_ssr_import_0__.Literal("ready") }), __vite_ssr_import_0__.Struct({
	phase: __vite_ssr_import_0__.Literal("finished"),
	callbackUrl: __vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isMaxLength(16384))
})]);
const SetupOperationId = __vite_ssr_import_1__.TrimmedNonEmptyString.check(__vite_ssr_import_0__.isMaxLength(128));
const ProviderAuthMethod = __vite_ssr_import_0__.Struct({
	id: SetupOperationId,
	accountEmail: __vite_ssr_import_0__.optional((0,__vite_ssr_import_1__.TrimmedNonEmptyString)),
	name: __vite_ssr_import_1__.TrimmedNonEmptyString,
	description: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String),
	type: __vite_ssr_import_0__.Literals([
		"agent",
		"terminal",
		"credentials"
	])
});
const ProviderAuthInteraction = __vite_ssr_import_0__.Union([
	__vite_ssr_import_0__.Struct({
		type: __vite_ssr_import_0__.Literal("browser"),
		id: SetupOperationId,
		url: __vite_ssr_import_1__.TrimmedNonEmptyString.check(__vite_ssr_import_0__.isMaxLength(16384)),
		requiresConsent: __vite_ssr_import_0__.Boolean,
		acceptsCallback: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.Boolean)
	}),
	__vite_ssr_import_0__.Struct({
		type: __vite_ssr_import_0__.Literal("deviceCode"),
		id: SetupOperationId,
		url: __vite_ssr_import_1__.TrimmedNonEmptyString.check(__vite_ssr_import_0__.isMaxLength(16384)),
		userCode: __vite_ssr_import_1__.TrimmedNonEmptyString.check(__vite_ssr_import_0__.isMaxLength(256))
	}),
	__vite_ssr_import_0__.Struct({
		type: __vite_ssr_import_0__.Literal("terminal"),
		id: SetupOperationId,
		output: __vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isMaxLength(16384)),
		outputOffset: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.Int.check(__vite_ssr_import_0__.isGreaterThanOrEqualTo(0)))
	}),
	__vite_ssr_import_0__.Struct({
		type: __vite_ssr_import_0__.Literal("credentials"),
		id: SetupOperationId,
		fields: __vite_ssr_import_0__.Array(__vite_ssr_import_0__.Struct({
			name: SetupOperationId,
			label: __vite_ssr_import_1__.TrimmedNonEmptyString,
			secret: __vite_ssr_import_0__.Boolean
		})).check(__vite_ssr_import_0__.isMaxLength(16))
	})
]);
const ProviderAuthResponse = __vite_ssr_import_0__.Union([
	__vite_ssr_import_0__.Struct({
		type: __vite_ssr_import_0__.Literal("browser"),
		action: __vite_ssr_import_0__.Literals(["accept", "decline"])
	}),
	__vite_ssr_import_0__.Struct({
		type: __vite_ssr_import_0__.Literal("terminal"),
		data: __vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isMaxLength(4096)),
		size: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.Struct({
			cols: __vite_ssr_import_0__.Int.check(__vite_ssr_import_0__.isBetween({
				minimum: 1,
				maximum: 500
			})),
			rows: __vite_ssr_import_0__.Int.check(__vite_ssr_import_0__.isBetween({
				minimum: 1,
				maximum: 200
			}))
		}))
	}),
	__vite_ssr_import_0__.Struct({
		type: __vite_ssr_import_0__.Literal("credentials"),
		values: __vite_ssr_import_0__.Record(SetupOperationId, __vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isMaxLength(16384))).check(__vite_ssr_import_0__.isMaxProperties(16))
	})
]);
const ProviderAuthStartInput = __vite_ssr_import_0__.Struct({
	instanceId: __vite_ssr_import_2__.ProviderInstanceId,
	methodId: __vite_ssr_import_0__.optionalKey(SetupOperationId),
	returnUrl: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.String),
	callbackMode: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.Literals(["server", "client"]))
});
const ProviderAuthRespondInput = __vite_ssr_import_0__.Struct({
	instanceId: __vite_ssr_import_2__.ProviderInstanceId,
	flowId: SetupOperationId,
	interactionId: SetupOperationId,
	response: ProviderAuthResponse
});
const ProviderAuthState = __vite_ssr_import_0__.Struct({
	instanceId: __vite_ssr_import_2__.ProviderInstanceId,
	phase: __vite_ssr_import_0__.Literals([
		"idle",
		"starting",
		"waiting",
		"verifying",
		"succeeded",
		"failed",
		"cancelled"
	]),
	flowId: __vite_ssr_import_0__.NullOr(SetupOperationId),
	authorizationUrl: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String),
	expiresAt: __vite_ssr_import_0__.NullOr((0,__vite_ssr_import_1__.IsoDateTime)),
	message: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String),
	// Drop unknown auth methods rather than rejecting the entire state.
	methods: __vite_ssr_import_0__.optionalKey((0,__vite_ssr_import_1__.ForwardCompatibleArray)(ProviderAuthMethod).check(__vite_ssr_import_0__.isMaxLength(32))),
	interaction: (0,__vite_ssr_import_1__.ForwardCompatibleOptional)(__vite_ssr_import_0__.NullOr(ProviderAuthInteraction)),
	credentialOwner: (0,__vite_ssr_import_1__.ForwardCompatibleOptional)(__vite_ssr_import_0__.Literals(["provider", "t3"]))
});
const ProviderAuthCompleteInput = __vite_ssr_import_0__.Struct({
	instanceId: __vite_ssr_import_2__.ProviderInstanceId,
	flowId: SetupOperationId,
	callbackUrl: __vite_ssr_import_1__.TrimmedNonEmptyString.check(__vite_ssr_import_0__.isMaxLength(16384))
});
const ProviderAuthCancelInput = __vite_ssr_import_0__.Struct({
	instanceId: __vite_ssr_import_2__.ProviderInstanceId,
	flowId: SetupOperationId
});
const ByteCount = __vite_ssr_import_0__.Int.check(__vite_ssr_import_0__.isGreaterThanOrEqualTo(0));
const ProviderInstallState = __vite_ssr_import_0__.Struct({
	driver: __vite_ssr_import_2__.ProviderDriverKind,
	operationId: __vite_ssr_import_0__.NullOr(SetupOperationId),
	phase: __vite_ssr_import_0__.Literals([
		"idle",
		"downloading",
		"extracting",
		"verifying",
		"succeeded",
		"failed",
		"cancelled"
	]),
	downloadedBytes: ByteCount,
	totalBytes: __vite_ssr_import_0__.NullOr(ByteCount),
	version: __vite_ssr_import_0__.NullOr((0,__vite_ssr_import_1__.TrimmedNonEmptyString)),
	installedVersion: __vite_ssr_import_0__.NullOr((0,__vite_ssr_import_1__.TrimmedNonEmptyString)),
	executablePath: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.NullOr((0,__vite_ssr_import_1__.TrimmedNonEmptyString))),
	source: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.Literals(["managed", "local"]))),
	canRemove: __vite_ssr_import_0__.Boolean,
	message: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String)
});
const ProviderInstallCancelInput = __vite_ssr_import_0__.Struct({
	instanceId: __vite_ssr_import_2__.ProviderInstanceId,
	operationId: SetupOperationId
});
/** Safe setup failure text. Never include OAuth codes, URLs, or native token data. */
class ProviderSetupError extends __vite_ssr_import_0__.TaggedError()("ProviderSetupError", {
	instanceId: __vite_ssr_import_2__.ProviderInstanceId,
	operation: __vite_ssr_import_0__.String,
	detail: __vite_ssr_import_0__.String,
	cause: __vite_ssr_import_0__.optional(__vite_ssr_import_0__.Defect())
}) {
	get message() {
		return this.detail;
	}
};
const ChatGptReconnectProfile = __vite_ssr_import_0__.Struct({
	clientId: __vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isPattern(/^oaiapp_[\w-]+$/u)),
	subject: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.String),
	email: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String)),
	redirectUri: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isPattern(/^http:\/\/(?:127\.0\.0\.1|localhost):[1-9]\d{0,4}\/auth\/callback$/u))),
	connectionLabel: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.String),
	sharingEnabled: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.Boolean),
	idTokenHint: __vite_ssr_import_0__.optionalKey(__vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isMaxLength(16384)))
});
const ChatGptTransferredProfile = __vite_ssr_import_0__.Struct({
	registration: ChatGptReconnectProfile,
	credentials: __vite_ssr_import_0__.Struct({
		clientId: __vite_ssr_import_0__.String,
		accessToken: __vite_ssr_import_0__.NonEmptyString.check(__vite_ssr_import_0__.isMaxLength(16384)),
		refreshToken: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isMaxLength(16384))),
		idToken: __vite_ssr_import_0__.NonEmptyString.check(__vite_ssr_import_0__.isMaxLength(16384)),
		issuer: __vite_ssr_import_0__.String,
		expiresAt: __vite_ssr_import_0__.Finite,
		earliestRefreshAt: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.Finite),
		scopes: __vite_ssr_import_0__.Array(__vite_ssr_import_0__.String),
		subject: __vite_ssr_import_0__.String,
		email: __vite_ssr_import_0__.NullOr(__vite_ssr_import_0__.String)
	})
});
const ChatGptReconnectProfileInput = __vite_ssr_import_0__.Struct({
	instanceId: __vite_ssr_import_2__.ProviderInstanceId,
	methodId: __vite_ssr_import_0__.String
});
const ChatGptImportProfileInput = __vite_ssr_import_0__.Struct({
	instanceId: __vite_ssr_import_2__.ProviderInstanceId,
	profile: ChatGptTransferredProfile
});
const ChatGptHandoffInput = __vite_ssr_import_0__.Struct({
	instanceId: __vite_ssr_import_2__.ProviderInstanceId,
	environmentId: __vite_ssr_import_1__.EnvironmentId,
	attemptId: __vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isMaxLength(128)),
	returnUrl: __vite_ssr_import_0__.String.check(__vite_ssr_import_0__.isMaxLength(4096)),
	profile: __vite_ssr_import_0__.NullOr(ChatGptReconnectProfile)
});
const ChatGptHandoffState = __vite_ssr_import_0__.Union([__vite_ssr_import_0__.Struct({
	phase: __vite_ssr_import_0__.Literal("auth"),
	state: ProviderAuthState
}), __vite_ssr_import_0__.Struct({
	phase: __vite_ssr_import_0__.Literal("finished"),
	profile: ChatGptTransferredProfile
})]);
//# sourceMappingSource=vite-generated
//# sourceMappingURL=data:application/json;base64,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c0JBQXNCLHNCQUFPLE9BQU87Q0FDL0MsWUFBWTtDQUNaLGVBQWU7Q0FDZixXQUFXLHNCQUFPLE9BQU8sTUFBTSxzQkFBTyxZQUFZLEdBQUcsQ0FBQztDQUN0RCxXQUFXLHNCQUFPLE9BQU8sTUFBTSxzQkFBTyxZQUFZLElBQUssQ0FBQztDQUN4RCxTQUFTLHNCQUFPLE9BQU8sdUJBQXVCO0FBQ2hELENBQUM7QUFFTSxNQUFNLHNCQUFzQixzQkFBTyxNQUFNLENBQzlDLHNCQUFPLE9BQU87Q0FBRSxPQUFPLHNCQUFPLFFBQVEsTUFBTTtDQUFHLE9BQU87QUFBa0IsQ0FBQyxHQUN6RSxzQkFBTyxPQUFPO0NBQUUsT0FBTyxzQkFBTyxRQUFRLFVBQVU7Q0FBRyxTQUFTO0FBQTBCLENBQUMsQ0FDekYsQ0FBQyIsIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZXMiOlsicHJvdmlkZXJTZXR1cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBTY2hlbWEgZnJvbSBcImVmZmVjdC9TY2hlbWFcIjtcblxuaW1wb3J0IHtcbiAgRW52aXJvbm1lbnRJZCxcbiAgRm9yd2FyZENvbXBhdGlibGVBcnJheSxcbiAgRm9yd2FyZENvbXBhdGlibGVPcHRpb25hbCxcbiAgSXNvRGF0ZVRpbWUsXG4gIFRyaW1tZWROb25FbXB0eVN0cmluZyxcbn0gZnJvbSBcIi4vYmFzZVNjaGVtYXMudHNcIjtcbmltcG9ydCB7IFByb3ZpZGVyRHJpdmVyS2luZCwgUHJvdmlkZXJJbnN0YW5jZUlkIH0gZnJvbSBcIi4vcHJvdmlkZXJJbnN0YW5jZS50c1wiO1xuXG5leHBvcnQgY29uc3QgUHJvdmlkZXJTZXR1cElucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIGluc3RhbmNlSWQ6IFByb3ZpZGVySW5zdGFuY2VJZCxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJTZXR1cElucHV0ID0gdHlwZW9mIFByb3ZpZGVyU2V0dXBJbnB1dC5UeXBlO1xuXG5leHBvcnQgY29uc3QgQ29kZXhBdXRoQ2FsbGJhY2tJbnB1dCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBhdXRob3JpemF0aW9uVXJsOiBTY2hlbWEuU3RyaW5nLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCgxNl8zODQpKSxcbiAgcmV0dXJuVXJsOiBTY2hlbWEuU3RyaW5nLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCg0XzA5NikpLFxuICBlbnZpcm9ubWVudElkOiBFbnZpcm9ubWVudElkLFxuICBpbnN0YW5jZUlkOiBQcm92aWRlckluc3RhbmNlSWQsXG4gIGZsb3dJZDogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCgxMjgpKSxcbn0pO1xuZXhwb3J0IHR5cGUgQ29kZXhBdXRoQ2FsbGJhY2tJbnB1dCA9IHR5cGVvZiBDb2RleEF1dGhDYWxsYmFja0lucHV0LlR5cGU7XG5leHBvcnQgY29uc3QgQ29kZXhBdXRoQ2FsbGJhY2tTdGF0ZSA9IFNjaGVtYS5VbmlvbihbXG4gIFNjaGVtYS5TdHJ1Y3QoeyBwaGFzZTogU2NoZW1hLkxpdGVyYWwoXCJyZWFkeVwiKSB9KSxcbiAgU2NoZW1hLlN0cnVjdCh7XG4gICAgcGhhc2U6IFNjaGVtYS5MaXRlcmFsKFwiZmluaXNoZWRcIiksXG4gICAgY2FsbGJhY2tVcmw6IFNjaGVtYS5TdHJpbmcuY2hlY2soU2NoZW1hLmlzTWF4TGVuZ3RoKDE2XzM4NCkpLFxuICB9KSxcbl0pO1xuXG5jb25zdCBTZXR1cE9wZXJhdGlvbklkID0gVHJpbW1lZE5vbkVtcHR5U3RyaW5nLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCgxMjgpKTtcblxuZXhwb3J0IGNvbnN0IFByb3ZpZGVyQXV0aE1ldGhvZCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBpZDogU2V0dXBPcGVyYXRpb25JZCxcbiAgYWNjb3VudEVtYWlsOiBTY2hlbWEub3B0aW9uYWwoVHJpbW1lZE5vbkVtcHR5U3RyaW5nKSxcbiAgbmFtZTogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICBkZXNjcmlwdGlvbjogU2NoZW1hLk51bGxPcihTY2hlbWEuU3RyaW5nKSxcbiAgdHlwZTogU2NoZW1hLkxpdGVyYWxzKFtcImFnZW50XCIsIFwidGVybWluYWxcIiwgXCJjcmVkZW50aWFsc1wiXSksXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyQXV0aE1ldGhvZCA9IHR5cGVvZiBQcm92aWRlckF1dGhNZXRob2QuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFByb3ZpZGVyQXV0aEludGVyYWN0aW9uID0gU2NoZW1hLlVuaW9uKFtcbiAgU2NoZW1hLlN0cnVjdCh7XG4gICAgdHlwZTogU2NoZW1hLkxpdGVyYWwoXCJicm93c2VyXCIpLFxuICAgIGlkOiBTZXR1cE9wZXJhdGlvbklkLFxuICAgIHVybDogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCgxNl8zODQpKSxcbiAgICByZXF1aXJlc0NvbnNlbnQ6IFNjaGVtYS5Cb29sZWFuLFxuICAgIGFjY2VwdHNDYWxsYmFjazogU2NoZW1hLm9wdGlvbmFsS2V5KFNjaGVtYS5Cb29sZWFuKSxcbiAgfSksXG4gIFNjaGVtYS5TdHJ1Y3Qoe1xuICAgIHR5cGU6IFNjaGVtYS5MaXRlcmFsKFwiZGV2aWNlQ29kZVwiKSxcbiAgICBpZDogU2V0dXBPcGVyYXRpb25JZCxcbiAgICB1cmw6IFRyaW1tZWROb25FbXB0eVN0cmluZy5jaGVjayhTY2hlbWEuaXNNYXhMZW5ndGgoMTZfMzg0KSksXG4gICAgdXNlckNvZGU6IFRyaW1tZWROb25FbXB0eVN0cmluZy5jaGVjayhTY2hlbWEuaXNNYXhMZW5ndGgoMjU2KSksXG4gIH0pLFxuICBTY2hlbWEuU3RydWN0KHtcbiAgICB0eXBlOiBTY2hlbWEuTGl0ZXJhbChcInRlcm1pbmFsXCIpLFxuICAgIGlkOiBTZXR1cE9wZXJhdGlvbklkLFxuICAgIG91dHB1dDogU2NoZW1hLlN0cmluZy5jaGVjayhTY2hlbWEuaXNNYXhMZW5ndGgoMTZfMzg0KSksXG4gICAgb3V0cHV0T2Zmc2V0OiBTY2hlbWEub3B0aW9uYWxLZXkoU2NoZW1hLkludC5jaGVjayhTY2hlbWEuaXNHcmVhdGVyVGhhbk9yRXF1YWxUbygwKSkpLFxuICB9KSxcbiAgU2NoZW1hLlN0cnVjdCh7XG4gICAgdHlwZTogU2NoZW1hLkxpdGVyYWwoXCJjcmVkZW50aWFsc1wiKSxcbiAgICBpZDogU2V0dXBPcGVyYXRpb25JZCxcbiAgICBmaWVsZHM6IFNjaGVtYS5BcnJheShcbiAgICAgIFNjaGVtYS5TdHJ1Y3Qoe1xuICAgICAgICBuYW1lOiBTZXR1cE9wZXJhdGlvbklkLFxuICAgICAgICBsYWJlbDogVHJpbW1lZE5vbkVtcHR5U3RyaW5nLFxuICAgICAgICBzZWNyZXQ6IFNjaGVtYS5Cb29sZWFuLFxuICAgICAgfSksXG4gICAgKS5jaGVjayhTY2hlbWEuaXNNYXhMZW5ndGgoMTYpKSxcbiAgfSksXG5dKTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyQXV0aEludGVyYWN0aW9uID0gdHlwZW9mIFByb3ZpZGVyQXV0aEludGVyYWN0aW9uLlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQcm92aWRlckF1dGhSZXNwb25zZSA9IFNjaGVtYS5VbmlvbihbXG4gIFNjaGVtYS5TdHJ1Y3Qoe1xuICAgIHR5cGU6IFNjaGVtYS5MaXRlcmFsKFwiYnJvd3NlclwiKSxcbiAgICBhY3Rpb246IFNjaGVtYS5MaXRlcmFscyhbXCJhY2NlcHRcIiwgXCJkZWNsaW5lXCJdKSxcbiAgfSksXG4gIFNjaGVtYS5TdHJ1Y3Qoe1xuICAgIHR5cGU6IFNjaGVtYS5MaXRlcmFsKFwidGVybWluYWxcIiksXG4gICAgZGF0YTogU2NoZW1hLlN0cmluZy5jaGVjayhTY2hlbWEuaXNNYXhMZW5ndGgoNF8wOTYpKSxcbiAgICBzaXplOiBTY2hlbWEub3B0aW9uYWxLZXkoXG4gICAgICBTY2hlbWEuU3RydWN0KHtcbiAgICAgICAgY29sczogU2NoZW1hLkludC5jaGVjayhTY2hlbWEuaXNCZXR3ZWVuKHsgbWluaW11bTogMSwgbWF4aW11bTogNTAwIH0pKSxcbiAgICAgICAgcm93czogU2NoZW1hLkludC5jaGVjayhTY2hlbWEuaXNCZXR3ZWVuKHsgbWluaW11bTogMSwgbWF4aW11bTogMjAwIH0pKSxcbiAgICAgIH0pLFxuICAgICksXG4gIH0pLFxuICBTY2hlbWEuU3RydWN0KHtcbiAgICB0eXBlOiBTY2hlbWEuTGl0ZXJhbChcImNyZWRlbnRpYWxzXCIpLFxuICAgIHZhbHVlczogU2NoZW1hLlJlY29yZChTZXR1cE9wZXJhdGlvbklkLCBTY2hlbWEuU3RyaW5nLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCgxNl8zODQpKSkuY2hlY2soXG4gICAgICBTY2hlbWEuaXNNYXhQcm9wZXJ0aWVzKDE2KSxcbiAgICApLFxuICB9KSxcbl0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJBdXRoUmVzcG9uc2UgPSB0eXBlb2YgUHJvdmlkZXJBdXRoUmVzcG9uc2UuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFByb3ZpZGVyQXV0aFN0YXJ0SW5wdXQgPSBTY2hlbWEuU3RydWN0KHtcbiAgaW5zdGFuY2VJZDogUHJvdmlkZXJJbnN0YW5jZUlkLFxuICBtZXRob2RJZDogU2NoZW1hLm9wdGlvbmFsS2V5KFNldHVwT3BlcmF0aW9uSWQpLFxuICByZXR1cm5Vcmw6IFNjaGVtYS5vcHRpb25hbEtleShTY2hlbWEuU3RyaW5nKSxcbiAgY2FsbGJhY2tNb2RlOiBTY2hlbWEub3B0aW9uYWxLZXkoU2NoZW1hLkxpdGVyYWxzKFtcInNlcnZlclwiLCBcImNsaWVudFwiXSkpLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlckF1dGhTdGFydElucHV0ID0gdHlwZW9mIFByb3ZpZGVyQXV0aFN0YXJ0SW5wdXQuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFByb3ZpZGVyQXV0aFJlc3BvbmRJbnB1dCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBpbnN0YW5jZUlkOiBQcm92aWRlckluc3RhbmNlSWQsXG4gIGZsb3dJZDogU2V0dXBPcGVyYXRpb25JZCxcbiAgaW50ZXJhY3Rpb25JZDogU2V0dXBPcGVyYXRpb25JZCxcbiAgcmVzcG9uc2U6IFByb3ZpZGVyQXV0aFJlc3BvbnNlLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlckF1dGhSZXNwb25kSW5wdXQgPSB0eXBlb2YgUHJvdmlkZXJBdXRoUmVzcG9uZElucHV0LlR5cGU7XG5cbmV4cG9ydCBjb25zdCBQcm92aWRlckF1dGhTdGF0ZSA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBpbnN0YW5jZUlkOiBQcm92aWRlckluc3RhbmNlSWQsXG4gIHBoYXNlOiBTY2hlbWEuTGl0ZXJhbHMoW1xuICAgIFwiaWRsZVwiLFxuICAgIFwic3RhcnRpbmdcIixcbiAgICBcIndhaXRpbmdcIixcbiAgICBcInZlcmlmeWluZ1wiLFxuICAgIFwic3VjY2VlZGVkXCIsXG4gICAgXCJmYWlsZWRcIixcbiAgICBcImNhbmNlbGxlZFwiLFxuICBdKSxcbiAgZmxvd0lkOiBTY2hlbWEuTnVsbE9yKFNldHVwT3BlcmF0aW9uSWQpLFxuICBhdXRob3JpemF0aW9uVXJsOiBTY2hlbWEuTnVsbE9yKFNjaGVtYS5TdHJpbmcpLFxuICBleHBpcmVzQXQ6IFNjaGVtYS5OdWxsT3IoSXNvRGF0ZVRpbWUpLFxuICBtZXNzYWdlOiBTY2hlbWEuTnVsbE9yKFNjaGVtYS5TdHJpbmcpLFxuICAvLyBEcm9wIHVua25vd24gYXV0aCBtZXRob2RzIHJhdGhlciB0aGFuIHJlamVjdGluZyB0aGUgZW50aXJlIHN0YXRlLlxuICBtZXRob2RzOiBTY2hlbWEub3B0aW9uYWxLZXkoXG4gICAgRm9yd2FyZENvbXBhdGlibGVBcnJheShQcm92aWRlckF1dGhNZXRob2QpLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCgzMikpLFxuICApLFxuICBpbnRlcmFjdGlvbjogRm9yd2FyZENvbXBhdGlibGVPcHRpb25hbChTY2hlbWEuTnVsbE9yKFByb3ZpZGVyQXV0aEludGVyYWN0aW9uKSksXG4gIGNyZWRlbnRpYWxPd25lcjogRm9yd2FyZENvbXBhdGlibGVPcHRpb25hbChTY2hlbWEuTGl0ZXJhbHMoW1wicHJvdmlkZXJcIiwgXCJ0M1wiXSkpLFxufSk7XG5leHBvcnQgdHlwZSBQcm92aWRlckF1dGhTdGF0ZSA9IHR5cGVvZiBQcm92aWRlckF1dGhTdGF0ZS5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHJvdmlkZXJBdXRoQ29tcGxldGVJbnB1dCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBpbnN0YW5jZUlkOiBQcm92aWRlckluc3RhbmNlSWQsXG4gIGZsb3dJZDogU2V0dXBPcGVyYXRpb25JZCxcbiAgY2FsbGJhY2tVcmw6IFRyaW1tZWROb25FbXB0eVN0cmluZy5jaGVjayhTY2hlbWEuaXNNYXhMZW5ndGgoMTZfMzg0KSksXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyQXV0aENvbXBsZXRlSW5wdXQgPSB0eXBlb2YgUHJvdmlkZXJBdXRoQ29tcGxldGVJbnB1dC5UeXBlO1xuXG5leHBvcnQgY29uc3QgUHJvdmlkZXJBdXRoQ2FuY2VsSW5wdXQgPSBTY2hlbWEuU3RydWN0KHtcbiAgaW5zdGFuY2VJZDogUHJvdmlkZXJJbnN0YW5jZUlkLFxuICBmbG93SWQ6IFNldHVwT3BlcmF0aW9uSWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVyQXV0aENhbmNlbElucHV0ID0gdHlwZW9mIFByb3ZpZGVyQXV0aENhbmNlbElucHV0LlR5cGU7XG5cbmNvbnN0IEJ5dGVDb3VudCA9IFNjaGVtYS5JbnQuY2hlY2soU2NoZW1hLmlzR3JlYXRlclRoYW5PckVxdWFsVG8oMCkpO1xuXG5leHBvcnQgY29uc3QgUHJvdmlkZXJJbnN0YWxsU3RhdGUgPSBTY2hlbWEuU3RydWN0KHtcbiAgZHJpdmVyOiBQcm92aWRlckRyaXZlcktpbmQsXG4gIG9wZXJhdGlvbklkOiBTY2hlbWEuTnVsbE9yKFNldHVwT3BlcmF0aW9uSWQpLFxuICBwaGFzZTogU2NoZW1hLkxpdGVyYWxzKFtcbiAgICBcImlkbGVcIixcbiAgICBcImRvd25sb2FkaW5nXCIsXG4gICAgXCJleHRyYWN0aW5nXCIsXG4gICAgXCJ2ZXJpZnlpbmdcIixcbiAgICBcInN1Y2NlZWRlZFwiLFxuICAgIFwiZmFpbGVkXCIsXG4gICAgXCJjYW5jZWxsZWRcIixcbiAgXSksXG4gIGRvd25sb2FkZWRCeXRlczogQnl0ZUNvdW50LFxuICB0b3RhbEJ5dGVzOiBTY2hlbWEuTnVsbE9yKEJ5dGVDb3VudCksXG4gIHZlcnNpb246IFNjaGVtYS5OdWxsT3IoVHJpbW1lZE5vbkVtcHR5U3RyaW5nKSxcbiAgaW5zdGFsbGVkVmVyc2lvbjogU2NoZW1hLk51bGxPcihUcmltbWVkTm9uRW1wdHlTdHJpbmcpLFxuICBleGVjdXRhYmxlUGF0aDogU2NoZW1hLm9wdGlvbmFsS2V5KFNjaGVtYS5OdWxsT3IoVHJpbW1lZE5vbkVtcHR5U3RyaW5nKSksXG4gIHNvdXJjZTogU2NoZW1hLm9wdGlvbmFsS2V5KFNjaGVtYS5OdWxsT3IoU2NoZW1hLkxpdGVyYWxzKFtcIm1hbmFnZWRcIiwgXCJsb2NhbFwiXSkpKSxcbiAgY2FuUmVtb3ZlOiBTY2hlbWEuQm9vbGVhbixcbiAgbWVzc2FnZTogU2NoZW1hLk51bGxPcihTY2hlbWEuU3RyaW5nKSxcbn0pO1xuZXhwb3J0IHR5cGUgUHJvdmlkZXJJbnN0YWxsU3RhdGUgPSB0eXBlb2YgUHJvdmlkZXJJbnN0YWxsU3RhdGUuVHlwZTtcblxuZXhwb3J0IGNvbnN0IFByb3ZpZGVySW5zdGFsbENhbmNlbElucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIGluc3RhbmNlSWQ6IFByb3ZpZGVySW5zdGFuY2VJZCxcbiAgb3BlcmF0aW9uSWQ6IFNldHVwT3BlcmF0aW9uSWQsXG59KTtcbmV4cG9ydCB0eXBlIFByb3ZpZGVySW5zdGFsbENhbmNlbElucHV0ID0gdHlwZW9mIFByb3ZpZGVySW5zdGFsbENhbmNlbElucHV0LlR5cGU7XG5cbi8qKiBTYWZlIHNldHVwIGZhaWx1cmUgdGV4dC4gTmV2ZXIgaW5jbHVkZSBPQXV0aCBjb2RlcywgVVJMcywgb3IgbmF0aXZlIHRva2VuIGRhdGEuICovXG5leHBvcnQgY2xhc3MgUHJvdmlkZXJTZXR1cEVycm9yIGV4dGVuZHMgU2NoZW1hLlRhZ2dlZEVycm9yPFByb3ZpZGVyU2V0dXBFcnJvcj4oKShcbiAgXCJQcm92aWRlclNldHVwRXJyb3JcIixcbiAge1xuICAgIGluc3RhbmNlSWQ6IFByb3ZpZGVySW5zdGFuY2VJZCxcbiAgICBvcGVyYXRpb246IFNjaGVtYS5TdHJpbmcsXG4gICAgZGV0YWlsOiBTY2hlbWEuU3RyaW5nLFxuICAgIGNhdXNlOiBTY2hlbWEub3B0aW9uYWwoU2NoZW1hLkRlZmVjdCgpKSxcbiAgfSxcbikge1xuICBvdmVycmlkZSBnZXQgbWVzc2FnZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRldGFpbDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEdwdFJlY29ubmVjdFByb2ZpbGUgPSBTY2hlbWEuU3RydWN0KHtcbiAgY2xpZW50SWQ6IFNjaGVtYS5TdHJpbmcuY2hlY2soU2NoZW1hLmlzUGF0dGVybigvXm9haWFwcF9bXFx3LV0rJC91KSksXG4gIHN1YmplY3Q6IFNjaGVtYS5vcHRpb25hbEtleShTY2hlbWEuU3RyaW5nKSxcbiAgZW1haWw6IFNjaGVtYS5vcHRpb25hbEtleShTY2hlbWEuTnVsbE9yKFNjaGVtYS5TdHJpbmcpKSxcbiAgcmVkaXJlY3RVcmk6IFNjaGVtYS5vcHRpb25hbEtleShcbiAgICBTY2hlbWEuU3RyaW5nLmNoZWNrKFxuICAgICAgU2NoZW1hLmlzUGF0dGVybigvXmh0dHA6XFwvXFwvKD86MTI3XFwuMFxcLjBcXC4xfGxvY2FsaG9zdCk6WzEtOV1cXGR7MCw0fVxcL2F1dGhcXC9jYWxsYmFjayQvdSksXG4gICAgKSxcbiAgKSxcbiAgY29ubmVjdGlvbkxhYmVsOiBTY2hlbWEub3B0aW9uYWxLZXkoU2NoZW1hLlN0cmluZyksXG4gIHNoYXJpbmdFbmFibGVkOiBTY2hlbWEub3B0aW9uYWxLZXkoU2NoZW1hLkJvb2xlYW4pLFxuICBpZFRva2VuSGludDogU2NoZW1hLm9wdGlvbmFsS2V5KFNjaGVtYS5TdHJpbmcuY2hlY2soU2NoZW1hLmlzTWF4TGVuZ3RoKDE2XzM4NCkpKSxcbn0pO1xuZXhwb3J0IHR5cGUgQ2hhdEdwdFJlY29ubmVjdFByb2ZpbGUgPSB0eXBlb2YgQ2hhdEdwdFJlY29ubmVjdFByb2ZpbGUuVHlwZTtcbmV4cG9ydCBjb25zdCBDaGF0R3B0VHJhbnNmZXJyZWRQcm9maWxlID0gU2NoZW1hLlN0cnVjdCh7XG4gIHJlZ2lzdHJhdGlvbjogQ2hhdEdwdFJlY29ubmVjdFByb2ZpbGUsXG4gIGNyZWRlbnRpYWxzOiBTY2hlbWEuU3RydWN0KHtcbiAgICBjbGllbnRJZDogU2NoZW1hLlN0cmluZyxcbiAgICBhY2Nlc3NUb2tlbjogU2NoZW1hLk5vbkVtcHR5U3RyaW5nLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCgxNl8zODQpKSxcbiAgICByZWZyZXNoVG9rZW46IFNjaGVtYS5OdWxsT3IoU2NoZW1hLlN0cmluZy5jaGVjayhTY2hlbWEuaXNNYXhMZW5ndGgoMTZfMzg0KSkpLFxuICAgIGlkVG9rZW46IFNjaGVtYS5Ob25FbXB0eVN0cmluZy5jaGVjayhTY2hlbWEuaXNNYXhMZW5ndGgoMTZfMzg0KSksXG4gICAgaXNzdWVyOiBTY2hlbWEuU3RyaW5nLFxuICAgIGV4cGlyZXNBdDogU2NoZW1hLkZpbml0ZSxcbiAgICBlYXJsaWVzdFJlZnJlc2hBdDogU2NoZW1hLk51bGxPcihTY2hlbWEuRmluaXRlKSxcbiAgICBzY29wZXM6IFNjaGVtYS5BcnJheShTY2hlbWEuU3RyaW5nKSxcbiAgICBzdWJqZWN0OiBTY2hlbWEuU3RyaW5nLFxuICAgIGVtYWlsOiBTY2hlbWEuTnVsbE9yKFNjaGVtYS5TdHJpbmcpLFxuICB9KSxcbn0pO1xuZXhwb3J0IHR5cGUgQ2hhdEdwdFRyYW5zZmVycmVkUHJvZmlsZSA9IHR5cGVvZiBDaGF0R3B0VHJhbnNmZXJyZWRQcm9maWxlLlR5cGU7XG5leHBvcnQgY29uc3QgQ2hhdEdwdFJlY29ubmVjdFByb2ZpbGVJbnB1dCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBpbnN0YW5jZUlkOiBQcm92aWRlckluc3RhbmNlSWQsXG4gIG1ldGhvZElkOiBTY2hlbWEuU3RyaW5nLFxufSk7XG5leHBvcnQgY29uc3QgQ2hhdEdwdEltcG9ydFByb2ZpbGVJbnB1dCA9IFNjaGVtYS5TdHJ1Y3Qoe1xuICBpbnN0YW5jZUlkOiBQcm92aWRlckluc3RhbmNlSWQsXG4gIHByb2ZpbGU6IENoYXRHcHRUcmFuc2ZlcnJlZFByb2ZpbGUsXG59KTtcbmV4cG9ydCBjb25zdCBDaGF0R3B0SGFuZG9mZklucHV0ID0gU2NoZW1hLlN0cnVjdCh7XG4gIGluc3RhbmNlSWQ6IFByb3ZpZGVySW5zdGFuY2VJZCxcbiAgZW52aXJvbm1lbnRJZDogRW52aXJvbm1lbnRJZCxcbiAgYXR0ZW1wdElkOiBTY2hlbWEuU3RyaW5nLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCgxMjgpKSxcbiAgcmV0dXJuVXJsOiBTY2hlbWEuU3RyaW5nLmNoZWNrKFNjaGVtYS5pc01heExlbmd0aCg0XzA5NikpLFxuICBwcm9maWxlOiBTY2hlbWEuTnVsbE9yKENoYXRHcHRSZWNvbm5lY3RQcm9maWxlKSxcbn0pO1xuZXhwb3J0IHR5cGUgQ2hhdEdwdEhhbmRvZmZJbnB1dCA9IHR5cGVvZiBDaGF0R3B0SGFuZG9mZklucHV0LlR5cGU7XG5leHBvcnQgY29uc3QgQ2hhdEdwdEhhbmRvZmZTdGF0ZSA9IFNjaGVtYS5VbmlvbihbXG4gIFNjaGVtYS5TdHJ1Y3QoeyBwaGFzZTogU2NoZW1hLkxpdGVyYWwoXCJhdXRoXCIpLCBzdGF0ZTogUHJvdmlkZXJBdXRoU3RhdGUgfSksXG4gIFNjaGVtYS5TdHJ1Y3QoeyBwaGFzZTogU2NoZW1hLkxpdGVyYWwoXCJmaW5pc2hlZFwiKSwgcHJvZmlsZTogQ2hhdEdwdFRyYW5zZmVycmVkUHJvZmlsZSB9KSxcbl0pO1xuZXhwb3J0IHR5cGUgQ2hhdEdwdEhhbmRvZmZTdGF0ZSA9IHR5cGVvZiBDaGF0R3B0SGFuZG9mZlN0YXRlLlR5cGU7XG4iXSwiZmlsZSI6Ii9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY29udHJhY3RzL3NyYy9wcm92aWRlclNldHVwLnRzIn0=

//# vitestCache=W3siZmlsZSI6IjEiLCJpZCI6IjEiLCJ1cmwiOiIyIiwiaW1wb3J0cyI6IjMiLCJtYXBwaW5ncyI6ZmFsc2UsImRlcHMiOiI0IiwiZHluYW1pY0RlcHMiOiI1Iiwic3RhdGljTW9ja3MiOm51bGx9LCIvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvcGFja2FnZXMvY29udHJhY3RzL3NyYy9wcm92aWRlclNldHVwLnRzIiwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9wYWNrYWdlcy9jb250cmFjdHMvc3JjL3Byb3ZpZGVyU2V0dXAudHMiLHsidXJscyI6IjYiLCJpZHMiOiI3In0sWyI4IiwiOSIsIjEwIl0sW10sWyI4IiwiOSIsIjEwIl0se30sIi9AZnMvaG9tZS91YnVudHUvd3QvcHItMjQyNjMvbm9kZV9tb2R1bGVzLy5wbnBtL2VmZmVjdEA0LjAuNS9ub2RlX21vZHVsZXMvZWZmZWN0L2Rpc3QvU2NoZW1hLmpzIiwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9wYWNrYWdlcy9jb250cmFjdHMvc3JjL2Jhc2VTY2hlbWFzLnRzIiwiL0Bmcy9ob21lL3VidW50dS93dC9wci0yNDI2My9wYWNrYWdlcy9jb250cmFjdHMvc3JjL3Byb3ZpZGVySW5zdGFuY2UudHMiXQ==