diff --git a/client/docs/swagger-ui/swagger.json b/client/docs/swagger-ui/swagger.json index 81722390d..55346b5d6 100644 --- a/client/docs/swagger-ui/swagger.json +++ b/client/docs/swagger-ui/swagger.json @@ -18310,6 +18310,109 @@ ] } }, + "/imuachain/assets/v1/staker_balance/{staker_id}/{asset_id}": { + "get": { + "summary": "QueryStakerBalance queries the staker balance for specified asset", + "operationId": "QueryStakerBalance", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "type": "object", + "properties": { + "staker_balance": { + "title": "staker_balance is the response for QueryStakerBalanceRequest", + "type": "object", + "properties": { + "staker_id": { + "type": "string", + "description": "staker_id is the staker id for which the query is made." + }, + "asset_id": { + "type": "string", + "description": "asset_id is the asset for which the query is made." + }, + "balance": { + "type": "string", + "title": "balance = withdrawable + delegated + pendingUndelegated" + }, + "Withdrawable": { + "type": "string", + "title": "Withdrawable is the amount that can be withdrawn" + }, + "Delegated": { + "type": "string", + "title": "Delegated is the amount that has been delegated to the operators" + }, + "PendingUndelegated": { + "type": "string", + "title": "PendingUndelegated is the amount that has been undelegated but not been completed" + }, + "TotalDeposited": { + "type": "string", + "title": "TotalDeposited is the total deposit amount, compared to the balance, it might include slashed amount" + } + } + } + }, + "description": "QueryStakerBalanceResponse is the response type for the Query/QueryStakerBalance RPC method." + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type_url": { + "type": "string" + }, + "value": { + "type": "string", + "format": "byte" + } + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "staker_id", + "description": "staker_id is the staker id for which the query is made.", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "asset_id", + "description": "asset_id is the asset for which the query is made.", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "Query" + ] + } + }, "/imuachain/imslash/v1/params": { "get": { "summary": "Parameters queries the parameters of the module.", @@ -20915,20 +21018,41 @@ "type": "object", "properties": { "delegation_infos": { - "type": "object", - "additionalProperties": { + "type": "array", + "items": { "type": "object", "properties": { - "undelegatable_share": { + "operator": { "type": "string", - "description": "undelegatable_share is the share that can be undelegated.\nIt's to reduce the state updating when slash occurs.\nS_j = S * T_j / T, `S` and `T` is the current asset share and amount of operator,\nand the T_j represents the change in staker's asset amount when some external\noperations occur, such as: delegation, undelegation and slashing.\nS_j represents the change in the staker's asset share,\nso the updated share should be added by it.\nA special case is the initial delegation, when T = 0 and S = 0, so T_j / T is undefined.\nFor the initial delegation, delegator j who delegates T_j tokens receive S_j = T_j shares." + "title": "operator is the operator address of this delegation" }, - "wait_undelegation_amount": { - "type": "string", - "description": "wait_undelegation_amount is the amount that is waiting to be unbonded." + "delegation_info": { + "title": "delegation_info is the delegation information", + "type": "object", + "properties": { + "delegation_amounts": { + "title": "delegation_amounts is the delegation info recorded in the KVStore", + "type": "object", + "properties": { + "undelegatable_share": { + "type": "string", + "description": "undelegatable_share is the share that can be undelegated.\nIt's to reduce the state updating when slash occurs.\nS_j = S * T_j / T, `S` and `T` is the current asset share and amount of operator,\nand the T_j represents the change in staker's asset amount when some external\noperations occur, such as: delegation, undelegation and slashing.\nS_j represents the change in the staker's asset share,\nso the updated share should be added by it.\nA special case is the initial delegation, when T = 0 and S = 0, so T_j / T is undefined.\nFor the initial delegation, delegator j who delegates T_j tokens receive S_j = T_j shares." + }, + "wait_undelegation_amount": { + "type": "string", + "description": "wait_undelegation_amount is the amount that is waiting to be unbonded." + } + }, + "description": "DelegationAmounts is the delegation amount response for a single delegation." + }, + "max_undelegatable_amount": { + "type": "string", + "title": "max_undelegatable_amount is the maximum amount that can be undelegated" + } + } } }, - "description": "DelegationAmounts is the delegation amount response for a single delegation." + "title": "DelegationInfoWithOperator includes the SingleDelegationInfo and operator address" }, "description": "delegation_infos is the delegation information for each operator." } @@ -21136,24 +21260,30 @@ "schema": { "type": "object", "properties": { - "delegation_amounts": { + "single_delegation_info": { + "title": "single_delegation_info", "type": "object", "properties": { - "undelegatable_share": { - "type": "string", - "description": "undelegatable_share is the share that can be undelegated.\nIt's to reduce the state updating when slash occurs.\nS_j = S * T_j / T, `S` and `T` is the current asset share and amount of operator,\nand the T_j represents the change in staker's asset amount when some external\noperations occur, such as: delegation, undelegation and slashing.\nS_j represents the change in the staker's asset share,\nso the updated share should be added by it.\nA special case is the initial delegation, when T = 0 and S = 0, so T_j / T is undefined.\nFor the initial delegation, delegator j who delegates T_j tokens receive S_j = T_j shares." + "delegation_amounts": { + "title": "delegation_amounts is the delegation info recorded in the KVStore", + "type": "object", + "properties": { + "undelegatable_share": { + "type": "string", + "description": "undelegatable_share is the share that can be undelegated.\nIt's to reduce the state updating when slash occurs.\nS_j = S * T_j / T, `S` and `T` is the current asset share and amount of operator,\nand the T_j represents the change in staker's asset amount when some external\noperations occur, such as: delegation, undelegation and slashing.\nS_j represents the change in the staker's asset share,\nso the updated share should be added by it.\nA special case is the initial delegation, when T = 0 and S = 0, so T_j / T is undefined.\nFor the initial delegation, delegator j who delegates T_j tokens receive S_j = T_j shares." + }, + "wait_undelegation_amount": { + "type": "string", + "description": "wait_undelegation_amount is the amount that is waiting to be unbonded." + } + }, + "description": "DelegationAmounts is the delegation amount response for a single delegation." }, - "wait_undelegation_amount": { + "max_undelegatable_amount": { "type": "string", - "description": "wait_undelegation_amount is the amount that is waiting to be unbonded." + "title": "max_undelegatable_amount is the maximum amount that can be undelegated" } - }, - "description": "DelegationAmounts is the delegation amount response for a single delegation.", - "title": "delegation_amounts is the delegation info recorded in the KVStore" - }, - "max_undelegatable_amount": { - "type": "string", - "title": "max_undelegatable_amount is the maximum amount that can be undelegated" + } } }, "title": "SingleDelegationInfoResponse is the response to QuerySingleDelegationInfo" @@ -41171,6 +41301,46 @@ }, "description": "QueryParamsResponse is the response type for the Query/Params RPC\nmethod." }, + "imuachain.assets.v1.QueryStakerBalanceResponse": { + "type": "object", + "properties": { + "staker_balance": { + "title": "staker_balance is the response for QueryStakerBalanceRequest", + "type": "object", + "properties": { + "staker_id": { + "type": "string", + "description": "staker_id is the staker id for which the query is made." + }, + "asset_id": { + "type": "string", + "description": "asset_id is the asset for which the query is made." + }, + "balance": { + "type": "string", + "title": "balance = withdrawable + delegated + pendingUndelegated" + }, + "Withdrawable": { + "type": "string", + "title": "Withdrawable is the amount that can be withdrawn" + }, + "Delegated": { + "type": "string", + "title": "Delegated is the amount that has been delegated to the operators" + }, + "PendingUndelegated": { + "type": "string", + "title": "PendingUndelegated is the amount that has been undelegated but not been completed" + }, + "TotalDeposited": { + "type": "string", + "title": "TotalDeposited is the total deposit amount, compared to the balance, it might include slashed amount" + } + } + } + }, + "description": "QueryStakerBalanceResponse is the response type for the Query/QueryStakerBalance RPC method." + }, "imuachain.assets.v1.StakerAssetInfo": { "type": "object", "properties": { @@ -41189,6 +41359,40 @@ }, "description": "StakerAssetInfo defines the information for a single asset.\nThe type include three states:\nstaker's deposited, withdrawable, and currently unbonding amount." }, + "imuachain.assets.v1.StakerBalance": { + "type": "object", + "properties": { + "staker_id": { + "type": "string", + "description": "staker_id is the staker id for which the query is made." + }, + "asset_id": { + "type": "string", + "description": "asset_id is the asset for which the query is made." + }, + "balance": { + "type": "string", + "title": "balance = withdrawable + delegated + pendingUndelegated" + }, + "Withdrawable": { + "type": "string", + "title": "Withdrawable is the amount that can be withdrawn" + }, + "Delegated": { + "type": "string", + "title": "Delegated is the amount that has been delegated to the operators" + }, + "PendingUndelegated": { + "type": "string", + "title": "PendingUndelegated is the amount that has been undelegated but not been completed" + }, + "TotalDeposited": { + "type": "string", + "title": "TotalDeposited is the total deposit amount, compared to the balance, it might include slashed amount" + } + }, + "title": "StakerBalance is a struct to describe the balance of a staker for a specific asset\nbalance = withdrawable + delegated + pendingUndelegated\npendingUndelegated is the amount of the asset that is during unbonding period and not yet withdrawable\nit would finally be withdrawable after the unbonding period, but the final amount may be less than the pendingUndelegated\nbecause of the penalty during the unbonding period" + }, "imuachain.assets.v1.StakingAssetInfo": { "type": "object", "properties": { @@ -43852,6 +44056,41 @@ }, "description": "DelegationAmounts is the delegation amount response for a single delegation." }, + "imuachain.delegation.v1.DelegationInfoWithOperator": { + "type": "object", + "properties": { + "operator": { + "type": "string", + "title": "operator is the operator address of this delegation" + }, + "delegation_info": { + "title": "delegation_info is the delegation information", + "type": "object", + "properties": { + "delegation_amounts": { + "title": "delegation_amounts is the delegation info recorded in the KVStore", + "type": "object", + "properties": { + "undelegatable_share": { + "type": "string", + "description": "undelegatable_share is the share that can be undelegated.\nIt's to reduce the state updating when slash occurs.\nS_j = S * T_j / T, `S` and `T` is the current asset share and amount of operator,\nand the T_j represents the change in staker's asset amount when some external\noperations occur, such as: delegation, undelegation and slashing.\nS_j represents the change in the staker's asset share,\nso the updated share should be added by it.\nA special case is the initial delegation, when T = 0 and S = 0, so T_j / T is undefined.\nFor the initial delegation, delegator j who delegates T_j tokens receive S_j = T_j shares." + }, + "wait_undelegation_amount": { + "type": "string", + "description": "wait_undelegation_amount is the amount that is waiting to be unbonded." + } + }, + "description": "DelegationAmounts is the delegation amount response for a single delegation." + }, + "max_undelegatable_amount": { + "type": "string", + "title": "max_undelegatable_amount is the maximum amount that can be undelegated" + } + } + } + }, + "title": "DelegationInfoWithOperator includes the SingleDelegationInfo and operator address" + }, "imuachain.delegation.v1.QueryAssociatedOperatorByStakerResponse": { "type": "object", "properties": { @@ -43897,30 +44136,52 @@ "type": "object", "properties": { "delegation_infos": { - "type": "object", - "additionalProperties": { + "type": "array", + "items": { "type": "object", "properties": { - "undelegatable_share": { + "operator": { "type": "string", - "description": "undelegatable_share is the share that can be undelegated.\nIt's to reduce the state updating when slash occurs.\nS_j = S * T_j / T, `S` and `T` is the current asset share and amount of operator,\nand the T_j represents the change in staker's asset amount when some external\noperations occur, such as: delegation, undelegation and slashing.\nS_j represents the change in the staker's asset share,\nso the updated share should be added by it.\nA special case is the initial delegation, when T = 0 and S = 0, so T_j / T is undefined.\nFor the initial delegation, delegator j who delegates T_j tokens receive S_j = T_j shares." + "title": "operator is the operator address of this delegation" }, - "wait_undelegation_amount": { - "type": "string", - "description": "wait_undelegation_amount is the amount that is waiting to be unbonded." + "delegation_info": { + "title": "delegation_info is the delegation information", + "type": "object", + "properties": { + "delegation_amounts": { + "title": "delegation_amounts is the delegation info recorded in the KVStore", + "type": "object", + "properties": { + "undelegatable_share": { + "type": "string", + "description": "undelegatable_share is the share that can be undelegated.\nIt's to reduce the state updating when slash occurs.\nS_j = S * T_j / T, `S` and `T` is the current asset share and amount of operator,\nand the T_j represents the change in staker's asset amount when some external\noperations occur, such as: delegation, undelegation and slashing.\nS_j represents the change in the staker's asset share,\nso the updated share should be added by it.\nA special case is the initial delegation, when T = 0 and S = 0, so T_j / T is undefined.\nFor the initial delegation, delegator j who delegates T_j tokens receive S_j = T_j shares." + }, + "wait_undelegation_amount": { + "type": "string", + "description": "wait_undelegation_amount is the amount that is waiting to be unbonded." + } + }, + "description": "DelegationAmounts is the delegation amount response for a single delegation." + }, + "max_undelegatable_amount": { + "type": "string", + "title": "max_undelegatable_amount is the maximum amount that can be undelegated" + } + } } }, - "description": "DelegationAmounts is the delegation amount response for a single delegation." + "title": "DelegationInfoWithOperator includes the SingleDelegationInfo and operator address" }, "description": "delegation_infos is the delegation information for each operator." } }, "description": "QueryDelegationInfoResponse is the response for delegations by staker id and\nasset id." }, - "imuachain.delegation.v1.SingleDelegationInfoResponse": { + "imuachain.delegation.v1.SingleDelegationInfo": { "type": "object", "properties": { "delegation_amounts": { + "title": "delegation_amounts is the delegation info recorded in the KVStore", "type": "object", "properties": { "undelegatable_share": { @@ -43932,14 +44193,44 @@ "description": "wait_undelegation_amount is the amount that is waiting to be unbonded." } }, - "description": "DelegationAmounts is the delegation amount response for a single delegation.", - "title": "delegation_amounts is the delegation info recorded in the KVStore" + "description": "DelegationAmounts is the delegation amount response for a single delegation." }, "max_undelegatable_amount": { "type": "string", "title": "max_undelegatable_amount is the maximum amount that can be undelegated" } }, + "title": "SingleDelegationInfo includes the share, amount and pending undelegation amount" + }, + "imuachain.delegation.v1.SingleDelegationInfoResponse": { + "type": "object", + "properties": { + "single_delegation_info": { + "title": "single_delegation_info", + "type": "object", + "properties": { + "delegation_amounts": { + "title": "delegation_amounts is the delegation info recorded in the KVStore", + "type": "object", + "properties": { + "undelegatable_share": { + "type": "string", + "description": "undelegatable_share is the share that can be undelegated.\nIt's to reduce the state updating when slash occurs.\nS_j = S * T_j / T, `S` and `T` is the current asset share and amount of operator,\nand the T_j represents the change in staker's asset amount when some external\noperations occur, such as: delegation, undelegation and slashing.\nS_j represents the change in the staker's asset share,\nso the updated share should be added by it.\nA special case is the initial delegation, when T = 0 and S = 0, so T_j / T is undefined.\nFor the initial delegation, delegator j who delegates T_j tokens receive S_j = T_j shares." + }, + "wait_undelegation_amount": { + "type": "string", + "description": "wait_undelegation_amount is the amount that is waiting to be unbonded." + } + }, + "description": "DelegationAmounts is the delegation amount response for a single delegation." + }, + "max_undelegatable_amount": { + "type": "string", + "title": "max_undelegatable_amount is the maximum amount that can be undelegated" + } + } + } + }, "title": "SingleDelegationInfoResponse is the response to QuerySingleDelegationInfo" }, "imuachain.delegation.v1.UndelegationAndHoldCount": { diff --git a/proto/imuachain/assets/v1/query.proto b/proto/imuachain/assets/v1/query.proto index 07afe2ab1..f13dbfa7c 100644 --- a/proto/imuachain/assets/v1/query.proto +++ b/proto/imuachain/assets/v1/query.proto @@ -115,26 +115,26 @@ message StakerBalance { (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false ]; - // Withdrawable is the amount that can be withdrawn - string Withdrawable = 4 [ + // withdrawable is the amount that can be withdrawn + string withdrawable = 4 [ (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false ]; - // Delegated is the amount that has been delegated to the operators - string Delegated = 5 [ + // delegated is the amount that has been delegated to the operators + string delegated = 5 [ (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false ]; - // PendingUndelegated is the amount that has been undelegated but not been completed - string PendingUndelegated = 6 [ + // pending_undelegated is the amount that has been undelegated but not been completed + string pending_undelegated = 6 [ (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false ]; - // TotalDeposited is the total deposit amount, compared to the balance, it might include slashed amount - string TotalDeposited = 7 [ + // total_deposited is the total deposit amount, compared to the balance, it might include slashed amount + string total_deposited = 7 [ (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false diff --git a/proto/imuachain/delegation/v1/query.proto b/proto/imuachain/delegation/v1/query.proto index 7b6687662..2ec3ddcb5 100644 --- a/proto/imuachain/delegation/v1/query.proto +++ b/proto/imuachain/delegation/v1/query.proto @@ -235,5 +235,4 @@ service Query { option (cosmos.query.v1.module_query_safe) = true; option (google.api.http).get = "/imuachain/delegation/v1/delegated_stakers/{operator}/{asset_id}"; } - } diff --git a/x/assets/types/query.pb.go b/x/assets/types/query.pb.go index 1f3b1990f..a391028ef 100644 --- a/x/assets/types/query.pb.go +++ b/x/assets/types/query.pb.go @@ -700,14 +700,14 @@ type StakerBalance struct { AssetId string `protobuf:"bytes,2,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"` // balance = withdrawable + delegated + pendingUndelegated Balance github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=balance,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"balance"` - // Withdrawable is the amount that can be withdrawn - Withdrawable github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=Withdrawable,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"Withdrawable"` - // Delegated is the amount that has been delegated to the operators - Delegated github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=Delegated,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"Delegated"` - // PendingUndelegated is the amount that has been undelegated but not been completed - PendingUndelegated github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,6,opt,name=PendingUndelegated,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"PendingUndelegated"` - // TotalDeposited is the total deposit amount, compared to the balance, it might include slashed amount - TotalDeposited github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=TotalDeposited,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"TotalDeposited"` + // withdrawable is the amount that can be withdrawn + Withdrawable github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=withdrawable,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"withdrawable"` + // delegated is the amount that has been delegated to the operators + Delegated github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=delegated,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"delegated"` + // pending_undelegated is the amount that has been undelegated but not been completed + PendingUndelegated github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,6,opt,name=pending_undelegated,json=pendingUndelegated,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"pending_undelegated"` + // total_deposited is the total deposit amount, compared to the balance, it might include slashed amount + TotalDeposited github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=total_deposited,json=totalDeposited,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_deposited"` } func (m *StakerBalance) Reset() { *m = StakerBalance{} } @@ -881,83 +881,84 @@ func init() { func init() { proto.RegisterFile("imuachain/assets/v1/query.proto", fileDescriptor_35320a4a23403d1f) } var fileDescriptor_35320a4a23403d1f = []byte{ - // 1210 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x41, 0x53, 0x1c, 0x45, - 0x14, 0x66, 0x12, 0x02, 0xa1, 0x09, 0x1c, 0x1a, 0x4c, 0x96, 0x81, 0xec, 0xc2, 0x24, 0x01, 0x82, - 0x30, 0xe3, 0x42, 0x2a, 0x6a, 0x44, 0x4b, 0x36, 0x24, 0xa9, 0x8d, 0x07, 0x71, 0xd1, 0xa8, 0xb9, - 0xac, 0xbd, 0x3b, 0xcd, 0x30, 0x95, 0xd9, 0x99, 0x65, 0xbb, 0x17, 0x77, 0xa5, 0xa8, 0xa2, 0xbc, - 0xe8, 0xd1, 0x2a, 0xaf, 0xfe, 0x02, 0x2f, 0xc6, 0xaa, 0x9c, 0xf5, 0x64, 0x55, 0x8e, 0x31, 0x5e, - 0x2c, 0x0f, 0x29, 0x0b, 0xac, 0xf2, 0x6f, 0x58, 0xd3, 0xdd, 0xb3, 0x33, 0x3b, 0xdb, 0x33, 0x90, - 0xc8, 0x09, 0xa6, 0xfb, 0xeb, 0xf7, 0xbe, 0xef, 0xeb, 0xd7, 0xdd, 0x6f, 0x41, 0xce, 0xae, 0x35, - 0x51, 0x75, 0x1b, 0xd9, 0xae, 0x81, 0x08, 0xc1, 0x94, 0x18, 0xbb, 0x79, 0x63, 0xa7, 0x89, 0x1b, - 0x6d, 0xbd, 0xde, 0xf0, 0xa8, 0x07, 0xc7, 0x3a, 0x00, 0x9d, 0x03, 0xf4, 0xdd, 0xbc, 0xba, 0x50, - 0xf5, 0x48, 0xcd, 0x23, 0x46, 0x05, 0x11, 0xcc, 0xd1, 0xc6, 0x6e, 0xbe, 0x82, 0x29, 0xca, 0x1b, - 0x75, 0x64, 0xd9, 0x2e, 0xa2, 0xb6, 0xe7, 0xf2, 0x00, 0xea, 0xa4, 0xc0, 0x06, 0xb0, 0x68, 0x74, - 0x75, 0x82, 0x4f, 0x96, 0xd9, 0x97, 0xc1, 0x3f, 0xc4, 0xd4, 0xb8, 0xe5, 0x59, 0x1e, 0x1f, 0xf7, - 0xff, 0x13, 0xa3, 0x53, 0x96, 0xe7, 0x59, 0x0e, 0x36, 0x50, 0xdd, 0x36, 0x90, 0xeb, 0x7a, 0x94, - 0xa5, 0x0a, 0xd6, 0xcc, 0xc8, 0xd4, 0x58, 0xd8, 0xc5, 0xc4, 0x0e, 0x20, 0xd3, 0x32, 0x48, 0x1d, - 0x35, 0x50, 0x2d, 0x40, 0x4c, 0xc9, 0x10, 0xb4, 0xc5, 0x67, 0xb5, 0x37, 0xc1, 0xf8, 0x47, 0xbe, - 0x80, 0xdb, 0x8e, 0x8d, 0x5d, 0x7a, 0xdb, 0x87, 0x15, 0xdd, 0x2d, 0x0f, 0xe6, 0xc0, 0x30, 0x5b, - 0x53, 0xb6, 0x5d, 0x13, 0xb7, 0x32, 0xca, 0xb4, 0x32, 0xdf, 0x5f, 0x02, 0x55, 0x3e, 0x6f, 0xe2, - 0x96, 0x86, 0xc0, 0x25, 0xb6, 0x70, 0xcd, 0x71, 0xe2, 0x6b, 0xef, 0x02, 0x10, 0xda, 0xc6, 0x96, - 0x0e, 0x2f, 0xcf, 0xea, 0xc2, 0x0d, 0xdf, 0x63, 0x9d, 0x7b, 0x26, 0x3c, 0xd6, 0x37, 0x90, 0x85, - 0x4b, 0x78, 0xa7, 0x89, 0x09, 0x2d, 0x45, 0x56, 0x6a, 0xbf, 0x29, 0x20, 0x97, 0x90, 0xa3, 0x84, - 0x49, 0xdd, 0x73, 0x09, 0x86, 0x9f, 0x83, 0x8b, 0xc8, 0x71, 0xca, 0x55, 0x36, 0x5d, 0x0e, 0x28, - 0x6f, 0x79, 0x24, 0xa3, 0x4c, 0x9f, 0x9d, 0x1f, 0x5e, 0xbe, 0xaa, 0x4b, 0x36, 0x5c, 0x8f, 0x47, - 0x1b, 0x43, 0x3d, 0x19, 0x08, 0xbc, 0xd7, 0x25, 0xe3, 0x0c, 0x93, 0x31, 0x77, 0xac, 0x0c, 0xce, - 0xab, 0x4b, 0xc7, 0x32, 0x78, 0x8d, 0xc9, 0xd8, 0xa4, 0xe8, 0x91, 0xed, 0x5a, 0x6b, 0x3e, 0x0d, - 0x66, 0xd4, 0x04, 0x38, 0xcf, 0x38, 0x95, 0x6d, 0x93, 0xd9, 0x34, 0x54, 0x1a, 0x64, 0xdf, 0x45, - 0x53, 0x9b, 0x04, 0x13, 0x81, 0xf4, 0xe8, 0x32, 0xe2, 0xaf, 0xd3, 0xbe, 0x51, 0xc0, 0x4c, 0xe2, - 0x6c, 0xc7, 0x9a, 0x0a, 0xb8, 0xe4, 0x5b, 0x43, 0x38, 0xa0, 0xcc, 0xd5, 0x33, 0x73, 0x84, 0x37, - 0xd7, 0xa4, 0xde, 0xc4, 0x59, 0x16, 0xfa, 0x9f, 0xbe, 0xc8, 0xf5, 0x95, 0xc6, 0x91, 0x8c, 0xc9, - 0x8a, 0x28, 0x1f, 0x7f, 0x06, 0x37, 0x42, 0x65, 0x93, 0x60, 0x88, 0xb0, 0xa1, 0x50, 0xda, 0x79, - 0x3e, 0x50, 0x34, 0x35, 0x13, 0x5c, 0xe4, 0xec, 0x03, 0x78, 0x87, 0xf2, 0x7d, 0x30, 0x2c, 0x0c, - 0x89, 0x6c, 0xe1, 0x15, 0x29, 0xcd, 0x75, 0x5c, 0xf7, 0x88, 0x4d, 0x0b, 0x3c, 0x8a, 0x20, 0x09, - 0x50, 0x10, 0x92, 0x68, 0x0f, 0xc0, 0x14, 0xa7, 0x56, 0xc7, 0x55, 0x7b, 0xcb, 0xc6, 0x26, 0x03, - 0xae, 0xd5, 0xbc, 0xa6, 0x4b, 0x4b, 0x78, 0x27, 0x95, 0x62, 0xd7, 0xce, 0x9c, 0xe9, 0xde, 0x99, - 0xcf, 0x44, 0xe1, 0x7f, 0x58, 0xc7, 0x0d, 0x44, 0xbd, 0x50, 0x34, 0x81, 0xef, 0x82, 0x11, 0x4f, - 0x8c, 0x96, 0x91, 0x69, 0x36, 0x78, 0xd8, 0x42, 0xe6, 0xf9, 0x93, 0xa5, 0x71, 0x51, 0x37, 0x6b, - 0xa6, 0xd9, 0xc0, 0x84, 0x6c, 0xd2, 0x86, 0xed, 0x5a, 0xa5, 0x0b, 0x01, 0xdc, 0x1f, 0xd6, 0xb6, - 0x45, 0xb9, 0xf7, 0x46, 0xee, 0x18, 0x74, 0x47, 0x66, 0x50, 0x56, 0x6a, 0x10, 0xf7, 0xa5, 0x5d, - 0x5c, 0x97, 0x78, 0x73, 0xa0, 0x80, 0xab, 0x5d, 0xa9, 0x92, 0x4c, 0xfa, 0x7f, 0x8a, 0xd2, 0x6c, - 0x1c, 0x07, 0x90, 0x31, 0xd8, 0x60, 0x77, 0x95, 0x38, 0xfe, 0xda, 0x7d, 0x30, 0xd6, 0x35, 0x2a, - 0x64, 0xaf, 0x80, 0x01, 0x7e, 0xa7, 0x89, 0xdb, 0x64, 0x52, 0xaa, 0x58, 0x2c, 0x12, 0x50, 0xed, - 0xe7, 0x7e, 0x30, 0xc2, 0xeb, 0xb2, 0x80, 0x1c, 0xe4, 0x56, 0xf1, 0xab, 0x6e, 0x39, 0x7c, 0x00, - 0x06, 0x2b, 0x3c, 0x44, 0xe6, 0x2c, 0xd3, 0xbf, 0xea, 0x3b, 0xfa, 0xd7, 0x8b, 0xdc, 0xac, 0x65, - 0xd3, 0xed, 0x66, 0x45, 0xaf, 0x7a, 0x35, 0x71, 0xdb, 0x8b, 0x3f, 0x4b, 0xc4, 0x7c, 0x64, 0xd0, - 0x76, 0x1d, 0x13, 0xbd, 0xe8, 0xd2, 0xe7, 0x4f, 0x96, 0x80, 0x70, 0xab, 0xe8, 0xd2, 0x52, 0x10, - 0x0c, 0x7e, 0x01, 0x2e, 0x7c, 0x6a, 0xd3, 0x6d, 0xb3, 0x81, 0xbe, 0x44, 0x15, 0x07, 0x67, 0xfa, - 0x4f, 0x21, 0x78, 0x57, 0x44, 0xf8, 0x10, 0x0c, 0xad, 0x63, 0x07, 0x5b, 0x88, 0x62, 0x33, 0x73, - 0xee, 0x14, 0xc2, 0x87, 0xe1, 0xa0, 0x03, 0xe0, 0x06, 0x76, 0x4d, 0xdb, 0xb5, 0x3e, 0x71, 0xcd, - 0x4e, 0x92, 0x81, 0x53, 0x48, 0x22, 0x89, 0x0b, 0x4d, 0x30, 0xfa, 0xb1, 0x47, 0x91, 0x23, 0xce, - 0x3d, 0x36, 0x33, 0x83, 0xa7, 0x90, 0x29, 0x16, 0x53, 0xdb, 0x14, 0xd7, 0x6e, 0x57, 0xdd, 0x88, - 0xe2, 0x7c, 0xe5, 0x1b, 0xc3, 0x02, 0xaa, 0x2c, 0xa8, 0xa8, 0xed, 0x22, 0x18, 0x15, 0x51, 0x83, - 0x1a, 0xe3, 0x35, 0xae, 0x25, 0xde, 0xce, 0x61, 0x8c, 0x11, 0x12, 0xfd, 0x5c, 0x3e, 0x18, 0x05, - 0xe7, 0x58, 0x26, 0x78, 0xa0, 0x80, 0x01, 0x7e, 0x1c, 0xe0, 0x9c, 0x34, 0x4e, 0xef, 0xd9, 0x53, - 0xe7, 0x8f, 0x07, 0x72, 0xca, 0xda, 0x95, 0xaf, 0xff, 0xf8, 0xe7, 0xfb, 0x33, 0x97, 0xe1, 0xa4, - 0x91, 0xdc, 0x7d, 0xc0, 0x1f, 0x15, 0xe6, 0x65, 0xec, 0x59, 0x2d, 0xb4, 0x59, 0xfb, 0x00, 0xaf, - 0x27, 0x27, 0x8b, 0xad, 0x50, 0x4f, 0xf4, 0x84, 0x6b, 0xab, 0xdf, 0xfe, 0xfb, 0x78, 0x41, 0x61, - 0xc4, 0xf2, 0xd0, 0x90, 0x12, 0x8b, 0x36, 0x09, 0xc6, 0x5e, 0xa4, 0xbd, 0xd9, 0x87, 0x8f, 0x15, - 0xf6, 0x46, 0x4b, 0x9a, 0x99, 0xc5, 0x64, 0xa2, 0xbd, 0x68, 0xf5, 0xc6, 0xcb, 0xa0, 0x3b, 0x7e, - 0xae, 0x84, 0xdc, 0xe7, 0xe1, 0xac, 0x94, 0x7b, 0xbc, 0xc9, 0x21, 0xf0, 0x07, 0x85, 0xdd, 0x95, - 0x3d, 0x4d, 0xc5, 0x42, 0x32, 0x85, 0x38, 0x56, 0x3d, 0x59, 0x07, 0xa0, 0x2d, 0x87, 0xfc, 0xe6, - 0xe0, 0x35, 0x39, 0x3f, 0xff, 0x3f, 0x63, 0x2f, 0x38, 0x02, 0xfb, 0xf0, 0x27, 0x85, 0xbd, 0x93, - 0xb2, 0x0e, 0x05, 0xea, 0xa9, 0x2e, 0xf5, 0xe0, 0xd5, 0x9b, 0x2f, 0x87, 0xef, 0xf8, 0xba, 0x18, - 0xf2, 0x9e, 0x81, 0xb9, 0x44, 0x5f, 0xf9, 0x97, 0x5f, 0xb0, 0x81, 0xa1, 0x38, 0xfa, 0xaa, 0x5f, - 0x4f, 0x37, 0x34, 0x82, 0x55, 0x5f, 0x4f, 0x21, 0x1a, 0x6f, 0x76, 0xb4, 0x77, 0x42, 0x76, 0x6f, - 0x40, 0x5d, 0xca, 0x4e, 0x5c, 0x0c, 0x62, 0x60, 0xaf, 0x73, 0xfb, 0xec, 0xc3, 0x5f, 0x15, 0x70, - 0xb9, 0x43, 0x56, 0xf6, 0x7a, 0xc3, 0x7c, 0x0a, 0x6d, 0xf9, 0x6b, 0x9f, 0x70, 0xd2, 0x62, 0x22, - 0xb5, 0x3b, 0x21, 0xef, 0x5b, 0xf0, 0xad, 0x63, 0x79, 0x47, 0x69, 0x47, 0x0b, 0xe4, 0x17, 0x7e, - 0xe4, 0x24, 0x6d, 0x54, 0xca, 0x91, 0xeb, 0x45, 0xa7, 0x1d, 0xb9, 0xe4, 0x46, 0x4a, 0x5b, 0x0b, - 0x45, 0xdc, 0x84, 0x37, 0xa4, 0x22, 0xc2, 0xc6, 0x47, 0xd8, 0xdf, 0xd5, 0x09, 0xed, 0xc3, 0xdf, - 0xf9, 0xcf, 0x93, 0xb4, 0x16, 0x0a, 0xbe, 0x7d, 0x3c, 0xb9, 0xa4, 0xcd, 0x98, 0x95, 0x2e, 0xed, - 0x91, 0xa4, 0x7d, 0x10, 0x2a, 0x79, 0x1f, 0xbe, 0x77, 0x02, 0x25, 0x71, 0x21, 0xb1, 0x4d, 0x81, - 0xbd, 0x6f, 0x55, 0xda, 0x81, 0x95, 0xbd, 0x94, 0xaa, 0x71, 0x62, 0xbc, 0xd8, 0x8e, 0x7b, 0xa1, - 0x88, 0x55, 0x78, 0x2b, 0xad, 0xa6, 0xc4, 0x23, 0x99, 0x50, 0x55, 0x85, 0xbb, 0x4f, 0x0f, 0xb3, - 0xca, 0xb3, 0xc3, 0xac, 0xf2, 0xf7, 0x61, 0x56, 0xf9, 0xee, 0x28, 0xdb, 0xf7, 0xec, 0x28, 0xdb, - 0xf7, 0xe7, 0x51, 0xb6, 0xef, 0xe1, 0x62, 0xa4, 0x41, 0xf0, 0xe3, 0x2f, 0xb5, 0xda, 0x5f, 0x45, - 0x12, 0xb5, 0x82, 0x54, 0xac, 0x55, 0xa8, 0x0c, 0xb0, 0x9f, 0xc7, 0x2b, 0xff, 0x05, 0x00, 0x00, - 0xff, 0xff, 0x10, 0x83, 0xae, 0x5a, 0x51, 0x10, 0x00, 0x00, + // 1217 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x41, 0x4f, 0xdc, 0x46, + 0x14, 0xc6, 0x84, 0x40, 0x18, 0x02, 0x95, 0x06, 0x9a, 0x2c, 0x86, 0xec, 0x82, 0x93, 0x00, 0xa1, + 0x60, 0x77, 0x21, 0x4a, 0xdb, 0x94, 0x56, 0x65, 0x43, 0x12, 0x6d, 0x7a, 0x68, 0xba, 0xa8, 0x51, + 0x9b, 0xcb, 0x76, 0x76, 0x3d, 0x18, 0x2b, 0x5e, 0xdb, 0xec, 0xcc, 0x12, 0x28, 0x42, 0x42, 0xbd, + 0xb4, 0xc7, 0x4a, 0xbd, 0xf6, 0x17, 0xf4, 0xd2, 0x48, 0xcd, 0xb9, 0x3d, 0x55, 0xca, 0x31, 0x4d, + 0x2f, 0x55, 0x0f, 0x51, 0x05, 0x95, 0xfa, 0x37, 0x2a, 0xcf, 0x8c, 0xd7, 0x5e, 0xef, 0xd8, 0x90, + 0x94, 0x13, 0x78, 0xe6, 0x9b, 0x37, 0xdf, 0xf7, 0xcd, 0x9b, 0x37, 0x6f, 0x41, 0xc1, 0x6e, 0xb4, + 0x50, 0x7d, 0x13, 0xd9, 0xae, 0x81, 0x08, 0xc1, 0x94, 0x18, 0xdb, 0x45, 0x63, 0xab, 0x85, 0x9b, + 0xbb, 0xba, 0xdf, 0xf4, 0xa8, 0x07, 0x47, 0xdb, 0x00, 0x9d, 0x03, 0xf4, 0xed, 0xa2, 0x3a, 0x5f, + 0xf7, 0x48, 0xc3, 0x23, 0x46, 0x0d, 0x11, 0xcc, 0xd1, 0xc6, 0x76, 0xb1, 0x86, 0x29, 0x2a, 0x1a, + 0x3e, 0xb2, 0x6c, 0x17, 0x51, 0xdb, 0x73, 0x79, 0x00, 0x75, 0x42, 0x60, 0x43, 0x58, 0x3c, 0xba, + 0x3a, 0xce, 0x27, 0xab, 0xec, 0xcb, 0xe0, 0x1f, 0x62, 0x6a, 0xcc, 0xf2, 0x2c, 0x8f, 0x8f, 0x07, + 0xff, 0x89, 0xd1, 0x49, 0xcb, 0xf3, 0x2c, 0x07, 0x1b, 0xc8, 0xb7, 0x0d, 0xe4, 0xba, 0x1e, 0x65, + 0x5b, 0x85, 0x6b, 0xa6, 0x65, 0x6a, 0x2c, 0xec, 0x62, 0x62, 0x87, 0x90, 0x29, 0x19, 0xc4, 0x47, + 0x4d, 0xd4, 0x08, 0x11, 0x93, 0x32, 0x04, 0xdd, 0xe1, 0xb3, 0xda, 0x3b, 0x60, 0xec, 0xd3, 0x40, + 0xc0, 0x2d, 0xc7, 0xc6, 0x2e, 0xbd, 0x15, 0xc0, 0xca, 0xee, 0x86, 0x07, 0x0b, 0x60, 0x88, 0xad, + 0xa9, 0xda, 0xae, 0x89, 0x77, 0x72, 0xca, 0x94, 0x32, 0xd7, 0x57, 0x01, 0x75, 0x3e, 0x6f, 0xe2, + 0x1d, 0x0d, 0x81, 0x8b, 0x6c, 0xe1, 0xaa, 0xe3, 0x24, 0xd7, 0xde, 0x01, 0x20, 0xb2, 0x8d, 0x2d, + 0x1d, 0x5a, 0x9a, 0xd1, 0x85, 0x1b, 0x81, 0xc7, 0x3a, 0xf7, 0x4c, 0x78, 0xac, 0xdf, 0x47, 0x16, + 0xae, 0xe0, 0xad, 0x16, 0x26, 0xb4, 0x12, 0x5b, 0xa9, 0xfd, 0xa6, 0x80, 0x42, 0xca, 0x1e, 0x15, + 0x4c, 0x7c, 0xcf, 0x25, 0x18, 0x7e, 0x01, 0x2e, 0x20, 0xc7, 0xa9, 0xd6, 0xd9, 0x74, 0x35, 0xa4, + 0xbc, 0xe1, 0x91, 0x9c, 0x32, 0x75, 0x66, 0x6e, 0x68, 0xe9, 0x8a, 0x2e, 0x39, 0x70, 0x3d, 0x19, + 0x6d, 0x14, 0x75, 0xed, 0x40, 0xe0, 0xdd, 0x0e, 0x19, 0xbd, 0x4c, 0xc6, 0xec, 0xb1, 0x32, 0x38, + 0xaf, 0x0e, 0x1d, 0x4b, 0xe0, 0x4d, 0x26, 0x63, 0x9d, 0xa2, 0x47, 0xb6, 0x6b, 0xad, 0x06, 0x34, + 0x98, 0x51, 0xe3, 0xe0, 0x1c, 0xe3, 0x54, 0xb5, 0x4d, 0x66, 0xd3, 0x60, 0x65, 0x80, 0x7d, 0x97, + 0x4d, 0x6d, 0x02, 0x8c, 0x87, 0xd2, 0xe3, 0xcb, 0x48, 0xb0, 0x4e, 0xfb, 0x46, 0x01, 0xd3, 0xa9, + 0xb3, 0x6d, 0x6b, 0x6a, 0xe0, 0x62, 0x60, 0x0d, 0xe1, 0x80, 0x2a, 0x57, 0xcf, 0xcc, 0x11, 0xde, + 0x5c, 0x95, 0x7a, 0x93, 0x64, 0x59, 0xea, 0x7b, 0xf6, 0xb2, 0xd0, 0x53, 0x19, 0x43, 0x32, 0x26, + 0xcb, 0x22, 0x7d, 0x82, 0x19, 0xdc, 0x8c, 0x94, 0x4d, 0x80, 0x41, 0xc2, 0x86, 0x22, 0x69, 0xe7, + 0xf8, 0x40, 0xd9, 0xd4, 0x4c, 0x70, 0x81, 0xb3, 0x0f, 0xe1, 0x6d, 0xca, 0xf7, 0xc0, 0x90, 0x30, + 0x24, 0x76, 0x84, 0x97, 0xa5, 0x34, 0xd7, 0xb0, 0xef, 0x11, 0x9b, 0x96, 0x78, 0x14, 0x41, 0x12, + 0xa0, 0x30, 0x24, 0xd1, 0x1e, 0x80, 0x49, 0x4e, 0xcd, 0xc7, 0x75, 0x7b, 0xc3, 0xc6, 0x26, 0x03, + 0xae, 0x36, 0xbc, 0x96, 0x4b, 0x2b, 0x78, 0x2b, 0x93, 0x62, 0xc7, 0xc9, 0xf4, 0x76, 0x9e, 0xcc, + 0xe7, 0x22, 0xf1, 0x3f, 0xf1, 0x71, 0x13, 0x51, 0x2f, 0x12, 0x4d, 0xe0, 0x07, 0x60, 0xd8, 0x13, + 0xa3, 0x55, 0x64, 0x9a, 0x4d, 0x1e, 0xb6, 0x94, 0x7b, 0xf1, 0x74, 0x71, 0x4c, 0xe4, 0xcd, 0xaa, + 0x69, 0x36, 0x31, 0x21, 0xeb, 0xb4, 0x69, 0xbb, 0x56, 0xe5, 0x7c, 0x08, 0x0f, 0x86, 0xb5, 0x4d, + 0x91, 0xee, 0xdd, 0x91, 0xdb, 0x06, 0xdd, 0x96, 0x19, 0x94, 0x97, 0x1a, 0xc4, 0x7d, 0xd9, 0x2d, + 0xaf, 0x49, 0xbc, 0x39, 0x50, 0xc0, 0x95, 0x8e, 0xad, 0xd2, 0x4c, 0xfa, 0x7f, 0x8a, 0xb2, 0x6c, + 0x1c, 0x03, 0x90, 0x31, 0xb8, 0xcf, 0x6a, 0x95, 0xb8, 0xfe, 0xda, 0x3d, 0x30, 0xda, 0x31, 0x2a, + 0x64, 0x2f, 0x83, 0x7e, 0x5e, 0xd3, 0x44, 0x35, 0x99, 0x90, 0x2a, 0x16, 0x8b, 0x04, 0x54, 0xfb, + 0xb9, 0x0f, 0x0c, 0xf3, 0xbc, 0x2c, 0x21, 0x07, 0xb9, 0x75, 0xfc, 0xba, 0x47, 0x0e, 0x1f, 0x80, + 0x81, 0x1a, 0x0f, 0x91, 0x3b, 0xc3, 0xf4, 0xaf, 0x04, 0x8e, 0xfe, 0xf5, 0xb2, 0x30, 0x63, 0xd9, + 0x74, 0xb3, 0x55, 0xd3, 0xeb, 0x5e, 0x43, 0x54, 0x7b, 0xf1, 0x67, 0x91, 0x98, 0x8f, 0x0c, 0xba, + 0xeb, 0x63, 0xa2, 0x97, 0x5d, 0xfa, 0xe2, 0xe9, 0x22, 0x10, 0x6e, 0x95, 0x5d, 0x5a, 0x09, 0x83, + 0xc1, 0x2f, 0xc1, 0xf9, 0xc7, 0x36, 0xdd, 0x34, 0x9b, 0xe8, 0x31, 0xaa, 0x39, 0x38, 0xd7, 0x77, + 0x0a, 0xc1, 0x3b, 0x22, 0xc2, 0x87, 0x60, 0xd0, 0xc4, 0x0e, 0xb6, 0x10, 0xc5, 0x66, 0xee, 0xec, + 0x29, 0x84, 0x8f, 0xc2, 0xc1, 0x06, 0x18, 0xf5, 0xb1, 0x6b, 0x06, 0xb5, 0xa5, 0xe5, 0x46, 0xbb, + 0xf4, 0x9f, 0xc2, 0x2e, 0x50, 0x04, 0xfe, 0x2c, 0x8a, 0x0b, 0x31, 0x78, 0x83, 0x7a, 0x14, 0x39, + 0x55, 0x93, 0xdf, 0x7c, 0x6c, 0xe6, 0x06, 0x4e, 0x61, 0xab, 0x11, 0x16, 0x74, 0x2d, 0x8c, 0xa9, + 0xad, 0x8b, 0xc2, 0xdb, 0x91, 0x39, 0x22, 0x3d, 0x5f, 0xbb, 0x66, 0x58, 0x40, 0x95, 0x05, 0x15, + 0xd9, 0x5d, 0x06, 0x23, 0x22, 0x6a, 0x98, 0x65, 0x3c, 0xcb, 0xb5, 0xd4, 0xfa, 0x1c, 0xc5, 0x18, + 0x26, 0xf1, 0xcf, 0xa5, 0x83, 0x11, 0x70, 0x96, 0xed, 0x04, 0x0f, 0x14, 0xd0, 0xcf, 0x2f, 0x04, + 0x9c, 0x95, 0xc6, 0xe9, 0xbe, 0x7d, 0xea, 0xdc, 0xf1, 0x40, 0x4e, 0x59, 0xbb, 0xfc, 0xf5, 0x1f, + 0xff, 0x7c, 0xdf, 0x7b, 0x09, 0x4e, 0x18, 0xe9, 0xfd, 0x07, 0xfc, 0x51, 0x61, 0x5e, 0x26, 0x1e, + 0xd6, 0xd2, 0x2e, 0x6b, 0x20, 0xe0, 0xb5, 0xf4, 0xcd, 0x12, 0x2b, 0xd4, 0x13, 0x3d, 0xe2, 0xda, + 0xca, 0xb7, 0xff, 0x3e, 0x99, 0x57, 0x18, 0xb1, 0x22, 0x34, 0xa4, 0xc4, 0xe2, 0x6d, 0x82, 0xb1, + 0x17, 0x6b, 0x70, 0xf6, 0xe1, 0x13, 0x85, 0xbd, 0xd2, 0x92, 0x76, 0x66, 0x21, 0x9d, 0x68, 0x37, + 0x5a, 0xbd, 0xfe, 0x2a, 0xe8, 0xb6, 0x9f, 0xcb, 0x11, 0xf7, 0x39, 0x38, 0x23, 0xe5, 0x9e, 0x6c, + 0x73, 0x08, 0xfc, 0x41, 0x61, 0xd5, 0xb2, 0xab, 0xad, 0x98, 0x4f, 0xa7, 0x90, 0xc4, 0xaa, 0x27, + 0xeb, 0x01, 0xb4, 0xa5, 0x88, 0xdf, 0x2c, 0xbc, 0x2a, 0xe7, 0x17, 0xfc, 0x67, 0xec, 0x85, 0x57, + 0x60, 0x1f, 0xfe, 0xa4, 0xb0, 0x97, 0x52, 0xd6, 0xa3, 0x40, 0x3d, 0xd3, 0xa5, 0x2e, 0xbc, 0x7a, + 0xe3, 0xd5, 0xf0, 0x6d, 0x5f, 0x17, 0x22, 0xde, 0xd3, 0xb0, 0x90, 0xea, 0x2b, 0xff, 0x0a, 0x12, + 0x36, 0x34, 0x14, 0xc7, 0xdf, 0xf5, 0x6b, 0xd9, 0x86, 0xc6, 0xb0, 0xea, 0x5b, 0x19, 0x44, 0x93, + 0xed, 0x8e, 0xf6, 0x7e, 0xc4, 0xee, 0x6d, 0xa8, 0x4b, 0xd9, 0x89, 0xc2, 0x20, 0x06, 0xf6, 0xda, + 0xd5, 0x67, 0x1f, 0xfe, 0xaa, 0x80, 0x4b, 0x6d, 0xb2, 0xb2, 0xf7, 0x1b, 0x16, 0x33, 0x68, 0xcb, + 0xdf, 0xfb, 0x94, 0x9b, 0x96, 0x10, 0xa9, 0xdd, 0x8e, 0x78, 0xdf, 0x84, 0xef, 0x1e, 0xcb, 0x3b, + 0x4e, 0x3b, 0x9e, 0x20, 0xbf, 0xf0, 0x2b, 0x27, 0x69, 0xa4, 0x32, 0xae, 0x5c, 0x37, 0x3a, 0xeb, + 0xca, 0xa5, 0xb7, 0x52, 0xda, 0x6a, 0x24, 0xe2, 0x06, 0xbc, 0x2e, 0x15, 0x11, 0xb5, 0x3e, 0xc2, + 0xfe, 0x8e, 0x5e, 0x68, 0x1f, 0xfe, 0xce, 0x7f, 0xa0, 0x64, 0x35, 0x51, 0xf0, 0xbd, 0xe3, 0xc9, + 0xa5, 0x1d, 0xc6, 0x8c, 0x74, 0x69, 0x97, 0x24, 0xed, 0xe3, 0x48, 0xc9, 0x47, 0xf0, 0xc3, 0x13, + 0x28, 0x49, 0x0a, 0x49, 0x1c, 0x0a, 0xec, 0x7e, 0xab, 0xb2, 0x2e, 0xac, 0xec, 0xa5, 0x54, 0x8d, + 0x13, 0xe3, 0xc5, 0x71, 0xdc, 0x8d, 0x44, 0xac, 0xc0, 0x9b, 0x59, 0x39, 0x25, 0x1e, 0xc9, 0x94, + 0xac, 0x2a, 0xdd, 0x79, 0x76, 0x98, 0x57, 0x9e, 0x1f, 0xe6, 0x95, 0xbf, 0x0f, 0xf3, 0xca, 0x77, + 0x47, 0xf9, 0x9e, 0xe7, 0x47, 0xf9, 0x9e, 0x3f, 0x8f, 0xf2, 0x3d, 0x0f, 0x17, 0x62, 0x0d, 0x42, + 0x10, 0x7f, 0x71, 0x67, 0xf7, 0xab, 0xd8, 0x46, 0x3b, 0xe1, 0x56, 0xac, 0x55, 0xa8, 0xf5, 0xb3, + 0x1f, 0xc8, 0xcb, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x77, 0x51, 0xa4, 0x67, 0x53, 0x10, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used.