🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@arcjet/protocol

Package Overview
Dependencies
Maintainers
2
Versions
61
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@arcjet/protocol - npm Package Compare versions

Comparing version
1.1.0
to
1.2.0
+35
-2
convert.js
import { timestampFromDate, timestampDate } from '@bufbuild/protobuf/wkt';
import { create } from '@bufbuild/protobuf';
import { SDKStack, RuleSchema, RateLimitAlgorithm, DecisionSchema, Conclusion, Mode, EmailType, RuleResultSchema, ReasonSchema, RateLimitReasonSchema, BotV2ReasonSchema, EdgeRuleReasonSchema, ShieldReasonSchema, EmailReasonSchema, ErrorReasonSchema, SensitiveInfoReasonSchema, RuleState } from './proto/decide/v1alpha1/decide_pb.js';
import { ArcjetErrorDecision, ArcjetIpDetails, ArcjetErrorReason, ArcjetChallengeDecision, ArcjetDenyDecision, ArcjetAllowDecision, ArcjetRuleResult, ArcjetReason, ArcjetSensitiveInfoReason, ArcjetFilterReason, ArcjetEmailReason, ArcjetShieldReason, ArcjetEdgeRuleReason, ArcjetBotReason, ArcjetRateLimitReason } from './index.js';
import { SDKStack, RuleSchema, RateLimitAlgorithm, DecisionSchema, Conclusion, Mode, EmailType, RuleResultSchema, ReasonSchema, RateLimitReasonSchema, BotV2ReasonSchema, EdgeRuleReasonSchema, ShieldReasonSchema, EmailReasonSchema, ErrorReasonSchema, SensitiveInfoReasonSchema, PromptInjectionReasonSchema, RuleState } from './proto/decide/v1alpha1/decide_pb.js';
import { ArcjetErrorDecision, ArcjetIpDetails, ArcjetErrorReason, ArcjetChallengeDecision, ArcjetDenyDecision, ArcjetAllowDecision, ArcjetRuleResult, ArcjetReason, ArcjetPromptInjectionReason, ArcjetSensitiveInfoReason, ArcjetFilterReason, ArcjetEmailReason, ArcjetShieldReason, ArcjetEdgeRuleReason, ArcjetBotReason, ArcjetRateLimitReason } from './index.js';

@@ -205,2 +205,9 @@ function ArcjetModeToProtocol(mode) {

}
case "promptInjection": {
const reason = proto.reason.value;
return new ArcjetPromptInjectionReason({
injectionDetected: reason.injectionDetected,
score: reason.score,
});
}
case "bot": {

@@ -316,2 +323,13 @@ return new ArcjetErrorReason("bot detection v1 is deprecated");

}
if (reason.isPromptInjection()) {
return create(ReasonSchema, {
reason: {
case: "promptInjection",
value: create(PromptInjectionReasonSchema, {
injectionDetected: reason.injectionDetected,
score: reason.score,
}),
},
});
}
return create(ReasonSchema);

@@ -491,2 +509,5 @@ }

}
function isPromptInjectionRule(rule) {
return rule.type === "PROMPT_INJECTION_DETECTION";
}
function ArcjetRuleToProtocol(rule) {

@@ -613,2 +634,14 @@ if (isTokenBucketRule(rule)) {

}
if (isPromptInjectionRule(rule)) {
return create(RuleSchema, {
rule: {
case: "promptInjectionDetection",
value: {
mode: ArcjetModeToProtocol(rule.mode),
threshold: rule.threshold,
version: rule.version,
},
},
});
}
return create(RuleSchema);

@@ -615,0 +648,0 @@ }

@@ -59,3 +59,3 @@ import type { Cache } from "@arcjet/cache";

*/
type?: "RATE_LIMIT" | "BOT" | "EDGE_RULE" | "SHIELD" | "EMAIL" | "ERROR" | "FILTER" | "SENSITIVE_INFO" | undefined;
type?: "RATE_LIMIT" | "BOT" | "EDGE_RULE" | "SHIELD" | "EMAIL" | "ERROR" | "FILTER" | "SENSITIVE_INFO" | "PROMPT_INJECTION_DETECTION" | undefined;
/**

@@ -117,2 +117,9 @@ * Check if this reason is a sensitive info reason.

isFilter(): this is ArcjetFilterReason;
/**
* Check if this is a prompt injection reason.
*
* @returns
* Whether this is a prompt injection reason.
*/
isPromptInjection(): this is ArcjetPromptInjectionReason;
}

@@ -159,2 +166,41 @@ /**

/**
* Configuration for `ArcjetPromptInjectionReason`.
*/
interface ArcjetPromptInjectionReasonInit {
/**
* Whether a prompt injection attempt was detected in the input.
*/
injectionDetected?: boolean | undefined;
/**
* The prompt injection confidence score, scaled to [0, 1].
*/
score?: number | undefined;
}
/**
* Prompt injection reason.
*/
export declare class ArcjetPromptInjectionReason extends ArcjetReason {
/**
* Kind.
*/
type: "PROMPT_INJECTION_DETECTION";
/**
* Whether a prompt injection attempt was detected.
*/
injectionDetected: boolean;
/**
* The prompt injection confidence score.
*/
score: number;
/**
* Create a prompt injection reason.
*
* @param init
* Configuration.
* @returns
* Prompt injection reason.
*/
constructor(init: ArcjetPromptInjectionReasonInit);
}
/**
* Configuration for `ArcjetSensitiveInfoReason`.

@@ -1153,3 +1199,5 @@ */

*/
export interface ArcjetFilterRule extends ArcjetRule<{}> {
export interface ArcjetFilterRule extends ArcjetRule<{
filterLocal?: Record<string, string> | null | undefined;
}> {
/**

@@ -1212,2 +1260,18 @@ * List of expressions that allow a request when one matches and deny otherwise.

/**
* Prompt injection detection rule.
*/
export interface ArcjetPromptInjectionDetectionRule extends ArcjetRule<{
detectPromptInjectionMessage: string;
}> {
/**
* Kind.
*/
type: "PROMPT_INJECTION_DETECTION";
/**
* The score threshold above which a request is considered a prompt
* injection attempt.
*/
threshold: number;
}
/**
* Arcjet logger interface.

@@ -1214,0 +1278,0 @@ *

@@ -86,2 +86,11 @@ import { isMessage } from '@bufbuild/protobuf';

}
/**
* Check if this is a prompt injection reason.
*
* @returns
* Whether this is a prompt injection reason.
*/
isPromptInjection() {
return this.type === "PROMPT_INJECTION_DETECTION";
}
}

@@ -119,2 +128,32 @@ /**

/**
* Prompt injection reason.
*/
class ArcjetPromptInjectionReason extends ArcjetReason {
/**
* Kind.
*/
type = "PROMPT_INJECTION_DETECTION";
/**
* Whether a prompt injection attempt was detected.
*/
injectionDetected;
/**
* The prompt injection confidence score.
*/
score;
/**
* Create a prompt injection reason.
*
* @param init
* Configuration.
* @returns
* Prompt injection reason.
*/
constructor(init) {
super();
this.injectionDetected = init.injectionDetected ?? false;
this.score = init.score ?? 0.0;
}
}
/**
* Sensitive info reason.

@@ -904,2 +943,2 @@ */

export { ArcjetAllowDecision, ArcjetBotReason, ArcjetChallengeDecision, ArcjetDecision, ArcjetDenyDecision, ArcjetEdgeRuleReason, ArcjetEmailReason, ArcjetErrorDecision, ArcjetErrorReason, ArcjetFilterReason, ArcjetIpDetails, ArcjetRateLimitReason, ArcjetReason, ArcjetRuleResult, ArcjetSensitiveInfoReason, ArcjetShieldReason };
export { ArcjetAllowDecision, ArcjetBotReason, ArcjetChallengeDecision, ArcjetDecision, ArcjetDenyDecision, ArcjetEdgeRuleReason, ArcjetEmailReason, ArcjetErrorDecision, ArcjetErrorReason, ArcjetFilterReason, ArcjetIpDetails, ArcjetPromptInjectionReason, ArcjetRateLimitReason, ArcjetReason, ArcjetRuleResult, ArcjetSensitiveInfoReason, ArcjetShieldReason };
+6
-6
{
"name": "@arcjet/protocol",
"version": "1.1.0",
"version": "1.2.0",
"description": "The TypeScript & JavaScript interface into the Arcjet protocol",

@@ -52,3 +52,3 @@ "keywords": [

"dependencies": {
"@arcjet/cache": "1.1.0",
"@arcjet/cache": "1.2.0",
"@bufbuild/protobuf": "2.11.0",

@@ -59,6 +59,6 @@ "@connectrpc/connect": "2.1.1",

"devDependencies": {
"@arcjet/eslint-config": "1.1.0",
"@arcjet/rollup-config": "1.1.0",
"@rollup/wasm-node": "4.57.0",
"@types/node": "25.1.0",
"@arcjet/eslint-config": "1.2.0",
"@arcjet/rollup-config": "1.2.0",
"@rollup/wasm-node": "4.57.1",
"@types/node": "24.11.0",
"eslint": "9.39.2",

@@ -65,0 +65,0 @@ "typescript": "5.9.3"

@@ -176,2 +176,16 @@ // @generated by protoc-gen-es v2.2.0

isRelay: boolean;
/**
* Whether the IP address has been flagged as an abuser.
*
* @generated from field: bool is_abuser = 23;
*/
isAbuser: boolean;
/**
* Bots is the list of bots that the IP address belongs to.
*
* @generated from field: map<string, string> bots = 24;
*/
bots: { [key: string]: string };
};

@@ -275,2 +289,11 @@

case: "filter";
} | {
/**
* Contains details about the prompt injection analysis when
* the decision was made based on a prompt injection detection rule.
*
* @generated from field: proto.decide.v1alpha1.PromptInjectionReason prompt_injection = 10;
*/
value: PromptInjectionReason;
case: "promptInjection";
} | { case: undefined; value?: undefined };

@@ -570,2 +593,32 @@ };

/**
* Details of an AI prompt injection decision.
*
* @generated from message proto.decide.v1alpha1.PromptInjectionReason
*/
export declare type PromptInjectionReason = Message<"proto.decide.v1alpha1.PromptInjectionReason"> & {
/**
* Whether a prompt injection attempt was detected in the input.
*
* @generated from field: bool injection_detected = 1;
*/
injectionDetected: boolean;
/**
* The prompt injection confidence score, scaled to [0, 1]. Values near 0
* indicate benign input, values near 1 indicate a prompt injection attempt.
* This is compared against the configured threshold to determine the
* conclusion.
*
* @generated from field: double score = 2;
*/
score: number;
};
/**
* Describes the message proto.decide.v1alpha1.PromptInjectionReason.
* Use `create(PromptInjectionReasonSchema)` to create a new message.
*/
export declare const PromptInjectionReasonSchema: GenMessage<PromptInjectionReason>;
/**
* @generated from message proto.decide.v1alpha1.IdentifiedEntity

@@ -1020,2 +1073,38 @@ */

/**
* The configuration for a prompt injection detection rule.
*
* @generated from message proto.decide.v1alpha1.PromptInjectionDetectionRule
*/
export declare type PromptInjectionDetectionRule = Message<"proto.decide.v1alpha1.PromptInjectionDetectionRule"> & {
/**
* @generated from field: proto.decide.v1alpha1.Mode mode = 1;
*/
mode: Mode;
/**
* The score threshold above which a request is considered a prompt
* injection attempt. Defaults to 0.5 if not specified. Must be in the
* range (0.0, 1.0) exclusive when specified - values of exactly 0.0 or
* 1.0 are not valid.
*
* @generated from field: optional double threshold = 2;
*/
threshold?: number;
/**
* The version of the rule being executed. This is incremented by SDKs when
* a breaking change is made to the configuration or behavior of the rule.
*
* @generated from field: proto.decide.v1alpha1.PromptInjectionDetectionRuleVersion version = 3;
*/
version: PromptInjectionDetectionRuleVersion;
};
/**
* Describes the message proto.decide.v1alpha1.PromptInjectionDetectionRule.
* Use `create(PromptInjectionDetectionRuleSchema)` to create a new message.
*/
export declare const PromptInjectionDetectionRuleSchema: GenMessage<PromptInjectionDetectionRule>;
/**
* The configuration for Arcjet.

@@ -1071,2 +1160,8 @@ *

case: "filter";
} | {
/**
* @generated from field: proto.decide.v1alpha1.PromptInjectionDetectionRule prompt_injection_detection = 8;
*/
value: PromptInjectionDetectionRule;
case: "promptInjectionDetection";
} | { case: undefined; value?: undefined };

@@ -1908,2 +2003,20 @@ };

/**
* @generated from enum proto.decide.v1alpha1.PromptInjectionDetectionRuleVersion
*/
export enum PromptInjectionDetectionRuleVersion {
/**
* This is equivalent to V0 since rules without a version specified will
* default to this value.
*
* @generated from enum value: PROMPT_INJECTION_DETECTION_RULE_VERSION_UNSPECIFIED = 0;
*/
UNSPECIFIED = 0,
}
/**
* Describes the enum proto.decide.v1alpha1.PromptInjectionDetectionRuleVersion.
*/
export declare const PromptInjectionDetectionRuleVersionSchema: GenEnum<PromptInjectionDetectionRuleVersion>;
/**
* @generated from service proto.decide.v1alpha1.DecideService

@@ -1910,0 +2023,0 @@ */

@@ -12,3 +12,3 @@ // @generated by protoc-gen-es v2.2.0

export const file_proto_decide_v1alpha1_decide = /*@__PURE__*/
fileDesc("CiJwcm90by9kZWNpZGUvdjFhbHBoYTEvZGVjaWRlLnByb3RvEhVwcm90by5kZWNpZGUudjFhbHBoYTEiowMKCUlwRGV0YWlscxIQCghsYXRpdHVkZRgBIAEoARIRCglsb25naXR1ZGUYAiABKAESFwoPYWNjdXJhY3lfcmFkaXVzGAMgASgFEhAKCHRpbWV6b25lGAQgASgJEhMKC3Bvc3RhbF9jb2RlGAUgASgJEgwKBGNpdHkYBiABKAkSDgoGcmVnaW9uGAcgASgJEg8KB2NvdW50cnkYCCABKAkSFAoMY291bnRyeV9uYW1lGAkgASgJEhEKCWNvbnRpbmVudBgKIAEoCRIWCg5jb250aW5lbnRfbmFtZRgLIAEoCRILCgNhc24YDCABKAkSEAoIYXNuX25hbWUYDSABKAkSEgoKYXNuX2RvbWFpbhgOIAEoCRIQCghhc25fdHlwZRgPIAEoCRITCgthc25fY291bnRyeRgQIAEoCRIPCgdzZXJ2aWNlGBEgASgJEhIKCmlzX2hvc3RpbmcYEiABKAgSDgoGaXNfdnBuGBMgASgIEhAKCGlzX3Byb3h5GBQgASgIEg4KBmlzX3RvchgVIAEoCBIQCghpc19yZWxheRgWIAEoCCKRBAoGUmVhc29uEjwKCnJhdGVfbGltaXQYASABKAsyJi5wcm90by5kZWNpZGUudjFhbHBoYTEuUmF0ZUxpbWl0UmVhc29uSAASOgoJZWRnZV9ydWxlGAIgASgLMiUucHJvdG8uZGVjaWRlLnYxYWxwaGExLkVkZ2VSdWxlUmVhc29uSAASLwoDYm90GAMgASgLMiAucHJvdG8uZGVjaWRlLnYxYWxwaGExLkJvdFJlYXNvbkgAEjUKBnNoaWVsZBgEIAEoCzIjLnByb3RvLmRlY2lkZS52MWFscGhhMS5TaGllbGRSZWFzb25IABIzCgVlbWFpbBgFIAEoCzIiLnByb3RvLmRlY2lkZS52MWFscGhhMS5FbWFpbFJlYXNvbkgAEjMKBWVycm9yGAYgASgLMiIucHJvdG8uZGVjaWRlLnYxYWxwaGExLkVycm9yUmVhc29uSAASRAoOc2Vuc2l0aXZlX2luZm8YByABKAsyKi5wcm90by5kZWNpZGUudjFhbHBoYTEuU2Vuc2l0aXZlSW5mb1JlYXNvbkgAEjQKBmJvdF92MhgIIAEoCzIiLnByb3RvLmRlY2lkZS52MWFscGhhMS5Cb3RWMlJlYXNvbkgAEjUKBmZpbHRlchgJIAEoCzIjLnByb3RvLmRlY2lkZS52MWFscGhhMS5GaWx0ZXJSZWFzb25IAEIICgZyZWFzb24irQEKD1JhdGVMaW1pdFJlYXNvbhILCgNtYXgYASABKA0SEQoFY291bnQYAiABKAVCAhgBEhEKCXJlbWFpbmluZxgDIAEoDRIyCgpyZXNldF90aW1lGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEICGAESGAoQcmVzZXRfaW5fc2Vjb25kcxgFIAEoDRIZChF3aW5kb3dfaW5fc2Vjb25kcxgGIAEoDSIQCg5FZGdlUnVsZVJlYXNvbiLCAQoJQm90UmVhc29uEjAKCGJvdF90eXBlGAEgASgOMh4ucHJvdG8uZGVjaWRlLnYxYWxwaGExLkJvdFR5cGUSEQoJYm90X3Njb3JlGAIgASgFEhgKEHVzZXJfYWdlbnRfbWF0Y2gYAyABKAgSEgoKaXBfaG9zdGluZxgFIAEoCBIOCgZpcF92cG4YBiABKAgSEAoIaXBfcHJveHkYByABKAgSDgoGaXBfdG9yGAggASgIEhAKCGlwX3JlbGF5GAkgASgIIlEKC0JvdFYyUmVhc29uEg8KB2FsbG93ZWQYASADKAkSDgoGZGVuaWVkGAIgAygJEhAKCHZlcmlmaWVkGAMgASgIEg8KB3Nwb29mZWQYBCABKAgiPAoMU2hpZWxkUmVhc29uEhgKEHNoaWVsZF90cmlnZ2VyZWQYASABKAgSEgoKc3VzcGljaW91cxgCIAEoCCJtCgxGaWx0ZXJSZWFzb24SHgoSbWF0Y2hlZF9leHByZXNzaW9uGAEgASgJQgIYARIbChNtYXRjaGVkX2V4cHJlc3Npb25zGAIgAygJEiAKGHVuZGV0ZXJtaW5lZF9leHByZXNzaW9ucxgDIAMoCSJECgtFbWFpbFJlYXNvbhI1CgtlbWFpbF90eXBlcxgBIAMoDjIgLnByb3RvLmRlY2lkZS52MWFscGhhMS5FbWFpbFR5cGUiHgoLRXJyb3JSZWFzb24SDwoHbWVzc2FnZRgBIAEoCSJHChBJZGVudGlmaWVkRW50aXR5EhcKD2lkZW50aWZpZWRfdHlwZRgBIAEoCRINCgVzdGFydBgCIAEoDRILCgNlbmQYAyABKA0iiAEKE1NlbnNpdGl2ZUluZm9SZWFzb24SOAoHYWxsb3dlZBgBIAMoCzInLnByb3RvLmRlY2lkZS52MWFscGhhMS5JZGVudGlmaWVkRW50aXR5EjcKBmRlbmllZBgCIAMoCzInLnByb3RvLmRlY2lkZS52MWFscGhhMS5JZGVudGlmaWVkRW50aXR5IvUCCg1SYXRlTGltaXRSdWxlEikKBG1vZGUYASABKA4yGy5wcm90by5kZWNpZGUudjFhbHBoYTEuTW9kZRINCgVtYXRjaBgCIAEoCRIXCg9jaGFyYWN0ZXJpc3RpY3MYAyADKAkSEgoGd2luZG93GAQgASgJQgIYARILCgNtYXgYBSABKA0SDwoHdGltZW91dBgGIAEoCRI8CglhbGdvcml0aG0YByABKA4yKS5wcm90by5kZWNpZGUudjFhbHBoYTEuUmF0ZUxpbWl0QWxnb3JpdGhtEhMKC3JlZmlsbF9yYXRlGAggASgNEhAKCGludGVydmFsGAkgASgNEhAKCGNhcGFjaXR5GAogASgNEhkKEXdpbmRvd19pbl9zZWNvbmRzGAwgASgNEjwKB3ZlcnNpb24YDSABKA4yKy5wcm90by5kZWNpZGUudjFhbHBoYTEuUmF0ZUxpbWl0UnVsZVZlcnNpb25KBAgLEAxSCXJlcXVlc3RlZCLGAgoHQm90UnVsZRIpCgRtb2RlGAEgASgOMhsucHJvdG8uZGVjaWRlLnYxYWxwaGExLk1vZGUSLQoFYmxvY2sYAiADKA4yHi5wcm90by5kZWNpZGUudjFhbHBoYTEuQm90VHlwZRI5CghwYXR0ZXJucxgDIAEoCzInLnByb3RvLmRlY2lkZS52MWFscGhhMS5Cb3RSdWxlLlBhdHRlcm5zGqUBCghQYXR0ZXJucxI9CgNhZGQYASADKAsyMC5wcm90by5kZWNpZGUudjFhbHBoYTEuQm90UnVsZS5QYXR0ZXJucy5BZGRFbnRyeRIOCgZyZW1vdmUYAiADKAkaSgoIQWRkRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ucHJvdG8uZGVjaWRlLnYxYWxwaGExLkJvdFR5cGU6AjgBIo0BCglCb3RWMlJ1bGUSKQoEbW9kZRgBIAEoDjIbLnByb3RvLmRlY2lkZS52MWFscGhhMS5Nb2RlEg0KBWFsbG93GAIgAygJEgwKBGRlbnkYAyADKAkSOAoHdmVyc2lvbhgEIAEoDjInLnByb3RvLmRlY2lkZS52MWFscGhhMS5Cb3RWMlJ1bGVWZXJzaW9uIsYCCglFbWFpbFJ1bGUSKQoEbW9kZRgBIAEoDjIbLnByb3RvLmRlY2lkZS52MWFscGhhMS5Nb2RlEjMKBWJsb2NrGAIgAygOMiAucHJvdG8uZGVjaWRlLnYxYWxwaGExLkVtYWlsVHlwZUICGAESIAoYcmVxdWlyZV90b3BfbGV2ZWxfZG9tYWluGAMgASgIEhwKFGFsbG93X2RvbWFpbl9saXRlcmFsGAQgASgIEi8KBWFsbG93GAUgAygOMiAucHJvdG8uZGVjaWRlLnYxYWxwaGExLkVtYWlsVHlwZRIuCgRkZW55GAYgAygOMiAucHJvdG8uZGVjaWRlLnYxYWxwaGExLkVtYWlsVHlwZRI4Cgd2ZXJzaW9uGAcgASgOMicucHJvdG8uZGVjaWRlLnYxYWxwaGExLkVtYWlsUnVsZVZlcnNpb24inQEKEVNlbnNpdGl2ZUluZm9SdWxlEikKBG1vZGUYASABKA4yGy5wcm90by5kZWNpZGUudjFhbHBoYTEuTW9kZRINCgVhbGxvdxgCIAMoCRIMCgRkZW55GAMgAygJEkAKB3ZlcnNpb24YBCABKA4yLy5wcm90by5kZWNpZGUudjFhbHBoYTEuU2Vuc2l0aXZlSW5mb1J1bGVWZXJzaW9uIp8BCgpTaGllbGRSdWxlEikKBG1vZGUYASABKA4yGy5wcm90by5kZWNpZGUudjFhbHBoYTEuTW9kZRISCgphdXRvX2FkZGVkGAIgASgIEhcKD2NoYXJhY3RlcmlzdGljcxgDIAMoCRI5Cgd2ZXJzaW9uGAQgASgOMigucHJvdG8uZGVjaWRlLnYxYWxwaGExLlNoaWVsZFJ1bGVWZXJzaW9uIo8BCgpGaWx0ZXJSdWxlEikKBG1vZGUYASABKA4yGy5wcm90by5kZWNpZGUudjFhbHBoYTEuTW9kZRINCgVhbGxvdxgCIAMoCRIMCgRkZW55GAMgAygJEjkKB3ZlcnNpb24YBCABKA4yKC5wcm90by5kZWNpZGUudjFhbHBoYTEuRmlsdGVyUnVsZVZlcnNpb24ijwMKBFJ1bGUSOgoKcmF0ZV9saW1pdBgBIAEoCzIkLnByb3RvLmRlY2lkZS52MWFscGhhMS5SYXRlTGltaXRSdWxlSAASLgoEYm90cxgCIAEoCzIeLnByb3RvLmRlY2lkZS52MWFscGhhMS5Cb3RSdWxlSAASMQoFZW1haWwYAyABKAsyIC5wcm90by5kZWNpZGUudjFhbHBoYTEuRW1haWxSdWxlSAASMwoGc2hpZWxkGAQgASgLMiEucHJvdG8uZGVjaWRlLnYxYWxwaGExLlNoaWVsZFJ1bGVIABJCCg5zZW5zaXRpdmVfaW5mbxgFIAEoCzIoLnByb3RvLmRlY2lkZS52MWFscGhhMS5TZW5zaXRpdmVJbmZvUnVsZUgAEjIKBmJvdF92MhgGIAEoCzIgLnByb3RvLmRlY2lkZS52MWFscGhhMS5Cb3RWMlJ1bGVIABIzCgZmaWx0ZXIYByABKAsyIS5wcm90by5kZWNpZGUudjFhbHBoYTEuRmlsdGVyUnVsZUgAQgYKBHJ1bGUi1gEKClJ1bGVSZXN1bHQSDwoHcnVsZV9pZBgBIAEoCRIvCgVzdGF0ZRgCIAEoDjIgLnByb3RvLmRlY2lkZS52MWFscGhhMS5SdWxlU3RhdGUSNQoKY29uY2x1c2lvbhgDIAEoDjIhLnByb3RvLmRlY2lkZS52MWFscGhhMS5Db25jbHVzaW9uEi0KBnJlYXNvbhgEIAEoCzIdLnByb3RvLmRlY2lkZS52MWFscGhhMS5SZWFzb24SCwoDdHRsGAUgASgNEhMKC2ZpbmdlcnByaW50GAYgASgJIvsCCg5SZXF1ZXN0RGV0YWlscxIKCgJpcBgBIAEoCRIOCgZtZXRob2QYAiABKAkSEAoIcHJvdG9jb2wYAyABKAkSDAoEaG9zdBgEIAEoCRIMCgRwYXRoGAUgASgJEkMKB2hlYWRlcnMYBiADKAsyMi5wcm90by5kZWNpZGUudjFhbHBoYTEuUmVxdWVzdERldGFpbHMuSGVhZGVyc0VudHJ5EgwKBGJvZHkYByABKAwSPwoFZXh0cmEYCCADKAsyMC5wcm90by5kZWNpZGUudjFhbHBoYTEuUmVxdWVzdERldGFpbHMuRXh0cmFFbnRyeRINCgVlbWFpbBgJIAEoCRIPCgdjb29raWVzGAogASgJEg0KBXF1ZXJ5GAsgASgJGi4KDEhlYWRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGiwKCkV4dHJhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASL4AQoIRGVjaXNpb24SCgoCaWQYASABKAkSNQoKY29uY2x1c2lvbhgCIAEoDjIhLnByb3RvLmRlY2lkZS52MWFscGhhMS5Db25jbHVzaW9uEi0KBnJlYXNvbhgDIAEoCzIdLnByb3RvLmRlY2lkZS52MWFscGhhMS5SZWFzb24SNwoMcnVsZV9yZXN1bHRzGAQgAygLMiEucHJvdG8uZGVjaWRlLnYxYWxwaGExLlJ1bGVSZXN1bHQSCwoDdHRsGAUgASgNEjQKCmlwX2RldGFpbHMYBiABKAsyIC5wcm90by5kZWNpZGUudjFhbHBoYTEuSXBEZXRhaWxzIugBCg1EZWNpZGVSZXF1ZXN0EjIKCXNka19zdGFjaxgBIAEoDjIfLnByb3RvLmRlY2lkZS52MWFscGhhMS5TREtTdGFjaxITCgtzZGtfdmVyc2lvbhgCIAEoCRI2CgdkZXRhaWxzGAQgASgLMiUucHJvdG8uZGVjaWRlLnYxYWxwaGExLlJlcXVlc3REZXRhaWxzEioKBXJ1bGVzGAUgAygLMhsucHJvdG8uZGVjaWRlLnYxYWxwaGExLlJ1bGUSFwoPY2hhcmFjdGVyaXN0aWNzGAYgAygJSgQIAxAEUgtmaW5nZXJwcmludCKyAQoORGVjaWRlUmVzcG9uc2USMQoIZGVjaXNpb24YASABKAsyHy5wcm90by5kZWNpZGUudjFhbHBoYTEuRGVjaXNpb24SPwoFZXh0cmEYAiADKAsyMC5wcm90by5kZWNpZGUudjFhbHBoYTEuRGVjaWRlUmVzcG9uc2UuRXh0cmFFbnRyeRosCgpFeHRyYUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEirgIKDVJlcG9ydFJlcXVlc3QSMgoJc2RrX3N0YWNrGAEgASgOMh8ucHJvdG8uZGVjaWRlLnYxYWxwaGExLlNES1N0YWNrEhMKC3Nka192ZXJzaW9uGAIgASgJEjYKB2RldGFpbHMYBCABKAsyJS5wcm90by5kZWNpZGUudjFhbHBoYTEuUmVxdWVzdERldGFpbHMSMQoIZGVjaXNpb24YBSABKAsyHy5wcm90by5kZWNpZGUudjFhbHBoYTEuRGVjaXNpb24SKgoFcnVsZXMYBiADKAsyGy5wcm90by5kZWNpZGUudjFhbHBoYTEuUnVsZRIXCg9jaGFyYWN0ZXJpc3RpY3MYCCADKAlKBAgDEARKBAgHEAhSC2ZpbmdlcnByaW50UgtyZWNlaXZlZF9hdCKPAQoOUmVwb3J0UmVzcG9uc2USPwoFZXh0cmEYAiADKAsyMC5wcm90by5kZWNpZGUudjFhbHBoYTEuUmVwb3J0UmVzcG9uc2UuRXh0cmFFbnRyeRosCgpFeHRyYUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgBEAJSCGRlY2lzaW9uKq8BCgdCb3RUeXBlEhgKFEJPVF9UWVBFX1VOU1BFQ0lGSUVEEAASGQoVQk9UX1RZUEVfTk9UX0FOQUxZWkVEEAESFgoSQk9UX1RZUEVfQVVUT01BVEVEEAISHQoZQk9UX1RZUEVfTElLRUxZX0FVVE9NQVRFRBADEh0KGUJPVF9UWVBFX0xJS0VMWV9OT1RfQV9CT1QQBBIZChVCT1RfVFlQRV9WRVJJRklFRF9CT1QQBSqpAQoJRW1haWxUeXBlEhoKFkVNQUlMX1RZUEVfVU5TUEVDSUZJRUQQABIZChVFTUFJTF9UWVBFX0RJU1BPU0FCTEUQARITCg9FTUFJTF9UWVBFX0ZSRUUQAhIcChhFTUFJTF9UWVBFX05PX01YX1JFQ09SRFMQAxIaChZFTUFJTF9UWVBFX05PX0dSQVZBVEFSEAQSFgoSRU1BSUxfVFlQRV9JTlZBTElEEAUqPQoETW9kZRIUChBNT0RFX1VOU1BFQ0lGSUVEEAASEAoMTU9ERV9EUllfUlVOEAESDQoJTU9ERV9MSVZFEAIqggEKCVJ1bGVTdGF0ZRIaChZSVUxFX1NUQVRFX1VOU1BFQ0lGSUVEEAASEgoOUlVMRV9TVEFURV9SVU4QARIWChJSVUxFX1NUQVRFX05PVF9SVU4QAhIWChJSVUxFX1NUQVRFX0RSWV9SVU4QAxIVChFSVUxFX1NUQVRFX0NBQ0hFRBAEKoMBCgpDb25jbHVzaW9uEhoKFkNPTkNMVVNJT05fVU5TUEVDSUZJRUQQABIUChBDT05DTFVTSU9OX0FMTE9XEAESEwoPQ09OQ0xVU0lPTl9ERU5ZEAISGAoUQ09OQ0xVU0lPTl9DSEFMTEVOR0UQAxIUChBDT05DTFVTSU9OX0VSUk9SEAQq2AIKCFNES1N0YWNrEhkKFVNES19TVEFDS19VTlNQRUNJRklFRBAAEhQKEFNES19TVEFDS19OT0RFSlMQARIUChBTREtfU1RBQ0tfTkVYVEpTEAISFAoQU0RLX1NUQUNLX1BZVEhPThADEhQKEFNES19TVEFDS19ESkFOR08QBBIRCg1TREtfU1RBQ0tfQlVOEAUSEgoOU0RLX1NUQUNLX0RFTk8QBhIXChNTREtfU1RBQ0tfU1ZFTFRFS0lUEAcSEgoOU0RLX1NUQUNLX0hPTk8QCBISCg5TREtfU1RBQ0tfTlVYVBAJEhQKEFNES19TVEFDS19ORVNUSlMQChITCg9TREtfU1RBQ0tfUkVNSVgQCxITCg9TREtfU1RBQ0tfQVNUUk8QDBIVChFTREtfU1RBQ0tfRkFTVElGWRANEhoKFlNES19TVEFDS19SRUFDVF9ST1VURVIQDiqxAQoSUmF0ZUxpbWl0QWxnb3JpdGhtEiQKIFJBVEVfTElNSVRfQUxHT1JJVEhNX1VOU1BFQ0lGSUVEEAASJQohUkFURV9MSU1JVF9BTEdPUklUSE1fVE9LRU5fQlVDS0VUEAESJQohUkFURV9MSU1JVF9BTEdPUklUSE1fRklYRURfV0lORE9XEAISJwojUkFURV9MSU1JVF9BTEdPUklUSE1fU0xJRElOR19XSU5ET1cQAyo/ChRSYXRlTGltaXRSdWxlVmVyc2lvbhInCiNSQVRFX0xJTUlUX1JVTEVfVkVSU0lPTl9VTlNQRUNJRklFRBAAKjcKEEJvdFYyUnVsZVZlcnNpb24SIwofQk9UX1YyX1JVTEVfVkVSU0lPTl9VTlNQRUNJRklFRBAAKjYKEEVtYWlsUnVsZVZlcnNpb24SIgoeRU1BSUxfUlVMRV9WRVJTSU9OX1VOU1BFQ0lGSUVEEAAqRwoYU2Vuc2l0aXZlSW5mb1J1bGVWZXJzaW9uEisKJ1NFTlNJVElWRV9JTkZPX1JVTEVfVkVSU0lPTl9VTlNQRUNJRklFRBAAKjgKEVNoaWVsZFJ1bGVWZXJzaW9uEiMKH1NISUVMRF9SVUxFX1ZFUlNJT05fVU5TUEVDSUZJRUQQACo4ChFGaWx0ZXJSdWxlVmVyc2lvbhIjCh9GSUxURVJfUlVMRV9WRVJTSU9OX1VOU1BFQ0lGSUVEEAAyvQEKDURlY2lkZVNlcnZpY2USVQoGRGVjaWRlEiQucHJvdG8uZGVjaWRlLnYxYWxwaGExLkRlY2lkZVJlcXVlc3QaJS5wcm90by5kZWNpZGUudjFhbHBoYTEuRGVjaWRlUmVzcG9uc2USVQoGUmVwb3J0EiQucHJvdG8uZGVjaWRlLnYxYWxwaGExLlJlcG9ydFJlcXVlc3QaJS5wcm90by5kZWNpZGUudjFhbHBoYTEuUmVwb3J0UmVzcG9uc2VC4gEKGWNvbS5wcm90by5kZWNpZGUudjFhbHBoYTFCC0RlY2lkZVByb3RvUAFaQmFyY2pldC9hcmNqZXQtZGVjaWRlL2ludGVybmFsL3Byb3RvL2RlY2lkZS92MWFscGhhMTtkZWNpZGV2MWFscGhhMaICA1BEWKoCFVByb3RvLkRlY2lkZS5WMWFscGhhMcoCFVByb3RvXERlY2lkZVxWMWFscGhhMeICIVByb3RvXERlY2lkZVxWMWFscGhhMVxHUEJNZXRhZGF0YeoCF1Byb3RvOjpEZWNpZGU6OlYxYWxwaGExYgZwcm90bzM", [file_google_protobuf_timestamp]);
fileDesc("CiJwcm90by9kZWNpZGUvdjFhbHBoYTEvZGVjaWRlLnByb3RvEhVwcm90by5kZWNpZGUudjFhbHBoYTEinQQKCUlwRGV0YWlscxIQCghsYXRpdHVkZRgBIAEoARIRCglsb25naXR1ZGUYAiABKAESFwoPYWNjdXJhY3lfcmFkaXVzGAMgASgFEhAKCHRpbWV6b25lGAQgASgJEhMKC3Bvc3RhbF9jb2RlGAUgASgJEgwKBGNpdHkYBiABKAkSDgoGcmVnaW9uGAcgASgJEg8KB2NvdW50cnkYCCABKAkSFAoMY291bnRyeV9uYW1lGAkgASgJEhEKCWNvbnRpbmVudBgKIAEoCRIWCg5jb250aW5lbnRfbmFtZRgLIAEoCRILCgNhc24YDCABKAkSEAoIYXNuX25hbWUYDSABKAkSEgoKYXNuX2RvbWFpbhgOIAEoCRIQCghhc25fdHlwZRgPIAEoCRITCgthc25fY291bnRyeRgQIAEoCRIPCgdzZXJ2aWNlGBEgASgJEhIKCmlzX2hvc3RpbmcYEiABKAgSDgoGaXNfdnBuGBMgASgIEhAKCGlzX3Byb3h5GBQgASgIEg4KBmlzX3RvchgVIAEoCBIQCghpc19yZWxheRgWIAEoCBIRCglpc19hYnVzZXIYFyABKAgSOAoEYm90cxgYIAMoCzIqLnByb3RvLmRlY2lkZS52MWFscGhhMS5JcERldGFpbHMuQm90c0VudHJ5GisKCUJvdHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBItsECgZSZWFzb24SPAoKcmF0ZV9saW1pdBgBIAEoCzImLnByb3RvLmRlY2lkZS52MWFscGhhMS5SYXRlTGltaXRSZWFzb25IABI6CgllZGdlX3J1bGUYAiABKAsyJS5wcm90by5kZWNpZGUudjFhbHBoYTEuRWRnZVJ1bGVSZWFzb25IABIvCgNib3QYAyABKAsyIC5wcm90by5kZWNpZGUudjFhbHBoYTEuQm90UmVhc29uSAASNQoGc2hpZWxkGAQgASgLMiMucHJvdG8uZGVjaWRlLnYxYWxwaGExLlNoaWVsZFJlYXNvbkgAEjMKBWVtYWlsGAUgASgLMiIucHJvdG8uZGVjaWRlLnYxYWxwaGExLkVtYWlsUmVhc29uSAASMwoFZXJyb3IYBiABKAsyIi5wcm90by5kZWNpZGUudjFhbHBoYTEuRXJyb3JSZWFzb25IABJECg5zZW5zaXRpdmVfaW5mbxgHIAEoCzIqLnByb3RvLmRlY2lkZS52MWFscGhhMS5TZW5zaXRpdmVJbmZvUmVhc29uSAASNAoGYm90X3YyGAggASgLMiIucHJvdG8uZGVjaWRlLnYxYWxwaGExLkJvdFYyUmVhc29uSAASNQoGZmlsdGVyGAkgASgLMiMucHJvdG8uZGVjaWRlLnYxYWxwaGExLkZpbHRlclJlYXNvbkgAEkgKEHByb21wdF9pbmplY3Rpb24YCiABKAsyLC5wcm90by5kZWNpZGUudjFhbHBoYTEuUHJvbXB0SW5qZWN0aW9uUmVhc29uSABCCAoGcmVhc29uIq0BCg9SYXRlTGltaXRSZWFzb24SCwoDbWF4GAEgASgNEhEKBWNvdW50GAIgASgFQgIYARIRCglyZW1haW5pbmcYAyABKA0SMgoKcmVzZXRfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCAhgBEhgKEHJlc2V0X2luX3NlY29uZHMYBSABKA0SGQoRd2luZG93X2luX3NlY29uZHMYBiABKA0iEAoORWRnZVJ1bGVSZWFzb24iwgEKCUJvdFJlYXNvbhIwCghib3RfdHlwZRgBIAEoDjIeLnByb3RvLmRlY2lkZS52MWFscGhhMS5Cb3RUeXBlEhEKCWJvdF9zY29yZRgCIAEoBRIYChB1c2VyX2FnZW50X21hdGNoGAMgASgIEhIKCmlwX2hvc3RpbmcYBSABKAgSDgoGaXBfdnBuGAYgASgIEhAKCGlwX3Byb3h5GAcgASgIEg4KBmlwX3RvchgIIAEoCBIQCghpcF9yZWxheRgJIAEoCCJRCgtCb3RWMlJlYXNvbhIPCgdhbGxvd2VkGAEgAygJEg4KBmRlbmllZBgCIAMoCRIQCgh2ZXJpZmllZBgDIAEoCBIPCgdzcG9vZmVkGAQgASgIIjwKDFNoaWVsZFJlYXNvbhIYChBzaGllbGRfdHJpZ2dlcmVkGAEgASgIEhIKCnN1c3BpY2lvdXMYAiABKAgibQoMRmlsdGVyUmVhc29uEh4KEm1hdGNoZWRfZXhwcmVzc2lvbhgBIAEoCUICGAESGwoTbWF0Y2hlZF9leHByZXNzaW9ucxgCIAMoCRIgChh1bmRldGVybWluZWRfZXhwcmVzc2lvbnMYAyADKAkiRAoLRW1haWxSZWFzb24SNQoLZW1haWxfdHlwZXMYASADKA4yIC5wcm90by5kZWNpZGUudjFhbHBoYTEuRW1haWxUeXBlIh4KC0Vycm9yUmVhc29uEg8KB21lc3NhZ2UYASABKAkiQgoVUHJvbXB0SW5qZWN0aW9uUmVhc29uEhoKEmluamVjdGlvbl9kZXRlY3RlZBgBIAEoCBINCgVzY29yZRgCIAEoASJHChBJZGVudGlmaWVkRW50aXR5EhcKD2lkZW50aWZpZWRfdHlwZRgBIAEoCRINCgVzdGFydBgCIAEoDRILCgNlbmQYAyABKA0iiAEKE1NlbnNpdGl2ZUluZm9SZWFzb24SOAoHYWxsb3dlZBgBIAMoCzInLnByb3RvLmRlY2lkZS52MWFscGhhMS5JZGVudGlmaWVkRW50aXR5EjcKBmRlbmllZBgCIAMoCzInLnByb3RvLmRlY2lkZS52MWFscGhhMS5JZGVudGlmaWVkRW50aXR5IvUCCg1SYXRlTGltaXRSdWxlEikKBG1vZGUYASABKA4yGy5wcm90by5kZWNpZGUudjFhbHBoYTEuTW9kZRINCgVtYXRjaBgCIAEoCRIXCg9jaGFyYWN0ZXJpc3RpY3MYAyADKAkSEgoGd2luZG93GAQgASgJQgIYARILCgNtYXgYBSABKA0SDwoHdGltZW91dBgGIAEoCRI8CglhbGdvcml0aG0YByABKA4yKS5wcm90by5kZWNpZGUudjFhbHBoYTEuUmF0ZUxpbWl0QWxnb3JpdGhtEhMKC3JlZmlsbF9yYXRlGAggASgNEhAKCGludGVydmFsGAkgASgNEhAKCGNhcGFjaXR5GAogASgNEhkKEXdpbmRvd19pbl9zZWNvbmRzGAwgASgNEjwKB3ZlcnNpb24YDSABKA4yKy5wcm90by5kZWNpZGUudjFhbHBoYTEuUmF0ZUxpbWl0UnVsZVZlcnNpb25KBAgLEAxSCXJlcXVlc3RlZCLGAgoHQm90UnVsZRIpCgRtb2RlGAEgASgOMhsucHJvdG8uZGVjaWRlLnYxYWxwaGExLk1vZGUSLQoFYmxvY2sYAiADKA4yHi5wcm90by5kZWNpZGUudjFhbHBoYTEuQm90VHlwZRI5CghwYXR0ZXJucxgDIAEoCzInLnByb3RvLmRlY2lkZS52MWFscGhhMS5Cb3RSdWxlLlBhdHRlcm5zGqUBCghQYXR0ZXJucxI9CgNhZGQYASADKAsyMC5wcm90by5kZWNpZGUudjFhbHBoYTEuQm90UnVsZS5QYXR0ZXJucy5BZGRFbnRyeRIOCgZyZW1vdmUYAiADKAkaSgoIQWRkRW50cnkSCwoDa2V5GAEgASgJEi0KBXZhbHVlGAIgASgOMh4ucHJvdG8uZGVjaWRlLnYxYWxwaGExLkJvdFR5cGU6AjgBIo0BCglCb3RWMlJ1bGUSKQoEbW9kZRgBIAEoDjIbLnByb3RvLmRlY2lkZS52MWFscGhhMS5Nb2RlEg0KBWFsbG93GAIgAygJEgwKBGRlbnkYAyADKAkSOAoHdmVyc2lvbhgEIAEoDjInLnByb3RvLmRlY2lkZS52MWFscGhhMS5Cb3RWMlJ1bGVWZXJzaW9uIsYCCglFbWFpbFJ1bGUSKQoEbW9kZRgBIAEoDjIbLnByb3RvLmRlY2lkZS52MWFscGhhMS5Nb2RlEjMKBWJsb2NrGAIgAygOMiAucHJvdG8uZGVjaWRlLnYxYWxwaGExLkVtYWlsVHlwZUICGAESIAoYcmVxdWlyZV90b3BfbGV2ZWxfZG9tYWluGAMgASgIEhwKFGFsbG93X2RvbWFpbl9saXRlcmFsGAQgASgIEi8KBWFsbG93GAUgAygOMiAucHJvdG8uZGVjaWRlLnYxYWxwaGExLkVtYWlsVHlwZRIuCgRkZW55GAYgAygOMiAucHJvdG8uZGVjaWRlLnYxYWxwaGExLkVtYWlsVHlwZRI4Cgd2ZXJzaW9uGAcgASgOMicucHJvdG8uZGVjaWRlLnYxYWxwaGExLkVtYWlsUnVsZVZlcnNpb24inQEKEVNlbnNpdGl2ZUluZm9SdWxlEikKBG1vZGUYASABKA4yGy5wcm90by5kZWNpZGUudjFhbHBoYTEuTW9kZRINCgVhbGxvdxgCIAMoCRIMCgRkZW55GAMgAygJEkAKB3ZlcnNpb24YBCABKA4yLy5wcm90by5kZWNpZGUudjFhbHBoYTEuU2Vuc2l0aXZlSW5mb1J1bGVWZXJzaW9uIp8BCgpTaGllbGRSdWxlEikKBG1vZGUYASABKA4yGy5wcm90by5kZWNpZGUudjFhbHBoYTEuTW9kZRISCgphdXRvX2FkZGVkGAIgASgIEhcKD2NoYXJhY3RlcmlzdGljcxgDIAMoCRI5Cgd2ZXJzaW9uGAQgASgOMigucHJvdG8uZGVjaWRlLnYxYWxwaGExLlNoaWVsZFJ1bGVWZXJzaW9uIo8BCgpGaWx0ZXJSdWxlEikKBG1vZGUYASABKA4yGy5wcm90by5kZWNpZGUudjFhbHBoYTEuTW9kZRINCgVhbGxvdxgCIAMoCRIMCgRkZW55GAMgAygJEjkKB3ZlcnNpb24YBCABKA4yKC5wcm90by5kZWNpZGUudjFhbHBoYTEuRmlsdGVyUnVsZVZlcnNpb24ivAEKHFByb21wdEluamVjdGlvbkRldGVjdGlvblJ1bGUSKQoEbW9kZRgBIAEoDjIbLnByb3RvLmRlY2lkZS52MWFscGhhMS5Nb2RlEhYKCXRocmVzaG9sZBgCIAEoAUgAiAEBEksKB3ZlcnNpb24YAyABKA4yOi5wcm90by5kZWNpZGUudjFhbHBoYTEuUHJvbXB0SW5qZWN0aW9uRGV0ZWN0aW9uUnVsZVZlcnNpb25CDAoKX3RocmVzaG9sZCLqAwoEUnVsZRI6CgpyYXRlX2xpbWl0GAEgASgLMiQucHJvdG8uZGVjaWRlLnYxYWxwaGExLlJhdGVMaW1pdFJ1bGVIABIuCgRib3RzGAIgASgLMh4ucHJvdG8uZGVjaWRlLnYxYWxwaGExLkJvdFJ1bGVIABIxCgVlbWFpbBgDIAEoCzIgLnByb3RvLmRlY2lkZS52MWFscGhhMS5FbWFpbFJ1bGVIABIzCgZzaGllbGQYBCABKAsyIS5wcm90by5kZWNpZGUudjFhbHBoYTEuU2hpZWxkUnVsZUgAEkIKDnNlbnNpdGl2ZV9pbmZvGAUgASgLMigucHJvdG8uZGVjaWRlLnYxYWxwaGExLlNlbnNpdGl2ZUluZm9SdWxlSAASMgoGYm90X3YyGAYgASgLMiAucHJvdG8uZGVjaWRlLnYxYWxwaGExLkJvdFYyUnVsZUgAEjMKBmZpbHRlchgHIAEoCzIhLnByb3RvLmRlY2lkZS52MWFscGhhMS5GaWx0ZXJSdWxlSAASWQoacHJvbXB0X2luamVjdGlvbl9kZXRlY3Rpb24YCCABKAsyMy5wcm90by5kZWNpZGUudjFhbHBoYTEuUHJvbXB0SW5qZWN0aW9uRGV0ZWN0aW9uUnVsZUgAQgYKBHJ1bGUi1gEKClJ1bGVSZXN1bHQSDwoHcnVsZV9pZBgBIAEoCRIvCgVzdGF0ZRgCIAEoDjIgLnByb3RvLmRlY2lkZS52MWFscGhhMS5SdWxlU3RhdGUSNQoKY29uY2x1c2lvbhgDIAEoDjIhLnByb3RvLmRlY2lkZS52MWFscGhhMS5Db25jbHVzaW9uEi0KBnJlYXNvbhgEIAEoCzIdLnByb3RvLmRlY2lkZS52MWFscGhhMS5SZWFzb24SCwoDdHRsGAUgASgNEhMKC2ZpbmdlcnByaW50GAYgASgJIvsCCg5SZXF1ZXN0RGV0YWlscxIKCgJpcBgBIAEoCRIOCgZtZXRob2QYAiABKAkSEAoIcHJvdG9jb2wYAyABKAkSDAoEaG9zdBgEIAEoCRIMCgRwYXRoGAUgASgJEkMKB2hlYWRlcnMYBiADKAsyMi5wcm90by5kZWNpZGUudjFhbHBoYTEuUmVxdWVzdERldGFpbHMuSGVhZGVyc0VudHJ5EgwKBGJvZHkYByABKAwSPwoFZXh0cmEYCCADKAsyMC5wcm90by5kZWNpZGUudjFhbHBoYTEuUmVxdWVzdERldGFpbHMuRXh0cmFFbnRyeRINCgVlbWFpbBgJIAEoCRIPCgdjb29raWVzGAogASgJEg0KBXF1ZXJ5GAsgASgJGi4KDEhlYWRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGiwKCkV4dHJhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASL4AQoIRGVjaXNpb24SCgoCaWQYASABKAkSNQoKY29uY2x1c2lvbhgCIAEoDjIhLnByb3RvLmRlY2lkZS52MWFscGhhMS5Db25jbHVzaW9uEi0KBnJlYXNvbhgDIAEoCzIdLnByb3RvLmRlY2lkZS52MWFscGhhMS5SZWFzb24SNwoMcnVsZV9yZXN1bHRzGAQgAygLMiEucHJvdG8uZGVjaWRlLnYxYWxwaGExLlJ1bGVSZXN1bHQSCwoDdHRsGAUgASgNEjQKCmlwX2RldGFpbHMYBiABKAsyIC5wcm90by5kZWNpZGUudjFhbHBoYTEuSXBEZXRhaWxzIugBCg1EZWNpZGVSZXF1ZXN0EjIKCXNka19zdGFjaxgBIAEoDjIfLnByb3RvLmRlY2lkZS52MWFscGhhMS5TREtTdGFjaxITCgtzZGtfdmVyc2lvbhgCIAEoCRI2CgdkZXRhaWxzGAQgASgLMiUucHJvdG8uZGVjaWRlLnYxYWxwaGExLlJlcXVlc3REZXRhaWxzEioKBXJ1bGVzGAUgAygLMhsucHJvdG8uZGVjaWRlLnYxYWxwaGExLlJ1bGUSFwoPY2hhcmFjdGVyaXN0aWNzGAYgAygJSgQIAxAEUgtmaW5nZXJwcmludCKyAQoORGVjaWRlUmVzcG9uc2USMQoIZGVjaXNpb24YASABKAsyHy5wcm90by5kZWNpZGUudjFhbHBoYTEuRGVjaXNpb24SPwoFZXh0cmEYAiADKAsyMC5wcm90by5kZWNpZGUudjFhbHBoYTEuRGVjaWRlUmVzcG9uc2UuRXh0cmFFbnRyeRosCgpFeHRyYUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEirgIKDVJlcG9ydFJlcXVlc3QSMgoJc2RrX3N0YWNrGAEgASgOMh8ucHJvdG8uZGVjaWRlLnYxYWxwaGExLlNES1N0YWNrEhMKC3Nka192ZXJzaW9uGAIgASgJEjYKB2RldGFpbHMYBCABKAsyJS5wcm90by5kZWNpZGUudjFhbHBoYTEuUmVxdWVzdERldGFpbHMSMQoIZGVjaXNpb24YBSABKAsyHy5wcm90by5kZWNpZGUudjFhbHBoYTEuRGVjaXNpb24SKgoFcnVsZXMYBiADKAsyGy5wcm90by5kZWNpZGUudjFhbHBoYTEuUnVsZRIXCg9jaGFyYWN0ZXJpc3RpY3MYCCADKAlKBAgDEARKBAgHEAhSC2ZpbmdlcnByaW50UgtyZWNlaXZlZF9hdCKPAQoOUmVwb3J0UmVzcG9uc2USPwoFZXh0cmEYAiADKAsyMC5wcm90by5kZWNpZGUudjFhbHBoYTEuUmVwb3J0UmVzcG9uc2UuRXh0cmFFbnRyeRosCgpFeHRyYUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFKBAgBEAJSCGRlY2lzaW9uKq8BCgdCb3RUeXBlEhgKFEJPVF9UWVBFX1VOU1BFQ0lGSUVEEAASGQoVQk9UX1RZUEVfTk9UX0FOQUxZWkVEEAESFgoSQk9UX1RZUEVfQVVUT01BVEVEEAISHQoZQk9UX1RZUEVfTElLRUxZX0FVVE9NQVRFRBADEh0KGUJPVF9UWVBFX0xJS0VMWV9OT1RfQV9CT1QQBBIZChVCT1RfVFlQRV9WRVJJRklFRF9CT1QQBSqpAQoJRW1haWxUeXBlEhoKFkVNQUlMX1RZUEVfVU5TUEVDSUZJRUQQABIZChVFTUFJTF9UWVBFX0RJU1BPU0FCTEUQARITCg9FTUFJTF9UWVBFX0ZSRUUQAhIcChhFTUFJTF9UWVBFX05PX01YX1JFQ09SRFMQAxIaChZFTUFJTF9UWVBFX05PX0dSQVZBVEFSEAQSFgoSRU1BSUxfVFlQRV9JTlZBTElEEAUqPQoETW9kZRIUChBNT0RFX1VOU1BFQ0lGSUVEEAASEAoMTU9ERV9EUllfUlVOEAESDQoJTU9ERV9MSVZFEAIqggEKCVJ1bGVTdGF0ZRIaChZSVUxFX1NUQVRFX1VOU1BFQ0lGSUVEEAASEgoOUlVMRV9TVEFURV9SVU4QARIWChJSVUxFX1NUQVRFX05PVF9SVU4QAhIWChJSVUxFX1NUQVRFX0RSWV9SVU4QAxIVChFSVUxFX1NUQVRFX0NBQ0hFRBAEKoMBCgpDb25jbHVzaW9uEhoKFkNPTkNMVVNJT05fVU5TUEVDSUZJRUQQABIUChBDT05DTFVTSU9OX0FMTE9XEAESEwoPQ09OQ0xVU0lPTl9ERU5ZEAISGAoUQ09OQ0xVU0lPTl9DSEFMTEVOR0UQAxIUChBDT05DTFVTSU9OX0VSUk9SEAQq2AIKCFNES1N0YWNrEhkKFVNES19TVEFDS19VTlNQRUNJRklFRBAAEhQKEFNES19TVEFDS19OT0RFSlMQARIUChBTREtfU1RBQ0tfTkVYVEpTEAISFAoQU0RLX1NUQUNLX1BZVEhPThADEhQKEFNES19TVEFDS19ESkFOR08QBBIRCg1TREtfU1RBQ0tfQlVOEAUSEgoOU0RLX1NUQUNLX0RFTk8QBhIXChNTREtfU1RBQ0tfU1ZFTFRFS0lUEAcSEgoOU0RLX1NUQUNLX0hPTk8QCBISCg5TREtfU1RBQ0tfTlVYVBAJEhQKEFNES19TVEFDS19ORVNUSlMQChITCg9TREtfU1RBQ0tfUkVNSVgQCxITCg9TREtfU1RBQ0tfQVNUUk8QDBIVChFTREtfU1RBQ0tfRkFTVElGWRANEhoKFlNES19TVEFDS19SRUFDVF9ST1VURVIQDiqxAQoSUmF0ZUxpbWl0QWxnb3JpdGhtEiQKIFJBVEVfTElNSVRfQUxHT1JJVEhNX1VOU1BFQ0lGSUVEEAASJQohUkFURV9MSU1JVF9BTEdPUklUSE1fVE9LRU5fQlVDS0VUEAESJQohUkFURV9MSU1JVF9BTEdPUklUSE1fRklYRURfV0lORE9XEAISJwojUkFURV9MSU1JVF9BTEdPUklUSE1fU0xJRElOR19XSU5ET1cQAyo/ChRSYXRlTGltaXRSdWxlVmVyc2lvbhInCiNSQVRFX0xJTUlUX1JVTEVfVkVSU0lPTl9VTlNQRUNJRklFRBAAKjcKEEJvdFYyUnVsZVZlcnNpb24SIwofQk9UX1YyX1JVTEVfVkVSU0lPTl9VTlNQRUNJRklFRBAAKjYKEEVtYWlsUnVsZVZlcnNpb24SIgoeRU1BSUxfUlVMRV9WRVJTSU9OX1VOU1BFQ0lGSUVEEAAqRwoYU2Vuc2l0aXZlSW5mb1J1bGVWZXJzaW9uEisKJ1NFTlNJVElWRV9JTkZPX1JVTEVfVkVSU0lPTl9VTlNQRUNJRklFRBAAKjgKEVNoaWVsZFJ1bGVWZXJzaW9uEiMKH1NISUVMRF9SVUxFX1ZFUlNJT05fVU5TUEVDSUZJRUQQACo4ChFGaWx0ZXJSdWxlVmVyc2lvbhIjCh9GSUxURVJfUlVMRV9WRVJTSU9OX1VOU1BFQ0lGSUVEEAAqXgojUHJvbXB0SW5qZWN0aW9uRGV0ZWN0aW9uUnVsZVZlcnNpb24SNwozUFJPTVBUX0lOSkVDVElPTl9ERVRFQ1RJT05fUlVMRV9WRVJTSU9OX1VOU1BFQ0lGSUVEEAAyvQEKDURlY2lkZVNlcnZpY2USVQoGRGVjaWRlEiQucHJvdG8uZGVjaWRlLnYxYWxwaGExLkRlY2lkZVJlcXVlc3QaJS5wcm90by5kZWNpZGUudjFhbHBoYTEuRGVjaWRlUmVzcG9uc2USVQoGUmVwb3J0EiQucHJvdG8uZGVjaWRlLnYxYWxwaGExLlJlcG9ydFJlcXVlc3QaJS5wcm90by5kZWNpZGUudjFhbHBoYTEuUmVwb3J0UmVzcG9uc2VCygEKGWNvbS5wcm90by5kZWNpZGUudjFhbHBoYTFCC0RlY2lkZVByb3RvUAFaKmFyY2pldC9nZW4vZ28vZGVjaWRlL2FscGhhMTtkZWNpZGV2MWFscGhhMaICA1BEWKoCFVByb3RvLkRlY2lkZS5WMWFscGhhMcoCFVByb3RvXERlY2lkZVxWMWFscGhhMeICIVByb3RvXERlY2lkZVxWMWFscGhhMVxHUEJNZXRhZGF0YeoCF1Byb3RvOjpEZWNpZGU6OlYxYWxwaGExYgZwcm90bzM", [file_google_protobuf_timestamp]);

@@ -86,2 +86,9 @@ /**

/**
* Describes the message proto.decide.v1alpha1.PromptInjectionReason.
* Use `create(PromptInjectionReasonSchema)` to create a new message.
*/
export const PromptInjectionReasonSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 10);
/**
* Describes the message proto.decide.v1alpha1.IdentifiedEntity.

@@ -91,3 +98,3 @@ * Use `create(IdentifiedEntitySchema)` to create a new message.

export const IdentifiedEntitySchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 10);
messageDesc(file_proto_decide_v1alpha1_decide, 11);

@@ -99,3 +106,3 @@ /**

export const SensitiveInfoReasonSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 11);
messageDesc(file_proto_decide_v1alpha1_decide, 12);

@@ -107,3 +114,3 @@ /**

export const RateLimitRuleSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 12);
messageDesc(file_proto_decide_v1alpha1_decide, 13);

@@ -115,3 +122,3 @@ /**

export const BotRuleSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 13);
messageDesc(file_proto_decide_v1alpha1_decide, 14);

@@ -123,3 +130,3 @@ /**

export const BotRule_PatternsSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 13, 0);
messageDesc(file_proto_decide_v1alpha1_decide, 14, 0);

@@ -131,3 +138,3 @@ /**

export const BotV2RuleSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 14);
messageDesc(file_proto_decide_v1alpha1_decide, 15);

@@ -139,3 +146,3 @@ /**

export const EmailRuleSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 15);
messageDesc(file_proto_decide_v1alpha1_decide, 16);

@@ -147,3 +154,3 @@ /**

export const SensitiveInfoRuleSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 16);
messageDesc(file_proto_decide_v1alpha1_decide, 17);

@@ -155,3 +162,3 @@ /**

export const ShieldRuleSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 17);
messageDesc(file_proto_decide_v1alpha1_decide, 18);

@@ -163,5 +170,12 @@ /**

export const FilterRuleSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 18);
messageDesc(file_proto_decide_v1alpha1_decide, 19);
/**
* Describes the message proto.decide.v1alpha1.PromptInjectionDetectionRule.
* Use `create(PromptInjectionDetectionRuleSchema)` to create a new message.
*/
export const PromptInjectionDetectionRuleSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 20);
/**
* Describes the message proto.decide.v1alpha1.Rule.

@@ -171,3 +185,3 @@ * Use `create(RuleSchema)` to create a new message.

export const RuleSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 19);
messageDesc(file_proto_decide_v1alpha1_decide, 21);

@@ -179,3 +193,3 @@ /**

export const RuleResultSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 20);
messageDesc(file_proto_decide_v1alpha1_decide, 22);

@@ -187,3 +201,3 @@ /**

export const RequestDetailsSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 21);
messageDesc(file_proto_decide_v1alpha1_decide, 23);

@@ -195,3 +209,3 @@ /**

export const DecisionSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 22);
messageDesc(file_proto_decide_v1alpha1_decide, 24);

@@ -203,3 +217,3 @@ /**

export const DecideRequestSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 23);
messageDesc(file_proto_decide_v1alpha1_decide, 25);

@@ -211,3 +225,3 @@ /**

export const DecideResponseSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 24);
messageDesc(file_proto_decide_v1alpha1_decide, 26);

@@ -219,3 +233,3 @@ /**

export const ReportRequestSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 25);
messageDesc(file_proto_decide_v1alpha1_decide, 27);

@@ -227,3 +241,3 @@ /**

export const ReportResponseSchema = /*@__PURE__*/
messageDesc(file_proto_decide_v1alpha1_decide, 26);
messageDesc(file_proto_decide_v1alpha1_decide, 28);

@@ -403,2 +417,14 @@ /**

/**
* Describes the enum proto.decide.v1alpha1.PromptInjectionDetectionRuleVersion.
*/
export const PromptInjectionDetectionRuleVersionSchema = /*@__PURE__*/
enumDesc(file_proto_decide_v1alpha1_decide, 13);
/**
* @generated from enum proto.decide.v1alpha1.PromptInjectionDetectionRuleVersion
*/
export const PromptInjectionDetectionRuleVersion = /*@__PURE__*/
tsEnum(PromptInjectionDetectionRuleVersionSchema);
/**
* @generated from service proto.decide.v1alpha1.DecideService

@@ -405,0 +431,0 @@ */